Cuprins:

Casetă de transmisie radio cu un singur buton: 7 pași (cu imagini)
Casetă de transmisie radio cu un singur buton: 7 pași (cu imagini)

Video: Casetă de transmisie radio cu un singur buton: 7 pași (cu imagini)

Video: Casetă de transmisie radio cu un singur buton: 7 pași (cu imagini)
Video: Ce înseamna semnul tau din nastere 2024, Iunie
Anonim
Casetă de transmisie radio cu un singur buton
Casetă de transmisie radio cu un singur buton

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

Butonul Stream și semnul On-Air
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

Butonul de închidere sigură și LED-ul de activitate
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

Construiește Cutia
Construiește Cutia
Construiește Cutia
Construiește Cutia
Construiește Cutia
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

Instalare
Instalare
Instalare
Instalare
Instalare
Instalare
Instalare
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: