Bludmoon
Цифровое радио в ретро стиле на Arduino ( 30 фото + 3 видео )
Когда-то давно мы собирали свои первые простенькие радиоприемники в школьном возрасте из наборов. Сегодня, в силу развития модульного конструирования, собрать цифровой радиоприемник не составит труда даже людям, крайне далеким от радиолюбительства. Дизайн этого приемника основан на впечатляющем радио AWA 1935 года, на которое автор наткнулся в книге "Deco Radio: The Most Beautiful Radios Ever Made". Автор так был впечатлен его дизайном, что захотел иметь собственный аналог.
Могут понадобиться
Набор для сборки радио приемника
Беспроводной радио модуль Arduino NRF24L01
Цифровой вольтметр постоянного тока 2,5-40В
Паяльная смола - канифоль
Плата управления с 16 реле для Ардуино
В конструкции использован ЖК-дисплей Nokia 5110 для отображения частоты и энкодер для её выбора. Громкость регулируется встроенным в усилитель переменным резистором. Что бы подчеркнуть дизайн автор так же использовал для вывода информации на дисплей шрифт в стиле ар-деко. В коде ардуино заложена функция запоминания последней прослушиваемой станции (которая прослушивалась более пяти минут).
Шаг 1: Компоненты
- Arduino Pro Mini
- Программатор FTDI
- Модуль FM-радио TEA5767
- Динамик 3 Вт
- Модуль усилителя PAM8403
- Энкодер
- ЖК-дисплей Nokia 5110
- Плата заряда и защиты аккумулятора
- Аккумулятор 18650
- Держатель 18650
- Переключатель
- Макетная плата 5x7 см
- Соединительные провода
- Ткань для динамика
Прежде всего, если Вы не имеете большого опыта в работе с ардуино, следует сначала собрать схему, используя беспечатную макетную плату. При этом, для удобства, можно использовать Arduino Nano или UNO. Лично я на стадии отладки схем использую Arduino UNO, так как ее вместе с макетной платой удобно использовать для соединения необходимых компонентов, практически не используя при этом пайку. При включении устройства на экране несколько секунд должен отображаться логотип, после чего из памяти EEPROM загружается частота последней прослушиваемой станции. Поворачивая ручку энкодера можно настраивать частоту, меняя станции.
Когда на макете все работает хорошо, можно переходить к основной сборке, используя уже более компактную и дешевую Arduino PRO Mini, которая, к тому же, имеет и более низкое потребление. Но перед этим посмотрим, как все будет располагаться в корпусе.
Шаг 3: Проектирование корпуса
Трехмерная модель была разработана в бесплатной, но довольно мощной программе Fusion 360.
Шаг 4: 3D-печать и обработка
Для печати использовался "деревянный" пластик FormFutura. Это довольно необычный пластик, особенность которого заключается в том, что после печати детали имеют вид, схожий с деревом. Однако при печати этим пластиком автор столкнулся с рядом проблем. Мелкие детали распечатались без проблем, однако корпус, самая крупная деталь, распечатался не с первого раза. При попытках его печати постоянно забивалось сопло, ситуацию усугубляли регулярные сбои с электроснабжением, из-за чего автору даже пришлось приобрести ИБП для принтера. В конечном итоге корпус был допечатан поверх недопечатанной заготовки. Такое решение, однако, не совсем решение проблемы, лишь разовый выход из ситуации, так что вопрос остается открытым. Так как отпечатать удачно так и не получилось, дальше автор решил зашлифовать корпус, прошпаклевать шпатлевкой для дерева и покрыть лаком. Да, этот пластик не просто похож на дерево, по сути это мелкая древесная пыль, смешанная с вяжущим пластификатором, так что детали напечатанные им практически и есть деревянные, и поддаются методам обработки для обычного дерева.
Шаг 5: Собираем все вместе
Следующим шагом является установка электроники в корпус. Поскольку все уже было смоделировано в Fusion 360, проблем с этим не возникнет. Как видите, каждый компонент имеет свое положение в корпусе. Первым делом была распаяна Arduino Pro Mini, после чего в нее загружен код. Следующий шаг источник питания. В проекте была использована очень удобная и компактная плата Wemos, которая одновременно ответственна за зарядку аккумулятора, его защиту, а так же повышает напряжение для потребителей до необходимых 5-ти вольт. Вместо нее можно использовать обычный модуль заряда и защиты, а напряжение повышать отдельным DC/DC преобразователем (например TP4056 + MT3608).
Далее припаиваются остальные компоненты, динамик, дисплей, усилитель. Так же, хоть на модуле усилителя и есть конденсаторы по питанию, желательно добавить еще один (автор поставил на 330 мкФ, но можно и на 1000). Качество (если 10% КНИ можно назвать качеством) звучания усилителя PAM8403 очень сильно зависит от питания, как и работа радио модуля. Когда все спаяно и протестировано можно начинать окончательную сборку. Первым делом автор приклеил решетку, сверху на нее радиоткань.
От себя. Радиоткань штука специфическая, и в каждом ларьке ее не продают. Однако в каждом магазине женского рукоделия можно купить такую штуку, как канва (ткань для вышивки крестиком). Стоит она недорого и очень хорошо подходит как замена радиоткани, бывает разных цветов. Берите натуральную (не синтетическую) и с самой крупной ячейкой. К слову, к дизайну этого радио она подойдет как нельзя к стати.
Все остальные платы крепятся на свои места при помощи термоклея. Можно много плеваться на термоклей, но для этих целей он действительно хорошо подходит, учитывая что большинство модулей не имеет отверстий для крепления. Хотя я предпочитаю использовать двусторонний "автомобильный" скотч для этих целей.
Шаг 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 имеют не просто переменный резистор для регулировки громкости, а резистор совмещенный с включателем (по крайней мере те, что попадались мне). То есть в крайне левом положении включатель в положении "отключено", начинаем поворачивать — щелчок, включили, и потом уже регулируется громкость. Я думаю все поняли, о чем я, на все китайских радио такие. Так вот, к чему я. Этот включатель подает питание на модуль усилителя. Я предлагаю следующее: дорожки, подходящие к включателю, перепилить и закоротить, таким образом исключив включатель из цепи. А к пяточкам включателя подпаять провода в разрыв аккумулятора, таким образом сделав обращение с приемником более "юзабилити".
Взято: Тут
17