Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Dette er mitt bidrag i "Audio" -konkurransen - hvis du er interessert i dette, vennligst kast meg en stemme
Dette innlegget vil prøve å lage en "rullevennlig" versjon av veiledningsvideoen som er inkludert øverst i dette innlegget
Videoen går i detalj om kontrollflyten og hvilken programvare jeg bruker. Ta en titt på det hvis du vil lære mer.
Flyten er som følger:
Normal drift - Lesekort og utløser Spotify for å spille sanger:
1) RFID -kode leses av en kompatibel kortleser
2) Kortleser spytter ut serielle data for hvert kort til en Arduino
3) Arduino "Serial prints" dataene den mottar til en bringebær pi
4) Pi mottar kort -ID fra Arduino. Pi slår opp kort -ID -en i en tabell for å finne den tilsvarende Spotify URI
5) Pi kaller Spotify API for å spille valgt URI
Oppsettfase: Å knytte RFID -tag til en Spotify URI
1) til 3) ovenfra
4) Pi forventer et kommandolinjearg med den spesifikke Spotify URI du vil knytte til kortet
5) Pi oppretter en ny oppføring (eller overstyrer hvis kort -ID allerede finnes i tabellen) for kort -ID, SpotifyURI -par
Så du "programmerer" ikke disse kodene. Disse kodene har sin egen innebygde mikrokontroller som modulerer feltet som kommer fra leserspolen til melodien til den spesifikke ID-en. Alt du gjør er å lage en ordbok med nøkkelverdipar for pi å lese fra.
La oss for eksempel si at jeg har et kort med ID "2_54_57_53_23_33_3". Jeg vet ikke i utgangspunktet hva ID -en er, men når jeg leser utgangen fra Arduino etter å ha skannet den, er dette det som kommer ut.
La oss si at jeg vil få dette kortet til å spille Al Greens største hitsalbum når det skannes. For å oppnå dette, ville jeg gå til Spotify og kopiere albumets URI og få "spotify: album: 6W0V8B0fJItvOwC8v114rZ". Nå, som vist i videoen, leverer jeg denne URI til et python -program for å knytte kort -IDen til "2_54_57_53_23_33_3" med spotify URI for "spotify: album: 6W0V8B0fJItvOwC8v114rZ" i en tabell. "Nøkkelen" er kort -ID, og "verdien" er URI.
Når jeg distribuerer hovedprogrammet, og min pi mottar en kort -ID på "2_54_57_53_23_33_3", vil den slå den opp i tabellen, samle URI -en som er knyttet til den, og levere URI -en som et argument til Spotify API.
Rekvisita
Dedikert datamaskin (bringebær pi er best for denne opplæringen)
RFID -kortlesermodul for tilkobling til den dedikerte datamaskinen
RFID -kort kompatible med leseren din
Valgfritt, men anbefalt: En ekstra Arduino som en mellommann mellom leseren og datamaskinen for å spare utviklingstid
Trinn 1: Kodeoversikt
De vedlagte skjermbildene viser den grunnleggende kodestrukturen for grensesnitt med Serial på Arduino og pi. Fordelen med å bruke Arduino som en mellommann er at jeg kan koble den direkte til Pi's USB -port som en seriell inngang. Dette sparte meg massevis av hodepine siden jeg nå ikke trenger å vite hvordan jeg konfigurerer GPIO -pinnene som seriell inngang.
Min spesielle kort/leserkombinasjon gir meg det uvanlige resultatet at alle kort begynner med et 2 og slutter med et 3. Dette ga meg en rask og skitten måte å vite når en overføring starter eller slutter. Avhengig av hvilke kort/lesere du har, må koden din endres.
Trinn 2: Spotify -integrasjon
Nå for den vanskelige delen - grensesnitt med Spotify. Jeg stolte sterkt på 3 ressurser her:
1) Spotifyd -prosjektet, som lar enheten din vises som en ekstra høyttaler til din Spotify -konto.
2) Diskplayer -prosjektet, der en tilfeldig fyr skrev sine egne go -skript for grensesnitt med Spotify API
3) Denne vakre mannen som går over OAUTH med Spotify. Uten ham hadde jeg kastet bort så mange flere timer.
Installer først Spotifyd og test den for å sikre at pi -en vises som en høyttaler for kontoen din.
Så, når det fungerte, brukte jeg Diskplayer til å teste spotify API. Det er her det vil be deg om å levere et Spotify API -token. Hvis du kjører et hodeløst oppsett som meg, kan du ikke åpne det i en nettleser på pi. Av denne grunn må du følge trinnene som er oppført i videoen ovenfor i trinn 3). Dette prosjektet hadde ikke skjedd uten mannen i den videoen!
Trinn 3: Få det til å se penere ut
Når alt fungerer, vil du sitte igjen med et rot med ledninger som spiller alt du vil ha fra Spotify. For å rydde opp, legg alt i en eske og skriv ut noen etiketter til kortene dine! Jeg brukte Avery 22822 etiketter (som følger med en tom Photoshop -mal for utskrift hjemme). Jeg klarte å trekke bilder fra google, og slå dem i Photoshop -malen etter behov. Etter noen timer med å lære Photoshop, skrev jeg ut og satte etikettene på mine tomme RFID -koder.
Jeg hadde mye moro med dette prosjektet og vil bruke det i fremtiden til å underholde folk i leiligheten min. Jeg gir beskjed hvis du ender opp med å lage det selv!
Jeg deltar i dette i "Audio" -konkurransen - hvis du likte det, kan du stemme på dette. Takk!