Table des matières:

Radio Senior - Raspberry Pi : 8 étapes
Radio Senior - Raspberry Pi : 8 étapes

Vidéo: Radio Senior - Raspberry Pi : 8 étapes

Vidéo: Radio Senior - Raspberry Pi : 8 étapes
Vidéo: RADIOBERRY HF SDR TRANSCEIVER PI HAT - IT'S BACK! 2024, Novembre
Anonim
Radio Senior - Raspberry Pi
Radio Senior - Raspberry Pi

Le projet Senior Radio est un dispositif de radio Internet conçu et accessible à source ouverte avec des composants matériels et logiciels. Il est destiné aux utilisateurs habitués à contrôler une radio de poche où les cadrans contrôlent le volume et la station de radio sélectionnée. Le projet est réalisé avec une conception centrée sur l'utilisateur, axée sur un utilisateur qui souhaite une taille et des commandes similaires à celles d'une radio portable standard.

Il a été conçu pour répondre aux besoins de permettre aux personnes handicapées d'écouter les milliers de contenus Internet en streaming différents qui ne sont généralement normalement disponibles que via un navigateur Internet. De nombreuses personnes n'ont pas la possibilité d'utiliser facilement un tel appareil. Cette conception vise donc à créer une interface familière pour une technologie moderne.

La fonctionnalité principale se trouve sur Github, stockée dans un programme python 3.7.3 appelé seniorRadio.py. Il lit et écrit un fichier json pour stocker l'état de la radio. Ainsi, lorsque vous l'éteignez, il se souviendra du niveau audio actuel et de la station sélectionnée. De plus, il lit un fichier json hébergé en ligne que vous pouvez modifier ! Cela vous permet de mettre à jour les stations de radio à distance si vous le donnez à quelqu'un d'autre.

Il est actuellement créé pour se connecter à un haut-parleur Bluetooth, mais pourrait également être facilement utilisé pour jouer sur un haut-parleur intégré.

Le créateur de cet appareil n'est probablement pas l'utilisateur et a besoin d'au moins une certaine expérience de l'électronique et des connaissances de base en programmation. L'expérience Linux est également très utile.

Pour l'utilisateur, la fonctionnalité est simple:

À la mise sous tension, il jouera la dernière station sélectionnée sur le périphérique audio par défaut. Le cadran gauche contrôle la station, où quelques clics du cadran changent pour une nouvelle URL. Il se retournera après la dernière ou la première entrée. La molette de droite contrôle le niveau audio. La LED indique que le programme est activé. Et le bouton poussoir met en pause ou "éteint" la radio. Ainsi, une fois allumé, un utilisateur peut simplement appuyer sur le bouton pour mettre en pause/jouer, ou "éteindre/allumer", la radio et les deux cadrans pour la contrôler.

Fournitures

Lié sur chaque élément est celui que j'ai utilisé. Cela m'a coûté environ 60 $ au total avec beaucoup de fournitures restantes!

Connaissances de base en électronique et Linux - pour l'assemblage et le débogage

Raspberry Pi Zero W (Zero WH a des en-têtes pré-soudés et probablement utiles)

Carte MicroSD-8 Go+ et capacité o

Adaptateur secteur MicroUSB 5V - Link comprend également un adaptateur microHDMI et un adaptateur microUSB OTG vers USB A pour la configuration si vous en avez besoin

Haut-parleur Bluetooth

Câbles de démarrage M/F et M/M

2 Encodeur rotatif - même lien que ci-dessus

Petite planche à pain

Bouton

LED (en option) - LED achetée + bouton poussoir ci-dessus

Boîte pour l'emballage

Étape 1: configuration (sans tête) du Raspberry Pi W

Configuration (sans tête) Raspberry Pi W
Configuration (sans tête) Raspberry Pi W

Nous devons configurer le système d'exploitation sur le raspberry pi qui exécutera le logiciel. Rien de tout cela n'est propre à ce projet. Pour le débogage, je vous recommande de le configurer afin que vous puissiez également y accéder en mode sans tête. Cela signifie que vous accédez au pi via votre réseau WiFi via une interface graphique ou un terminal SSH et que vous n'avez pas besoin d'un clavier, d'une souris et d'un moniteur pour l'utiliser à chaque fois. Vous pouvez le faire sans avoir besoin de vous connecter à un moniteur/souris/clavier si vous êtes plus féru de technologie. Quelques exemples d'instructions ici. Cependant, il est moins simple et vous trouverez ci-dessous une autre façon de le configurer.

