Inhoudsopgave:

Raspberry Pi Audio Dac-Amp-Streamer - Ajarnpa
Raspberry Pi Audio Dac-Amp-Streamer - Ajarnpa

Video: Raspberry Pi Audio Dac-Amp-Streamer - Ajarnpa

Video: Raspberry Pi Audio Dac-Amp-Streamer - Ajarnpa
Video: The BEST DIY Raspberry Pi Music Streamer?! | Audiophonics Evo-Sabre 2024, November
Anonim
Raspberry Pi Audio Dac-Amp-Streamer
Raspberry Pi Audio Dac-Amp-Streamer
Raspberry Pi Audio Dac-Amp-Streamer
Raspberry Pi Audio Dac-Amp-Streamer

Gebruik een verouderde Google AIY-stemhoed opnieuw als een speciaal headless stereo-audiostreamingapparaat.

Nu Google AIY-spraakkits bijna twee jaar oud zijn, heb je misschien gemerkt dat de nieuwigheid een beetje is uitgewerkt. Of je vraagt je misschien af of de advertenties van je browser voor het dichtstbijzijnde renaissancefestival iets te maken hebben met de vraag die je hebt gesteld over waar je een goede deal kunt vinden voor hardloopschoenen met onderpantser.

Als je er al een hebt, laat dit project je zien hoe je je bestaande Google AIY-spraakkit kunt gebruiken en deze kunt hergebruiken als een speciale headless audiostreamer. Als je nog geen kit hebt en je woont in de buurt van een Micro Center; je hebt geluk - er zijn er nog steeds genoeg, en ik betwijfel of ze goedkoper zullen worden dan de huidige prijs van $ 5. (eigenlijk zijn ze $ 3 vanaf juli 2019).

Dit project draait helemaal om audio en heeft niets met AI te maken. We gaan werken aan een volledig apart besturingssysteem dat wordt opgeslagen op een aparte micro-sd-kaart, waarmee je alle AI-functionaliteit onaangeroerd kunt laten. Bovendien zullen we de gebruikerservaring verbeteren door stereogeluid te introduceren (voor een paar dollar meer) terwijl we een schaalbaar apparaat voor audiostreaming bouwen. Tot slot, na voltooiing van dit project, laten we de stemhoed in een staat achter die klaar is voor toekomstige uitbreiding. De beperkingen van expansie zullen alleen die van onze creativiteit zijn.

Stap 1: Inkoop

Inkoop
Inkoop

Ik zal dit instructable schrijven vanuit het perspectief dat je nog geen Google Voice-kit in je bezit hebt. Mocht je de voice kit al hebben ingesteld - de extra benodigde items zijn hieronder gemarkeerd met een *. Ook is het nieuwste Raspberry Pi-aanbod (Pi 3 A+) perfect geschikt voor dit project op basis van zijn vormfactor, en ik raad ten zeerste aan er toch een te kopen. Elke Pi zou het echter moeten doen, zolang hij maar geschikt is voor de voicekit-hoed en GPIO's.

Ingrediënten:

  • Raspberry Pi (raad Pi 3 A + aan)
  • 5.25V 2.4 amp micro-usb-voeding
  • Micro SD-kaart (afhankelijk van de grootte van je muziekcollectie zou 16 GB voldoende moeten zijn)
  • Max98357A dac en versterker (van Adafruit)*
  • Spreker*(s). De kit wordt geleverd met een, maar om stereo te krijgen, hebben we een extra luidspreker nodig. (ook Adafruit)
  • Google AIY Voice-kit
  • Koptekst – enkele band*
  • Luidsprekerkabel*

Benodigd gereedschap: soldeerbout, soldeer, kruiskopschroevendraaier maat 00 of 000. draadstrippers, maskeer- of schilderstape om de header tijdelijk vast te zetten tijdens het solderen, USB naar micro SD-adapter.

Stap 2: Monteer de hardware

Monteer de hardware
Monteer de hardware

Uit de doos arriveert de stemhoed in monomodus. Gelukkig hebben de ingenieurs van Google het bord ontworpen om een upgrade naar stereo mogelijk te maken door simpelweg een ander Max98357a-bord toe te voegen om als een ander hoedje te dienen. Ze hebben zelfs de doos voor ons geschetst.

Je raadt het al: we gaan een hoed op een hoed bouwen. Hardware bovenop Hardware al bovenop.

Met behulp van de header die wordt geleverd door de Adafruit Max98357a-chipset, beginnen we met het solderen van de 7-pins header op de voice-hoed direct onder de woorden "AIY projects Voice Hat". Een stuk plakband dat op de langere mannelijke pinnen aan de voorkant van het bord is bevestigd, kan handig zijn om te voorkomen dat de koppen van hun plaats glijden, omdat we tijdens deze soldeerfase met het bord ondersteboven werken.

Soldeer ook twee pinnen in de wit omlijnde doos aan de stemhoed waar het blauwe max98357a-bord zal zitten.

SOLDEER DE LUIDSPREKERCONNECTOR NIET AAN DE MAX98357a-KAART!

Sluit in plaats daarvan de luidsprekeraansluitingen aan op de stemhoed, direct uitgelijnd onder waar de twee polen zojuist waren gesoldeerd. De linker luidsprekeraansluiting en de rechter luidsprekeraansluiting moeten naast elkaar worden uitgelijnd, in een rij van vier aansluitingen.

Draai het bord met de goede kant naar boven.

Soldeer de jumper met het label "JP4" gesloten door een druppel soldeer op de jumper te laten. Vergeet dit deel niet, anders hebben we geen stereo!

Bevestig het blauwe max98357a-bord voorzichtig aan de lange mannelijke pinnen die uit de stemhoed steken. Dit was een beetje moeilijk, dus probeer de pinnen zo loodrecht mogelijk op het bord te solderen. Met wat klein geruzie van de twee-pins header, was ik in staat om dit met slechts een kleine inspanning te bereiken.

Voltooi het soldeer van de mannelijke pinnen op de blauwe max98357a-chip - zowel de zeven-pins header als de twee-pins header moeten de max98357a stevig op zijn plaats houden.

Klaar met solderen!

Stap 3: Bevestig aan de Pi en sluit uw luidsprekers aan

Bevestig aan de Pi en sluit uw luidsprekers aan
Bevestig aan de Pi en sluit uw luidsprekers aan

Gebruik de twee nylon afstandhouders die bij de kit zijn geleverd en voeg de vrouwelijke stemkit voorzichtig samen bovenop de mannelijke headers op de Raspberry Pi. De nylon afstandhouders moeten op hun plaats klikken, zodat u goed op de tegenoverliggende hoeken van de kop past.

Gebruik een kleine kruiskopschroevendraaier (000 of 00) om de schroeven op de luidsprekeraansluiting voldoende los te draaien om uw luidsprekerkabel in de compressieopeningen te laten passen. U hoeft de schroeven niet te verwijderen, maar open ze voldoende waar ze los aanvoelen.

Steek uw kleine luidsprekerdraad in de opening en draai de schroeven vast om de luidsprekerdraad stevig op zijn plaats te houden.

Ik vond deze stap de meest ontmoedigende uitdaging van het hele project - ik kon geen schroevendraaier vinden die klein genoeg was, of mijn dunne luidsprekerdraad was te fijn om de compressie van de schroef te absorberen en zou liever breken dan vast te houden. Ik heb een wijziging aangebracht door "punten" of kleinere draden te bouwen die stevig genoeg waren om de compressie te weerstaan, en net lang genoeg om aan de blote uiteinden van de luidsprekerdraad te worden gesoldeerd. Lelijk, ja, maar effectief.

Klaar met hardware!

Stap 4: Download Raspbian Lite

Raspbian Lite downloaden
Raspbian Lite downloaden
Raspbian Lite downloaden
Raspbian Lite downloaden

Velen van jullie zijn al erg bekend met het proces van het downloaden en branden van afbeeldingen op een SD-kaart, en de daaropvolgende stappen vallen een beetje buiten het bestek van dit project. Ik zal de onderstaande stappen opnoemen voor het geval dat, maar als je merkt dat je nog steeds vastzit, zijn er talloze bronnen om te helpen.

Laatste bewerking: juni 2020 voor Buster Lite-download.

· Download en installeer Etcher van Balena Software

· Download het nieuwste Raspbian Lite-besturingssysteem van raspberrypi.org

· Gebruik Etcher om de Raspbian-afbeelding naar de SD-kaart te schrijven

· Eenmaal voltooid, tenzij u een pi zero w gebruikt, zet u de nieuw afgebeelde SD-kaart over naar onze Raspberry Pi. Als u een pi zero w gebruikt, moeten we enkele wijzigingen aanbrengen in het bestand WPA_Supplicant.conf in de opstartpartitie om uw wifi in te stellen.

Stap 5: Configureer de Pi

Configureer de Pi
Configureer de Pi

Met onze nieuw gemaakte afbeelding, laten we de pi een boost geven. Maar laten we eerst een monitor en toetsenbord lenen om te helpen bij de configuratie. Plaats de micro-sd-kaart en bevestig de micro-usb-oplaadkabel. Met een beetje geluk zal het groene led-lampje een paar keer knipperen tijdens het opstarten. De eerste keer opstarten kan enkele minuten duren, maar binnen 5 minuten zouden we klaar moeten zijn om aan onze configuratie te werken. "Lite" Raspbian heeft geen bureaublad.

Eenmaal bij de opdrachtprompt: login als pi, wachtwoord "raspberry".

· Open het configuratiescherm door " sudo raspi-config" te typen bij de opdrachtprompt.

· Wijzig onmiddellijk uw wachtwoord.

· Stel je wifi in met behulp van de netwerkopties op het configuratiepaneel

· Wijzig uw lokalisatie-opties en stel uw tijdzone in

· Schakel SSH in met behulp van de interface-paneeloptie

· Voer "sudo apt-get update" uit om uw software bij te werken naar de nieuwste versie

We hebben het IP-adres van de Pi nodig. Ik raad een app aan met de naam "FING" die op elk Android-apparaat kan worden gedownload en waarin alle apparaten worden vermeld die op uw netwerk zijn aangesloten. We zouden op zoek zijn naar een apparaat met de naam "raspberrypi". Schrijf het ip-adres op.

Vanaf dit punt hebben we de monitor of het toetsenbord niet meer nodig. Alle verdere configuraties worden uitgevoerd met behulp van de opdrachtregels via een SSH-sessie.

Stap 6: SSH gebruiken om een sessie op een externe machine te openen

Het gebruik van SSH is vrij eenvoudig. Open een terminalvenster vanaf elk apparaat in uw netwerk en typ de opdracht

ssh pi@mijnadres

Vervang "mijnipaddress" door de numerieke waarden die zijn verkregen met fing.

Voor de eerste keer kunt u worden begroet met een enge waarschuwing die aangeeft dat u niet op de uitgenodigde lijst staat, maar er is een zin die moet luiden "om dit te verwijderen …" kopieer de lange reeks tekens en plak deze in de opdracht prompt, druk op enter. Gebruik vervolgens de pijltoets omhoog, herhaal de opdracht ssh pi@myipaddress, kies ja en voer nu uw wachtwoord in. Gefeliciteerd!, je bent nu verbonden met je apparaat als je naar een opdrachtprompt van "pi@raspberrypi: ~ $" kijkt.

Stap 7: Mopidy installeren

Mopidy installeren
Mopidy installeren

We gaan Mopidy installeren als onze muziekserver. Er zijn hier tal van opties, maar ik zal je laten zien hoe je een extensie genaamd "Music Box" installeert waarmee je je muziek kunt bedienen vanaf een webinterface in plaats van een opdrachtprompt.

Wat is Mopidy? Volgens de website is Mopidy een reeks grote woorden waardoor ik me op dit moment behoorlijk inferieur voel, maar laten we zeggen dat Mopidy het platform is van waaruit onze muziek zal worden afgespeeld. Het wordt een muziekserver, een MPD (music player daemon) en een webserver. De PiMusic Box-add-on biedt de website waar we naartoe kunnen navigeren en Mopidy kunnen bedienen. Ik dacht dat het geschikt zou zijn voor dit instructable, aangezien het goed speelt met een aantal populaire services zoals Spotify of Google Play Music. Bovendien is het heel cool.

Hieronder staan de instructies schaamteloos gekopieerd van Mopidy om vanaf de opdrachtregel te installeren:

1. Voeg de GPG-sleutel van het archief toe:

sudo wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -

2. Voeg de APT-repo toe aan uw pakketbronnen:

sudo wget -q -O /etc/apt/sources.list.d/mopidy.list

Installeer ten slotte mopidy:

sudo apt-get update

sudo apt-get install mopidy

Einde schaamteloos kopiëren.

Stap 8: Gebruik Python Pip om andere… installaties (extensies) te installeren

We hebben zojuist de gewone vanilla Mopidy geïnstalleerd, maar we zijn nog maar net begonnen. Uitbreidingen zullen onze bouwstenen zijn om aanpassingen toe te voegen aan onze eenvoudige vanille Mopidy. Omdat de meeste extensies die we zullen gebruiken voor de basismopidy zijn geschreven in python, zullen we een equivalent van apt gebruiken dat specifiek is voor python.

Voordat we pip gaan gebruiken, moeten we er eerst voor zorgen dat we alle gstreamer-plug-ins hebben die apt gebruiken:

sudo apt installeren

python3-gst-1.0 / gir1.2-gstreamer-1.0 / gir1.2-gst-plugins-base-1.0 / gstreamer1.0-plugins-goed / gstreamer1.0-plugins-ugly / gstreamer1.0-plugins-slecht / gstreamer1.0-tools

Dit kan enkele minuten duren om te installeren. Zonder Gstreamer kun je mogelijk geen muziek streamen.

En nu kunnen we python pip installeren:

sudo apt install build-essentiële python3-dev python3-pip

Nu kunnen we pip gebruiken om meer mopidy nuggets toe te voegen. Pip is een python-tool, vergelijkbaar met apt, maar ik vind dat het iets sneller werkt dan apt. Een beetje traag van het blok, maar het begint vrij snel.

Hieronder staan er vier om ons op weg te helpen:

Een web-front-end. Laten we Iris gebruiken, maar als je wilt, kun je in plaats daarvan mopidy-musicbox-webclient proberen:

sudo python3 -m pip install Mopidy-Iris

Een hub voor internetradiostations met 30 kanalen:

sudo python3 -m pip install mopidy-somafm

Nog een internetradioservicehub met nog meer kanalen:

sudo python3 -m pip install mopidy-TuneIn

En nog een front-end voor mobiel apparaat. Radio Stations en Iris spelen niet lekker samen, maar mobiel heeft allerlei internet rantsoen stations om naar te luisteren:

sudo python3 -m pip install Mopidy-Mobile

Eenmaal voltooid, zou je toegang moeten hebben tot Music Box met:

mijnipadres:6680/iris/ -of-

Er komt nog steeds niets uit de speakers als je muziek probeert af te spelen.

Voor een lijst met andere functies en extensies: Help uzelf:

sudo pip zoeken mopidy

Vanaf hier kunt u doorgaan met het toevoegen van extensies naar keuze.

Ik heb een voorbeeldmopidy-configuratiebestand bijgevoegd. Voel je vrij om de inhoud in /etc/mopidy/mopidy.conf. te gebruiken

sudo nano /etc/mopidy/mopidy.conf

Stap 9: Mopidy instellen als een service

Mopidy instellen als een service
Mopidy instellen als een service

Aangezien we mopidy bij het opstarten willen uitvoeren, kunnen twee commando's mopidy uitvoeren bij het opstarten:

sudo systemctl mopidy inschakelen

sudo dpkg-mopidy opnieuw configureren

Start opnieuw op en voer vervolgens uit

sudo systemctl status mopidy – l

om uw status te controleren. U zou een groene indicator moeten zien. Mopidy heeft een zeer nuttige ondersteuningssite om te helpen met verdere configuratie-opties. Bekijk de Mopidy-documentatiesite voor meer informatie.

Stap 10: Voeg je eigen muziek toe

Voeg je eigen muziek toe
Voeg je eigen muziek toe

Standaard wil mopidy lokale muziek opslaan in een map onder /var/lib/mopidy/media. Kopieer daar je muziekverzameling. Ik vind het het gemakkelijkst om gewoon de sd-kaart van de pi te verwijderen (na veilig afsluiten), en met behulp van een micro-sd naar usb-adapter, sluit de adapter aan op uw opslageenheid en kopieer/plak daar. (dit kan even duren, afhankelijk van de grootte van je verzameling). Eenmaal voltooid, plaatst u de SD-kaart terug naar de pi, start u deze op, maakt u opnieuw verbinding en typt u:

sudo mopidyctl lokale scan

Hiermee wordt je muziek toegevoegd aan de lokale mediabibliotheek in Music Box. U zult merken dat.wma-bestanden niet als audio worden herkend en dat.ogg-bestanden tijdens de scan worden gemist. Mp3-bestanden zouden echter geen probleem moeten zijn.

Stap 11: Configuratiebestand voor geluidskaart - Asound.conf

Je zou nog niets in /etc/asound.conf moeten hebben, maar als je dat wel doet, vervang dan de inhoud door die hieronder, of maak er een aan met:

sudo nano /etc/asound.conf

en plak:

opties snd_rpi_googlehat_soundcard index=0

pcm.softvol { type softvol slave.pcm dmix control { naam Master card 0 } } pcm.!default { type asym playback.pcm "plug:softvol" } ctl.!default { type hw kaart 0 }

ctrl-x en Y om het bovenstaande op te slaan als uw nieuwe asound.conf-bestand.

Stap 12: Zorg ervoor dat we de juiste overlay gebruiken om Configure.txt in /boot

type

sudo nano /boot/config.txt

De laatste paar regels moeten lijken op iets dat lijkt op het onderstaande. We willen ervoor zorgen dat de standaardaudio wordt becommentarieerd, samen met eerdere overlays zoals mijn hifiberry dac, terwijl we de Google Voice Hat-overlay implementeren. Ten slotte willen we de pi instrueren om de i2s-toewijzing te gebruiken. De # indicator vertelt het systeem om de lijn te negeren.

# Audio inschakelen (laadt snd_bcm2835)

#dtparam=audio=aan #dtoverlay=hifiberry-dac dtoverlay=googlevoicehat-geluidskaart dtoverlay=i2s-mmap

reboot als alles lijkt op het bovenstaande. Wacht een paar minuten, open een browser naar de url van de muziekbox en speel wat muziek af.

Stap 13: Geniet van de muziek

Als je naar stereo goedheid luistert, missie geslaagd!

Een van de mooie dingen van het gebruik van een raspberry pi als een headless muziekserver die is verbonden met wifi, is dat deze draait zonder heel veel bronnen in beslag te nemen. Toegegeven, we pompen slechts 3 watt per kanaal uit, maar dat is waarschijnlijk genoeg voor luisteren op korte afstand. De batterij van je telefoon zal je dankbaar zijn.

Er is ook een zeer belangrijke groene factor - we drinken slechts 5,25 volt energie. En vergeleken met Bluetooth kunnen we de radiostream instellen en niet verankerd zijn aan een Bluetooth-bereik van 30 voet. Met betrekking tot onze telefoon kunnen we een oproep beantwoorden, een game spelen en wat vrijer rondlopen zonder de muziekstroom te onderbreken. We hebben alleen het oppervlak bekrast. Er zijn talloze beschikbare mopidy-extensies om te verkennen, en mopidy heeft een groeiend aantal ontwikkelaars omdat het open source is. Ik laat je zelf de functies verkennen die je interesseren.

Stap 14: Conclusie

Conclusie
Conclusie

Een van de meest opvallende kenmerken van dit project is dat we onze pi niet beperken door de toegang tot de GPIO te vergrendelen. Dit geeft ons toegang tot veel andere opties omdat de stemhoed zo goed is ontworpen. Mijn volgende project zal bijvoorbeeld zijn om een tijdelijke drukknopschakelaar toe te voegen als een afsluitknop. Het zou gemakkelijk moeten zijn, en ik weet al waar de pinnen moeten landen: ze zijn niet belemmerd. Vanaf daar? Welnu, voor dit project hebben we de microfoon volledig genegeerd - misschien een pi-karaoke? Misschien een LED-lichtshow, of een motor voor een rollende jukebox? Alle pinnen zijn nog steeds beschikbaar en toegankelijk. De vraag wordt waarom niet? En voor het geval je terug wilt naar de AI, stop gewoon de oude SD-kaart in en laat Google in stereo reageren.

Aanbevolen: