Цифровое радио в ретро стиле на Arduino


304

Когда-то давно мы собирали свои первые простенькие радиоприемники в школьном возрасте из наборов. Сегодня, в силу развития модульного конструирования, собрать цифровой радиоприемник не составит труда даже людям, крайне далеким от радиолюбительства. Дизайн этого приемника основан на впечатляющем радио AWA 1935 года, на которое автор наткнулся в книге "Deco Radio: The Most Beautiful Radios Ever Made". Автор так был впечатлен его дизайном, что захотел иметь собственный аналог.

Могут понадобиться

Набор для сборки радио приемника
Беспроводной радио модуль Arduino NRF24L01
Цифровой вольтметр постоянного тока 2,5-40В
Паяльная смола - канифоль
Плата управления с 16 реле для Ардуино

В конструкции использован ЖК-дисплей Nokia 5110 для отображения частоты и энкодер для её выбора. Громкость регулируется встроенным в усилитель переменным резистором. Что бы подчеркнуть дизайн автор так же использовал для вывода информации на дисплей шрифт в стиле ар-деко. В коде ардуино заложена функция запоминания последней прослушиваемой станции (которая прослушивалась более пяти минут).

Шаг 1: Компоненты

Шаг 2: Электроника

Прежде всего, если Вы не имеете большого опыта в работе с ардуино, следует сначала собрать схему, используя беспечатную макетную плату. При этом, для удобства, можно использовать Arduino Nano или UNO. Лично я на стадии отладки схем использую Arduino UNO, так как ее вместе с макетной платой удобно использовать для соединения необходимых компонентов, практически не используя при этом пайку. При включении устройства на экране несколько секунд должен отображаться логотип, после чего из памяти EEPROM загружается частота последней прослушиваемой станции. Поворачивая ручку энкодера можно настраивать частоту, меняя станции.

Когда на макете все работает хорошо, можно переходить к основной сборке, используя уже более компактную и дешевую Arduino PRO Mini, которая, к тому же, имеет и более низкое потребление. Но перед этим посмотрим, как все будет располагаться в корпусе.

Шаг 3: Проектирование корпуса

Трехмерная модель была разработана в бесплатной, но довольно мощной программе Fusion 360.

Шаг 4: 3D-печать и обработка

Для печати использовался "деревянный" пластик FormFutura. Это довольно необычный пластик, особенность которого заключается в том, что после печати детали имеют вид, схожий с деревом. Однако при печати этим пластиком автор столкнулся с рядом проблем. Мелкие детали распечатались без проблем, однако корпус, самая крупная деталь, распечатался не с первого раза. При попытках его печати постоянно забивалось сопло, ситуацию усугубляли регулярные сбои с электроснабжением, из-за чего автору даже пришлось приобрести ИБП для принтера. В конечном итоге корпус был допечатан поверх недопечатанной заготовки. Такое решение, однако, не совсем решение проблемы, лишь разовый выход из ситуации, так что вопрос остается открытым. Так как отпечатать удачно так и не получилось, дальше автор решил зашлифовать корпус, прошпаклевать шпатлевкой для дерева и покрыть лаком. Да, этот пластик не просто похож на дерево, по сути это мелкая древесная пыль, смешанная с вяжущим пластификатором, так что детали напечатанные им практически и есть деревянные, и поддаются методам обработки для обычного дерева.

Шаг 5: Собираем все вместе

Все остальные платы крепятся на свои места при помощи термоклея. Можно много плеваться на термоклей, но для этих целей он действительно хорошо подходит, учитывая что большинство модулей не имеет отверстий для крепления. Хотя я предпочитаю использовать двусторонний "автомобильный" скотч для этих целей.

Шаг 6: Прошивка

Этот шаг стоило расположить выше, так как прошивать нужно ещё на стадии отладки. Основная идея кода такая: когда поворачивается ручка энкодера, происходит перебор частоты, когда ручка энкодера остается на одном и том же положении более 1 секунды — эта частота устанавливается для модуля FM приемника.

if(currentMillis - previousMillis > interval) { if(frequency!=previous_frequency) { previous_frequency = frequency; radio.selectFrequency(frequency); seconds = 0; }else

Радиомодулю FM требуется около 1 секунды, чтобы настроиться на новую частоту, по этому не получится менять частоту в реальном времени поворотом ручки энкодера, т.к. в таком случае настойка приемника будет очень медленной.

После установки частоты для приемника начинается отсчет времени. По истечении 5-ти минут частота сохраняется в память EEPROM. 

else { seconds++; if(seconds == SECONDS_TO_AUTOSAVE) { float read_frequency = readFrequencyFromEEPROM(); if(read_frequency!=frequency) { Serial.println("loop(): Saving new frequency to EEPROM"); writeFrequencyToEEPROM(&frequency); } } }

Код, как и файлы для печати, можно скачать одним архивом в конце статьи.

Шаг 7: Заключение

Нам очень повезло, что мы живем в эпоху, когда мы сами можем построить все, что захотим! У нас есть инструменты и ресурсы для создания всего, что мы хотим, в течение нескольких недель и при низких затратах.

От себя хочу сделать маленькую заметку по проекту. Для включения радио используется небольшой ползунковый переключатель, расположенный на задней стенке корпуса. Модули усилителя PAM8403 имеют не просто переменный резистор для регулировки громкости, а резистор совмещенный с включателем (по крайней мере те, что попадались мне). То есть в крайне левом положении включатель в положении "отключено", начинаем поворачивать — щелчок, включили, и потом уже регулируется громкость. Я думаю все поняли, о чем я, на все китайских радио такие. Так вот, к чему я. Этот включатель подает питание на модуль усилителя. Я предлагаю следующее: дорожки, подходящие к включателю, перепилить и закоротить, таким образом исключив включатель из цепи. А к пяточкам включателя подпаять провода в разрыв аккумулятора, таким образом сделав обращение с приемником более "юзабилити".

 


Автор: nig.mirtesen.ru

 

Контакты:
Адрес:
Строителей, 121-В
119311
Москва,
Телефон:+7 269-118-24-85,
Электронная почта: contact@msk-novostroyka.ru Новостройки Москвы и Подмосковья

Цифровое радио в ретро стиле на Arduino

по теме: