Китайский SDR + Arduino. Часть 1 — помечтаем?

Пусть и не идеальны китайские «свистки» и вариации на их чипе RTL2832U, но доступная цена делает их довольно таки привлекательными для радиолюбителей. Причем не только начинающих, но и опытных ассов эфира.

Об их применении и недостатках написано довольно таки много, мы попробуем посмотреть на них под новым углом.

Для того, чтобы получить из «свистка» приемник с приемлемыми характеристиками,
необходимо не так уж и много, привести в порядок входные цепи приемника.
Сделать это можно несколькими способами:
— добавить диапазонные полосовые фильтры
— добавить предварительный усилитель радиочастоты (МШУ)
— добавить входной аттенюатор (ступенчатый или плавный)
а можно применить комплексное решение от US5MQ (http://us5msq.com.ua/prostoj-preselektor-dlya-mnogodiapazonnogo-priemnika/)

Можно собрать все это в один корпус с USB-разъемом с одной стороны и антенным разъемом с другой.
Но встает вопрос — «Как переключать все дополнительные блоки и крутить конденсатор?»

Вот тут на на помощь приходит еще одно чудо китайской промышленности — клоны Arduino.
Примечание: Все что мы будем рассматривать далее, применимо к любому варианту платы Arduino. Отличаются они только размерами и количеством входов/выходов.

Даже небольшие платы, типа Arduino Nano, уже имеют на своем борту USB-контроллер и их размер сопоставим с размером «свистка».
Поместив в один корпус простой USB-разветвитель, в который воткнут наш SDR-приемник и Arduino Nano, мы получаем самодостаточное устройство,
которое может не только принимать радиосигналы, но и управлять подключенными дополнительными модулями.
Цена дополнительных компонентов ограничивается 2-5$ (1-2$ USB-разветвитель + 1-3$ Arduino Nano, при приобретении на AliExpress).

Попробуем пофантазировать, как это может работать.
Arduino Nano имеет в своем распоряжении 14 (D0-D13) цифровых и 6 (ADC0-ADC5) аналоговых входов/выходов.
Цифровой вход/выход позволяет сформировать/измерить наличие высокого (5 вольт) или низкого (0 вольт) уровня напряжения на входе/выходе.
Аналоговый вход позволяет измерять/формировать напряжение от 0 до 5 вольт, с разрешением 10 бит (1024 градации — шаг около 0.005 вольт).

Попробуем пофантазировать, как часть из них распределить для наших целей.
Цифровые выходы (не догма, а только как примерный вариант распределения контактов):
— с 4 по 9 — будут выдавать напряжение на включение соответствующего диапазонного фильтра (1.8, 3.5, 7, 14, 21, 28)
— 10 — включение предварительного усилителя (МШУ)
— 11 — включение аттенюатора
— 12 — сервопривод на вращение оси конденсатора переменной емкости (КПЕ) входного контура (в случае решения от US5MQ)
— 13 — сервопривод на вращение потенциометра плавной регулировки входного уровня сигнала (или еще одного КПЕ, например рамочной антенны)

Примечание: Мы не будем использовать для управления цифровые выходы с номерами 0 и 1, поскольку они будут использоваться для обмена данными между микроконтроллером и компьютером.

Итого у нас осталось не задействованными 2 цифровых входа/выхода и 6 аналоговых входов/выходов.

Вроде все понятно, но остается вопрос — «КАК ЭТИМ УПРАВЛЯТЬ?».

Тут все довольно таки просто. При подключении к компьютеру, Arduino отображается в системе как обычный COM-порт. А значит все команды управления можно просто посылать в последовательный порт с соответствующим номером. И тут уже на выбор есть огромный инструментарий, от командной строки (echo команда >COM5:), до любого языка программирования.

Систему команд и протокол управления мы рассмотрим в следующей статье. Напомню, что в этой части мы только фантазировали.