Инструменты пользователя

Перевод этой страницы:

Инструменты сайта


Боковая панель

Для чего нужен ОрбиКрафт

Подсистемы конструктора

Инструкции по работе с ОрбиКрафт

Уроки

Лабораторная оснастка

Знакомство с Arduino

Полезная нагрузка на базе Arduino

Обратная связь

Новости

uhf_tx_subsys

УКВ радиоканал

УКВ радиоканал служит для передачи телеметрии с борта спутника на Землю. Количество телеметрической информации с аппарата, как правило, значительно ниже, чем поток данных с полезной нагрузки, ради которой данный спутник был запущен в космос. С другой стороны, при неполадках на борту и при возможной потере аппаратом ориентации данный канал связи остается доступным, для получения критически важной информации о состоянии бортовых служебных систем и восстановления работоспособности спутника. При этом низкоскоростной канал связи потребляет малое количество энергии по сравнению с ВЧ радиоканалом.

В составе набора конструктора ОрбиКрафт УКВ-радиоканал реализован в виде двух модулей: бортового модуля УКВ-передатчика и наземного модуля УКВ-приемника (рисунок 1). Массив данных, передаваемых с борта на Землю, представляет из себя байтовый массив произвольной длины и состава, который можно передать на Землю, с указанием его длины. На Земле полученные сообщения во время сеанса связи отображаются в реальном времени в интерфейсе ПО ЦУП «как есть», так что выгоднее всего передавать телеметрию в текстовом виде.

 УКВ канал

Рисунок 1. УКВ-передатчик и УКВ-приемник

УКВ-передатчик

Виртуальное потребление - 210мА

УКВ передатчик космического аппарата - чаще всего работает на частоте 145 или 436 МГц и обеспечивает небольшую скорость передачи данных, с всенаправленной или близкой к всенаправленной бортовой антенной.

УКВ передатчик в конструкторе ОрбиКрафт имеет номер «2» (указан на корпусе).

Передача данных на Землю осуществляется с помощью функции:

  int32_t transceiver_send(uint16_t tx_num,uint16_t rx_num,const uint8_t *data,uint16_t len); 

УКВ-приемник

УКВ-приемник из состава конструктора имитирует работу радиоприемной части наземной станции приема телеметрической информации по низкоскоростному каналу. Во время экспериментов со «спутником» аналогичные приемники будут смонтированы непосредственно на поверхности «Земли» - глобусе. Однако для предварительной отработки работы со спутником в комплекте также поставляется данный УКВ-приемник телеметрии.

Сам приемник работает совместно с ПО ЦУП. При передаче данных телеметрии бортовым радиоканалом и подключенном УКВ-приемнике в наземной сети, эти данные будут автоматически приниматься наземным радиоканалом и отображаться в текстовом поле в левой части пользовательского интерфейса ПО ЦУП.

УКВ приемник в конструкторе ОрбиКрафт имеет номер «1» (указан на корпусе).

Код для проверки системы

Код проверки системы телеметрии на языке C

UHF_Test_C.c
	#include "libschsat.h"
	/*
	** Lab 8: UHF transceiver demo.
	*/
	void control(void)
	{		
		const uint16_t tx_num = 2;
		const uint16_t rx_num = 1;
		const char hello[] = "hello, world!";
		printf("Enable transceiver #%d\n", tx_num);
		transceiver_turn_on(tx_num);
		Sleep(1);
		bus_setup();
		printf("Send data from #%d to #%d\n", tx_num, rx_num);
		if (LSS_OK != transceiver_send(tx_num, rx_num, (uint8_t *) hello, sizeof(hello)))
			puts("Fail!");
		printf("Disable transceiver #%d\n", tx_num);
		transceiver_turn_off(tx_num);
		return;
	}

Код проверки системы телеметрии на языке Python

UHF_Test_Py.py
def control(): # Основная функция программы, в которой нужно вызывать остальные функции
 
	#Прием и передача обычно обозначаются как tx и rx от английских слов transmit  и receive
	# То есть в данной программе	tx - передающий УКВ - приемопередатчик, rx - принимающий УКВ - приемопередатчик
	rx_num = 1 # Номер принимающего УКВ-приемопередатчика
	tx_num = 2 # Номер передающешл УКВ-приемопередатчика
 
	data = "hello world" #Сообщение для передачи
 
	print "Enable transceiver №", tx_num # Активируем передатчик. Приемник же находится на приемной станции и не контролируется нашей программой
	transceiver_turn_on(tx_num)
	sleep(1)
 
	bus_setup()  #Готовим шину к передаче данных
	print "Send data from transceiver №", tx_num, " to transceiver №",  rx_num
 
	error = transceiver_send(tx_num, rx_num, data)
 
	if not error:
		print "data has been transmitted"
	elif error == 1: # если датчик вернул сообщение об ошибке 1
		print "Fail because of access error, check the connection" 
	elif error == 2: # если датчик вернул сообщение об ошибке 2
		print "Fail because of interface error, check your code"
 
 
	print "Disable transceiver №", tx_num # Выключаем передатчик
	transceiver_turn_off(tx_num)
uhf_tx_subsys.txt · Последние изменения: 2022/03/15 14:15 — ekaterina.manucharova

Инструменты страницы