Лет 10 назад, до тех времен когда получили широкое распостранение USB донглы rtl-sdr, единственной возможностью слушать желаемые частоты в эфире, была покупка сканирующего радиоприемника. А еще хотелось, чтобы им можно было управлять с компа, ибо крутить валкодер своего Degen DE1103 весело, но утомительно.
И вот я, долго выбирая, остановился на брутальном кирпиче ICOM PCR-1000. Диапазон от 100 кГц до 1.3 ГГц. Управление с компа. Сказка!
Поигрался я им, поигрался, и потребность иметь компьютер для управления приемником начинала раздражать. Иногда хотелость что-то послушать вдали от цивилизации, а цивилизацию в виде ноутбука приходилось тащить с собой. И как-то он оказался запихнут в дальний ящик. Я конечно его извлекал, делал ему модификацию с выводм ПЧ наружу, для ее оцифровки и добавления панорамного SDR. Но все же потребность в куче проводов, и каки-то болтающихся проводов идущих к компу, утомляет.
В прошлом году, я захватил из дома в Вильнюс этот приемник, дабы дореализовать одну интересную идею. А именно — независимый модуль управления PCR-1000.
Требования я сформулировал следующие:
- Подключение к компьютеру по USB
- Возможность управлять приемником с панели управления
- Возможность переключаться между режимами управления с панели и управлением с компьютера.
- Возможность батарейного питания.
- Возможность подключения внешних динамиков, ибо громкость встроенного зачастую недостаточна.
- (опиционально) вывод звука на компьютер через USB, c с представлением в системе как звукового источника
Ранее я года два назад я пытался сделать что-то подобное, но в качесте протокола управления, я взял протокол какого-то трансивера ICOM. Потом застрял с передачей данных по USB, глюках энкодера, и забил.
И вот в феврале этого года я допилил беспроблемную работу сквозь STM32F4. На удивление все пошло достаточно легко.
В настоящий момент моя прошивка умеет передавать все команды от компа к приемнику, и отображать выставленные параметры. Так же от приемника я принимаю уровень сигнала, и так же показываю его на экране.
Снял небольшое видео, о том как оно все работает.
Из неприятного — наблюдатся глюки с отображением значнений ширины фильтра. Подебажив это дело, я обнаружил, что PythonPCR какого-то черта в отсылает команду установки параметров мало того что обрезаную (нет установки фильтра), так еще и без финальных «\r\n» символов.
Это дерьмо сбивало парсинг, и на экране я получал мусор. Сейчас я решил обрабатывать лишь корректные полные команды. Но это вызывает иногда неотрисовку значений фильтра и модуляции. Буду думать.
А пока, вполне оптимистично!