УКВ радиоканал
УКВ радиоканал служит для передачи телеметрии с борта спутника на Землю. Количество телеметрической информации с аппарата, как правило, значительно ниже, чем поток данных с полезной нагрузки, ради которой данный спутник был запущен в космос. С другой стороны, при неполадках на борту и при возможной потере аппаратом ориентации данный канал связи остается доступным, для получения критически важной информации о состоянии бортовых служебных систем и восстановления работоспособности спутника. При этом низкоскоростной канал связи потребляет малое количество энергии по сравнению с ВЧ-радиоканалом.
В составе набора конструктора ОрбиКрафт УКВ-радиоканал реализован в виде двух модулей: бортового модуля УКВ-передатчика и наземного модуля УКВ-приемника (рисунок 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
#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
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)