
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05


Bonjour, Это мои вторые "Instructables". Поскольку я люблю делать не очень полезные вещи, вот мой последний проект:
Это FM-радио с радиотекстом и зарядной базой, за которым можно следить через Bluetooth и приложение для Android.
Поэтому я представлю вам часть Arduino, часть Radio Text, а затем часть изобретателя MIT App (это единственный способ, которым я достаточно опытен для создания и Android-приложения)
При напряжении питания 10; 8 В с источником переменного тока и 9,6 В с батареей максимальная мощность составляет 2 x 1,5 / 1,25 Вт (среднеквадратичное значение), что достаточно широко.
Среднеквадратичная мощность (среднеквадратичное значение) - это реальная мощность, не похожая на другие большие числа, которые продаются как музыка в ваттах, пиковая мощность или что-то еще)
Я думаю, что 1,5 Вт RMS можно продать как 8 Вт в некоторых магазинах !!!!!!
Сначала необходимые компоненты:
Основная плата:
1x Arduino Nano
1x FM-радиомодуль SI4703 от Sparkfun или аналог (питание 5 В и 3,3 В I2C с 3-полюсным разъемом, который можно использовать в качестве антенны)
1x HC-06 Bluetooth-модуль (предупреждение, что новая версия программного обеспечения 3.0 имеет совершенно разные команды (я добавил несколько комментариев в код).
1x 4-канальный сдвигатель уровня 3,3 5 В
1x MC7805 5v преобразователь постоянного тока
1x 2200 мкФ 25 В конденсатор
2x 1N5404 3 диода усилителя
2x 2N2222 транзистора
1x резистор 1 кОм
1x 47 Ом резистор
2 резистора 3,3 кОм (для подтягивания шины I2C)
3 резистора 330 Ом (для светодиодов)
2 резистора по 6,8 кОм
1x резистор 3,9 кОм
Передняя панель
1x 20X4 LCD шина I2C
10 резисторов по 680 Ом
1x красный светодиод (зеленого у меня больше не было !!) для блока питания
1x желтый светодиод для режима работы от батареи
1x синий светодиод для подключения BT
4x переключателя (ON) -OFF- (ON) (как у электромобиля-стеклоподъемника)
2 кнопки
1x переключатель ВКЛ / ВЫКЛ
Другие компоненты для радио:
2x 100 Вт 10 см 8 Ом HP
1x 1 м выдвижная антенна (около 75 см - хорошая длина для FM в Европе и США)
1x телефонный штекер, который я использовал для контактов для зарядной базы
1x 1N5404, диод 3 А (на контакте батареи, чтобы избежать дыма в случае беспорядка с землей или контактом 12 В)
1x 2X20 Вт усилитель мощности (подойдет любой стереоусилитель до 12 В) на основе TDA2020, купленного за 4 евро
1x 8XAA аккумуляторный соединитель (минимум 9,6 В)
Фанера толщиной 10 и 4 мм для коробки.
База для зарядки:
1x 12V 3Amp Блок питания
1x маленький 3-х разрядный / 3-х проводный вольтметр
3 контакта (на телефонной вилке)
1x 1N5404, диод 3 А (на контакте 12 В)
2 рычажных переключателя (для включения источника переменного тока, когда радиостанция находится на зарядной базе)
1x переключатель ВКЛ / ВЫКЛ (для отключения зарядной базы при необходимости)
Фанера толщиной 10 и 4 мм для основания.
Всего, включая фанеру, не более 70 €.
Шаг 1: Радиочасть 4703
Во-первых, модификация:
Модуль должен использовать кабель гарнитуры в качестве антенны, в моем проекте это бесполезно, поэтому сначала нам нужно будет внести небольшую модификацию, чтобы подключить и внешнюю антенну.
В этом модуле 3-полюсное заземление разъема подключено не напрямую к земле, а через индуктивность (для остановки частот FM) и конденсатор для подключения частот FM к антенному входу SI4703.
Таким образом, лучший способ - напрямую подключить антенну к заземляющему контакту разъема и припаять два кабеля для аудиовыхода.

Чтобы предотвратить любые шумы в аудио (особенно от Bluetooth), я поместил FM-модуль в небольшую пластиковую коробку, экранированную медной лентой, подключенной к земле.

Протокол RDS / Radio Text:
Во-первых, я хочу поблагодарить Натана Зайдла, поскольку меня полностью вдохновила его программа "TEST_FM" от июня 2011 года.
И, по договоренности, я буду очень рад заплатить ему пиво, если на днях он заблудится в моей маленькой деревушке в глухой части Бретани !!
Я использовал много его программ, так как я не хотел использовать существующие библиотеки, которые слишком велики для скудного пространства памяти Nano, а также потому, что всегда лучше углубиться в возможности компонента, погрузившись непосредственно в регистры
Основная модификация, которую я сделал, - это опрос RDS
Я воспользовался возможностью вызвать прерывание на выводе GPI02, установив бит RDSIEN и значение GPIO2 на 01
Это вызовет прерывание на контакте 3 нано
Это предотвращает опрос регистра RDS, поскольку он запускает программу радиотекста только тогда, когда группа радиотекста из 4 символов доступна без ошибок (режим без подробностей)
Чтобы получить полный радиотекст, мы должны собрать не более 16 блоков по 4 символа (регистры RDSC / RDSB группы 2A или 2B). Я вложил в программу много информации, чтобы объяснить, что я сделал.
Вот описание регистров данных для радиотекста (RDSSA / RDSC)

в регистре RDSSB (блок 2)
Значение 4 в A3 / 0 указывает (текстовая группа)
B0 обозначает текст A (64 символа) или B (32 символа) (никогда не видел, чтобы текст B использовался ………..)
PT0 до PT4 - это индекс группы из 4 символов (от 0 до 15).
PT5 следует использовать как текстовый индикатор A / B (что означает «это новый текст»), но он не всегда используется таким образом в зависимости от радиостанции, поэтому его нельзя использовать для текстовой радиопрограммы.
4 символа радиотекста в RDSSC и RDSSD (блок 3 и 4)
Советую прочитать очень интересный документ по протоколу RDS в SI4703 => AN243 от Silicon labs
Я также сбрасываю бит SKMODE в регистре POWERCFG (см. Техническое описание SI4703), чтобы оставаться в диапазоне частот при поиске каналов.
Чтение даташетов очень поможет понять код и все обработки регистров.
Шаг 2: Зарядная база



Не особо много чего добавить
Картинки могут говорить лучше.
Только что добавил диод 1N5404 на контакт 12 вольт
1) во избежание проблем в случае касания контактом батареи контакта 12 вольт при установке магнитолы на базу (но этого не произошло)
2) понизить уровень напряжения до 10,8 В (на материнской плате также есть диод), так как MC7805 может немного нагреться при переходе с 12 В на 5 В с током 1 А (я прикрутил железку в качестве радиатора). 7805)
Я добавил небольшой вольтметр 3х7 сегментов для индикации заряда батареи.
Это устройство имеет 3 провода для снижения потребления (более 1 Мегаом на измерительном проводе), что позволяет держать радиостанцию в выключенном состоянии в течение длительного времени, не разряжая аккумулятор.

