Turinys:

Vyresnysis radijas - „Raspberry Pi“: 8 žingsniai
Vyresnysis radijas - „Raspberry Pi“: 8 žingsniai

Video: Vyresnysis radijas - „Raspberry Pi“: 8 žingsniai

Video: Vyresnysis radijas - „Raspberry Pi“: 8 žingsniai
Video: Building Apps for Mobile, Gaming, IoT, and more using AWS DynamoDB by Rick Houlihan 2024, Liepa
Anonim
Vyresnysis radijas - Raspberry Pi
Vyresnysis radijas - Raspberry Pi

Projektas „Senior Radio“yra atviro kodo prieinamas interneto radijo įrenginys su aparatine ir programine įranga. Jis skirtas naudotojams, kurie yra susipažinę su kišeninio radijo valdymu, kai ratukas valdo garsumą ir pasirinktą radijo stotį. Projektas sukurtas pagal į vartotoją orientuotą dizainą, orientuotą į vartotoją, kuris nori panašaus dydžio ir valdiklių kaip standartinis rankinis radijas.

Jis buvo sukurtas siekiant patenkinti poreikius, leidžiančius žmonėms su negalia klausytis tūkstančių skirtingų interneto srautinio turinio, kuris paprastai paprastai pasiekiamas tik per interneto naršyklę. Daugelis žmonių neturi galimybės lengvai naudotis tokiu įrenginiu, todėl šiuo dizainu siekiama sukurti pažįstamą šiuolaikinių technologijų sąsają.

Pagrindinės funkcijos yra „Github“, saugomos „python 3.7.3“programoje, pavadintoje „seniorRadio.py“. Jis skaito ir rašo json failą, kad išsaugotų radijo būseną, taigi, kai jį išjungsite, jis prisimins esamą garso lygį ir pasirinktą stotį. Be to, jis skaito internete priglobtą json failą, kurį galite pakeisti! Tai leidžia atnaujinti radijo stotis nuotoliniu būdu, jei tai perduodate kam nors kitam.

Šiuo metu jis sukurtas prisijungti prie „Bluetooth“garsiakalbio, tačiau jį taip pat būtų galima lengvai atkurti ir įmontuotą garsiakalbį.

Šio įrenginio kūrėjas greičiausiai nėra vartotojas, jam reikia bent šiek tiek patirties su elektronika ir pagrindinėmis programavimo žiniomis. „Linux“patirtis taip pat labai naudinga.

Vartotojui funkcionalumas yra paprastas:

Įjungus, jis paleis paskutinę pasirinktą stotį per numatytąjį garso įrenginį. Kairysis ratukas valdo stotį, kurioje keli ratuko paspaudimai pasikeičia į naują URL. Jis bus apverstas po paskutinio ar pirmo įrašo. Dešinysis ratukas valdo garso lygį. Šviesos diodas rodo, kad programa įjungta. Ir mygtukas pristabdo arba „išjungia“radiją. Taigi, kai įjungtas, vartotojas gali tiesiog paspausti mygtuką, norėdamas pristabdyti/leisti arba „išjungti/įjungti“, radiją ir du ratukus, kad jį valdytų.

Prekės

Ant kiekvieno elemento yra nuoroda, kurią naudojau. Iš viso man kainavo apie 60 USD su daugybe atsargų!

Pagrindinės elektroninės ir „Linux“žinios - surinkimui ir derinimui

„Raspberry Pi Zero W“(„Zero WH“antraštės yra iš anksto lituotos ir greičiausiai naudingos)

„MicroSD“kortelė-8 GB+ ir galimybė o

„MicroUSB 5V“maitinimo adapteris - „Link“taip pat apima „microHDMI“adapterį ir „microUSB OTG to USB A“adapterį, jei reikia, norint juos nustatyti

„Bluetooth“garsiakalbis

M/F ir M/M jungiamieji kabeliai

2 Sukamasis kodavimo įrenginys - ta pati nuoroda kaip aukščiau

Maža duonos lenta

Mygtukas

LED (pasirinktinai) - pirktas LED + mygtukas aukščiau

Dėžutė pakavimui

1 žingsnis: „Raspberry Pi W“sąranka (be galvos)

Sąranka (be galvos) Raspberry Pi W
Sąranka (be galvos) Raspberry Pi W

Turime nustatyti operacinę sistemą „Raspberry pi“, kuri paleis programinę įrangą. Visa tai nėra būdinga tik šiam projektui. Derinimui rekomenduočiau jį nustatyti, kad taip pat galėtumėte pasiekti režimą be galvos. Tai reiškia, kad prieiga prie „pi“per „WiFi“tinklą atliekama naudojant GUI arba SSH terminalą ir nereikia klaviatūros, pelės ir monitoriaus, kad galėtumėte jį naudoti kiekvieną kartą. Tai galite padaryti neprisijungę prie monitoriaus/pelės/klaviatūros, jei labiau išmanote technologijas. Keletas instrukcijų pavyzdžių čia. Tačiau jis yra mažiau tiesus į priekį, o žemiau yra dar vienas būdas jį nustatyti.

Pirmą kartą jums greičiausiai reikės:

  • Raspberry Pi W
  • „MicroSD“į SD kortelės adapteris [norint įrašyti OS į SD kortelę]
  • „MicroSD“kortelė (~ 8 GB+) [OS ir mūsų programai išsaugoti]
  • „MicroUSB“maitinimas (5V)
  • „MicroUSB“į USB A [pelė/klaviatūra]
  • Mini HDMI į HDMI adapteris [ekrano išėjimui]
  • Klaviatūra
  • Pelė
  • Monitorius

Pirmiausia turėsite perkelti operacinę sistemą į „rPi micro SD“kortelę.

Aš naudoju raspian buster, atsisiųskite jį į kompiuterį su SD kortelės skaitytuvu/rašytoju ir tada paleiskite raspian OS į SD kortelę. „BalenaEtcher“yra paprasta programinė įranga, skirta tai padaryti

Tada įdėkite SD kortelę į pi lizdą, prijunkite monitorių, klaviatūrą ir maitinimą. Atlikite „Raspian“raginimus atlikti sąrankos veiksmus, įskaitant prijungimą prie „WiFi“tinklo ir „Bluetooth“garsiakalbio suporavimą per GUI. Gera praktika būtų ją atnaujinti naudojant šias komandas

sudo apt-get atnaujinimas

sudo apt-get atnaujinimas

Jei norite įtraukti savo „pi“žymėjimą be galvos, pirmiausia turėsime paimti pi „ip“adresą. Per terminalą galite jį rasti per

ifconfig

komandą. Tada turite įgalinti SSH ir VNC per sąsajos parinktis

sudo raspi-config

Po naujo paleidimo dabar galite išbandyti prieigą prie pi per SSH arba VNC. SSH yra tik terminalo sąsaja, ir jums gali būti lengviau naudoti GUI, kad suporuotumėte „Bluetooth“garsiakalbį. Galite naudoti tokią programą kaip „VNC connect“, kad lengvai pasiektumėte „pi“atskirame tinklo kompiuteryje. SSH galite naudoti tokią programą kaip glaistas.

Be to, galite nustatyti VNC debesies paskyrą, kad prireikus galėtumėte pasiekti įrenginį iš tinklo

2 veiksmas: įdiekite „Senior Radio“programinę įrangą

Įdiekite „Senior Radio“programinę įrangą
Įdiekite „Senior Radio“programinę įrangą

Tai galima padaryti iš aviečių pi terminalo lango. Pirmiausia įsitikinkite, kad įdiegėte „git“

sudo apt-get install git

Priklausomai nuo to, kokią operacinę sistemą įdiegėte, šie veiksmai gali skirtis, nes gali tekti įdiegti papildomus paketus, sistema jums tai pasakys. Pirmiausia turime atsisiųsti vyresniojo radijo kodą iš „github“. https://github.com/Bunborn/seniorRadio Idealiu atveju jūs darote savo repą, kad galėtumėte atlikti pakeitimus ir lengvai pakeisti radijo stotis taip, kaip aš. Jei taip, atšaukite repą

Tačiau galite naudoti tą patį, kaip ir mano, be problemų, jei norite savo radijo json failą priglobti kitoje vietoje

Tada klonuokite atpirkimo sandorį bet kurioje norimoje vietoje. Numatytasis katalogas yra geras. Paspauskite žalią kloną arba atsisiuntimo mygtuką, kad gautumėte URL, kurio „github“repo norite.

Atgal į terminalo langą, git klonas

Dabar, kai žiūrite naudodami „ls“, turėtumėte pamatyti papildomą katalogą, pavadintą seniorRadio. Fantastinis!

Kodas yra skirtas savarankiškai dokumentuoti, būtų naudinga jį peržiūrėti. Ypač derinimo tikslais ir jei keičiate sistemą.

3 veiksmas: įdiekite papildomą programinę įrangą

Įdiekite papildomą programinę įrangą
Įdiekite papildomą programinę įrangą

Prieš pereidami prie grandinės ir ją išbandydami, taip pat turime atsisiųsti VLC ir „python api“. Galbūt jau esate įdiegę VLC. Pirmosios dvi komandos atnaujins pi, o paskutinės dvi žemiau pateiktos komandos įdiegs VLC, o tada - python api

sudo apt-get atnaujinimas

