Há pouco tempo, coloquei em um tribunal público um dispositivo de meu próprio projeto, desenvolvido no ano passado. Esta é uma rádio na Internet usando wifi.

Propõe-se votar a favor ou contra pessoas em rublos em um dos sites de crowdfunding. O dispositivo não causou grande impacto, embora já existam patrocinadores. Mas, desde então, houve muitas perguntas e solicitações técnicas para definir o circuito e o firmware. Todos os interessados em como o dispositivo nasceu e do que é feito são bem-vindos no gato.
Spoiler: não haverá firmware.
Então, tudo começou com a necessidade de ter um rádio em casa na cozinha. Obviamente, como desenvolvedor de eletrônicos, imediatamente rejeitei a opção de ir à loja e comprar. A propósito, por esse motivo, ainda não tenho uma campainha normal.
O rádio FM foi interrompido devido à implementação chata. E foi decidido fazer um rádio na Internet. Olhando para o futuro, quero mostrar que esse receptor apareceu aqui.
Seleção de ferroPrimeiro, era necessário escolher uma plataforma na qual você pudesse construir um rádio na Internet. Existem muitas opções, mas eu escolhi o que estava à mão:
1.
Odroid W + LCD
2.
STM32F4DISCOVERY +
ESP8266 +
VS1053BEm um odroid, o processo de desenvolvimento levaria menos tempo, mas os contras, no meu caso particular (muitos discordam de mim), prevaleceram:
- o processo de carregamento do sistema operacional leva algum tempo
- Uma tendência crescente de infectar dispositivos IoT com vírus
- Eu tenho um fraco conhecimento de desenvolvimento Linux
- preço
No entanto, pedi a um amigo meu que escrevesse um softink para o Odroid W, que começaria no início do sistema e tocaria rádio na Internet. Mas a incapacidade de editar corretamente o projeto sem empurrar um camarada enterrou essa opção e me empurrou para a segunda.
E montei o seguinte diagrama em uma tábua de pão:
Como trabalhar com rádio na InternetDepois disso, comecei a assistir como o rádio da Internet funciona. Descobriu-se que a grande maioria das estações usa o
icecast para transmissão. Ele gira em algum lugar em um servidor com um IP fixo e aguarda uma conexão. Como regra, na porta 8000 ou 8080. Embora haja muitas exceções. Após a conexão, você precisa enviar uma solicitação desse tipo, substituindo o nome do fluxo e do 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
Em resposta, um fluxo
interminável de mp3 começa a cair, que já pode ser decodificado e reproduzido.
A abertura de uma conexão TCP e outras alegrias de trabalhar com o ESP8266 são feitas usando os comandos AT. Não vou me debruçar sobre eles, as informações estão completas na Internet. Tudo está muito bem pintado na
comunidade de língua russa esp8266 . O procedimento para trabalhar com ele é simples:
1. Estamos aguardando uma conexão Wi-Fi, se ela não estiver lá, selecione uma rede, digite a senha.
2. Abrimos a conexão TCP com o servidor da estação de rádio. Endereços de servidor, portas e nomes de fluxos são armazenados diretamente na memória flash do microcontrolador, mas mais sobre isso posteriormente.
3. Envie a solicitação GET acima.
4. Recebemos em resposta um fluxo contínuo de mp3.
5. Se você precisar trocar de estação, feche a conexão TCP e repita a partir da etapa 2.
Vou falar um pouco sobre como as estações entram na memória flash do microcontrolador. Inicialmente, no estágio de verificação, simplesmente escrevi endereços, números de portas e nomes de fluxos em uma das páginas de memória do programa. Mas com o tempo, quando os dispositivos se dispersaram entre parentes e amigos, tive que adicionar a capacidade de atualizar centralmente a lista. Decidiu-se criar um servidor com um IP fixo, no qual um arquivo com uma lista de estações seria armazenado. Quando conectado via TCP, o servidor aguarda uma senha e emite um arquivo, e o microcontrolador grava na sua memória flash. Desde que encontrei a criação de “algo na Internet”, fiquei agradavelmente surpreso ao alugar uma máquina virtual com um IP fixo que custa apenas 100 rublos por mês. Milagres :)
CircuitryTendo jogado o suficiente com o STM32F4Discovery, decidi fazer meu próprio cartão, no qual todos os elementos do receptor estarão localizados, e não precisarei puxar os fios para o monitor ou os conectores. Isso melhora muito a confiabilidade e a capacidade de fabricação
e todos sonham com isso .
O esquema pode ser baixado aqui.
[DIAGRAMA] . Não a decorei ou penteei especificamente para publicação. Esta é uma opção de trabalho, e isso deve ser suficiente para aqueles que estão realmente interessados.
O esquema consiste nas partes principais:
1. MK STM32F415 com um chicote de fios - dois quartzo e uma bateria para um relógio em tempo real.
2. ESP8266
3. VS1053 com cintas estritamente na folha de dados. Iniciado no MK através do SPI.
4. Potência - dois reguladores lineares LM1117 a 3,3 e 1,8 volts.
5. Visor, conectores, botões, potenciômetro. Tudo isso é instituído no microcontrolador GPIO.
Além disso, o
amplificador de classe D
PAM8403 não é exibido no diagrama, pois custa um módulo adquirido separadamente.
TaxaPara sempre, antes de montar a placa, você precisa determinar a localização dos elementos que se sobressaem do corpo - botões, conectores e tela. Eu fiz, mas sobre o caso mais tarde.
O quadro ficou assim. Cuidado geek morango!



A placa é de duas camadas, com uma espessura de 1,5 mm. Todos os componentes smd estão localizados em um lado, o que facilita a instalação automática. No entanto, ele ainda não chegou.
Eu já fui repreendido no pikabu por vários especialistas por pequenas falhas na fiação. No entanto, o conselho funciona e funciona como deveria. Não vejo o valor nos desenhos do quadro, por isso não o publico. Se houver pedidos, eu o publicarei. Enfim, vou refazê-lo. E, claro, críticas bem fundamentadas são muito bem-vindas!
HabitaçãoO caso é uma dor de todos os engenheiros eletrônicos amadores. E mesmo que você não seja um amador, defendendo seu dinheiro, você se transforma nele.
Em pequenos lotes, a opção mais acessível é fresar ou cortar a laser. Com as opções de metal, ele ainda pode dobrar chapas, mas esse não é o meu caso. Por isso, escolhi a fresagem de peças de madeira + corte a laser de painéis. Em termos de som, uma caixa de madeira também é uma grande vantagem.
O resultado foi este conjunto de peças:

Atenção especial merece a inscrição. Após muita reflexão, como aplicá-las, foi decidido realizá-las com rejunte. Ou seja, primeiro, com um moinho fino, a inscrição é selecionada no painel e depois a tinta é derramada lá. Depois que a tinta seca, seu excesso é removido. Uma operação muito cara, mas eu não estava mais parando. Além disso, uma das maneiras mais duráveis. Se alguém tiver experiência com outras formas de aplicar rótulos, compartilhe.
É assim que as inscrições resultantes são exibidas.

E aqui está o rádio montado por dentro:

E mais uma foto lá fora:

Conclusão Este artigo descreveu os detalhes do desenvolvimento do dispositivo com traços amplos. É bastante difícil escrever sobre os detalhes, por um lado, pelo fato de que o mar, por outro lado, todos eles individualmente parecem óbvios. Eu poderia escrever em um artigo separado sobre circuitos, placa de circuito impresso, firmware, trabalhando com esp8266 e vs1053b, se tiver interesse suficiente, escreverei. Pois eu realmente quero que o rádio da Internet se torne popular.