Kazalo:

Radio pretočni okvir z enim gumbom: 7 korakov (s slikami)
Radio pretočni okvir z enim gumbom: 7 korakov (s slikami)

Video: Radio pretočni okvir z enim gumbom: 7 korakov (s slikami)

Video: Radio pretočni okvir z enim gumbom: 7 korakov (s slikami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Junij
Anonim
Radio Streaming Box z enim gumbom
Radio Streaming Box z enim gumbom

Zgradil sem škatlo za bar svojega prijatelja, ki ima v sebi Raspberry Pi in s pritiskom na en gumb pretaka zvok na spletno mesto z uporabo Darkice in Icecast, hkrati pa prižge znak "On-Air". Mislil sem, da je to nekaj, kar ljudje že počnejo, vendar po obsežnem iskanju nisem našel ničesar in se odločil, da bom sam ugotovil in naredil ta Instructable.

Uporabil sem Raspberry Pi 3+ B, vendar kolikor vem, bi deloval na katerem koli Pi (morda se bodo številke pin GPIO razlikovale, čeprav tega ne morem potrditi). Za OS sem uporabil paket NOOBS in za vhod kupil super preprosto zvočno kartico. V škatlo sem dodal tudi gumb za varen izklop in LED za aktivnost za zaščito Pi.

Boste potrebovali:

Malina Pi

Paket NOOBS na kartici SD

Stikalo za vklop/izklop (uporabil sem velik rdeč gumb za zaustavitev v sili, kot je ta, lahko pa je tudi kakršno koli stikalo »klik«)

Pritisni gumb

1 LED

Znak "On-Air" sem naredil sam z LED nizom

Spajkalnik in majhna priključna plošča (enemu sem le odrezal trak, ki sem ga imel okoli)

Zvočna kartica (uporabil sem tako preprosto)

1. korak: Nastavite strežnik

Za dejansko radijsko postajo, ki jo uporabljamo, tega dela nisem naredil, ker nisem imel dostopa do strežnika in to je storil moj prijatelj, vendar na spletnem mestu Icecast obstaja osnovni vodič za nastavitev in uspelo mi je od Pi -ja na začetku deluje samo zato, da bi videl, kako gre. Druga možnost je, da dobite račun na internet-radio.com in deluje z Darkice.

2. korak: Nastavite Pi in namestite Darkice

Pridobite kartico SD s paketom NOOBS. Ko odprete Raspbian in namestite vse posodobitve, odprite okno terminala in vnesite:

sudo apt-get posodobitev

sudo apt-get install darkice

Darkice je del Debiana, zato se bo samodejno namestil, traja nekaj trenutkov.

Ko končate, vnesite poziv:

darkice

Sporočil bo sporočilo o napaki in se ne bo zagnal, vendar je to v redu. V sporočilu bo zapisano nekaj takega:

Z uporabo konfiguracijske datoteke: /etc/darkice.cfg

To datoteko morate urediti, zato pri pozivu vnesite:

sudo nano /etc/darkice.cfg

Uredite datoteko, ki se odpre z informacijami na tem wiki-ju. Ko je končana, pritisnite CTRL-X, da zaprete, Y, da shranite, in se vrnite na poziv terminala. Po namestitvi novega programa je vedno dobro znova zagnati, zato vnesite:

znova zaženite

in ko se Pi znova zažene, znova odprite terminalsko okno. Zdaj, ko vnesete 'Darkice', bi morala delovati brez sporočil o napakah. Če greste na https:// YOURSERVERADDRESS: 8000/(8000 ali katero koli vrata, ki jim je dodeljen vaš strežnik icecast), bi morali dobiti statistično stran, ki pravi, da ste povezani. Če ne, prilagodite konfiguracijsko datoteko (vhodna vrstica za zvok mi je povzročila nekaj težav, vendar sem preizkusil vse možnosti in na koncu našel svojo zvočno kartico). Ko Darkice pravilno teče, pojdite na naslednji korak.

3. korak: Gumb za predvajanje in znak v zraku

Gumb za predvajanje in znak v zraku
Gumb za predvajanje in znak v zraku

Za to sem naredil kup različnih vadnic, saj ni bilo nobene posebne za dodelitev dejanja gumbu v Pythonu. Največja težava, s katero sem se soočal, je bila ta, da je Darkice tekel v ozadju (in s tem ne zamrznil skripta Python, ko se je začel izvajati), vendar sem prosil prijatelja koderja, naj pride in mi pomaga, on pa je ugotovil, kako to narediti, da napišem liste, kar sem ne dobi. Očitno bi bilo to mogoče tudi z uporabo '&' nekje v kodi, vendar nisem koder in to, kar imam, deluje, zato sem se odločil, da se s tem ne zapletam. Ko sem naredil vse, sem začel odstranjevati vse kable z mize, dokler nisem imel naslednje nastavitve:

GPIO16 na zunanji 3-točkovni priključek.

GPIO7 na pozitivni priključek matrike LED za znak ON-Air.

GPIO25 na stikalo s klikom.

Druga stran stikalnega stikala je pritrjena na 3-točkovni priključek.

Negativni priključek matrike LED je pritrjen tudi na 3-točkovni konektor.

(Druge komponente na diagramu so razložene v naslednjem koraku).

Skript Python, s katerim smo končali, je naslednji (upoštevajte, da je to Instructable za celoten projekt, res ne vem dovolj, da bi razložil kodo. Sestavil sem jo iz različnih drugih vadnic za različne funkcije):

čas uvozaimport os uvoz RPi. GPIO kot GPIO GPIO.opozorila (napačno) način GPIO.set (GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup (ledPin, GPIO. OUT) GPIO.setup (buttonPin, GPIO. IN, pull_up_down = GPIO. PUD_UP)

toggle = False

def start_darkice ():

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

medtem ko je res:

buttonState = GPIO.input (buttonPin) if buttonState == True: če ne preklopite: toggle = True print ('vklop darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

drugače:

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

Datoteka py je priložena temu navodilu, lahko jo preprosto prenesete in po želji sledite 5. koraku.

4. korak: Gumb za varen izklop in LED za dejavnost

Gumb za varen izklop in LED za dejavnost
Gumb za varen izklop in LED za dejavnost

Zaradi varnosti in podaljšanja življenjske dobe Pi sem dodal gumb za varen izklop in LED za zunanjo dejavnost, da ljudje vedo, kdaj je varno odklopiti škatlo. Z lahkoto sem našel vaje za oba, vendar sem opazil, da ima Raspberry Pi 3 B+ LED ACT LED, dodeljen pin GPIO, medtem ko starejši modeli tega nimajo, kar bi lahko bilo problematično, če imate starejši Pi.

Pozitivni priključek LED pritrdite na GPIO13, negativni pa na GPIO26. Če želite LED ACT delovati, morate urediti datoteko config.txt v imeniku BOOT. To lahko najdete v brskalniku Raspbian ali z:

sudo nano /usr/boot/config.txt

Ko urejate datoteko, preprosto dodajte naslednje vrstice:

# Uporabite zunanjo LED kot SD ACT LED dtoverlay = pi3-act-led, gpio = 19

Zdaj bo zunanja LED utripala z aktivnostjo kartice SD.

Sponke potisnega stikala pritrdite na GPIO3 in GPIO8. Naslednjo kodo sem našel v vadnici in dobro deluje:

čas uvoza iz gpiozero gumb za uvoz iz podprocesa uvoz check_call iz premora za uvoz signala

def shutdown ():

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

shutdown_btn = Gumb (2, hold_time = 1)

shutdown_btn.when_held = zaustavitev

pavza()

time.sleep (1)

Ta datoteka py je priložena tudi, če jo želite prenesti. Moj gumb morate držati 1 sekundo, če želite to spremeniti, spremenite vrednost 'hold-time ='.

5. korak: Zaženite skripte Python iz zagona

Spet je na to temo veliko vaj, uporabil sem to iz Dexter Industries in sledil prvemu koraku z urejanjem datoteke rc.local.

sudo nano /etc/rc.local

Tukaj morate na konec dokumenta dodati celotno pot do datoteke, skupaj z '&' na koncu vsake vrstice. Za vsako datoteko morate dodati eno vrstico:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

tik pred črto

izhod 0

Znaki '&' na koncu vsake vrstice so pomembni za zagotovitev programskih zank.

6. korak: Zgradite škatlo

Zgradite škatlo
Zgradite škatlo
Zgradite škatlo
Zgradite škatlo
Zgradite škatlo
Zgradite škatlo

To je v celoti odvisno od vas. Resnično mora biti le velikost Pi, vendar sem v svojo nastavitev vstavil kompresor, da je radijski tok na precej dosledni ravni, tako da je škatla nekoliko večja. Moj ima na sprednji strani luknjo za oznako On-Air in eno za Big Red Button, poleg tega sem naredil majhno kartico z navodili za DJ-e in jo vstavil pod gumb. Na strani škatle je luknja za potisni gumb, LED ACT in avdio vhod ter vložena navodila za osebje v baru, kako varno zapreti škatlo.

7. korak: Namestitev

Namestitev
Namestitev
Namestitev
Namestitev
Namestitev
Namestitev
Namestitev
Namestitev

Vse ločene komponente pritrdite v škatlo, pri čemer upoštevajte, da je vedno dobro omogočiti kroženje zraka okoli Pi, da preprečite pregrevanje. Priključite zvočne kable iz mešalnika, pritisnite gumb in uživajte v oddajanju!

Priporočena: