Cuprins:
- Pasul 1: configurați serverul
- Pasul 2: Configurați Pi și instalați Darkice
- Pasul 3: Butonul Stream și semnul On-Air
- Pasul 4: Butonul de închidere sigură și LED-ul de activitate
- Pasul 5: Faceți scripturile Python să ruleze de la pornire
- Pasul 6: Construiește cutia
- Pasul 7: Instalare
Video: Casetă de transmisie radio cu un singur buton: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Am construit o cutie pentru barul prietenului meu, care are în interior un Raspberry Pi și, printr-o singură apăsare de buton, transmite audio către un site web folosind Darkice și Icecast, aprinzând simultan un semn „On-Air”. Am crezut că asta făceau deja oamenii, dar după o cercetare aprofundată nu am găsit nimic și am decis să-mi dau seama pentru mine și să fac acest lucru instructiv.
Am folosit un Raspberry Pi 3+ B, dar, din câte îmi dau seama, ar funcționa pe orice Pi (probabil că numerele PIN GPIO ar varia, nu pot să atest acest lucru). Am folosit pachetul NOOBS pentru sistemul de operare și am cumpărat o placă de sunet super simplă pentru intrare. Am adăugat, de asemenea, un buton de închidere sigură și un LED de activitate în cutie pentru a proteja Pi.
Vei avea nevoie:
Raspberry Pi
Pachetul NOOBS pe un card SD
Comutator pornit / oprit (am folosit un buton roșu mare de oprire de urgență ca acesta, dar poate fi orice fel de comutator „clic”)
Apasa butonul
1 LED
Un semn „On-Air”, l-am făcut cu un tablou LED
Fier de lipit și conector mic (tocmai am tăiat o bandă de pe una dintre acestea pe care o aveam în jur)
Placă de sunet (am folosit una super-simplă ca aceasta)
Pasul 1: configurați serverul
Pentru postul de radio propriu-zis pe care îl folosim, nu am făcut această parte deoarece nu am avut acces la server și prietenul meu a făcut-o, dar există un ghid de configurare de bază pe site-ul Icecast și am reușit să obțin funcționează de la Pi la început doar pentru a vedea cum merge. Alternativ, puteți obține un cont la internet-radio.com și funcționează cu Darkice.
Pasul 2: Configurați Pi și instalați Darkice
Obțineți un card SD cu pachetul NOOBS. După ce ați deschis Raspbian și ați instalat toate actualizările, deschideți o fereastră Terminal și tastați:
sudo apt-get update
sudo apt-get install darkice
Darkice face parte din Debian, deci se va instala automat, durează câteva clipe.
După ce ați terminat la tipul de prompt:
darkice
Acesta va da un mesaj de eroare și nu va rula, dar este ok. În mesaj va spune ceva de genul:
Folosind fișierul de configurare: /etc/darkice.cfg
Trebuie să editați acel fișier, deci la tipul de prompt:
sudo nano /etc/darkice.cfg
Editați fișierul care se deschide folosind informațiile din această pagină wiki. Radioreference, când ați terminat apăsați CTRL-X pentru a închide, Y pentru a salva și ar trebui să reveniți la promptul Terminal. Este întotdeauna bine să reporniți după instalarea unui nou program, așa că tastați:
reporniți
iar când Pi a repornit redeschideți o fereastră Terminal. Acum, când tastați „Darkice”, acesta ar trebui să ruleze fără mesaje de eroare. Dacă accesați https:// YOURSERVERADDRESS: 8000 / (8000 sau oricărui port la care este atribuit serverul dvs. icecast), ar trebui să primiți o pagină cu statistici care spune că sunteți conectat. Dacă nu, modificați fișierul de configurare (linia de intrare audio mi-a dat unele probleme, dar am încercat toate opțiunile și, în cele din urmă, am găsit placa de sunet). Odată ce Darkice rulează corect treceți la pasul următor.
Pasul 3: Butonul Stream și semnul On-Air
Am făcut o grămadă de tutoriale diferite pentru acest lucru, deoarece nu a existat niciunul specific pentru atribuirea unei acțiuni unui buton din Python. Cea mai mare problemă cu care m-am confruntat a fost ca Darkice să ruleze în fundal (și, astfel, să nu înghețe scriptul Python când a început să ruleze), dar i-am cerut unui prieten programator să vină să ajute și el a găsit o modalitate de a face acest lucru scriind foi, ceva nu înțelege. Se pare că ar putea fi posibilă și utilizarea unui „&” undeva în cod, dar nu sunt coder și ceea ce am funcționează, așa că am ales să nu mă încurc cu el. Odată ce am funcționat totul, am început să reduc toate cablurile de pe panou până când am rămas cu următoarea configurare:
GPIO16 la un conector extern cu 3 puncte.
GPIO7 la terminalul pozitiv al tabloului LED pentru semnul ON-Air.
GPIO25 la clic-comutator.
Cealaltă parte a butonului de clic se atașează la conectorul cu 3 puncte.
Terminalul negativ al matricei LED se atașează, de asemenea, la conectorul în 3 puncte.
(Celelalte componente de pe diagramă sunt explicate în pasul următor).
Scriptul Python cu care am ajuns este următorul (vă rugăm să rețineți că acesta este un instructabil pentru întregul proiect, nu prea știu suficient pentru a explica codul. L-am împărțit din diferite alte tutoriale pentru diferite funcții):
Timp de import = GPIO. PUD_UP)
toggle = False
def start_darkice ():
print ('apelare subproces') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('reluare') def stop_darkice (): os.system ('screen -X -S darkice quit')
în timp ce este adevărat:
buttonState = GPIO.input (buttonPin) if buttonState == True: if not toggle: toggle = True print ('pornind darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)
altceva:
if toggle: toggle = False print ('stopping darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)
Fișierul py este atașat la acest instructibil, îl puteți descărca și urmați pasul 5 dacă doriți.
Pasul 4: Butonul de închidere sigură și LED-ul de activitate
Doar pentru siguranță și pentru a prelungi durata de viață a dispozitivului Pi, am adăugat un buton de oprire sigură și un LED de activitate extern, astfel încât oamenii să știe când este sigur să deconectați cutia. Am găsit cu ușurință tutoriale pentru ambele, dar am observat că Raspberry Pi 3 B + are un pin ACT GPIO atribuit cu LED-uri, în timp ce modelele anterioare nu și asta ar putea fi problematic dacă aveți un Pi mai vechi.
Atașați terminalul pozitiv al LED-ului la GPIO13 și cel negativ la GPIO26. Pentru ca LED-ul ACT să funcționeze, trebuie să editați fișierul config.txt în directorul BOOT. Puteți găsi acest lucru în browserul Raspbian sau cu:
sudo nano /usr/boot/config.txt
Când editați fișierul, pur și simplu adăugați următoarele rânduri:
# Utilizați LED extern ca LED SD ACT dtoverlay = pi3-act-led, gpio = 19
Acum, LED-ul extern va clipi cu activitatea cardului SD.
Atașați terminalele comutatorului push la GPIO3 și GPIO8. Am găsit următorul cod dintr-un tutorial și funcționează bine:
import timp din gpiozero import Buton din importul subprocesului check_call din pauza importului semnalului
oprire def ():
check_call (['sudo', 'poweroff'])
shutdown_btn = Buton (2, hold_time = 1)
shutdown_btn.when_held = oprire
pauză()
time.sleep (1)
Acest fișier py este, de asemenea, atașat pentru descărcare, dacă doriți. Butonul meu trebuie ținut apăsat timp de 1 secundă, dacă doriți să schimbați acest lucru, modificați valoarea „hold-time =”.
Pasul 5: Faceți scripturile Python să ruleze de la pornire
Din nou, există o mulțime de tutoriale despre acest subiect, l-am folosit pe acesta de la Dexter Industries și am urmat primul pas prin editarea fișierului rc.local.
sudo nano /etc/rc.local
Aici trebuie să adăugați calea completă a fișierului la sfârșitul documentului, completată cu un „&” la sfârșitul fiecărei linii. Ar trebui să adăugați câte o linie pentru fiecare dintre fișiere:
sudo python / home / pi / YOURFILENAME, py &
sudo python /home/pi/YOURFILENAME2.py &
chiar înainte de linie
ieșire 0
„&” De la sfârșitul fiecărei linii este important pentru a asigura buclele programului.
Pasul 6: Construiește cutia
Acest lucru depinde în totalitate de dvs. Chiar trebuie să aibă dimensiunea lui Pi, dar am pus un compresor în set-up-ul meu pentru a menține fluxul radio la un nivel destul de consistent, astfel încât cutia să fie puțin mai mare. Al meu are o gaură în față pentru semnul On-Air și una pentru Butonul Roșu Mare, plus că am făcut o mică carte de instrucțiuni pentru DJ și am încrustat-o sub buton. Pe partea laterală a cutiei există o gaură pentru butonul de apăsare, LED-ul ACT și intrarea audio, plus instrucțiuni încrustate pentru personalul barului despre cum să opriți în siguranță cutia.
Pasul 7: Instalare
Fixează toate componentele separate în cutie, ținând cont de faptul că este întotdeauna bine să permiți o anumită circulație a aerului în jurul dispozitivului Pi pentru a preveni supraîncălzirea. Atașați cablurile audio de la mixer, apăsați butonul și bucurați-vă de difuzare!
Recomandat:
Blocare servo cu un singur buton: 3 pași
Un singur buton Servo Suspension Lockout: bicicletele montane cu suspensie completă asigură o deplasare lină, dar deseori necesită blocarea suspensiei atunci când pedalează în sus. În caz contrar, suspensia se comprimă în timp ce stai pe pedale, risipind efortul respectiv. Producătorii de biciclete știu acest lucru și oferă
Circuitul de blocare cu UC. Un singur buton. Un Pin. Componentă discretă .: 5 pași
Circuitul de blocare cu UC. Un singur buton. Un Pin. Componentă discretă: Bună ziua tuturor, căutam un circuit de pornire / oprire pe net. Tot ce am găsit nu a fost ceea ce căutam. Vorbeam cu mine, există neapărat o cale spre asta. De asta aveam nevoie.-Doar un singur buton de apăsat pentru a activa sau dezactiva.-Trebuie să folosesc doar
Tastatură USB RGB cu un singur buton: 6 pași (cu imagini)
Tastatură USB cu un singur buton RGB: Ați simțit vreodată nevoia de a avea o tastatură minusculă, dar funcțională, iluminată RGB, nu mai mare decât dimensiunea unei singure taste? Nu? Cui îi pasă, fă una oricum! Acest instructable vă va ghida prin pașii de care aveți nevoie pentru a vă face proprii, ușor inutili, pe
Casetă video cu casetă: 8 pași
Casetă video pentru casete: acesta este primul meu instructable, așa că vă rog să fiți amabili. Am avut această idee acum câteva zile și tocmai am ajuns la ea. în acest instructable vă voi arăta cum am făcut o cutie mică cu braț portabil dintr-un set de boxe pentru computer și o casetă video. îmi cer scuze
Casetă casetă USB: 5 pași
Casetă cu bandă USB: un mod retro pentru carcasă USB, care utilizează o bandă de date casetă veche. Aveam câteva casete de date vechi care se întindeau în jur și am decis să transform una într-o carcasă USB, sătul de modurile de cărămidă LEGO. Casetele au dimensiunea perfectă pentru aceasta, suficient de groase și suficient de ușoare