Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Einrichten (headless) Raspberry Pi W
- Schritt 2: Installieren Sie die Senior Radio-Software
- Schritt 3: Zusätzliche Software installieren
- Schritt 4: Finden Sie Radiosender-Streams
- Schritt 5: Schaltkreise erstellen
- Schritt 6: Testen Sie es
- Schritt 7: In ein permanentes Gehäuse setzen
- Schritt 8: Setup-Programm zum Ausführen beim Start
Video: Seniorenradio - Raspberry Pi - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Das Senior Radio-Projekt ist ein Open-Source-zugängliches Internetradiogerät mit Hardware- und Softwarekomponenten. Es ist für Benutzer gedacht, die mit der Steuerung eines Taschenradios vertraut sind, bei dem Drehregler die Lautstärke und den ausgewählten Radiosender steuern. Das Projekt wurde mit einem benutzerzentrierten Design erstellt, das sich auf einen Benutzer konzentriert, der eine ähnliche Größe und Bedienelemente wie ein Standard-Handfunkgerät wünscht.
Es wurde entwickelt, um den Bedürfnissen von behinderten Personen gerecht zu werden, Tausende von verschiedenen Internet-Streaming-Inhalten anzuhören, die normalerweise nur über einen Internetbrowser verfügbar sind. Viele Leute haben nicht die Möglichkeit, ein solches Gerät einfach zu bedienen, daher zielt dieses Design darauf ab, eine vertraute Schnittstelle für eine moderne Technologie zu schaffen.
Die Kernfunktionalität befindet sich auf Github, gespeichert in einem Python 3.7.3-Programm namens seniorRadio.py. Es liest und schreibt eine JSON-Datei, um den Status des Radios zu speichern. Wenn Sie es also ausschalten, merkt es sich den aktuellen Audiopegel und den ausgewählten Sender. Darüber hinaus liest es eine online gehostete JSON-Datei, die Sie ändern können! Auf diese Weise können Sie die Radiosender aus der Ferne aktualisieren, wenn Sie diese an eine andere Person weitergeben.
Es wird derzeit für die Verbindung mit einem Bluetooth-Lautsprecher erstellt, könnte aber auch problemlos über einen integrierten Lautsprecher abgespielt werden.
Der Ersteller dieses Geräts ist wahrscheinlich nicht der Benutzer und benötigt zumindest etwas Erfahrung mit Elektronik und grundlegende Programmierkenntnisse. Linux-Erfahrung ist auch sehr nützlich.
Für den Benutzer ist die Funktionalität einfach:
Beim Einschalten wird der zuletzt ausgewählte Sender über das Standard-Audiogerät wiedergegeben. Das linke Wählrad steuert die Station, wo mit wenigen Klicks des Wählrads zu einer neuen URL gewechselt wird. Es wird nach dem letzten oder ersten Eintrag überrollt. Das rechte Drehrad steuert den Audiopegel. Die LED zeigt an, dass das Programm eingeschaltet ist. Und der Taster pausiert oder "schaltet" das Radio aus. Nach dem Einschalten kann ein Benutzer einfach die Taste drücken, um das Radio anzuhalten / abzuspielen oder das Radio und die beiden Drehregler "aus / ein" zu steuern, um es zu steuern.
Lieferungen
Auf jedem Artikel ist der spezifische, den ich verwendet habe, verlinkt. Kostet mich insgesamt etwa 60 US-Dollar mit viel übrig gebliebenen Vorräten!
Grundlegende Elektronik- und Linux-Kenntnisse - für Assemblierung und Debugging
Raspberry Pi Zero W (Zero WH hat vorgelötete Header und ist wahrscheinlich nützlich)
MicroSD-Karte-8 GB+ und Fähigkeit aus
MicroUSB-5V-Netzteil - Link enthält auch einen MicroHDMI-Adapter und einen MicroUSB-OTG-auf-USB-A-Adapter für die Einrichtung, wenn Sie sie benötigen
Bluetooth Lautsprecher
M/F- und M/M-Überbrückungskabel
2 Drehgeber - gleicher Link wie oben
Kleines Steckbrett
Druckknopf
LED (optional) - gekaufte LED + Taster oben
Karton zum Verpacken
Schritt 1: Einrichten (headless) Raspberry Pi W
Wir müssen das Betriebssystem auf dem Raspberry Pi einrichten, auf dem die Software ausgeführt wird. Nichts davon ist einzigartig für dieses Projekt. Zum Debuggen würde ich empfehlen, es so einzurichten, dass Sie auch im Headless-Modus darauf zugreifen können. Das bedeutet, dass Sie über die GUI oder ein SSH-Terminal über Ihr WiFi-Netzwerk auf das pi zugreifen und keine Tastatur, Maus und keinen Monitor benötigen, um es jedes Mal zu verwenden. Sie können dies tun, ohne jemals eine Verbindung zu einem Monitor / einer Maus / einer Tastatur herstellen zu müssen, wenn Sie technisch versierter sind. Einige Beispielanweisungen hier. Es ist jedoch weniger einfach und unten ist eine andere Möglichkeit, es einzurichten.
Dieses erste Mal benötigen Sie wahrscheinlich:
- Raspberry Pi W
- MicroSD-auf-SD-Kartenadapter [um das Betriebssystem auf die SD-Karte zu schreiben]
- MicroSD-Karte (~ 8 GB+) [zum Speichern des Betriebssystems und unseres Programms]
- MicroUSB-Strom (5V)
- MicroUSB auf USB A [für Maus/Tastatur]
- Mini-HDMI-zu-HDMI-Adapter [für Display-Ausgabe]
- Klaviatur
- Maus
- Monitor
Zuerst müssen Sie das Betriebssystem auf die rPi-Micro-SD-Karte flashen.
Ich habe raspian Buster verwendet, Sie laden dies auf einen Computer mit einem SD-Kartenlese- / Schreibgerät herunter und flashen dann das raspian OS auf die SD-Karte. BalenaEtcher ist eine einfache Software, um dies zu tun
Als nächstes legen Sie die SD-Karte in den Pi-Steckplatz, schließen Sie den Monitor, die Tastatur und die Stromversorgung an. Führen Sie die Einrichtungsschritte durch, zu denen raspian Sie auffordert, einschließlich der Verbindung mit Ihrem WLAN-Netzwerk und der Kopplung Ihres Bluetooth-Lautsprechers über die GUI. Eine gute Praxis wäre, es mit den folgenden Befehlen zu aktualisieren
sudo apt-get update
sudo apt-get upgrade
Wenn Sie Ihren Pi ohne Kopf markieren möchten, müssen wir zuerst die IP-Adresse des Pi erfassen. Über ein Terminal finden Sie es über die
ifconfig
Befehl. Sie müssen dann SSH und VNC über die Schnittstellenoptionen in aktivieren
sudo raspi-config
Nach einem Neustart können Sie nun den Zugriff auf den Pi über SSH oder VNC testen. SSH ist nur eine Terminalschnittstelle, und Sie finden es möglicherweise einfacher, die GUI zum Koppeln eines Bluetooth-Lautsprechers zu verwenden. Sie können ein Programm wie VNC Connect verwenden, um auf einem separaten Computer in Ihrem Netzwerk einfach auf Ihren Pi zuzugreifen. Sie können ein Programm wie Putty to SSH verwenden.
Darüber hinaus können Sie ein VNC-Cloud-Konto einrichten, damit Sie bei Bedarf auch außerhalb des Netzwerks auf das Gerät zugreifen können
Schritt 2: Installieren Sie die Senior Radio-Software
Dies kann über ein Terminalfenster des Himbeer-Pi erfolgen. Stellen Sie zuerst sicher, dass Sie git installiert haben
sudo apt-get install git
Je nachdem, welches Betriebssystem Sie installiert haben, können diese Schritte unterschiedlich sein, da Sie möglicherweise zusätzliche Pakete installieren müssen. Das System teilt Ihnen dies mit. Zuerst müssen wir den Senior Radio Code von github herunterladen. https://github.com/Bunborn/seniorRadio Idealerweise erstellen Sie unser eigenes Repo, damit Sie auf die gleiche Weise wie ich Änderungen vornehmen und die Radiosender einfach ändern können. Fork das Repo, wenn ja
Sie können jedoch problemlos dasselbe wie meine verwenden, wenn Sie Ihre Radio-Json-Datei an einem anderen Ort hosten möchten
Klonen Sie dann das Repository an einem beliebigen Ort ab, an dem es sein soll. Das Standardverzeichnis ist in Ordnung. Rufen Sie die URL für das gewünschte Github-Repository ab, indem Sie auf die grüne Klon- oder Download-Schaltfläche klicken.
Zurück im Terminalfenster, git-Klon
Sie sollten jetzt ein zusätzliches Verzeichnis namens seniorRadio sehen, wenn Sie mit ls suchen. Fantastisch!
Der Code soll selbstdokumentierend sein, ein Durchsehen wäre hilfreich. Besonders für Debugging-Zwecke und wenn Sie das System ändern.
Schritt 3: Zusätzliche Software installieren
Bevor wir zur Schaltung übergehen und sie testen, müssen wir auch VLC und die Python-API dafür herunterladen. Möglicherweise haben Sie VLC bereits installiert. Die ersten beiden Befehle aktualisieren das Pi, und die letzten beiden Befehle unten installieren VLC und dann die Python-API
sudo apt-get update
sudo apt-get upgrade
sudo snap install VLC
sudo apt-get install vlc-python
Installieren Sie außerdem gpiozero, das wir für die Verbindung mit den GPIO-Pins des pi verwenden werden. Abhängig von Ihrem Betriebssystem ist es möglicherweise bereits installiert.
sudo apt-get install gpiozero
Schritt 4: Finden Sie Radiosender-Streams
Als nächstes einer der lustigsten Teile! Es ist Zeit, die gewünschten Streams auszuwählen.
In meiner internetStations.json-Datei können Sie meine Stream-Links sehen, hauptsächlich für Nachrichten und Musik. Aber es gibt eine Menge gehosteter Inhalte da draußen. Der Schlüssel hier besteht darin, die URL-Adresse des direkten Streams zu finden. Hier auf diesem Blog sind beispielsweise die Nachrichten- und Musiksender der BBC zu finden. Diese direkten Streams haben keine grafische Oberfläche und spielen den Stream automatisch über Ihren Browser-Mediaplayer ab. Dies sind die URLs, die wir brauchen, damit VLC sie lesen kann! Sie können jeden Link schnell in Ihrem Webbrowser oder über VLC auf Ihrem normalen Computer testen, um sicherzustellen, dass er auf dem Pi funktioniert.
Um diese Sender zu finden, können Sie online nach dem direkten Stream suchen, wenn der Dienst ihn hostet. Eine schnelle Möglichkeit könnte auch darin bestehen, den Stream abzuspielen, mit der rechten Maustaste auf den Browser zu klicken und auf "Element überprüfen" zu klicken. Navigieren Sie zum Netzwerk-Tab und es sollte die 'direkte' URL des Streams anzeigen. Dieses Youtube-Video zeigt dies. Das Aktualisieren der Seite mit geöffnetem Tab sollte helfen.
Sobald Sie Ihre Sender haben, möchten Sie sie online stellen, damit Ihr seniorRadio-Python-Programm sie abrufen kann. Es gibt viele Möglichkeiten, dies zu tun, Sie können Websites wie Github, Bitbucket oder sogar Sourceforge verwenden. Der Hauptzweck des Online-Hostings dieser Liste besteht darin, dass der Benutzer, der sie einrichtet, die Stream-Liste online aus der Ferne ändern kann.
Am Anfang des Python-Programms gibt es eine Variable namens url, ändern Sie diese einfach in die URL Ihrer json-Datei mit den URL-Links der Station
Sie können das gleiche Format wie meine internetStation.json-Datei verwenden. Wenn Sie auch github verwenden möchten, können Sie einfach mein seniorRadio-Repository forken und Ihre eigene internetStation.json-Datei bearbeiten und auf diese "rohe" URL verweisen. Sie finden dies unten in der Github-GUI, sobald Sie auf die Datei geklickt haben.
Schritt 5: Schaltkreise erstellen
Jetzt müssen wir die Schaltung aufbauen. Dies wird sich je nach Ihrer Ausrüstung ändern, aber unten ist, wie ich meine eingerichtet habe.
pinout.xyz/ als Referenz, welche Pins welche sind. Da wir die gpiozero-Bibliothek verwenden, beschäftigen wir uns nur mit der BCM-Pin-Nummerierung. Beachten Sie, dass ich ein paar zusätzliche KY040-Drehgeber - die Zifferblätter - gekauft habe, um sie zu testen, da sie nicht alle die gleiche Genauigkeit haben. Jeder würde etwas "hüpfen" oder einfach eine falsche Ausgabe haben, also wählte ich das Beste der beiden, die ich hatte. Im Code werden Sie feststellen, dass es auch einige Schritte gibt, um dieses Springen zu begrenzen.
Ich habe meinen Taster an BCM Pin 17 und Masse angeschlossen
Meine LED an einen 1k Ohm Widerstand, dann BCM Pin 27 und Masse
Bei meinen KY040 Drehgebern war die + Leitung auf 5V, die GND auf Masse und SW getrennt. Diese wurden über ein Mini-Steckbrett verbunden
Stationsdrehgeber dt-Pin mit BCM-Pin 21. verbunden
Stationsdrehgeber-Clk-Pin mit BCM-Pin 20. verbunden
Audiopegel-Drehgeber dt-Pin mit BCM-Pin 19. verbunden
Audiopegel-Drehgeber-Clk-Pin mit BCM-Pin 16. verbunden
Wenn Sie diese Pins ändern, aktualisieren Sie einfach die Nummer auch im Python-Programm, wo es die Handler einrichtet
Ich habe ein Mini-Steckbrett verwendet, um dies zu vereinfachen. Ich habe auch M/M- und M/F-Jumperdrähte verwendet, um die Schnittstelle zu erleichtern. Ich lötete einige Überbrückungskabel auf die Pins der Taster / LED, die ich zuvor gekauft hatte. Um nicht zu löten, könnten Sie Druckknöpfe und LEDs erhalten, die bereits Überbrückungskabel haben oder leicht mit einem verbunden werden können.
Schritt 6: Testen Sie es
Jetzt sollten Sie ein funktionierendes System haben! Lass es uns testen. Navigieren Sie zu dem Ordner mit dem Python-Programm, wahrscheinlich:
cd seniorRadio
python3 seniorRadio.py
Derzeit gibt es eine Verzögerung von 45 Sekunden beim Start des Programms, um ihm Zeit zu geben, den Bluetooth-Lautsprecher beim Einschalten zu finden. Sie können diese Zeile auskommentieren, wenn Sie sie während des Tests nicht benötigen. Das Programm teilt Ihnen möglicherweise mit, dass Sie zusätzliche Pakete installieren müssen, fahren Sie fort, wenn dies der Fall ist. Möglicherweise muss auch eine neuere Version von Python installiert werden.
sudo apt-get install python3.7
Einige mögliche Probleme, auch wenn das Programm ausgeführt wird:
Ich höre keinen Ton
Stellen Sie sicher, dass der Lautsprecher in Ihrem Himbeer-Pi eingeschaltet und ausgewählt ist. Über die GUI sollten Sie es koppeln und dann als Audioausgabegerät auswählen können. Überprüfen Sie außerdem Ihre Audiotreiber. Ein häufiges Problem ist, dass Sie das pulseaudio-Paket möglicherweise neu installieren müssen
Audio abgehackt oder schneidet ein und aus
Versuchen Sie, das Gerät näher an Ihren WLAN-Router zu stellen. Stellen Sie außerdem sicher, dass sich der Bluetooth-Lautsprecher in der Nähe befindet. Könnte auch ein Audiotreiberproblem sein
Schritt 7: In ein permanentes Gehäuse setzen
Als nächstes legen Sie es in eine Kiste oder ein ähnliches Gerät, damit es dauerhaft darin leben kann. Ich empfehle, einen zu haben, auf den Sie später noch zum Debuggen zugreifen können. Ich habe diese kleine Holzkiste in einem Bastelladen für 2 US-Dollar gekauft und auf der Zubehörseite verlinkt. Einer meiner Freunde hat mir eine Zigarrenkiste empfohlen.
Dann schneide ich vorne Löcher für den Druckknopf und die Drehschalter aus und bohre ein Loch in die Rückseite der Box für das microUSB-Netzkabel.
Ich habe die Halterung getestet und sichergestellt, dass sie funktioniert, und voilà!
Schließlich habe ich Superkleber verwendet, um den Druckknopf zu halten. Mein Steckbrett hatte einen Kleber auf der Unterseite, den ich mit einem Teil der Box verband. Ich habe einen kleinen Streifen Klebeband verwendet, um die Rückseite des Pi an der Box zu befestigen, damit es später bei Bedarf verschoben werden kann.
Schritt 8: Setup-Programm zum Ausführen beim Start
Schließlich möchten Sie wahrscheinlich, dass dieses Python-Programm beim Start des Raspberry Pi ausgeführt wird, damit Sie es nicht manuell tun müssen. Es gibt viele Möglichkeiten, dies zu tun, die Sie online finden können.
Persönlich habe ich es mit dem zweiten Weg in diesem SparkFun-Tutorial eingerichtet:
Hier wartet es, bis das System den grafischen Desktop betritt, bevor das Programm ausgeführt wird. Es wird dann vom Python-Programm um 45 Sekunden verzögert, um dem System Zeit zu geben, sich wieder mit dem Bluetooth-Lautsprecher zu verbinden. Wenn Sie einen integrierten Lautsprecher verwenden, können Sie diese Verzögerung entfernen. Beachten Sie, dass der Bluetooth-Lautsprecher zuerst eingeschaltet sein sollte! (für die Bluetooth-Lösung)
Jetzt können Sie versuchen, Ihren Pi aus- und wieder einzuschalten! Nach etwa 90 Sekunden sollte Ihr Pi wieder mit der Wiedergabe der Radiostreams beginnen. Beim Drücken der Taste wird die Wiedergabe angehalten/abgespielt. Beachten Sie bei diesen Neustarts, dass die json-Datei von internetStations erneut gelesen wird. Wenn Sie also Ihre Stationen ändern, müssen Sie das Gerät neu starten, damit sie funktionieren. Herzliche Glückwünsche!
Wenn Sie dies vorgenommen oder Änderungen am Projekt vorgenommen haben, lassen Sie es mich bitte wissen!
Github-Seite: