No hace mucho tiempo, puse en un tribunal público un dispositivo de mi propio diseño, que se desarrolló el año pasado. Esta es una radio por internet con wifi.

Se propone votar a favor o en contra de las personas en rublos en uno de los sitios de crowdfunding. El dispositivo no causó gran revuelo, aunque ya hay patrocinadores. Pero desde entonces ha habido muchas preguntas técnicas y solicitudes para diseñar los circuitos y el firmware. Todos los que estén interesados en cómo nació el dispositivo y de qué está hecho, son bienvenidos.
Spoiler: no habrá firmware.
Entonces, todo comenzó con la necesidad de tener una radio en casa en la cocina. Por supuesto, como desarrollador de electrónica, inmediatamente descarté la opción de ir a la tienda y comprar. Por cierto, por esta razón, todavía no tengo un timbre normal.
La radio FM se abandonó debido a la implementación aburrida. Y se decidió hacer una radio por Internet. Mirando hacia el futuro, quiero mostrar que tal receptor resultó aquí.
Selección de hierroPrimero, era necesario elegir una plataforma en la que pudiera construir una radio por Internet. Hay muchas opciones, pero elegí lo que estaba a la mano:
1.
Odroid W + LCD
2.
STM32F4DISCOVERY +
ESP8266 +
VS1053BEn una odroid, el proceso de desarrollo llevaría menos tiempo, pero los inconvenientes, en mi caso particular (muchos no están de acuerdo conmigo), prevalecieron:
- el proceso de carga del sistema operativo lleva algo de tiempo
- Una tendencia creciente a infectar dispositivos IoT con virus
- Tengo poco conocimiento del desarrollo de Linux
- precio
Sin embargo, le pedí a uno de mis buenos amigos que escribiera un softink para Odroid W, que comenzaría desde el inicio del sistema y reproduciría la radio por Internet. Pero la incapacidad de editar correctamente el proyecto sin sacudir a un compañero enterró esta opción y me empujó a la segunda.
Y puse el siguiente diagrama en una placa de pruebas:
Cómo trabajar con radio por internetDespués de eso, comencé a ver cómo funciona la radio por Internet. Resultó que la gran mayoría de las estaciones usan
Icecast para transmitir. Gira en algún lugar de un servidor con una IP fija y espera una conexión. Como regla, en el puerto 8000 o 8080. Aunque hay muchas excepciones. Después de conectarse, debe enviar una solicitud de este tipo, sustituyendo el nombre de la secuencia y el servidor:
GET /stream HTTP/1.1 Icy-MetaData: 0 User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040413 Epiphany/1.2.1 Host: internetradioserver.ru Cache-Control: no-cache
En respuesta, comienza a caer un flujo
interminable de mp3, que ya puede decodificarse y reproducirse.
La apertura de una conexión TCP y otras alegrías de trabajar con el ESP8266 se realizan mediante comandos AT. No me detendré en ellos, la información está completa en Internet. Todo está muy bien pintado en la
comunidad de habla rusa esp8266 . El procedimiento para trabajar con él es simple:
1. Estamos esperando una conexión WiFi, si no está allí, seleccione una red, ingrese la contraseña.
2. Abrimos la conexión TCP con el servidor de la estación de radio. Las direcciones de los servidores, los puertos y los nombres de las secuencias se almacenan directamente en la memoria flash del microcontrolador, pero más sobre eso más adelante.
3. Envíe la solicitud GET arriba.
4. Recibimos en respuesta un flujo continuo de mp3.
5. Si necesita cambiar la estación, cierre la conexión TCP y repita desde el paso 2.
Te contaré un poco sobre cómo las estaciones entran en la memoria flash del microcontrolador. Inicialmente, en la etapa de verificación, simplemente escribí direcciones, números de puerto y nombres de flujo en una de las páginas de memoria del programa. Pero con el tiempo, cuando los dispositivos se dispersaron entre familiares y amigos, tuve que agregar la capacidad de actualizar centralmente la lista. Se decidió crear un servidor con una IP fija, en la que se almacenaría un archivo con una lista de estaciones. Cuando se conecta a través de TCP, el servidor espera una contraseña y emite un archivo, y el microcontrolador lo escribe en su memoria flash. Desde que encontré por primera vez la creación de "algo en Internet", me sorprendió gratamente que resulta que alquilar una máquina virtual con una IP fija cuesta solo 100 rublos al mes. Milagros :)
CircuiteríaDespués de jugar lo suficiente con STM32F4Discovery, decidí hacer mi propia tarjeta, en la que se ubicarían todos los elementos del receptor, y no necesitaré tirar de los cables ni a la pantalla ni a los conectores. Esto mejora enormemente la fiabilidad y la capacidad de fabricación
y todos lo sueñan .
El esquema se puede descargar aquí.
[DIAGRAMA] No la adorné ni la peiné específicamente para su publicación. Esta es una opción de trabajo, y debería ser suficiente para aquellos que están realmente interesados.
El esquema consta de las partes principales:
1. MK STM32F415 con arnés: dos de cuarzo y una batería para un reloj en tiempo real.
2. ESP8266
3. VS1053 con flejes estrictamente en la hoja de datos. Comenzó en MK a través de SPI.
4. Potencia: dos reguladores lineales LM1117 a 3.3 y 1.8 voltios.
5. Pantalla, conectores, botones, potenciómetro. Todo esto está instituido en el microcontrolador GPIO.
Además, el amplificador
PAM8403 clase D no se muestra en el diagrama, ya que cuesta un módulo comprado por separado.
TarifaPara bien, antes de hacer el tablero, debe determinar la ubicación de los elementos que sobresalen del cuerpo: botones, conectores, pantalla. Así lo hice, pero sobre el caso más tarde.
El tablero resultó así. ¡Cuidado geek fresa!



El tablero es de dos capas, un espesor de 1,5 mm. Todos los componentes smd están ubicados en un lado, lo que facilita la instalación automática. Sin embargo, el asunto aún no le ha llegado.
Varios expertos ya me regañaron en pikabu por pequeños defectos en el cableado. Sin embargo, el tablero funciona, y funciona como debería. No veo el valor en los dibujos del tablero, así que no lo publico. Si hay solicitudes, lo publicaré. De todos modos, lo rehaceré. Y, por supuesto, ¡las críticas bien fundadas son bienvenidas!
ViviendaEl caso es un dolor de todos los ingenieros electrónicos aficionados. E incluso si no eres un aficionado, haciendo un caso por tu dinero te conviertes en él.
En lotes pequeños, la opción más económica es el fresado o el corte por láser. Con las opciones de metal, todavía se puede doblar chapa, pero este no es mi caso. Por lo tanto, elegí el fresado de piezas de madera + corte láser de paneles. En términos de sonido, una caja de madera también es una gran ventaja.
El resultado fue este conjunto de partes:

Especial atención merece la inscripción. Después de mucho pensar, cómo aplicarlos, se decidió realizarlos mediante lechada. Es decir, primero, con un molino delgado, la inscripción se selecciona en el panel y luego se vierte pintura allí. Después de que la pintura se seque, se elimina su exceso. Una operación muy costosa, pero ya no me detenía. Además, una de las formas más duraderas. Si alguien tiene experiencia con otras formas de aplicar etiquetas, por favor comparta.
Así es como se ven las inscripciones resultantes.

Y aquí está la radio ensamblada desde adentro:

Y una foto más afuera:

Conclusión Este artículo describió los detalles del desarrollo del dispositivo con trazos amplios. Es bastante difícil escribir sobre los detalles, por un lado, por el hecho de que su mar, por otro lado, todos individualmente parecen obvios. Podría escribir en un artículo separado sobre circuitos, una placa de circuito impreso, firmware, trabajando con esp8266 y vs1053b, si tengo suficiente interés definitivamente escribiré. Porque realmente quiero que la radio por Internet se vuelva popular.