Il n'y a pas si longtemps, j'ai mis sur un terrain public un appareil de ma propre conception, qui a été développé l'année dernière. Il s'agit d'une radio Internet utilisant le wifi.

Il est proposé de voter pour ou contre les personnes en roubles sur l'un des sites de financement participatif. L'appareil n'a pas fait grand bruit, bien qu'il existe déjà des sponsors. Mais depuis lors, il y a eu de nombreuses questions techniques et demandes pour disposer des circuits et du firmware. Tous ceux qui s'intéressent à la naissance de l'appareil et à sa composition sont les bienvenus sous cat.
Spoiler: il n'y aura pas de firmware.
Donc, tout a commencé avec la nécessité d'avoir une radio à la maison dans la cuisine. Bien sûr, en tant que développeur d'électronique, j'ai immédiatement rejeté l'option d'aller au magasin et d'acheter. Soit dit en passant, pour cette raison, je n'ai toujours pas de sonnette normale.
La radio FM a été abandonnée en raison de la mise en œuvre ennuyeuse. Et il a été décidé de faire une radio Internet. Pour l'avenir, je veux montrer qu'un tel récepteur s'est avéré ici.
Sélection de ferTout d'abord, il a fallu choisir une plateforme sur laquelle construire une radio Internet. Il existe de nombreuses options, mais j'ai choisi parmi ce qui était à portée de main:
1.
Odroid W + LCD
2.
STM32F4DISCOVERY +
ESP8266 +
VS1053BSur un odroid, le processus de développement prendrait moins de temps, mais les inconvénients, dans mon cas particulier (beaucoup ne sont pas d'accord avec moi), ont prévalu:
- le processus de chargement de l'OS prend un certain temps
- Une tendance croissante à infecter les appareils IoT avec des virus
- J'ai une mauvaise connaissance du développement Linux
- prix
Néanmoins, j'ai demandé à un de mes bons amis d'écrire un softink pour Odroid W, qui commencerait au début du système et jouerait à la radio Internet. Mais l'impossibilité d'éditer correctement le projet sans secouer un camarade a enterré cette option et m'a poussé à la seconde.
Et j'ai rassemblé le schéma suivant sur une planche à pain:
Comment travailler avec la radio InternetAprès cela, j'ai commencé à regarder le fonctionnement de la radio Internet. Il s'est avéré que la grande majorité des stations utilisent
icecast pour la diffusion. Il tourne quelque part sur un serveur avec une IP fixe et attend une connexion. En règle générale, au port 8000 ou 8080. Bien qu'il existe de nombreuses exceptions. Après la connexion, vous devez envoyer une demande de ce type, en y substituant le nom du flux et du serveur:
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 réponse, un flux mp3
sans fin commence à tomber, qui peut déjà être décodé et lu.
L'ouverture d'une connexion TCP et d'autres joies de travailler avec l'ESP8266 se font à l'aide des commandes AT. Je ne m'attarderai pas sur eux, les informations sont complètes sur Internet. Tout est très bien peint dans la
communauté russophone esp8266 . La procédure pour travailler avec elle est simple:
1. Nous attendons une connexion WiFi, si elle n'est pas là, sélectionnez un réseau, entrez le mot de passe.
2. Nous ouvrons la connexion TCP avec le serveur de la station de radio. Les adresses de serveur, les ports et les noms de flux sont stockés directement dans la mémoire flash du microcontrôleur, mais plus à ce sujet plus tard.
3. Envoyez la demande GET ci-dessus.
4. Nous recevons en réponse un flux mp3 continu.
5. Si vous devez changer de station, fermez la connexion TCP et répétez à partir de l'étape 2.
Je vais vous expliquer comment les stations pénètrent dans la mémoire flash du microcontrôleur. Au début, au stade de la vérification, j'ai simplement noté les adresses, les numéros de port et les noms de flux dans l'une des pages de mémoire du programme. Mais au fil du temps, lorsque les appareils se sont dispersés entre parents et amis, j'ai dû ajouter la possibilité de mettre à jour la liste de manière centralisée. Il a été décidé de créer un serveur avec une IP fixe, sur lequel un fichier avec une liste de stations serait stocké. Lorsqu'il est connecté via TCP, le serveur attend un mot de passe et émet un fichier, et le microcontrôleur l'écrit dans sa mémoire flash. Depuis que j'ai rencontré pour la première fois la création de «quelque chose sur Internet», j'ai été agréablement surpris qu'il s'avère que louer une machine virtuelle avec une IP fixe ne coûte que 100 roubles par mois. Miracles :)
CircuitsAyant suffisamment joué avec STM32F4Discovery, j'ai décidé de faire ma propre carte, sur laquelle tous les éléments du récepteur seront situés, et je n'aurai pas besoin de tirer les fils vers l'écran ou les connecteurs. Cela améliore considérablement la fiabilité et la fabricabilité
et tout le monde en rêve .
Le schéma peut être téléchargé ici.
[DIAGRAMME] . Je ne l'ai pas décorée ni peignée spécialement pour la publication. Il s'agit d'une option de travail, et cela devrait être suffisant pour ceux qui sont vraiment intéressés.
Le schéma se compose des principales parties:
1. MK STM32F415 avec un harnais - deux quartz et une batterie pour une horloge en temps réel.
2. ESP8266
3. VS1053 avec cerclage strictement sur fiche technique. Commencé sur MK via SPI.
4. Puissance - deux régulateurs linéaires LM1117 à 3,3 et 1,8 volts.
5. Affichage, connecteurs, boutons, potentiomètre. Tout cela est institué sur le microcontrôleur GPIO.
De plus, l'amplificateur
PAM8403 classe D n'est pas affiché sur le schéma, car il coûte un module acheté séparément.
FraisPour de bon, avant de fabriquer la carte, vous devez déterminer l'emplacement des éléments qui dépassent du corps - boutons, connecteurs, affichage. Alors je l'ai fait, mais à propos de l'affaire plus tard.
Le tableau s'est avéré comme ça. Attention fraise geek!



La planche est à deux couches, d'une épaisseur de 1,5 mm. Tous les composants smd sont situés sur un côté, ce qui facilite l'installation automatique. Cependant, cela ne lui est pas encore venu.
J'ai déjà été grondé sur pikabu par plusieurs experts pour de petits défauts dans le câblage. Cependant, le conseil fonctionne, et il fonctionne comme il se doit. Je ne vois pas la valeur dans les dessins du tableau, donc je ne la poste pas. S'il y a des demandes, je les posterai. Quoi qu'il en soit, je vais le refaire. Et bien sûr, une critique bien fondée est la bienvenue!
LogementL'affaire est une douleur pour tous les ingénieurs en électronique amateurs. Et même si vous n'êtes pas un amateur, vous pouvez en faire un argumentaire pour votre argent.
En petits lots, l'option la plus abordable est le fraisage ou la découpe laser. Avec des options en métal, il peut toujours être plié de la tôle, mais ce n'est pas mon cas. J'ai donc choisi le fraisage de pièces en bois + la découpe laser de panneaux. En termes de son, un boîtier en bois est également un énorme avantage.
Le résultat a été cet ensemble de pièces:

Une attention particulière mérite l'inscription. Après mûre réflexion, comment les appliquer, il a été décidé de les réaliser par jointoiement. Autrement dit, avec un moulin mince, l'inscription est sélectionnée sur le panneau, puis la peinture y est coulée. Une fois la peinture sèche, son excès est éliminé. Une opération très coûteuse, mais je ne m'arrêtais plus. En outre, l'un des moyens les plus durables. Si quelqu'un a de l'expérience avec d'autres façons d'appliquer des étiquettes, veuillez partager.
Voici à quoi ressemblent les inscriptions résultantes.

Et voici la radio assemblée de l'intérieur:

Et une autre photo à l'extérieur:

Conclusion Cet article décrit les détails du développement de l'appareil à grands traits. Il est assez difficile d'écrire sur les détails, d'une part par le fait que leur mer, d'autre part, chacun d'eux individuellement semble évidente. Je pourrais écrire sur un article séparé sur les circuits, la carte de circuits imprimés, le firmware, en travaillant avec esp8266 et vs1053b, si j'obtiens suffisamment d'intérêt, j'écrirai. Car je veux vraiment que la radio Internet devienne populaire.