2 рычажных переключателя используются для отключения питания переменного тока, когда радиостанция отключена от базы (чтобы избежать попадания 12 В на контакты)

Коробка сделана из фанеры (перед росписью на картинке) Представляю, как сделать красивую коробку, ведь моя не очень сексуальная !!!!!
Я был очень удивлен, но зарядная база работает нормально, и я никогда не курил, когда садил на нее радиостанцию ………….
Шаг 3: Коробка




Думаю, каждый должен делать то, что хочет, следуя своим артистическим способностям !!!!!
Во всяком случае, я вскоре объясню, как я мог построить что-то, что ужасно похоже на набор инструментов.
Спереди и сзади вырезаны 4 мм фанера 15х45 см.
верх и низ - фанера 10 мм 15х45 см.
Боковые стороны и 2 внутренние перегородки (2 2 места для HP и комплектующие в средней) из фанеры 10 мм 13x13 см.
На передней панели я сделал 2 отверстия x10 см для HP и квадратное отверстие 14x14, чтобы вставить органическое стекло 15x15 2 мм, которое я покрасил в черный цвет (добавив после покраски прозрачную наклейку с печатью, но она не так читаема из-за черного цвет сзади)
Сверху проделал 2 дырочки:
один для потенциометра усилителя мощности (для регулировки уровня при необходимости), а также в качестве тепловой мощности
другой для антенны
на задней панели проделал 2 дырочки:
Один для USB-разъема (подключается непосредственно к nano)
Один 16 мм для воздушного охлаждения (14 мм отверстие потенциометра усилителя мощности соответствует верхней выходной мощности воздушного охлаждения)
ручка изготовлена из медной трубки диаметром 12 мм, окрашенной в черный цвет
Все компоненты на картинке выше находятся в центральном отсеке (позже мне пришлось поместить батареи в левый отсек HP, потому что он был слишком близко к модулю HC06 BT в основном отсеке)
Вот и все
Конечно должно быть что-то более сексуальное !!!!!
Шаг 4: Часть Arduino (схемы и код)
Я постарался разместить как можно больше информации в комментариях к программе.
Дополнительная информация
Процедура Decode_TXT используется как процедурой Bluetooth, так и процедурой переключения.
некоторые ключевые слова используются обеими процедурами
v + => для увеличения громкости
v- => опускать
f + => для увеличения частоты шага 100 кГц
f- => уменьшить
su + => искать вверх
sd - => искать вниз
prefu => увеличить предварительно выбранный номер канала
prefd => уменьшение
hello => отправлено приложением Android во время подключения Bluetooth, код отправляет обратно статус радио
пока => отправляется приложением, когда BT отключается
pow => отправлено по радио в приложение в режиме питания (на зарядной базе)
bat => в режиме работы от батареи
lb => отправляется, когда уровень заряда батареи слишком низкий (около 8 вольт)
Связь по Bluetooth обеспечивается контуром управления:
Каждый раз, когда FM-радио отправляет информацию, запускается таймер, ожидающий ответа "ОК" от приложения для Android.
в случае 3 ошибок (истекло время таймера) связь по BT прерывается Радио. (это также сокращает ссылку на стороне Android)
С другой стороны
Когда приложение отправляет команду, оно ждет ответа от радио, чтобы отправить другую команду.
Процедура get_RT запускается при установке флага RDS (после прерывания на выводе 3)
вот код (ссылка на GITHUB)
Схемы:
Основная плата FM-радио (на самом деле SI4703 находится отдельно в экранированном корпусе):