Cette première fois, vous aurez probablement besoin de:

  • Framboise Pi W
  • Adaptateur de carte MicroSD vers carte SD [pour écrire le système d'exploitation sur la carte SD]
  • Carte MicroSD (~ 8 Go+) [pour stocker le système d'exploitation et notre programme]
  • Alimentation microUSB (5V)
  • MicroUSB vers USB A [pour souris/clavier]
  • Adaptateur Mini HDMI vers HDMI [pour la sortie d'affichage]
  • Clavier
  • Souris
  • Surveiller

Tout d'abord, vous devrez flasher le système d'exploitation sur la carte micro SD rPi.

J'ai utilisé raspian buster, vous le téléchargez sur un ordinateur avec un lecteur/enregistreur de carte SD, puis vous flashez le système d'exploitation raspian sur la carte SD. BalenaEtcher est un logiciel simple pour le faire

Ensuite, placez la carte SD dans la fente pi, connectez le moniteur, le clavier et l'alimentation. Suivez les étapes de configuration auxquelles Raspian vous invite, notamment en le connectant à votre réseau WiFi et en associant votre haut-parleur Bluetooth via l'interface graphique. Une bonne pratique serait de le mettre à jour en utilisant les commandes suivantes

sudo apt-get mise à jour

sudo apt-get mise à niveau

Si vous souhaitez inclure le marquage de votre pi sans tête, nous devrons d'abord saisir l'adresse IP du pi. Grâce à un terminal, vous pouvez le trouver via le

ifconfig

commander. Vous devez ensuite activer SSH et VNC sur les options d'interfaçage dans

sudo raspi-config

Après un redémarrage, vous pouvez maintenant tester l'accès au pi via SSH ou VNC. SSH n'est qu'une interface de terminal et vous trouverez peut-être plus facile d'utiliser l'interface graphique pour coupler un haut-parleur Bluetooth. Vous pouvez utiliser un programme tel que VNC connect pour accéder facilement à votre pi sur un ordinateur séparé de votre réseau. Vous pouvez utiliser un programme comme putty en SSH.

De plus, vous pouvez configurer un compte cloud VNC afin de pouvoir accéder à l'appareil hors réseau si nécessaire

Étape 2: Installer le logiciel Senior Radio

Installer le logiciel de radio senior
Installer le logiciel de radio senior

Cela peut être fait à partir d'une fenêtre de terminal du raspberry pi. Assurez-vous d'abord que git est installé

sudo apt-get install git

Selon le système d'exploitation que vous avez installé, ces étapes peuvent être différentes car vous devrez peut-être installer des packages supplémentaires, le système vous le dira si c'est le cas. Nous devons d'abord télécharger le code radio senior depuis github. https://github.com/Bunborn/seniorRadio Idéalement, vous créez votre propre référentiel afin que vous puissiez apporter des modifications et changer facilement les stations de radio de la même manière que moi. Fork le repo si c'est le cas

Cependant, vous pouvez utiliser le même que le mien sans problème si vous souhaitez héberger votre fichier json radio à un autre endroit

Clonez ensuite le référentiel à l'emplacement de votre choix. Le répertoire par défaut est correct. Obtenez l'URL du dépôt github que vous souhaitez en appuyant sur le bouton vert clone ou télécharger.

De retour dans la fenêtre du terminal, git clone

Vous devriez maintenant voir un répertoire supplémentaire nommé seniorRadio lorsque vous utilisez ls. Fantastique!

Le code est censé être auto-documenté, il serait utile de le parcourir. Surtout à des fins de débogage et si vous modifiez le système.

Étape 3: installer un logiciel supplémentaire

Installer des logiciels supplémentaires
Installer des logiciels supplémentaires

Avant de passer au circuit et de le tester, nous devons également télécharger VLC et l'api python correspondant. Vous avez peut-être déjà installé VLC. Les deux premières commandes mettront à jour le pi, et les deux dernières commandes ci-dessous installeront VLC puis l'api python

sudo apt-get mise à jour

sudo apt-get mise à niveau

sudo snap installer VLC

sudo apt-get install vlc-python

De plus, installez également gpiozero, que nous utiliserons pour l'interface avec les broches GPIO du pi. Vous l'avez peut-être déjà installé en fonction de votre système d'exploitation.

sudo apt-get install gpiozero

Étape 4: Rechercher des flux de stations de radio

Rechercher des flux de stations de radio
Rechercher des flux de stations de radio

Ensuite, l'une des parties les plus amusantes! Il est temps de sélectionner les flux que vous voulez.

Dans mon fichier internetStations.json, vous pouvez voir mes liens de flux, principalement pour les actualités et la musique. Mais il existe une tonne de contenu hébergé. La clé ici est de trouver l'adresse URL du flux direct. Par exemple, les stations d'information et de musique de la BBC peuvent être trouvées ici sur ce blog. Ces flux directs n'auront pas d'interface graphique et joueront automatiquement le flux via le lecteur multimédia de votre navigateur. Ce sont les URL dont nous avons besoin pour que VLC puisse les lire ! Vous pouvez tester n'importe quel lien rapidement dans votre navigateur Web ou via VLC sur votre ordinateur normal pour vous assurer qu'il fonctionnera sur le pi.

Pour trouver ces stations, vous pouvez rechercher le flux direct en ligne si le service l'héberge. Un moyen rapide pourrait également être de lire le flux, de cliquer avec le bouton droit sur le navigateur et de cliquer sur "Inspecter l'élément". Accédez à l'onglet réseau et il devrait indiquer l'URL "directe" du flux. Cette vidéo youtube le démontre. Rafraîchir la page avec l'onglet ouvert devrait aider.

Une fois que vous avez vos stations, vous souhaitez les mettre en ligne afin que votre programme python seniorRadio puisse les récupérer. Il existe de nombreuses options pour ce faire, vous pouvez utiliser des sites comme Github, bitbucket ou même sourceforge. L'objectif principal de l'hébergement de cette liste en ligne est que l'utilisateur qui la configure peut modifier la liste de diffusion en ligne à distance.

Au début du programme python, il y a une variable appelée url, changez-la simplement pour être l'URL de votre fichier json avec les liens URL de la station

Vous pouvez suivre le même format que mon fichier internetStation.json. Si vous souhaitez également utiliser github, vous pouvez simplement forker mon référentiel seniorRadio, éditer votre propre fichier internetStation.json et le pointer vers cette URL "brute". Vous pouvez le trouver ci-dessous dans l'interface graphique Github une fois que vous avez cliqué sur le fichier.

Étape 5: Créer des circuits

Créer des circuits
Créer des circuits

Maintenant, nous devons configurer le circuit. Cela changera en fonction de votre équipement, mais voici comment j'ai configuré le mien.

pinout.xyz/ pour référence sur quelles broches sont lesquelles. Puisque nous utilisons la bibliothèque gpiozero, nous ne nous intéressons qu'à la numérotation des broches BCM. Notez que j'ai acheté quelques encodeurs rotatifs KY040 supplémentaires - les cadrans - pour les tester car ils n'ont pas tous la même précision. Chacun aurait des "rebondissements", ou simplement une sortie incorrecte, alors j'ai choisi le meilleur des deux que j'avais. Dans le code, vous noterez qu'il y a aussi quelques étapes pour limiter ce rebond.

J'ai connecté mon bouton-poussoir à la broche 17 du BCM et à la masse

Ma LED à une résistance de 1k ohm puis BCM broche 27 et masse

Mes encodeurs rotatifs KY040 avaient le fil + à 5V, le GND à la masse et le SW déconnectés. Ceux-ci ont été connectés sur une mini planche à pain

Broche dt de l'encodeur rotatif de la station connectée à la broche 21 du BCM

Broche clk de l'encodeur rotatif de la station connectée à la broche 20 du BCM

Broche dt de l'encodeur rotatif de niveau audio connectée à la broche 19 du BCM

Broche clk de l'encodeur rotatif de niveau audio connectée à la broche 16 du BCM

Si vous modifiez ces broches, mettez simplement à jour le numéro dans le programme python où il configure les gestionnaires

J'ai utilisé une mini planche à pain pour rendre cela plus facile. J'ai également utilisé des cavaliers M/M et M/F pour faciliter l'interface. J'ai soudé des fils de connexion sur les broches du bouton-poussoir/LED que j'ai acheté plus tôt. Pour ne pas souder, vous pouvez obtenir des boutons-poussoirs et des LED qui ont déjà des fils de connexion ou qui se connecteraient facilement à un.

Étape 6: Testez-le

Maintenant, vous devriez avoir un système fonctionnel ! Testons-le. Accédez au dossier avec le programme python, probablement:

cd seniorRadio

python3 seniorRadio.py

Actuellement, il y a un délai de 45 secondes au démarrage du programme pour lui laisser le temps de trouver le haut-parleur bluetooth à la mise sous tension. Vous pouvez commenter cette ligne si vous n'en avez pas besoin pendant le test. Le programme peut vous dire que vous devez installer des packages supplémentaires, allez-y si c'est le cas. Peut également avoir besoin d'installer une version plus récente de Python.

sudo apt-get installer python3.7

Quelques problèmes possibles même si le programme s'exécute:

je n'entends aucun son

Assurez-vous que le haut-parleur est allumé et sélectionné dans votre raspberry pi. Grâce à l'interface graphique, vous devriez pouvoir le coupler, puis le sélectionner comme périphérique de sortie audio. De plus, vérifiez vos pilotes audio. Un problème courant est que vous devrez peut-être réinstaller le package pulseaudio

Audio saccadé ou coupé

Essayez de rapprocher l'appareil de votre routeur WiFi. De plus, assurez-vous que le haut-parleur Bluetooth est à proximité. Peut-être aussi un problème de pilote audio

Étape 7: mettre dans une enceinte permanente

Mettre dans une enceinte permanente
Mettre dans une enceinte permanente

Ensuite, placez-le dans une boîte ou un appareil similaire pour qu'il vive en permanence. Je recommande d'en avoir un auquel vous pourrez accéder plus tard encore pour le débogage. J'ai acheté cette petite boîte en bois dans un magasin d'artisanat pour 2 $ et je l'ai liée à la page des fournitures. Un de mes amis m'a recommandé une boîte à cigares.

J'ai ensuite découpé des trous à l'avant pour le bouton-poussoir et les commutateurs rotatifs, et j'ai percé un trou à l'arrière de la boîte pour le cordon d'alimentation microUSB.

J'ai testé la monture et je me suis assuré qu'elle fonctionnait, et voilà !

Enfin, j'ai utilisé de la super colle pour maintenir le bouton poussoir. Ma planche à pain avait un adhésif sur le fond que j'ai connecté à une partie de la boîte. J'ai utilisé une petite bande de ruban adhésif pour fixer l'arrière du pi à la boîte, afin qu'il puisse être déplacé plus tard si nécessaire.

Étape 8: programme d'installation à exécuter au démarrage

Enfin, vous souhaiterez probablement que ce programme python s'exécute au démarrage du raspberry pi afin que vous n'ayez pas besoin de le faire manuellement. Il existe de nombreuses façons de le faire que vous pouvez trouver en ligne.

Personnellement, je l'ai configuré en utilisant la deuxième méthode sur ce tutoriel SparkFun:

Ici, il attend que le système entre dans le bureau graphique avant d'exécuter le programme. Il est ensuite retardé par le programme python de 45 secondes pour donner au système le temps de se reconnecter au haut-parleur Bluetooth. Si vous utilisez un haut-parleur intégré, vous pouvez supprimer ce délai. Notez que le haut-parleur Bluetooth doit être allumé en premier ! (pour la solution bluetooth)

Vous pouvez maintenant essayer d'éteindre et de rallumer votre pi ! Après environ 90 secondes, votre pi devrait recommencer à lire les flux radio. En appuyant sur le bouton-poussoir, il se mettra en pause/lecture. Notez que sur ces redémarrages, il relit ce fichier json internetStations. Par conséquent, si vous modifiez vos stations, vous devez redémarrer l'appareil pour qu'elles fonctionnent. Toutes nos félicitations!

Si vous avez fait cela ou apporté des modifications au projet, faites-le moi savoir!

Page Github:

Conseillé: