INHOUDSOPGAWE:
- Stap 1: Blinkty Pi
- Stap 2: Talking Code
- Stap 3: Kennisgewing sentraal
- Stap 4: Klankopsies
- Stap 5: Retro -aanpassing
- Stap 6: Saakwerk
- Stap 7: Radio Times
Video: Pi Zero Talking Radio: 7 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Dit is 'n laat -veertigerjare DeWald -tafelradio wat ek 'n nuwe lewe gegee het met 'n Raspberry Pi Zero, 'n Blinkt! LED -strook en 'n paar PC -luidsprekers. Dit lees kennisgewings van 'n verskeidenheid internet-gekoppelde dienste met behulp van die Pyvona-teks-na-spraak (TTS) -enjin en IF This Then That (IFTTT) integrasie. Die LED's is ongelooflik helder en verlig die radio se draaiknop in 'n ander kleur, afhangende van sleutelwoorde in die kennisgewingteks, byvoorbeeld "youtube" = Rooi.
Ek het hierdie lieflike radio in die somer vir £ 3 by 'n motorfietsverkoping opgetel - ek het dadelik my kompakte grootte en sy klassieke ontwerp aangeneem, en ek het die potensiaal daarvan raakgesien deur die sonverbleekte buitekant en baie krake! Ek wou al 'n rukkie 'iets ordentliks vir die sitkamer' skep, en dit was die ideale beginpunt. Ek het al voorheen geëksperimenteer met teks-na-spraak-kennisgewings op die Rabbit Pi-projek en gehoop om voort te bou op wat ek geleer het om iets te maak wat daagliks 'net' werk.
As u nie die ingeslote video kan sien nie, is dit op:
Stap 1: Blinkty Pi
Ek het onlangs my eerste Pi Zeros opgetel en was onmiddellik verbaas oor hul klein grootte! Na die soldeer in die GPIO -kop en die koppeling van die adapters, was die eerste gereed om te begin. Oorspronklik was ek van plan om 'n verbeterde Rabbit Pi te maak, maar na 'n rukkie voel dit meer na werk as om pret te hê, dus het ek dit opgehou - maar nie voordat ek begin eksperimenteer het met 'n Unicorn pHAT, 'n 4x8 -matriks van programmeerbare LED's, wat 'n absolute hoop was van pret! Die enigste nadeel was dat die gebruik van die pHAT die klankopstelling bemoeilik het, en ek wou my volgende projek baie eenvoudig hou.
Alles val in plek by die Cambridge Raspberry Jam in September toe ek die Blinkt sien! te koop by die Pimoroni -stalletjie - dit is net soos die Unicorn pHAT, maar met 'n enkele ry van 8 LED's, perfek om op die GPIO -kop van 'n pi zero te pas. Dit bevat baie dokumentasie en voorbeelde en is binne 'n kort tyd aan die gang - nou was dit tyd om die res van die kode saam te stel.
Stap 2: Talking Code
Ek het begin met 'n afskrif van die hoofkode van die Rabbit Pi, aangesien my Ivona-teks-na-spraak-geloofsbriewe reeds daarin gestoor is. U moet 'n Ivona -ontwikkelaarrekening opstel voordat u die diens gebruik, maar die proses is eenvoudig soos ek voorheen gedokumenteer het.
Die volgende stap was om Pyvona te installeer, die Python -omslag om te integreer met die Ivona TTS -diens, wat nie makliker kon gewees het nie (pip install pyvona).
Met hierdie in plek het ek die Rabbit Pi-kode begin wysig, die verwysings na motorbeheer en selfies geneem, sodat ek net die stukkies kon lees wat kennisgewings van die onderwerpreëls van Gmail-boodskappe voorgelees het. Die kritieke ontwikkeling met hierdie kode was die toevoeging van 'n reeks IF -stellings om na spesifieke sleutelwoorde in die boodskappe te soek, sodat die Blinkt! afhangende van die boodskap, sal dit verskillende kleure gloei.
Dit het my 'n rukkie geneem, want ek vind nog steeds my voete met Python, maar ek het my sleutelwoorde gedefinieer ("Bewolk", "Sunset", "Buie", "Facebook", "Twitter", "Youtube" en "Sonnig") Ek kon die Blinkt beheer! kleur, afhangende van die teks wat voorgelees is.
Die eenvoudige, indien onelegante, kode wat ek gebruik het, is op GitHub, alhoewel ek al meer sleutelwoorde en kleure bygevoeg het! Ek het dit buite die omhulsel getoets met 'n battery -aangedrewe luidspreker - meer oor die klankopstelling later. Die laaste stap was om die python -script, radiot.py, in te stel om by opstart te begin.
Stap 3: Kennisgewing sentraal
Noudat die Pi betroubaar boodskappe sou voorlees en verskillende kleure sou verlig, moes ek die kennisgewings so opstel dat dit spontaan deurgekom het - ek onthou dat die radio in 'n ou Tom & Jerry -tekenprent af en toe sou verskyn (Jerry's Diary (1949) - dieselfde tydperk as die radio!) en dit is die effek wat ek agterna gesit het, dat dit in die hoek sou sit en mooi lyk, soms verlig en kennisgewings lees wat ek anders nie met my telefoon sou opneem nie.
Eers het ek 'n aparte Gmail -rekening opgestel om die kennisgewings -e -posse te ontvang - dit beteken dat ek nie met nuwe e -poskennisgewings gebombardeer sal word of my bestaande inkassie met honderde outomaties gegenereerde boodskappe sal besoedel nie.
Daarna het ek oorgegaan na IFTTT (IF This Then That) om die outomatisering op te stel. Met IFTTT kan u maklik verskeie "kanale" aan u rekening koppel en hulle met mekaar in staat stel om met mekaar te kommunikeer met behulp van 'Resepte', in hierdie geval om verskeie sosiale media en werklike aksies in 'n stroom e-posse te plaas. Ek het die 'Dan' -gedeelte van die resepte aangepas sodat almal 'n e -pos na die Gmail -rekening wat ek opgestel het vir kennisgewings stuur, en die afdeling 'Bestanddele' gebruik om seker te maak dat die belangrikste inligting in die e -posonderwerp ingesluit word, die gedeelte wat voorgelees word. Op die oomblik het ek die volgende IFTTT -resepte opgestel, maar dit word deurgaans bygevoeg!
- Stuur elke dag om 21:00 die weer van môre per e -pos
- Stuur elke dag by Sunset die datum en tyd per e -pos
- Stuur 'n e -pos as ek op 'n Facebook -foto gemerk is
- Stuur die batterypersentasie per e -pos as my telefoon ingeprop/ontkoppel is
- AS ek 'n geografiese gebied binnegaan, stuur 'n e -pos "MisterM het by die werk aangekom!"
- Stuur 'n e -pos as ek 'n YouTube -video oplaai
- As 'n spesifieke persoon twiet, stuur dit per e -pos
- Stuur dit per e -pos as 'n Google -kalender -gebeurtenis begin
- As die huidige weer na reën verander, stuur 'n e -pos ("Pas op, dit gaan begin reën!"
- Stuur 'n e -pos as die slimkontak aangeskakel of afgeskakel is
- INDIEN 'n nuwe SMS -boodskap ontvang word, stuur dit per e -pos
- As 'n telefoonbattery onder 15% daal, stuur 'n e -pos ("Laai jou foon jou idioot")
- Stuur 'n e -pos as ek 'n nuwe Twitter -volgeling of vermelding het
Dit is 'n wonderlike mengsel van voorspelbare daaglikse gebeure en onverwagte aankondigings - my gunsteling is die Sunset -kennisgewing, dit is interessant om hierdie tyd van die jaar te sien hoe sy tyd daagliks verander. Die Twitter -kennisgewings is die lekkerste; op die oomblik lees dit nuwe tweets van "Beef & Dairy Network", "Very British Problems", "My Sweary Cat" en "Henry Thoreau" (alhoewel sommige hiervan afgeskakel word) die IFTTT -app in 'n beleefde onderneming). As u spesifieke Twitter -rekeninge kan lees, is dit baie buigsaam, en dit kan via IFTTT aangepas word eerder as om die Pi elke keer te herprogrammeer.
Stap 4: Klankopsies
Daarna moes ek die klank uitsorteer, met twee uitdagings! Eerstens hoe om die klank uit die Pi te haal. Anders as sy groter broer, het die Pi Zero geen 3,5 mm -klankuitset nie, so ek moes 'n adapter gebruik. Ek het aanvanklik gedink ek sou 'n HDMI -na -VGA + -aansluiting gebruik, maar dit het na 'n oormaat gelyk (en ek het dit nodig gehad vir 'n ander projek!), En ek het 'n goedkoop USB -klankadapter gebruik. Dit was redelik maklik om op te stel, net om die USB -klankkaart as die standaard ALSA -toestel op die Pi te stel. Dit beteken wel dat ek 'n USB -hub moet insluit om die WiFi -adapter te huisves, maar ek het daarin geslaag om 'n ou een wat ek daar lê, uitmekaar te haal en weer te gebruik.
Tweedens moes ek 'n versterker/luidsprekerkombinasie kies wat 'n goeie kwaliteit klank gee en voortdurend aangeskakel word. Ek het al voorheen luidsprekers met batterye gebruik, maar dit is nie nodig om dit gereeld te laai nie, maar dit het ook gereeld 'n opvallende agtergrond gesis. Ek het in die verlede ook ou iPod -dokke gekanibaliseer, maar hierdie funksies het gewoonlik energiebesparende funksies en is na 'n paar minute stilte afgeskakel.
Uiteindelik het ek iets nuuts, 'n paar PC -luidsprekers, teen 'n winskopie van £ 6,99. Ek het nie te veel verwag nie, maar die klankgehalte was absoluut goed, sonder dat daar gesis of tydsberekening was. Die ekstra bonus van die PC -luidsprekers was dat hulle 'n aan/uit -skakelaar en volumeknop bevat, wat ek gehoop het om aan die radio se oorspronklike kontroles te koppel. Dit werk alles op die bank, so dit is nou tyd om dit in die tas te pas!
Stap 5: Retro -aanpassing
Toe ek die radio die eerste keer huis toe bring, het ek die oorspronklike stroombane verwyder wat letterlik roosterbrood was. Ek was egter beïndruk met die oorspronklike konstruksie, maar dit was duidelik ontwerp om maklik afgetakel en vasgemaak te word, aangesien die hele vergadering op 'n soort onderstel na 'n paar boute losgedraai het. Ek het besluit om dieselfde benadering te gebruik en die nuwe komponente aanmekaar te sit op 'n basis wat dan in die omhulsel kan skuif en soos die oorspronklike vasgemaak kan word.
Ek het begin met 'n dun houtrak van 'n ou DVD -rak, dit in grootte gesny en gate vir die boute geboor. Daarna het ek die luidsprekers uitmekaar gehaal en die plastiekhouers met 'n ystersaag en 'n draaibare gereedskap afgesny. Die nou slanke luidsprekers is aan die houtbasis vasgemaak met 'n 90 grade-houer van Meccano. Die versterkerkring was die volgende - as gevolg van ruimtebeperkings, moes dit ongelukkig onderstebo gemonteer word en ongeveer 'n duim bokant die basis gehys word. Ek moes 'n soort pilaaropstelling bou om die bord te ondersteun en te beveilig, maar ek het vasgeval hoe ek dit netjies moet doen. Die ideale oplossing was reg onder my neus - 'n kleurpotlood! Ek sny dele van die potlood in grootte en pas dit dan in gate wat in die basis geboor is. Die perfekte ding om 'n kleurpotlood te gebruik, is dat die "lood" in die middel baie maklik kan uitboor word, wat 'n maklike gat vir die skroewe van die printplaat laat.
Ek het 'n kombinasie van Meccano- en Lego -stukke gebruik om 'n beugel te maak om die Pi self te ondersteun, en ek het die verdwaalde leidings met kabelbinders opgeruim. Die volume- en aan/uit -skakelaars was verder uitmekaar op die luidsprekerbord as die gate in die radiokas (jy kan nie alles hê nie), en ek het dit uitgebrei met dele van 'n hol plastiekballonstok.
Stap 6: Saakwerk
Soos ek vroeër genoem het, was die radiokas in 'n verskriklike toestand, en ek het die ergste gate en krake met polyfilla reggemaak en dit heeltemal afgeskuur. Ek het besluit om 'n mooi roomkleur vir die verf te hou, om te koördineer met die bruin van die stemknop. Die verf was "primer en verf in een", maar ek het dit eers 'n paar lae primer gegee net om aan die veilige kant te wees. Die knoppe het 'n bietjie geskrap (60+ jaar vuil!), Maar dit kom goed uit - ek het die oorspronklike roomstemknop met 'n bout vasgemaak, aangesien dit nie aan enige komponente gekoppel was nie.
Nadat die verf verhard was, was dit tyd om alles bymekaar te maak - gewoonlik die deel van 'n projek wat my geduld die meeste toets! Hierdie keer het dit baie glad verloop, aangesien al die moeilike konstruksies reeds op die basis gedoen is, al wat ek hoef te doen was om die eenheid in die omhulsel te skuif, dit met die boute vas te maak en die knoppe aan te pas.
Die agterblad van die radio het ontbreek, so ek het 'n nuwe een gemaak uit 'n ou prentraamwerk en dieselfde roomkleur geverf.
Stap 7: Radio Times
Dit was 'n baie aangename projek om te bou; dit was goed om dinge redelik eenvoudig te hou en daarop te fokus om dit so skoon moontlik te maak. Soms was ek in die versoeking om 'n mikrofoon by te voeg vir Alexa-integrasie, en het selfs ernstig oorweeg om 'n Chromecast Audio in te bou (vir my gunsteling nuwe podcasts in die styl van ou radio), maar ek is bly dat ek dit eenvoudig en Ek is verheug oor die resultaat.
Dit is nou geïnstalleer op 'n luidspreker in die hoek van die sitkamer, en dit brand en praat af en toe net soos ek gehoop het. Die enigste nadeel is dat die deurskynende room en bruin draaiknop dit moeiliker maak om die briljante kleurreeks van die Blinkt te wys! Dit is redelik duidelik vir sonsondergangskennisgewings (oranje) en sms'e (pers), maar die weer is 'n bietjie dieselfde - ek moet net eksperimenteer met verskillende RGB -kleurkodes, dink ek!
As u van hierdie projek hou en meer wil sien, kan u op my webwerf gaan kyk vir projekopdaterings by bit.ly/OldTechNewSpec, sluit aan op Twitter @OldTechNewSpec of teken in op die groeiende YouTube -kanaal by bit.ly/oldtechtube - gee sommige van u Old Tech 'n nuwe spesifikasie!
Tweede prys in die IoT Builders Contest
Aanbeveel:
Shake Detecting Talking Hat With Circuit Playground Express: 12 stappe (met foto's)
Shake Detecting Talking Hat With Circuit Playground Express: Hierdie maklike en vinnige handleiding leer jou hoe om 'n hoed te maak! Dit sal met 'n noukeurig verwerkte antwoord reageer as u 'n vraag stel, en miskien kan dit u help om te besluit of u bekommerd of probleme het. In my Wearable Tech -klas het ek
Ted the Talking Toaster: 6 stappe (met foto's)
Ted the Talking Toaster: Gesprekke met 'n broodrooster was nog altyd baie eensydig. Tot nou toe, ontmoet Ted the talking Broodrooster! Hieronder 'n oorsig van die inhoud: Projekvideo Toaster Electronics Chat/Voice bot Remo.tv Wêreldoorheersing
Barbara: die Talking AI -kamera: 4 stappe (met foto's)
Barbara: die Talking AI -kamera: AI is die nuutste modewoord, hierdie projek gaan oor die effens nuttelose. Nadat u 'n netjiese API gevind het wat beelde en 'n ou kamera bevat, word die doelwitte gestel: 'n kamera wat die prentjie onderskryf
Talking Clock Tweetalig (EN+PT): 5 stappe (met foto's)
Talking Clock Tweetalig (EN+PT): The Talking Clock 2 (Tweetalig) is die nuwe weergawe van Talking Clock wat ek 'n geruime tyd gelede gepubliseer het. Die kode is opgedateer om twee tale (Engels/Portugees) te ondersteun en nuwe funksies is in die kode: modus 1: stel die tyd in (uur en uur
Bou 'n Arduino-aangedrewe Talking Robot Head !: 26 stappe (met foto's)
Bou 'n Arduino-aangedrewe Talking Robot Head !: Hierdie robotkop is oorspronklik gebou as 'n einde van die jaar-projek vir my fisiese rekenaarklas, maar in die somer het dit " geleer " hoe om te praat. Die kop word aangedryf deur twee Freeduinos, 3 TLC5940NT -skyfies en 'n Adafruit Industries