Передняя панель:

Зарядная база:

Ссылки на файлы Fritzing:
Основная плата FR RADIO
Передняя панель
База для зарядки
Шаг 5. Приложение для Android


Сделано с изобретателем APP
вот ссылки на GitHub
Радио FM aia
Android APK
В приложении используются 2 таймера:
1) для связи по bluetooth (100 мс)
2) для мигания светодиода батареи при нагрузке около 8 В (1000 мс)
Впервые вам придется выполнить сопряжение модуля HC06 со своим смартфоном или планшетом.
Я использую TinyDB для сохранения BT-адреса модуля HC06, при первом подключении кнопка BT-адреса будет включена, и вам нужно будет выбрать HC06 в списке (со своей стороны, я переименовал модуль HC06 в FM_RADIO)
В приложении я не всегда использовал проценты для размера элемента, поэтому в зависимости от смартфона могут возникнуть такие проблемы.
У меня Galaxy Note 3, так что экран довольно большой ……..
Итак, я хорошо провел время, открывая для себя этот маленький, но очень эффективный SI4703.
И получил много удовольствия от написания этих инструкций
До моего следующего проекта
До свидания!!!
Рекомендуемые:
UCL-IIOT - система сигнализации с базой данных и красным узлом: 7 шагов

UCL-IIOT - система сигнализации с базой данных и Node-red: цель этой сборки - научить подключать Arduino к Node-red и базе данных, чтобы вы могли регистрировать данные, а также собирать их для дальнейшего использования. простая система сигнализации Arduino, которая выводит 5 номеров данных, каждое из которых отделено
2D-искусство с программируемыми светодиодами и настраиваемой базой и логотипом: 5 шагов (с изображениями)

2D-искусство с программируемыми светодиодами и настраиваемой базой и логотипом: добро пожаловать в обучаемое! Сегодня я покажу вам, как создать 2D-арт-проект с логотипом и общим дизайном по вашему выбору. Я сделал этот проект, потому что он может научить людей многим навыкам, таким как программирование, электромонтаж, 3D-моделирование и другие. Этот
Симулятор игры для смартфона - играйте в игры для Windows, используя IMU для управления жестами, акселерометр, гироскоп, магнитометр: 5 шагов

SmartPhone Game Simulator - играйте в игры для Windows, используя IMU управления жестами, акселерометр, гироскоп, магнитометр: поддержите этот проект: https://www.paypal.me/vslcreations, сделав пожертвование на программы с открытым исходным кодом & поддержка дальнейшего развития
Робот с автоматическим управлением базой Arduino: 8 шагов (с изображениями)

Arduino Base Auto Direction Robot: это робот, который перемещается, избегая препятствий. он чувствует объект, видит окружающее и продолжает движение там, где есть свободное место
Wii, вдохновленная Super Mario Bros с USB-базой: 5 шагов (с изображениями)

Super Mario Bros вдохновил Wii с USB-базой: в этой инструкции я покажу вам, как я настроил свой Wii с темой Super Mario Bros, но в основном как добавить зарядное устройство и порт USB к базе и консоли. ВНИМАНИЕ: я не несу ответственности, если вы испортите Wii, вы аннулируете гарантию, если вы