Turinys:

Vieno mygtuko radijo transliacijos dėžutė: 7 žingsniai (su nuotraukomis)
Vieno mygtuko radijo transliacijos dėžutė: 7 žingsniai (su nuotraukomis)

Video: Vieno mygtuko radijo transliacijos dėžutė: 7 žingsniai (su nuotraukomis)

Video: Vieno mygtuko radijo transliacijos dėžutė: 7 žingsniai (su nuotraukomis)
Video: CS50 2015 - Week 7 2024, Lapkritis
Anonim
Vieno mygtuko radijo transliacijos dėžutė
Vieno mygtuko radijo transliacijos dėžutė

Aš sukūriau dėžutę savo draugo barui, kurios viduje yra „Raspberry Pi“, ir vienu mygtuko paspaudimu jis perduoda garsą į svetainę, naudodamas „Darkice“ir „Icecast“, tuo pačiu metu įžiebdamas „On-Air“ženklą. Maniau, kad tai buvo kažkas, ką žmonės jau daro, bet po išsamių paieškų nieko neradau ir nusprendžiau pats tai išsiaiškinti ir padaryti šį nurodymą.

Aš naudojau „Raspberry Pi 3+ B“, tačiau, kiek galiu pasakyti, jis veiktų su bet kokiu „Pi“(galbūt GPIO PIN kodai skirsis, tačiau to negaliu patvirtinti). OS naudoju NOOBS paketą ir įėjimui nusipirkau itin paprastą garso plokštę. Taip pat prie dėžutės pridėjau saugaus išjungimo mygtuką ir veiklos šviesos diodą, kad apsaugotų „Pi“.

Jums reikės:

Raspberry Pi

NOOBS paketas SD kortelėje

Įjungimo/išjungimo jungiklis (naudojau didelį raudoną avarinio sustabdymo mygtuką, tokį kaip šis, bet tai gali būti bet koks „paspaudimo“jungiklis)

Mygtukas

1 šviesos diodas

Ženklas „On-Air“, aš padariau savo su LED masyvu

Lituoklis ir maža jungčių plokštė (aš ką tik nupjoviau juostelę iš vienos, kurią turėjau aplink)

Garso plokštė (aš naudojau tokią labai paprastą)

1 veiksmas: nustatykite savo serverį

Tikros radijo stoties, kurią naudojame, aš šios dalies nepadariau, nes neturėjau prieigos prie serverio ir tai padarė mano draugas, tačiau „Icecast“svetainėje yra pagrindinis sąrankos vadovas ir man pavyko gauti pradžioje jis veikia tik iš „Pi“, kad pamatytų, kaip viskas vyksta. Arba galite gauti paskyrą internet-radio.com ir ji veikia su „Darkice“.

2 veiksmas: nustatykite „Pi“ir įdiekite „Darkice“

Įsigykite SD kortelę su NOOBS paketu. Atidarę „Raspbian“ir įdiegę visus naujinimus, atidarykite terminalo langą ir įveskite:

sudo apt-get atnaujinimas

sudo apt-get install darkice

„Darkice“yra „Debian“dalis, todėl ji bus įdiegta automatiškai, tai užtruks kelias akimirkas.

Kai jis bus baigtas pagal raginimo tipą:

tamsi

Tai duos klaidos pranešimą ir nebus paleistas, bet tai gerai. Laiške jis pasakys kažką panašaus:

Naudojant konfigūracijos failą: /etc/darkice.cfg

Turite redaguoti tą failą, todėl raginant įveskite:

sudo nano /etc/darkice.cfg

Redaguokite atidaromą failą naudodami šiame wiki esančią informaciją. Radijo nuorodos puslapis, kai baigsite, paspauskite CTRL-X, kad uždarytumėte, Y-išsaugokite ir turėtumėte grįžti į terminalo raginimą. Įdiegę naują programą visada gerai paleisti iš naujo, todėl įveskite:

perkrauti

ir kai „Pi“paleidžiamas iš naujo, atidarykite terminalo langą. Dabar, kai įvedate „Darkice“, jis turėtų veikti be jokių klaidų pranešimų. Jei einate į https:// YOURSERVERADDRESS: 8000/(8000 arba bet kuris prievadas, kuriam priskirtas jūsų ledų serveris), turėtumėte gauti statistikos puslapį, kuriame sakoma, kad esate prisijungę. Jei ne, pataisykite konfigūracijos failą (garso įvesties eilutė man sukėlė tam tikrų problemų, bet išbandžiau visas parinktis ir galiausiai radau savo garso plokštę). Kai „Darkice“veiks tinkamai, pereikite prie kito žingsnio.

3 žingsnis: srauto mygtukas ir eterio ženklas

Srauto mygtukas ir eterio ženklas
Srauto mygtukas ir eterio ženklas

Aš padariau daugybę skirtingų pamokų, nes nebuvo konkretaus veiksmo priskyrimo mygtukui „Python“. Didžiausia problema, su kuria susidūriau, buvo priversti „Darkice“veikti fone (ir neužšaldyti „Python“scenarijaus, kai ji pradėjo veikti), bet paprašiau draugo programuotojo ateiti padėti ir jis išsiaiškino, kaip tai padaryti rašant lapus. nesulauk. Matyt, tai taip pat gali būti įmanoma naudojant kodą „&“bet kode, bet nesu koduotojas ir tai, ką turiu, veikia, todėl nusprendžiau su juo nesikišti. Kai viskas susitvarkė, pradėjau kišti visus kabelius nuo duonos lentos, kol man liko tokia sąranka:

GPIO16 prie išorinės 3 taškų jungties.

GPIO7 prie teigiamo LED masyvo gnybto, skirto ON-Air ženklui.

GPIO25 prie paspaudimo jungiklio.

Kita spragtelėjimo jungiklio pusė pritvirtinama prie 3 taškų jungties.

Šviesos diodų masyvo neigiamas gnybtas taip pat pritvirtinamas prie 3 taškų jungties.

(Kiti diagramos komponentai paaiškinti kitame žingsnyje).

Python scenarijus, kurį mes baigėme, yra toks (atkreipkite dėmesį, kad tai yra viso projekto instrukcija, aš tikrai nežinau pakankamai, kad paaiškintų kodą. Aš jį sujungiau iš įvairių kitų skirtingų funkcijų vadovėlių):

importuoti laikąimportuoti importuoti RPi. GPIO kaip GPIO GPIO.setwarnings (klaidinga) GPIO.setmode (GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup (ledPin, GPIO. OUT) GPIO.setup (buttonPin, GPIO. IN, pull_up_down = GPIO. PUD_UP)

perjungti = klaidinga

def start_darkice ():

print ('call subprocess') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('atnaujinamas') def stop_darkice (): os.system ('screen -X -S darkice quit')

nors tiesa:

buttonState = GPIO.input (buttonPin) if buttonState == Tiesa: jei ne perjungti: toggle = Tikras spausdinimas („įjungus tamsą“) start_darkice () #print („BUTTON STATE TRUE“) GPIO.output (ledPin, GPIO. HIGH)

Kitas:

if toggle: toggle = False print ('stopping darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)

Py failas pridedamas prie šios instrukcijos, galite ją tiesiog atsisiųsti ir, jei norite, atlikti 5 veiksmą.

4 veiksmas: saugaus išjungimo mygtukas ir veiklos šviesos diodas

Saugaus išjungimo mygtukas ir veiklos šviesos diodas
Saugaus išjungimo mygtukas ir veiklos šviesos diodas

Saugos sumetimais ir „Pi“tarnavimo laiko pratęsimui pridėjau saugaus išjungimo mygtuką ir išorinės veiklos šviesos diodą, kad žmonės žinotų, kada saugu atjungti dėžutę. Aš lengvai radau pamokas abiem, bet pastebėjau, kad „Raspberry Pi 3 B+“turi ACT LED priskirtą GPIO kaištį, o ankstesni modeliai to neturi, ir tai gali būti problemiška, jei turite senesnį „Pi“.

Pritvirtinkite teigiamą šviesos diodo gnybtą prie GPIO13, o neigiamą - prie GPIO26. Kad veiktų šviesos diodas ACT, turite redaguoti failą config.txt kataloge BOOT. Tai galite rasti „Raspbian“naršyklėje arba naudodami:

sudo nano /usr/boot/config.txt

Redaguodami failą tiesiog pridėkite šias eilutes:

# Naudokite išorinį šviesos diodą kaip SD ACT LED dtoverlay = pi3-act-led, gpio = 19

Dabar išorinis šviesos diodas mirksi, kai veikia SD kortelė.

Pritvirtinkite jungiklio gnybtus prie GPIO3 ir GPIO8. Iš mokymo programos radau šį kodą ir jis veikia gerai:

importavimo laikas iš gpiozero importavimo mygtukas iš papildomo proceso importuoti check_call iš signalo importavimo pauzės

išjungimas ():

check_call (['sudo', 'poweroff'])

shutdown_btn = Mygtukas (2, hold_time = 1)

shutdown_btn.when_held = išjungimas

Pauzė()

laikas. miegas (1)

Šis py failas taip pat pridedamas, kad galėtumėte atsisiųsti, jei norite. Mano mygtuką reikia palaikyti 1 sekundę, jei norite pakeisti tą reikšmę „hold-time =“.

5 veiksmas: priverskite „Python“scenarijus paleisti iš įkrovos

Vėlgi, yra daug vadovėlių šia tema, aš naudoju šį „Dexter Industries“ir atlikiau pirmą veiksmą, redaguodamas rc.local failą.

sudo nano /etc/rc.local

Čia dokumento pabaigoje turite pridėti visą failo kelią, o kiekvienos eilutės pabaigoje-„&“. Prie kiekvieno failo turėtumėte pridėti vieną eilutę:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

prieš pat eilutę

išeiti 0

Kiekvienos eilutės pabaigoje esantis „&“yra svarbus norint užtikrinti programos kilpas.

6 žingsnis: sukurkite dėžutę

Sukurkite dėžutę
Sukurkite dėžutę
Sukurkite dėžutę
Sukurkite dėžutę
Sukurkite dėžutę
Sukurkite dėžutę

Tai visiškai priklauso nuo jūsų. Tai tikrai turi būti tik „Pi“dydžio, tačiau į savo sistemą įdėjau kompresorių, kad radijo srautas būtų gana pastovus, todėl dėžutė yra šiek tiek didesnė. Mano priekyje yra skylė „On-Air“ženklui ir „Big Red Button“, be to, aš padariau nedidelę instrukcijų kortelę didžėjams ir įdėjau ją po mygtuku. Dėžutės šone yra skylė mygtukui, ACT LED ir garso įėjimui, taip pat įdėtos instrukcijos baro darbuotojams, kaip saugiai išjungti dėžutę.

7 žingsnis: diegimas

Montavimas
Montavimas
Montavimas
Montavimas
Montavimas
Montavimas
Montavimas
Montavimas

Pritvirtinkite visus atskirus komponentus į dėžę, turėdami omenyje, kad visada gerai leisti šiek tiek cirkuliuoti aplink Pi, kad būtų išvengta perkaitimo. Prijunkite garso kabelius iš maišytuvo, paspauskite mygtuką ir mėgaukitės transliacija!

Rekomenduojamas: