WiFi интернет радиоприемник для ванной с фоторезистором на ESP8266 и VS1053. Как это сделано, как это работает, как это устроено


Зовут меня Владимир и я являюсь инженерно-техническим работником строительной фирмы, а конкретно вело-мото-теле-фото-бензо-радио-монтер. Ну а хобби –радиолюбитель, прожжённый такой, не мало транзисторов сожженных на моем счету.

Я люблю слушать музыку, вернее просто музыкальный фон во время работы. И вот однажды насмотревшись интернету решил сделать Wi-Fi радио приемник своими руками. Слушаю я в основном радио и почти всегда через интернет, музыкальные предпочтения довольно обширны. Как и во всех делах по работе, так и в хобби начинаем с начала, то есть с постановки технического задания:

  1. Простой в изготовлении вай-фай приемник с питанием от батареи/сети
  2. Малый вес и габариты
  3. Использование доступных компонентов
  4. Индикация текущей станции, трека
  5. Бюджет до 50$ (страшная сумма в гривне)

Ну с богом… гугл в помощь, заграница нам поможет…

Качество и цена нормальные (я просто территориально на момент написания статьи был в Чернигове). Далее чтобы общаться с роутером через ком порт нам нужен терминальный клиент, ну тут кому что больше по душе, мне всем хорош PuTTY он даже уже русифицирован для удобства пользования. Скачиваем архив для вашей системы, распаковываем в любую папку на жестком диске, заходим в нее, переходим в подпапку PuTTY, запускаем PuTTY.exe

Выставляем все необходимые параметры: Последовательная линия-СОМ3 (или ваш СОМ порт), скорость- 115200, тип соединения-Serial, жмем «Сохранить» чтобы не вводить каждый раз при запуске параметры соединения, жмем «Соединиться». Я подразумеваю что у Вас как и у меня USB-FTDI преобразователь подключен к ноутбуку и установлены драйвера. И ничего, просто черная консоль…

Чтоб понять что все у нас работает надо найти документацию к своему девайсу и определить распиновку. Вот мой пример

В данный момент нам необходимо соединить пины «TXD » и «RXD » перемычкой, для совсем слабаков как я и хуже поясняю: мы соединяем вход и выход данных чтоб получилось набирать текст в терминале (отправлять данные TXD ) и видеть его моментальное отображение (принимать данные RXD ).

Вот так. И теперь когда мы набираем в терминале с клавиатуры бред, то он отображается в консоли а лампочки на моем устройстве весело моргают в такт импульсам.

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

Я брал их давно по 1 штуке мама-мама, мама-папа, папа-папа и до сих пор их есть у меня. Брал . Все теперь откладываем наши переходники, преобразователи, перемычки в сторону и берем в руки роутер и отвертку. На дне роутера есть 4 ЧЕТЫРЕ винта. Два видимые и два под резиновыми ножками, потайные.

Удаляем резиновые ножки пинцетом или какой либо ковырялкой, выкручиваем и удаляем винты, аккуратно разделяем верхнюю и нижнюю части скорлупки роутера и извлекаем плату. Все вроде и хорошо вздутых кондеров нет (если есть, обязательно заменяем на новые тех же номиналов). Но есть четыре не запаянных контакта

На это место нам нужно впаять контактный разъем типа PLS (штырьки такие с шагом 2,54мм) чтобы в конечном итоге получилось вот так

Можно и аккуратней, но у меня не было под рукой олово-отсоса, а вот первый самый не аккуратный пин был соединен с земляным полигон и чтобы его впаять нужно было нагреть весь полигон, остальные три вошли как по маслу.

Раз пошла такая пляска то проверю выходное напряжение, так для уверенности

Отлично 3,39 Вольт. Кстати можете проверить свой преобразователь сразу во время покупки, там будет напряжение даже без драйверов.

Теперь проверяем на плате роутера

Все отлично, теория не уходит от практики и это хорошо. Такая на первый взгляд простая проверка очень важна. Если перепутать земляной контакт то ничего не заработает а роутер вообще может сгореть, та же борода будет если туда воткнуть обычный 5 Вольтовый переходник USB-RS232. Есть мнение что могут подойти дата кабели от старых мобил, но их у меня нет и взять на проверку негде.

Ну теперь вроде все переходим к стыковке роутера и переходника. На фото платы роутера я давал распиновку, а описание на ваш переходник у вас и так есть. Если нет то нам важно первой правильно подключить землю. Контакты TX и DX можно будет поменять местами в процессе. Плюс питания 3,3 вольта подключать НЕЛЬЗЯ! У меня получилось так

Подключаем USB переходник к свободному порту компьютера. Запускаем PuTTY с настройками описанными выше видим черный терминал. Подаем питание на роутер и видим как в терминале побежали строчки кода загрузки.

Decompressing..........done

CFE version 1.0.37 for BCM947XX (32bit,SP,LE)

Build Date: Thu Mar 6 10:05:04 CST 2008 ([email protected])

Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.

Initializing Arena

Initializing Devices.

Boot partition size = 131072(0x20000)

et0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 4.130.31.0

Если не получилось – отключаем питание роутера и на нем меняем местами пины TX и RX, землю не трогаем. Повторяем включение строчки должны побежать.

Если до этого момента Вам было легко, то дальше начинаем танцы с бубном. Дальше мы будем взламывать роутер ASUS (Hacking ASUS OpenWrt). Хотя там того хакинга и на состав преступления не наберется, но зато звучит здорово, аж чувствуешь себя как ANONIMUS только без маски Гая Фокса. Итак… Нам необходимо перепрошить роутер прошивкой OpenWrt. Есть несколько способов обзавестись оной: первый - нужен компьютер с NIX совместимой системой на борту, нужно загрузить исходный код с субверсией SVN, скомпилировать свое собственное ядро, сделать конфигурацию меню, установить параметры для целевой системы (камень роутера) скачать кучу (4) дополнительных пакетов слепить все это до кучи и заставить работать, при этом нужно будет танцевать с бубном вокруг компа и периодически обкуривать его канифольным дымом. Путь второй стянуть с сайта Джефа (заграница нам помогла) готовую скомпилированную прошивку со всеми прелестями и радоваться тому что не пришлось покупать бубен.

Теперь нам нужно запихнуть прошивку в роутер, Джеф нам друг но истина дороже. Он там у себя предлагает долбить консоль в OS_X на MacBook. Если бы у меня были деньги на макбук то я не писал бы сейчас эту статью. Короче нам не нужны танцы с бубном. Просто берем установочный диск из коробки ASUS и ставим ASUS WL-520GU Wireless Router Utilites. Не ищите там нету для Windows7 ставим в режиме совместимости с Windows XP. Если есть комп с Windows XP то ставим через него. Но предварительно нужно установить статический IP адрес в настройках сетевой карты. Я использовал 192.168.1.201

Запускаем и эту программу в режиме совместимости с WindowsXP. Может ругнуться на брандмауэр, тогда добавляем в список исключений. Жмем обзор и выбираем файл прошивки скачанный с сайта Джефа. Соединяем комп и роутер по LAN кабелю, в роутере нам нужен любой LAN порт, именно он, а не WAN. У вас должно быть подключение через переходник, и запущен PuTTY. Зажимаем маленькую ЧЕРНУЮ кнопку рядом с антенкой, отключаем питание, кнопку держим и через пару секунд подаем питание на роутер, индикатор питания начнет мигать один раз в секунду, а в консоли PuTTY отобразится приглашение

Reading:: TFTP Server. Failed.: Timeout occured Reading:: TFTP Server. Failed.: Timeout occured

Отпускаем черную кнопку.Жмем «Загрузить» в окне Firmware Restoration

В следующие 5 минут нужно ничего не трогать особенно питание роутера иначе есть большой шанс запороть роутер на веки вечные. В консоли побегут строки загрузки

Reading:: TFTP Server. TFTP_BLKLEN!! break!! last block!! Done. 1918724 bytes read Download of 0x1d4704 bytes completed Write kernel and filesystem binary to FLASH (0xbfc20000) Programming... copysize=1918724, amtcopy=1918724

Ждем пока не появится строка

Mini_fo: using base directory: / mini_fo: using storage directory: /jffs Далее жмем Enter и вуаля

Поздравляю теперь у Вас есть хакнутый роутер с прошивкой OpenWrt, теперь можете смело идти и покупать бубен, вы в клубе линуксоидов!

Теперь нужно подружить ваш роутер с вашей вай-фай сетью, а ваши руки с бубном.

Итак… в linux все файл и настройки тоже файл, причем текстовый. И редактировать мы будем все текстовым редактором VI (ВИ) через консоль. Удаляем сетевой кабель и прячем с глаз подальше в коробку, перезагружаем роутер передергиванием питания. Смотрим в консоль, когда загрузка зайдет в тупик жмем Enter и видим строку приглашения

В терминале введите root@OpenWrt:~# vi /etc/config/wireless жмите Enter. Появится окно настроек

Отредактируйте все строки чтоб было так как у меня, имя сети, тип шифрования, и пароль вводите от СВОЕЙ СЕТИ. И тут рученки к бубну потянулись… в этом редакторе все через консоль, навигация стрелками, для редактирования жмем “ESC” потом“:l” потом Enter.

Для сохранения жмем “ESC” потом“:wq” потом Enter. Двоеточие обязательно, вводить только на английской раскладке клавиатуры.

root@OpenWrt:~# vi /etc/config/network

жмите Enter, в консоли появится текст

отредактируйте строки так как у меня, и сохраните (закомментируйте две последние с помощью символа # -шарпл)

введите в консоли:

Root@OpenWrt:~# vi /etc/resolv.conf и должен быть такой ответ nameserver 127.0.0.1

если так все отлично продолжаем, если нет – курите бубен (проверьте все строки)

вводим в консоли root@OpenWrt:/# /etc/init.d/network restart

это приведет к перезапуску сетевой системы. Дальше проверим правильность сетевых настроек на практике

вводим root@OpenWrt:/# ping www.google.com

ответ должен быть таким как на фото

Чтобы прекратить такой бардак в консоли жмем «CTRL» + «X»

Если все настроено правильно то любые сервера будут пинговаться, если нет то нужно внимательно пересмотреть все строки и настройки, Вы где то что-то упустили.

Продолжаем настройку нашей системы. В данной сборке есть утилита opkg – это установщик пакетов, Мы немного под редактируем его настройки и он будет скачивать установки с сайта Джефа. И таким образом заграница нам снова поможет сама того не желая. Итак

Root@OpenWrt:~# vi /etc/opkg.conf И вводим все как у меня и Джефа

Далее обновляем все пакеты root@OpenWrt:~# opkg update По словам Джефа ответ будет таким Downloading http://mightyohm.com/files/kamikaze-2.4/packages/mipsel/Packages.gz Connecting to mightyohm.com (72.32.209.132:80) Packages.gz 100% |*******************************| 8326 --:--:-- ETA Inflating http://mightyohm.com/files/kamikaze-2.4/packages/mipsel/Packages.gz Updated list of available packages in /var/opkg-lists/snapshots Signiture check for snapshots skipped because GPG support was not enabled in this build

Ну вроде получилось. Если Вы зашли так далеко – то Вы точно еретик и вас в 16 веке сожгли бы на костре инквизиторы, вместе со мной и Джефом за наши шальные пляски с бубном.

Следующие строки осилят счастливые обладатели USB звуковых карт. Типа свисток

Такая вот у Джефа была, у меня такой не было, но OLX и g00gle Вам в помощь и вы станете счастливым обладателем такого или подобного девайса за ценою около 100грн. Я там в начале говорил что я радиолюбитель, так вот я не врал. Любовь эта у меня класса с 10 или с 8 даже. И за такое время я не мог не затронуть класс устройств USB-audio. Все помнят прекрасную фирму BURR BROWN с ее великолепными звуковыми чипами PCM xxxx которые в минимальной обвязке и с питанием от шины USB (Аудиофилы, да простят меня грешного) звучали на порядок лучше встроенного аудио большинства материнок и ноутов. А всемогущий APPLE применял их для вывода звука с дорогущих MacBook (что само по себе говорит о великолепном качестве). Так вот было время когда все паяли USB звуковухи и я тоже паял. Паял и продавал, сам бы слушал с удовольствием да деньги были очень нужны. Схема включения из даташита, печаток полно в сети


Так вот я уже тогда шагнул дальше в понимании звуковух, и скурив даташит до скрепок нарисовал схемы и стравил платы, короче родилось управление громкостью и индикация на 16х2 дисплее, а так же кнопки для полного управления аудиоплеером. С программированием МК ATMEL я и тогда и сейчас не особо знаком, и все работы по написанию и компиляции кода взял на себя Юра (Pegas), у которого я потом взял переходник USB-FTDI и до сих пор не отдаю. Данная звуковуха прошла Крым и Рым и синий дым, и работает исправно, и качеством радует и удобством. Подключалась ко всем версиям Windows начиная с ХР, к макбукам и малинке (RaspberryPi) везде все хорошо работало и я решил что и здесь ей тоже место. Позже напишу по ней отдельную статью.

Вот для таких и им подобных звуковых карт мы и будем ставить драйвера.

К делу, вставляем карту в разьем USB роутера, в консоли пишем

Root@OpenWrt:~# opkg install kmod-usb-audio kmod-usb-ohci

эта команда автоматически установит стек USB-AUDIO в нашу систему

после установки нужно перезагрузить систему командой

Root@OpenWrt:~# reboot

и внимательно следите за загрузкой, должны добавиться следующие строки

Usb-ohci.c: USB OHCI at membase 0xb8003000, IRQ 6 usb-ohci.c: usb-00:03.0, PCI device 14e4:471a usb.c: new USB bus registered, assigned bus number 1 usb.c: registered new driver audio audio.c: v1.0.0:USB Audio Class driver usbaudio: device 2 audiocontrol interface 0 has 1 input and 1 output AudioStreaming interfaces usbaudio: device 2 interface 2 altsetting 1 channels 1 framesize 2 configured usbaudio: valid input sample rate 48000 usbaudio: valid input sample rate 44100 usbaudio: device 2 interface 2 altsetting 1: format 0x00000010 sratelo 44100 sratehi 48000 attributes 0x01 ... usbaudio: registered dsp 14,3 usbaudio: constructing mixer for Terminal 6 type 0x0301 ...

Если есть данные строки то можно воткнуть в разъем звуковухи наушники и послушать наличие легкого шипения. Из ушей наушники удалите при первом запуске звук будет очень громкий и может повредить органы слуха.

Установим плеер MPD

Root@OpenWrt:# cd ~ root@OpenWrt:~# opkg update root@OpenWrt:~# opkg install mpd mpc

Root@OpenWrt:~# cd ~ root@OpenWrt:~# mkdir .mpd root@OpenWrt:~# mkdir music root@OpenWrt:~# mkdir .mpd/playlists root@OpenWrt:~# vi /etc/mpd.conf

листаем вниз пока не появится строка: An example of an OSS output:

вносим поправки как на фото

Сняв комментарии с этих строк мы включим поддержку нашей звуковой карты в демоне MPD, сохраняем и закрываем. В консоли вводим

Root@OpenWrt:~# mpd root@OpenWrt:~# mpc ответ будет таким volume:100% repeat: off random: off

демон нам показал режим работы

но она давно уже протухла как и весь буржуазный строй (короче битая ссылка)

и тут нам заграница уже не поможет, но мы и сами могем. Хотя как оказалось найти ссылки на именно стрим радиостанции тяжеловато, они все сейчас во флеш плеерах играют, а их у меня поддержки нет. Ну ничего, прорвемся…

в консоли вводим

Root@OpenWrt:~# mpc add http://stream.mjoy.ua:8000/radio-z-kryjivky

выскочит строка о добавлении нового объекта

Root@OpenWrt:~# mpc play

и понеслись байты по волнам…

остановить эти вопли можно командой root@OpenWrt:~# mpc stop

Ну как для первой статьи думаю уже хватит, обязательно будет продолжение и будет управление и корпус, только бы времени хватило

Сразу после ремонта было решено – на кухне телевизора не будет! Но аудиовизуальные потребности при приготовлении и поглощении еды удовлетворить иногда хочется. Поэтому был найден выход: установлен аквариум и из ненужного хлама собран интернет-радиоприемник. Аквариум можно видеть , а в этом пойдет речь о радиоприемнике…

Итак, основные компоненты:

1. Универсальный ПДУ с buyincoins.com ()

2. LCD-дисплей c подсветкой c buyincoins.com ()

3. Материнская плата S370 с интегрированным видеоадаптером и звуком
4. Процессор Intel Pentium III
5. RAM - 192 Mb
6. PCI Ethernet-адаптер
7. HDD 20 Gb
8. БП 300 Вт (upd: реальное потребление около 30 Вт)
9. Фотоприемник от TV-тюнера Beholder 407
10. Активная акустическая система 2.0 (куплена новая, с достаточно хорошим качество звучания)
11. Два куска витой пары длиной 1.5-2 м для выноса дисплея с кнопкой включения
12. Остатки ламината от ремонта;-)

Итог нескольких вечеров работы:

Для CD-привода, естественно, места не нашлось, да он и не нужен, подключал его только при установке системы. Внутри достаточно компактно размещено:

Вид задней стенки:

Вынесенная панель с кнопкой включения и дисплеем (отображается название радиостанции и погода за бортом):


Название радиостанции и время (прошлогодний снимок):

Изначально собирался отказаться от Windows в пользу Linux или QNX, собирался написать свой софт, но из-за нехватки времени пошел по простейшему пути. Итак, программная часть:

1. OC Windows XP SP2

3. WinLIRC. Обрабатывает команды от фотоприемника, который я присоединил к COM-порту.

4. LCD Smartie. Выводит на дисплей имя проигрываемого трека/радиостанции, текущее временя и погоду за бортом. С погодой пришлось повозиться, в результате нашел RSS-ленту для Ростова-на-Дону на латинице. Там же есть и схемы подключения дисплея.

5. IR Tricker. Использовал только для того, чтобы сделать возможным выключение с ПДУ. По сути, по нажатию кнопки запускает “shutdown.exe -s -t 0”. Как потом оказалось, управление питанием на этой материнке не работает, поэтому завершение работы происходит, а выключение питания – нет.

Для настройки (например, смены плейлиста) использую удаленный доступ с ноутбука или основного домашнего компьютера.

Кнопку включения-выключения вынес на панель с LCD-дисплеем. Включается приблизительно за 30-40 секунд. С пульта можно менять громкость и проигрываемый трек-радиостанцию (в плейлисте вбито несколько сотен самых различных радиостанций). Приемник вместе с колонками стоит под потолком, на дисплей с кнопкой включения отведен вниз.

Теперь впечатления от ПДУ.

Плюсы:
- Цена
- Размеры
- Универсальность - можно выставить любой из распространенных наборов команд (я настраивал на телевизоре Philips).

Минусы:
- Заказывал два, один пришел нерабочий. Батарейки в комплекте мертвые, пришлось заменить
- Мало кнопок

О дисплее:

Плюсы:
- Цена
- Стандартный интерфейс, совместимый с интерфейсом контроллера hd44780, годится для использования в поделках на Arduino
- Относительная простота подключения к LPT-порту, легко нагуглить схему подключения;
- Обилие программного обеспечения, поддерживающего этот дисплей и Winamp одновременно
- Подсветка яркая, приятная на глаз
- Контрастные символы

Минусы
- Небольшая неравномерность подсветки;
- Неточность маркировки выводов (в обсуждениях на БИКе пишут, как правильно припаяться);
- Нет кириллицы. Только латиница и “китаица”. Читал, что можно программировать начертания символов, и, таким образом, получить кириллицу, но мне это и не нужно.
- Инертность. При быстром скроллировании текста слегка смазываются надписи (видно на снимках).

Скриншоты удаленного рабочего стола:






Радиоприемник в интерьере:


Загрузка:


Фото дисплея с обратной стороны:

Вопросы?

Планирую купить +23 Добавить в избранное Обзор понравился +54 +99

Как сделать самодельное wi-fi интернет радио aslan wrote in April 27th, 2017

Все началось с того, что жена попросила радио на кухню. Вообще многие истории начинаются с того, что жена что-то попросила. Я подумал, зачем мне обычное радио, если есть куча интернет радиостанций? И тут меня понесло… О том что получилось читайте дальше.


Так как я по профессии инженер-электронщик, то решил подойти к делу серьезно. Сначала решил прикинуть как оно будет выглядеть. Нарисовал примерную 3D модель. После этого решил разрисовать что и как внутри будет располагаться. Прикинул примерно каких размеров должен быть динамик и где какие органы управления на плате.

Создал принципиальную электрическую схему и развел под нее плату. Об этом писать подробно не буду, это большая тема, которая заслуживает отдельной статьи. Скажу только, что это моя работа и для меня это не так сложно. Примерно месяц ушел на изготовление платы в производстве. В итоге получилась вот такая платка. Первое фото до запайки- в таком виде она приходит с производства. Второе и третье фото уже с запаянными компонентами.

Проверив, что плата не содержит ошибок, я начал потихоньку писать прошивку. Это долгое занятие, поэтому параллельно я стал заниматься корпусом. Нашел тех, кто согласился изготовить все по моим чертежам. В итоге получился вот такой набор деталек.

К этому времени я как раз написал более-менее рабочую версию прошивки. Теперь можно все собирать.
Несущая панель крепится на саморезы, так как на ней будет держаться тяжелый динамик. Задняя панель так же крепится на саморезы, но в самом конце.

После этого монтируем проводку внутри корпуса.

Остается только закрепить декоративную панель, и ручки. Можно включать и проверять!

Получился вот такой приемник, который сначала радовал основного заказчика - мою жену. Ну и нас с дочкой. Постепенно интерес со стороны знакомых стал расти. Я сделал приемники родственникам и друзьям. Они давали советы и замечания. Примерно за полгода тестовой эксплуатации я понял, какие еще могут быть фишки, а каких не должно быть) Ведь одно дело делать для себя, а другое, когда приемником пользуется мама, которая в гаджетах особо понимает.

Жми на кнопку, чтобы подписаться на "Как это сделано"!

Если у вас есть производство или сервис, о котором вы хотите рассказать нашим читателям, пишите Аслану ([email protected] ) и мы сделаем самый лучший репортаж, который увидят не только читатели сообщества, но и сайта Как это сделано

Подписывайтесь также на наши группы в фейсбуке, вконтакте, одноклассниках, в ютюбе и инстаграме , где будут выкладываться самое интересное из сообщества, плюс видео о том, как это сделано, устроено и работает.

Жми на иконку и подписывайся!

Эта статья посвящена практическим аспектам изготовления недорогого WiFi радио на основе OpenWrt роутера под управлением микроконтроллера Stellaris .

Цели и обоснование выбора компонентов
Основной целью было изготовить устройство для обеспечения фоновой музыкой кухню, с максимально простым и наглядным интерфейсом пригодным к использованию домашними.
Второстепенные цели :
  • исправить неработающую магнитолу
  • пристроить неисправный роутер и заказанную в припадке шопоголизма отладочную плату Stellaris
  • оценить удобство работы с микроконтроллером Stellaris
Выбор остальных компонент схемы несущесвеннен.
Корпус
Обычно этот раздел ставится в конец. Но на мой взгляд. тема достаточно важная, особенно если предстоит эксплуатация устройства в условиях агрессивных сред (я имею ввиду кухню). Jeff сделал корпус из фанеры. Хорошее решение для тех кто хочет нормального звучания и умеет гнуть фанеру. В моем исполнении такой корпус выглядел бы слишком колхозно, поэтому я выбрал отыгравшую свое старую пузатенькую магнитолу с CD диском. Широкое основание CD проигрывателя позволяет разместить наиболее габаритный элемент конструкции -плату роутера, динамики дают основу аудио тракта, а ручка для переноски необходимую мобильность. Кроме того, есть шанс использовать органы управления магнитолы.
Интерфейс
Одним из факторов тормозящих применение новых технологий является небходимость смены пользовательского интерфейса. Поэтому было решено остановится на наиболее простом варианте: большой экран для отображение номера станции, 2 кнопки следующая/предыдущая станция, 2 кнопки контроля громкости и кнопка старт/стоп проигрывания. Для практического использования устройства оказалось важным помнить последний установленный уровень звука и выбранную станцию.
Конструкция
В качестве основы была выбрана инструкция 4х летней давности с сайта MightyOhm . Она достаточно подробно описана и я не вижу смысла воспроизводить ее тут целиком. Остановлюсь только на отличиях.
При построении радио по такой схеме существует дилемма разделения управления между линуксом и микроконтролером. Я остановился на варианте когда большая часть логики управления расположена на МК из за нелюбви и отсутствии большого опыта линукс администрирования а так же желания поиграться с МК. Кроме того, меня смущает проблема необходимости повторения процедуры настройки при перепрошивке роутера.
Поэтому, со стороны опенврт я добавил только
  • скрипт начала проигрывания с обновлением плей листа из интернет
  • скрипт отображения статуса плеера
  • метку окончания загрузки роутера
Программное обеспечение
Stellaris это вам не ардуина, одних только UART портов, свободно работающих на 115200 у него 6 штук, что позволяет при отладке использовать два из них в качестве переходника USB - UART для ПК. Первая задача выполняемая ПО МК это проброс информации между UART1 подключенного к роутеру и UART0, который может быть подключен к ПК. Вторая - анализ проходящей информации и посылка событий в конечный автомат включая информацию об изменении состояния кнопок. Третья - реализация конечного автомата с анализом входящих сообщений и изменении информации на устройствах отображения

После старта, МК ожидает сигнала окончания загрузки роутера, обновляет плей лист из интернет (я использую DropBox для хранения плейлиста), восстанавливает уровень звука и станцию, и посылает команду на начало проигрывания.

Предложенные схема и рабочие, но создавались по кусочкам в течении полугода, как следствие, получились достаточно сумбурными и ценны только как рабочее демо.

Изготовление


Донор, неведомое чудо китайской промышленности начала века.
Со старой магнитолы снимается все оборудование кроме динамиков и платы с кнопками. Можно попробовать сберечь аудио усилитель и питание если у вас есть время и вдохновение.


Потрошение.
После соответствующей доработки корпуса он фаршируется новым оборудованием:


Фаршировка.


Платой роутера (1)
Мне достался знаменитый Asus WL-500gP V2 , достался за пиво в связи с проблемами по WAN порту, которые не влияли на работу в качестве WiFi хоста. Теоретически роутер должен подойти любой с возможностью установки OpenWrt и USB портом.
USB звуковой картой (5)
Я заказал такую, как показана на картинке и она работает, кроме того, была успешно опробована Asus Xonar U3 , но она не дала ожидаемого улучшения качества звучания. Я подозреваю в связи с низкими битрейтом и качеством аудио тракта. Еще одна опробованная китайская USB звуковая карта, в прозрачном корпусе без кнопок, работать отказалась, при том что на ПК все было в порядке, причина неизвестна.
Аудио усилителем (4)
Я заказал его на EBay по принципу «шо подешевле». Не могу рекомендовать из за сильных высокочастотных шумов, хотя включенные последовательно с динамиками резисторы помогли их уменьшить до приемлемого уровня с сохранением достаточного уровня громкости.
Устройствами индикации
При построении радио по такой схеме достаточно использовать пару светодиодов для индикации состояния либо ориентироваться по светодиодам роутера, но чтобы ресурсы МК не простаивали я заказал вот такой OLED экранчик (3) . Экран замечательный - компактный и контрастный, но слишком мелкий, особенно если предполагается эксплуатация радио людьми со слабым зрением. Поэтому в конструкцию был добавлен семисегментный индикатор с контроллером (6) показывающий наиболее важную на мой взгляд информацию - номер выбранной станции.
Материнской платой
МК (2) , память (7) и разъемы на периферийные устройства я скоммутировал на макетке. Основанием для выбора внешней памяти стало сообщение о баге с флеш памятью в ранних версиях стелларис значительно снижающем количество циклов перезаписи. Без микросхемы памяти можно обойтись или же использовать внутренний флеш МК, но это потребует доработки ПО.
Питанием (8)
Роутер требует 5в 2а, усилитель 12в <1а я заказал два отдельных блока питания. подозреваю что есть более аккуратное решение и с удовольствием с ним познакомлюсь в комментариях.
Устройствами управления (кнопками)
Конструкция моей магнитолы позволила использовать после соответствующей модификации родную плату с кнопками. Надеюсь вам повезет также.


Готово
Бухгалтерия
1 ASUS WL-500g Premium V2 $10 (дохлый WAN порт)
2 EK-LM4F120XL Stellaris LM4F120 LaunchPad Evaluation Board $7.99 (сейчас)
3 New 3.3V 0.96" 128X64 OLED LCD LED Display Module Shield white Color SSD1306 $8.74
4 10W Mini HIFI 12V Digital power amplifier Stereo High power amplifier Board $4.99
5 USB2.0 To 3.5mm Audio Microphone Speaker Port Adapter 7.1 Channel 3D Sound Track $2.08
6 0.56" LED 7 Segment 4 Digit Common cathode MAX7219 arduino Blue White Green $3.68
MAX7219 $0.45
7 AT25040A ~$1
8 Switch Power Supply Driver for LED Strip Light AC 110/220V 5V 2A 10W $8.16
12V 1A 12W DC Switch Power Supply Driver $4.99
Stellaris
Стелларис порадовал, широкими возможностями и хорошей документацией, но осталось впечатление что продукт сыроват. Как со стороны железа, что возможно связано с тем что я использовал плату из предзаказа, так и со стороны ПО. При этом комьюнити не слишком большое, по сравнению с той же ардуиной, что приводит к тому, что сделав шаг в сторону от предложенных TI примеров вы оказываетесь на минном поле из загадок и багов вооруженные только документацией и исходниками.
Так например, оказывается, что использование UART выше 2 требует внесения изменений в код библиотеки. На моей плате оказались закорочены PB7 и PD1 пины, хотя возможно это следствие моих не слишком корректных экспериментов. Не удалось заставить нормально работать пользовательские кнопки и другие не критичные но досадные мелочи.
Что осталось нереализованым:
  • Прикрутить управление через ИК пульт, благо пинов и вычислительных мощностей МК хватает.
  • Завести через реле на МК управление питанием роутера что позволит реализовать «спящий» режим и при необходимости резетить роутер.
  • Наладить NTP и отображать точное время.
  • Реализовать таймер автоматического выключения радио после 4-5 часов проигрывания
  • Добавить в конструкцию жесткий диск с коллекцией музыки и возможность использования его при отсутствии интернета.
  • Добавить возможность использования нескольких плейлистов и кнопку переключения между ними.
  • Заменить кнопки громкости и выбора станции поворотными переключателями из старых мышек.
Выводы
Все поставленные основные и второстепенные цели достигнуты. Успешный опыт эксплуатации устройства в течении нескольких месяцев доказывает правильность выбранных решений.







2024 © gtavrl.ru.