sudo apt-get atnaujinimas

sudo snap įdiegti VLC

sudo apt-get install vlc-python

Be to, taip pat įdiekite „gpiozero“, kurį naudosime sąsajai su pi GPIO kaiščiais. Priklausomai nuo jūsų operacinės sistemos, ji jau gali būti įdiegta.

sudo apt-get install gpiozero

4 žingsnis: raskite radijo stočių srautus

Raskite radijo stočių srautus
Raskite radijo stočių srautus

Toliau, viena įdomiausių dalių! Laikas pasirinkti bet kokius norimus srautus.

Mano faile „InternetStations.json“galite pamatyti mano srauto nuorodas, daugiausia skirtas naujienoms ir muzikai. Tačiau ten yra daugybė priglobto turinio. Svarbiausia čia rasti tiesioginio srauto URL adresą. Pavyzdžiui, BBC naujienų ir muzikos stotis rasite čia, šiame tinklaraštyje. Šie tiesioginiai srautai neturės jokios grafinės sąsajos ir bus automatiškai paleisti srautą per jūsų naršyklės medijos leistuvą. Tai yra URL, kurių mums reikia, kad VLC galėtų juos perskaityti! Galite greitai išbandyti bet kurią nuorodą žiniatinklio naršyklėje arba per VLC įprastame kompiuteryje, kad įsitikintumėte, jog ji veiks su „pi“.

Norėdami rasti šias stotis, galite ieškoti tiesioginio srauto internete, jei paslauga ją priglobia. Greitas būdas taip pat gali būti paleisti srautą, dešiniuoju pelės mygtuku spustelėti naršyklę ir paspausti „apžiūrėti elementą“. Eikite į tinklo skirtuką ir jame turėtų būti nurodytas tiesioginis srauto URL. Tai rodo „YouTube“vaizdo įrašas. Puslapio atnaujinimas atidarius skirtuką turėtų padėti.

Kai turėsite savo stotis, norite jas patalpinti internete, kad jūsų „Senior Radio“python programa galėtų jas patraukti. Yra daug galimybių tai padaryti, galite naudoti tokias svetaines kaip „Github“, „bitbucket“ar net „sourceforge“. Pagrindinis šio sąrašo prieglobos tikslas yra toks, kad jį nustatęs vartotojas galėtų nuotoliniu būdu keisti srautų sąrašą internete.

„Python“programos pradžioje yra kintamasis, vadinamas url, tiesiog pakeiskite tai į savo „json“failo URL su stoties URL nuorodomis

Galite naudoti tą patį formatą kaip ir mano internetStation.json failas. Jei taip pat norėtumėte naudoti „github“, galite tiesiog išsišakoti mano „seniorRadio“saugykloje ir redaguoti savo failą „InternetStation.json“ir nukreipti jį į tą „neapdorotą“URL. Tai galite rasti žemiau „Github“GUI, kai spustelėjote failą.

5 žingsnis: sukurkite grandines

Sukurkite grandines
Sukurkite grandines

Dabar turime nustatyti grandinę. Tai pasikeis, atsižvelgiant į jūsų įrangą, tačiau žemiau yra tai, kaip aš nustatiau savo.

pinout.xyz/, kad sužinotumėte, kurie kaiščiai yra. Kadangi naudojame „gpiozero“biblioteką, mums rūpi tik BCM kaiščių numeracija. Atkreipkite dėmesį, kad aš nusipirkau keletą papildomų KY040 rotacinių kodavimo įrenginių - ratukus, kad juos išbandyčiau, nes jie visi nėra vienodo tikslumo. Kiekvienas iš jų turėtų „šoktelėjimą“arba tiesiog neteisingą rezultatą, todėl aš pasirinkau geriausią iš dviejų turimų. Kode pastebėsite, kad taip pat reikia apriboti šį atšokimą.

Prijungiau savo mygtuką prie BCM kaiščio 17 ir įžeminau

Mano šviesos diodas prie 1k omo rezistoriaus, tada BCM kaištis 27 ir įžemintas

Mano KY040 rotaciniai kodavimo įrenginiai turėjo + 5 V įtampą, GND įžemino ir SW buvo atjungti. Jie buvo sujungti per mini duonos lentą

Stoties rotacinio kodavimo dt kaištis prijungtas prie BCM kaiščio 21

Stoties sukamojo kodavimo įrenginio kaištis, prijungtas prie BCM kaiščio 20

Garso lygio sukamojo kodavimo dt kaištis prijungtas prie BCM kaiščio 19

Garso lygio sukamasis kodavimo įrenginys, prijungtas prie BCM kaiščio 16

Jei pakeisite šiuos kaiščius, tiesiog atnaujinkite skaičių „python“programoje ir ten, kur jis nustato tvarkytojus

Norėdami tai padaryti, aš naudoju mini duonos lentą. Sąsajai palengvinti taip pat naudoju M/M ir M/F trumpiklius. Aš lituodavau keletą trumpųjų laidų laidų ant anksčiau įsigyto mygtuko/šviesos diodo kaiščių. Jei nenorite lituoti, galite gauti mygtukus ir šviesos diodus, kuriuose jau yra jungiamieji laidai arba kurie būtų lengvai prijungiami prie vieno.

6 žingsnis: išbandykite

Dabar turėtumėte turėti veikiančią sistemą! Išbandykime. Eikite į aplanką su „python“programa, greičiausiai:

cd senjoras Radijas

python3 seniorRadio.py

Šiuo metu programos pradžioje yra 45 sekundžių vėlavimas, kad būtų suteikta laiko surasti įjungtą „Bluetooth“garsiakalbį. Galite pakomentuoti šią eilutę, jei jums to nereikia bandymo metu. Programa gali pasakyti, kad turite įdiegti papildomus paketus, jei taip, eikite į priekį. Taip pat gali reikėti įdiegti naujesnę „Python“versiją.

sudo apt-get install python3.7

Kai kurios galimos problemos, net jei programa veikia:

Aš negirdžiu jokio garso

Įsitikinkite, kad garsiakalbis yra įjungtas ir pasirinktas jūsų aviečių pi. Naudodami GUI turėtumėte turėti galimybę jį suporuoti ir pasirinkti kaip garso išvesties įrenginį. Be to, patikrinkite garso tvarkykles. Dažna problema yra ta, kad gali tekti iš naujo įdiegti „pulseaudio“paketą

Garsas nutrūksta arba įjungiamas ir išjungiamas

Pabandykite perkelti įrenginį arčiau „WiFi“maršrutizatoriaus. Be to, įsitikinkite, kad „Bluetooth“garsiakalbis yra šalia. Taip pat gali kilti garso tvarkyklės problema

7 žingsnis: įdėkite į nuolatinį korpusą

Įdėkite į nuolatinį korpusą
Įdėkite į nuolatinį korpusą

Tada įdėkite jį į dėžę ar panašų įrenginį, kad jis galėtų nuolat gyventi. Aš rekomenduoju turėti tą, prie kurio galėsite prisijungti vėliau, kad galėtumėte derinti. Aš gavau šią mažą medinę dėžutę amatų parduotuvėje už 2 USD ir susiejau ją su prekių puslapiu. Vienas iš mano draugų rekomendavo cigarų dėžutę.

Tada priekyje išpjoviau skyles mygtukui ir sukamiesiems jungikliams, o dėžutės gale išgręžiau skylę „microUSB“maitinimo laidui.

Aš išbandžiau laikiklį ir įsitikinau, kad jis veikia, ir voilà!

Galiausiai naudoju super klijus, kad laikyčiau mygtuką. Mano duonos lentos apačioje buvo klijai, kuriuos prijungiau prie dėžutės dalies. Aš naudoju nedidelę lipnios juostos juostelę, kad pritvirtinčiau pi galą prie dėžutės, todėl prireikus ją būtų galima perkelti vėliau.

8 veiksmas: nustatykite programą, kurią reikia paleisti paleidžiant

Galiausiai, greičiausiai norėsite, kad ši „python“programa būtų paleista paleidžiant „aviečių pi“, todėl jums nereikės to daryti rankiniu būdu. Yra daug būdų tai padaryti, kuriuos galite rasti internete.

Asmeniškai aš jį sukūriau naudodamas antrąjį būdą šioje „SparkFun“pamokoje:

Čia, prieš paleidžiant programą, ji laukia, kol sistema pateks į grafinį darbalaukį. Tada „python“programa jį atideda 45 sekundes, kad suteiktų sistemai laiko vėl prisijungti prie „Bluetooth“garsiakalbio. Jei naudojate integruotą garsiakalbį, galite pašalinti šį uždelsimą. Atminkite, kad pirmiausia turi būti įjungtas „Bluetooth“garsiakalbis! („Bluetooth“sprendimui)

Dabar galite pabandyti išjungti ir vėl įjungti „pi“! Po maždaug 90 sekundžių jūsų „pi“turėtų vėl pradėti leisti radijo srautus. Paspaudus mygtuką, jis bus pristabdytas/paleistas. Pastaba apie šiuos perkrovimus iš naujo nuskaito tą „InternetStations json“failą, todėl jei pakeisite savo stotis, turite iš naujo paleisti įrenginį, kad jos veiktų. Sveikinu!

Jei tai padarėte ar pakeitėte projektą, praneškite man!

„Github“puslapis:

Rekomenduojamas: