Satura rādītājs:

Vecākais radio - Raspberry Pi: 8 soļi
Vecākais radio - Raspberry Pi: 8 soļi

Video: Vecākais radio - Raspberry Pi: 8 soļi

Video: Vecākais radio - Raspberry Pi: 8 soļi
Video: Мало кто знает, но Бланка ветеран войны бесконечности 🦸🏻‍♀️ | Бланка и Рома | Shaykin #юмор #шортс 2024, Novembris
Anonim
Vecākais radio - Raspberry Pi
Vecākais radio - Raspberry Pi

Senior Radio projekts ir atvērtā koda pieejama interneta radio ierīce ar aparatūras un programmatūras komponentiem. Tas ir paredzēts lietotājiem, kuri pārzina kabatas radio vadību, ja ciparnīcas kontrolē skaļumu un izvēlēto radiostaciju. Projekts ir veidots ar uz lietotāju orientētu dizainu, koncentrējoties uz lietotāju, kurš vēlas līdzīgu izmēru un vadības ierīces kā standarta rokas radio.

Tā tika veidota, lai apmierinātu vajadzības, kas ļautu personām ar invaliditāti klausīties tūkstošiem dažādu interneta straumēšanas satura, kas parasti ir pieejams tikai parasti, izmantojot interneta pārlūkprogrammu. Daudziem cilvēkiem nav iespējas viegli izmantot šādu ierīci, tāpēc šī dizaina mērķis ir izveidot pazīstamu saskarni mūsdienu tehnoloģijām.

Galvenā funkcionalitāte ir vietnē Github, kas saglabāta python 3.7.3 programmā ar nosaukumu seniorRadio.py. Tas nolasa un raksta json failu, lai saglabātu radio stāvokli, tāpēc, izslēdzot to, tas atcerēsies pašreizējo audio līmeni un izvēlēto staciju. Turklāt tas nolasa tiešsaistē mitinātu json failu, kuru varat mainīt! Tas ļauj attālināti atjaunināt radiostacijas, ja to nododat kādam citam.

Pašlaik tas ir izveidots, lai izveidotu savienojumu ar Bluetooth skaļruni, taču to var viegli atskaņot arī ar iebūvētu skaļruni.

Šīs ierīces radītājs, visticamāk, nav lietotājs, un viņam ir nepieciešama vismaz zināma pieredze ar elektroniku un pamata programmēšanas zināšanām. Linux pieredze arī ir ļoti noderīga.

Lietotājam funkcionalitāte ir vienkārša:

Ieslēdzot to, tā atskaņos pēdējo noklusējuma audioierīcē izvēlēto staciju. Kreisais ciparnīca kontrolē staciju, kur daži klikšķi uz ciparnīcas tiek mainīti uz jaunu URL. Tas apgāzīsies pēc pēdējā vai pirmā ieraksta. Labais ciparnīca kontrolē skaņas līmeni. LED indikators norāda, ka programma ir ieslēgta. Un spiedpoga pauzē vai "izslēdz" radio. Tātad, kad tas ir ieslēgts, lietotājs var vienkārši nospiest pogu, lai apturētu/atskaņotu vai "izslēgtu/ieslēgtu", radio un divus ciparnīcas, lai to kontrolētu.

Piegādes

Katram vienumam ir saite, kuru es izmantoju. Kopā man izmaksāja aptuveni 60 ASV dolārus ar lielu daudzumu palikušo krājumu!

Pamatzināšanas par elektroniku un Linux - montāžai un atkļūdošanai

Raspberry Pi Zero W (Zero WH galvenes ir iepriekš lodētas un, iespējams, noderīgas)

MicroSD karte-8 GB+ un spēja o

MicroUSB 5V strāvas adapteris - saite ietver arī microHDMI adapteri un microUSB OTG - USB A adapteri, lai tos iestatītu, ja tie jums nepieciešami

Bluetooth skaļrunis

M/F un M/M džemperu kabeļi

2 Rotējošais kodētājs - tāda pati saite kā iepriekš

Neliels maizes dēlis

Uzspied pogu

LED (pēc izvēles) - nopirkts LED + spiedpoga augstāk

Kastīte iepakošanai

1. darbība. Iestatīšana (bez galvas) Raspberry Pi W

Iestatīšana (bez galvas) Raspberry Pi W
Iestatīšana (bez galvas) Raspberry Pi W

Mums ir jāiestata operētājsistēma uz aveņu pi, kurā darbosies programmatūra. Nekas no šī nav unikāls šim projektam. Atkļūdošanai es ieteiktu to iestatīt, lai varētu piekļūt arī bezgalvainā režīmā. Tas nozīmē, ka piekļūstat pi savam WiFi tīklam, izmantojot GUI vai SSH termināli, un, lai to lietotu katru reizi, nav nepieciešama tastatūra, pele un monitors. Jūs to varētu izdarīt, neprasot savienojumu ar monitoru/peli/tastatūru, ja esat gudrāks par tehnoloģijām. Šeit ir daži norādījumu piemēri. Tomēr tas ir mazāk taisns uz priekšu, un zemāk ir vēl viens veids, kā to iestatīt.

Šajā pirmajā reizē jums, iespējams, būs nepieciešams:

  • Raspberry Pi W
  • MicroSD uz SD kartes adapteris [lai ierakstītu OS uz SD kartes]
  • MicroSD karte (~ 8 GB+) [lai saglabātu OS un mūsu programmu]
  • MicroUSB jauda (5V)
  • No MicroUSB uz USB A [pelei/tastatūrai]
  • Mini HDMI uz HDMI adapteris [displeja izvadei]
  • Tastatūra
  • Pele
  • Monitors

Pirmkārt, operētājsistēma jāpārliecina uz rPi micro SD karti.

Es izmantoju raspian buster, jūs to lejupielādējat datorā ar SD karšu lasītāju/rakstītāju un pēc tam zibatmiņas raspian OS uz SD karti. BalenaEtcher ir vienkārša programmatūra, lai to izdarītu

Pēc tam ievietojiet SD karti pi slotā, pievienojiet monitoru, tastatūru un barošanu. Veiciet iestatīšanas darbības, kuras jums piedāvā Raspian, tostarp pievienojiet to savam WiFi tīklam un savienojiet pārī Bluetooth skaļruni, izmantojot GUI. Laba prakse būtu to atjaunināt, izmantojot šādas komandas

sudo apt-get update

sudo apt-get jauninājums

Ja vēlaties iekļaut zīmoga pi atzīmēšanu bez galvas, mums vispirms būs jāpaķer pi IP adrese. Izmantojot termināli, to var atrast, izmantojot

ifconfig

komandu. Pēc tam jums ir jāiespējo SSH un VNC, izmantojot saskarnes opcijas

sudo raspi-config

Pēc restartēšanas tagad varat pārbaudīt piekļuvi pi, izmantojot SSH vai VNC. SSH ir tikai termināļa saskarne, un jums var būt vieglāk izmantot GUI, lai savienotu pārī Bluetooth skaļruni. Varat izmantot tādu programmu kā VNC connect, lai ērti piekļūtu savam pi atsevišķā datora tīklā. Jūs varat izmantot tādu programmu kā tepe SSH.

Turklāt varat iestatīt VNC mākoņa kontu, lai vajadzības gadījumā varētu piekļūt ierīcei ārpus tīkla

2. darbība: instalējiet vecāko radio programmatūru

Instalējiet vecāko radio programmatūru
Instalējiet vecāko radio programmatūru

To var izdarīt no aveņu pi termināla loga. Vispirms pārliecinieties, vai esat instalējis git

sudo apt-get instalēt git

Atkarībā no instalētās operētājsistēmas šīs darbības var atšķirties, jo, iespējams, būs jāinstalē papildu pakotnes, sistēma jums to pateiks. Vispirms mums ir nepieciešams lejupielādēt vecāko radio kodu no github. https://github.com/Bunborn/seniorRadio Ideālā gadījumā jūs veidojat savu repo, lai jūs varētu veikt izmaiņas un viegli mainīt radiostacijas tāpat kā es. Dodiet repo, ja tā

Tomēr jūs varat izmantot to pašu, ko man, bez problēmām, ja vēlaties mitināt savu radio json failu citā vietā

Pēc tam klonējiet repo jebkurā vietā, kur vēlaties. Noklusējuma direktorijs ir labs. Iegūstiet vajadzīgā github repo URL, noklikšķinot uz zaļā klona vai lejupielādes pogas.

Atpakaļ termināļa logā, git klons

Tagad, skatoties, izmantojot ls, jums vajadzētu redzēt papildu direktoriju ar nosaukumu seniorRadio. Fantastiski!

Kods ir paredzēts pašdokumentējošam, būtu noderīgi to apskatīt. Īpaši atkļūdošanas nolūkos un ja maināt sistēmu.

3. darbība: instalējiet papildu programmatūru

Instalējiet papildu programmatūru
Instalējiet papildu programmatūru

Pirms mēs pārietam uz ķēdi un to pārbaudām, mums arī ir jālejupielādē VLC un python api. Iespējams, jums jau ir instalēta VLC. Pirmās divas komandas atjauninās pi, un pēdējās divas tālāk norādītās komandas instalēs VLC un pēc tam python api

sudo apt-get update

sudo apt-get jauninājums

sudo snap instalēt VLC

sudo apt-get install vlc-python

Turklāt instalējiet arī gpiozero, kuru mēs izmantosim, lai izveidotu saskarni ar pi GPIO tapām. Iespējams, tas jau ir instalēts atkarībā no jūsu operētājsistēmas.

sudo apt-get install gpiozero

4. solis: atrodiet radio staciju straumes

Atrodiet radio staciju straumes
Atrodiet radio staciju straumes

Tālāk viena no jautrākajām daļām! Laiks izvēlēties vēlamās straumes.

Manā internetStations.json failā varat redzēt manas straumes saites, galvenokārt ziņas un mūziku. Bet tur ir ļoti daudz mitināta satura. Galvenais šeit ir atrast tiešās straumes URL adresi. Piemēram, BBC ziņas un mūzikas stacijas var atrast šeit, šajā emuārā. Šīm tiešajām straumēm nebūs grafiska interfeisa, un tās tiks automātiski atskaņotas, izmantojot jūsu pārlūkprogrammas multivides atskaņotāju. Šie ir mums vajadzīgie URL, lai VLC varētu tos lasīt! Jūs varat ātri pārbaudīt jebkuru saiti savā tīmekļa pārlūkā vai parastā datora VLC, lai pārliecinātos, ka tā darbosies ar pi.

Lai atrastu šīs stacijas, varat meklēt tiešo straumi tiešsaistē, ja pakalpojums to mitina. Ātrs veids varētu būt arī straumes atskaņošana, ar peles labo pogu noklikšķiniet uz pārlūkprogrammas un nospiediet "pārbaudīt elementu". Pārejiet uz cilni Tīkls, un tajā jānorāda straumes tiešais URL. Šis youtube video to parāda. Palīdzēs lapas atsvaidzināšana ar atvērtu cilni.

Kad esat izveidojis savas stacijas, vēlaties tās ievietot tiešsaistē, lai jūsu seniorRadio python programma varētu tās satvert. Lai to izdarītu, ir daudz iespēju, varat izmantot tādas vietnes kā Github, bitbucket vai pat sourceforge. Šī saraksta mitināšanas galvenais mērķis tiešsaistē ir tāds, ka lietotājs, kas to izveido, var attālināti mainīt straumju sarakstu tiešsaistē.

Python programmas sākumā ir mainīgais ar nosaukumu url, vienkārši mainiet to, lai tas būtu json faila URL ar stacijas URL saitēm

Varat izmantot to pašu formātu kā mans internetStation.json fails. Ja vēlaties izmantot arī github, varat vienkārši uzvilkt manu seniorRadio krātuvi un rediģēt savu failu InternetStation.json un norādīt to uz šo “neapstrādāto” URL. To varat atrast zemāk Github GUI, kad noklikšķinājāt uz faila.

5. solis: izveidojiet shēmas

Izveidojiet shēmas
Izveidojiet shēmas

Tagad mums ir jāiestata ķēde. Tas mainīsies atkarībā no jūsu aprīkojuma, bet zemāk ir norādīts, kā es to iestatīju.

pinout.xyz/, lai uzzinātu, kuras tapas ir. Tā kā mēs izmantojam gpiozero bibliotēku, mēs esam saistīti tikai ar BCM tapu numerāciju. Ņemiet vērā, ka es nopirku dažus papildu KY040 rotējošos kodētājus - ciparnīcas - lai tos pārbaudītu, jo tiem visiem nav vienādas precizitātes. Katram no tiem būtu kāda "atlecoša" vai vienkārši nepareiza izlaide, tāpēc es izvēlējos labāko no diviem, kas man bija. Kodā jūs atzīmēsit, ka ir arī daži soļi, lai ierobežotu šo atlēcienu.

Savu spiedpogu pievienoju BCM tapai 17 un zemei

Mans LED uz 1k omu rezistoru, tad BCM tapa 27 un zeme

Maniem KY040 rotējošajiem kodētājiem bija + vads līdz 5 V, GND pie zemes un SW atvienots. Tie bija savienoti, izmantojot nelielu maizes dēli

Stacijas rotējošā kodētāja dt tapa savienota ar BCM tapu 21

Stacijas rotējošā kodētāja klikšķa tapa savienota ar BCM tapu 20

Audio līmeņa rotējošā kodētāja dt tapa savienota ar BCM tapu 19

Audio līmeņa rotējošā kodētāja klikšķa tapa savienota ar BCM tapu 16

Ja maināt šīs tapas, vienkārši atjauniniet numuru python programmā, kā arī vietās, kur tā nosaka apstrādātājus

Es to izmantoju, lai to atvieglotu. Es izmantoju arī M/M un M/F džemperu vadus, lai atvieglotu saskarni. Es pielodēju dažus džemperu vadu vadus uz iepriekš iegādātās pogas/gaismas diodes tapām. Lai nelodētu, jūs varētu iegūt spiedpogas un gaismas diodes, kurām jau ir džemperu vadi vai kuras varētu viegli savienot ar vienu.

6. darbība: pārbaudiet to

Tagad jums vajadzētu būt funkcionējošai sistēmai! Izmēģināsim. Dodieties uz mapi ar python programmu, iespējams:

cd seniorRadio

python3 seniorRadio.py

Pašlaik programmas sākumā ir 45 sekunžu aizkave, lai dotu tai laiku atrast Bluetooth skaļruni ieslēgšanas brīdī. Jūs varat komentēt šo rindiņu, ja testēšanas laikā tas nav vajadzīgs. Programma var jums pateikt, ka jums jāinstalē papildu pakotnes, ja tā, turpiniet. Var būt nepieciešams instalēt arī jaunāku Python versiju.

sudo apt-get install python3.7

Dažas iespējamās problēmas, pat ja programma darbojas:

Es nedzirdu skaņas

Pārliecinieties, vai skaļrunis ir ieslēgts un atlasīts jūsu aveņu pi. Izmantojot GUI, jums vajadzētu būt iespējai to savienot pārī un pēc tam atlasīt to kā audio izvades ierīci. Turklāt pārbaudiet audio draiverus. Bieži sastopama problēma ir tā, ka, iespējams, būs jāpārinstalē pulseaudio pakotne

Skaņa ir nestabila vai tiek iegriezta un izslēgta

Mēģiniet pārvietot ierīci tuvāk WiFi maršrutētājam. Turklāt pārliecinieties, ka Bluetooth skaļrunis atrodas tuvumā. Var būt arī audio draivera problēma

7. solis: ievietojiet pastāvīgā korpusā

Ievietojiet pastāvīgā korpusā
Ievietojiet pastāvīgā korpusā

Pēc tam ievietojiet to kastē vai līdzīgā ierīcē, lai tā varētu pastāvīgi dzīvot. Es iesaku jums izveidot tādu, kam vēlāk varēsit piekļūt atkļūdošanai. Es saņēmu šo mazo koka kastīti amatniecības veikalā par 2 ASV dolāriem un piesaistīju to piegādes lapā. Viens no maniem draugiem ieteica cigāru kastīti.

Pēc tam es izgriezu caurumus priekšpusē spiedpogai un rotējošajiem slēdžiem, un urbju caurumu kastes aizmugurē microUSB strāvas vadam.

Es pārbaudīju stiprinājumu un pārliecinājos, ka tas darbojas, un voilà!

Visbeidzot, es izmantoju super līmi, lai turētu nospiestu pogu. Mana maizes dēļa apakšā bija līme, ko es savienoju ar daļu no kastes. Es izmantoju nelielu līmlentes sloksni, lai piestiprinātu pi aizmuguri pie kastes, lai vajadzības gadījumā to varētu pārvietot vēlāk.

8. darbība. Iestatīšanas programma, kas tiks palaista startēšanas laikā

Visbeidzot, jūs, iespējams, vēlēsities, lai šī python programma darbotos, ieslēdzot aveņu pi, tāpēc jums tas nav jādara manuāli. To var izdarīt daudzos veidos, kurus varat atrast tiešsaistē.

Personīgi es to iestatīju, izmantojot otro SparkFun apmācības veidu:

Šeit tā pirms programmas palaišanas gaida, līdz sistēma ieies grafiskajā darbvirsmā. Pēc tam python programma to aizkavē 45 sekundes, lai dotu sistēmai laiku atjaunot savienojumu ar Bluetooth skaļruni. Ja izmantojat integrētu skaļruni, varat noņemt šo aizkavi. Ņemiet vērā, ka vispirms jābūt ieslēgtam Bluetooth skaļrunim! (Bluetooth risinājumam)

Tagad jūs varat mēģināt izslēgt un atkārtoti ieslēgt savu pi! Pēc aptuveni 90 sekundēm jūsu pi atkal sāks atskaņot radio straumes. Nospiežot pogu, tā tiks apturēta/atskaņota. Piezīme par šīm atsāknēšanas reizēm tajā tiek nolasīts internetStations json fails, tādēļ, ja maināt stacijas, ierīce ir jārestartē, lai tās darbotos. Apsveicam!

Ja jūs to izdarījāt vai veicāt izmaiņas projektā, lūdzu, informējiet mani!

Github lapa:

Ieteicams: