Përmbajtje:

Kutia e transmetimit të radios me një buton: 7 hapa (me fotografi)
Kutia e transmetimit të radios me një buton: 7 hapa (me fotografi)

Video: Kutia e transmetimit të radios me një buton: 7 hapa (me fotografi)

Video: Kutia e transmetimit të radios me një buton: 7 hapa (me fotografi)
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Nëntor
Anonim
Kutia e transmetimit të radios me një buton
Kutia e transmetimit të radios me një buton

Unë ndërtova një kuti për shiritin e mikut tim që ka një Raspberry Pi brenda dhe me shtypjen e një butoni transmeton audio në një faqe në internet duke përdorur Darkice dhe Icecast, ndërsa ndez njëkohësisht një shenjë "On-Air". Mendova se kjo ishte diçka që njerëzit tashmë po bënin, por pas kërkimeve të gjera nuk gjeta asgjë dhe vendosa ta kuptoj vetë dhe ta bëj këtë të udhëzueshëm.

Kam përdorur një Raspberry Pi 3+ B, por me aq sa mund të them se do të funksiononte në çdo Pi (mbase numrat e kunjit GPIO do të ndryshonin, megjithatë nuk mund ta dëshmoj këtë). Përdora paketën NOOBS për OS dhe bleva një kartë zanore super të thjeshtë për hyrjen. Unë gjithashtu shtova një buton të sigurt të mbylljes dhe LED të aktivitetit në kuti për të mbrojtur Pi.

Do t'ju duhet:

Raspberry Pi

Paketa NOOBS në një kartë SD

Çelësi i ndezjes/fikjes (kam përdorur një buton të madh të kuq të ndalimit të urgjencës si ky, por mund të jetë çdo lloj çelësi 'klik')

Butoni i Shtypjes

1 LED

Një shenjë "On-Air", e bëra timen me një grup LED

Hekuri i saldimit dhe bordi i vogël lidhës (sapo kam prerë një shirit nga një prej këtyre që kisha përreth)

Kartë zanore (kam përdorur një super të thjeshtë si kjo)

Hapi 1: Konfiguroni serverin tuaj

Për stacionin aktual të radios që ne po përdorim nuk e bëra këtë pjesë pasi nuk kisha qasje në server dhe shoku im e bëri atë, por ka një udhëzues themelor të konfigurimit në faqen e internetit të Icecast dhe unë arrita të marr funksionon nga Pi në fillim vetëm për të parë se si shkon. Përndryshe, ju mund të merrni një llogari në internet-radio.com dhe funksionon me Darkice.

Hapi 2: Vendosni Pi dhe instaloni Darkice

Merrni një kartë SD me paketën NOOBS. Pasi të keni hapur Raspbian dhe të keni instaluar të gjitha azhurnimet, hapni një dritare të Terminalit dhe shkruani:

përditësim sudo apt-get

sudo apt-get install darkice

Darkice është pjesë e Debian kështu që do të instalohet automatikisht, duhen disa momente.

Pasi të përfundojë në llojin e shpejtë:

errësirë

Do të japë një mesazh gabimi dhe nuk do të funksionojë, por kjo është në rregull. Në mesazh do të thotë diçka si:

Duke përdorur skedarin e konfigurimit: /etc/darkice.cfg

Ju duhet ta redaktoni atë skedar, kështu që në llojin e shpejtë shkruani:

sudo nano /etc/darkice.cfg

Ndryshoni skedarin që hapet duke përdorur informacionin në këtë faqe wiki. Radioreferencë, kur të keni mbaruar shtypni CTRL-X për ta mbyllur, Y për të ruajtur dhe duhet të ktheheni në kërkesën e Terminalit. Alwaysshtë gjithmonë mirë të rindizni pas instalimit të një programi të ri, kështu që shkruani:

ristartoj

dhe kur Pi është rifilluar, rihapni një dritare të Terminalit. Tani kur shtypni 'Darkice' duhet të funksionojë pa asnjë mesazh gabimi. Nëse shkoni në https:// YOURSERVERADDRESS: 8000/(8000 ose cilësdo porti ku i është caktuar serveri juaj i akullit) duhet të merrni një faqe statistikash që thotë se jeni lidhur. Nëse jo, ndryshoni skedarin e konfigurimit (linja e hyrjes audio më dha disa probleme, por unë provova të gjitha opsionet dhe përfundimisht gjeta kartën time të zërit). Pasi Darkice po funksionon siç duhet, kaloni në hapin tjetër.

Hapi 3: Butoni i transmetimit dhe shenja në ajër

Butoni i transmetimit dhe shenja në ajër
Butoni i transmetimit dhe shenja në ajër

Unë bëra një mori mësimesh të ndryshme për këtë pasi nuk kishte asnjë specifik për caktimin e një veprimi në një buton në Python. Problemi më i madh me të cilin u ballafaqua ishte që Darkice të funksiononte në sfond (dhe kështu të mos ngrinte shkrimin Python kur filloi të funksiononte), por i kërkova një shoku kodues të vinte dhe të ndihmonte dhe ai gjeti një mënyrë për ta bërë këtë duke shkruar fletë, diçka që unë mos merrni. Me sa duket mund të jetë gjithashtu e mundur duke përdorur një '&' diku në kod, por unë nuk jam kodues dhe ajo që kam funksionon kështu që zgjodha të mos ngatërrohem me të. Sapo kisha funksionuar gjithçka, fillova t'i heq të gjitha kabllot nga pjata e bukës derisa më lanë konfigurimin e mëposhtëm:

GPIO16 në një lidhës të jashtëm me 3 pika.

GPIO7 në terminalin pozitiv të grupit LED për shenjën ON-Air.

GPIO25 te çelësi i klikimit.

Ana tjetër e çelësit të klikimit i bashkohet lidhësit me 3 pika.

Terminali negativ i grupit LED gjithashtu i bashkëngjitet lidhësit me 3 pika.

(Komponentët e tjerë në diagram shpjegohen në hapin tjetër).

Skenari Python me të cilin përfunduam është si më poshtë (ju lutemi vini re se ky është një udhëzues për të gjithë projektin, me të vërtetë nuk di mjaftueshëm për të shpjeguar kodin. Unë e bashkova atë nga mësime të ndryshme të tjera për funksione të ndryshme):

koha e importit os import RPi. GPIO si GPIO GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup (ledPin, GPIO. OUT) GPIO.setup (buttonPin, GPIO. IN, pull_up_down = GPIO. PUD_UP)

kaloni = E gabuar

def start_darkice ():

print ('thirrja e nënprocesit') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('rifillimi') def stop_darkice (): os.system ('screen -X -S darkice quit')

ndërsa e vërtetë:

buttonState = GPIO.input (buttonPin) nëse buttonState == E vërtetë: nëse jo kaloni: toggle = Printim i vërtetë ('ndezja e errësirës') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

tjeter:

if toggle: toggle = Printimi i rremë ('ndalimi i errësirës') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)

Skedari py është i bashkangjitur këtij udhëzuesi, thjesht mund ta shkarkoni dhe ndiqni hapin 5 nëse dëshironi.

Hapi 4: Butoni i mbylljes së sigurt dhe LED i aktivitetit

Butoni i fikjes së sigurt dhe LED i aktivitetit
Butoni i fikjes së sigurt dhe LED i aktivitetit

Vetëm për siguri dhe për të zgjatur jetën e Pi, shtova një buton fikjeje të sigurt dhe një LED të aktivitetit të jashtëm, në mënyrë që njerëzit të dinë kur është e sigurt të shkëputni kutinë nga priza. Gjeta lehtësisht mësime për të dyja këto, por vura re që Raspberry Pi 3 B+ ka një pin ACT të caktuar GPIO LED, ndërsa modelet e mëparshme nuk e bëjnë këtë dhe kjo mund të jetë problematike nëse keni një Pi më të vjetër.

Bashkangjitni terminalin pozitiv të ZHEL në GPIO13 dhe atë negativ në GPIO26. Që ACT LED të funksionojë ju duhet të redaktoni skedarin config.txt në drejtorinë BOOT. Këtë mund ta gjeni në shfletuesin Raspbian ose me:

sudo nano /usr/boot/config.txt

Kur redaktoni skedarin, thjesht shtoni rreshtat e mëposhtëm:

# Përdorni LED të jashtëm si SD ACT LED dtoverlay = pi3-act-led, gpio = 19

Tani LED i jashtëm do të dridhet me aktivitetin e kartës SD.

Bashkangjitni terminalet e ndërprerësit shtytës në GPIO3 dhe GPIO8. Gjeta kodin e mëposhtëm nga një tutorial dhe funksionon mirë:

koha e importimit nga gpiozero Butoni i importit nga nënprocesi i importit check_call nga pauza e importit të sinjalit

def mbyllje ():

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

shutdown_btn = Butoni (2, koha e mbajtjes = 1)

mbyllje_btn.when_held = mbyllje

pauzë ()

koha. gjumi (1)

Ky skedar py është bashkangjitur gjithashtu për ta shkarkuar nëse dëshironi. Butoni im duhet të mbahet për 1 sekondë, nëse doni ta ndryshoni atë ndryshoni vlerën 'hold-time ='.

Hapi 5: Bëni që Shkrimet Python të ekzekutohen nga boot

Përsëri, ka shumë mësime mbi këtë temë, unë e përdor këtë nga Dexter Industries dhe ndoqa hapin e parë duke redaktuar skedarin rc.local.

sudo nano /etj/rc.local

Këtu ju duhet të shtoni skedarin e plotë të skedarit në fund të dokumentit, të plotësuar me një & në fund të secilës rresht. Ju duhet të shtoni një rresht për secilën prej skedarëve:

sudo python/home/pi/YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

pak para rreshtit

dalja 0

'&' Në fund të secilës rresht është e rëndësishme për të siguruar sythe programi.

Hapi 6: Ndërtoni Kutinë

Ndërtoni Kutinë
Ndërtoni Kutinë
Ndërtoni Kutinë
Ndërtoni Kutinë
Ndërtoni Kutinë
Ndërtoni Kutinë

Kjo varet plotësisht nga ju. Me të vërtetë duhet të jetë vetëm madhësia e Pi, por unë vendos një kompresor në konfigurimin tim për të mbajtur transmetimin e radios në një nivel mjaft të qëndrueshëm, kështu që kutia është pak më e madhe. E imja ka një vrimë në pjesën e përparme për shenjën On-Air dhe një për Butonin e Kuq të Madh, plus bëra një kartë udhëzimi të vogël për DJ-të dhe e futa atë nën butonin. Në anën e kutisë ka një vrimë për butonin shtypës, ACT LED dhe hyrjen audio, plus udhëzime të futura për stafin e shiritit se si ta mbyllin me siguri kutinë.

Hapi 7: Instalimi

Instalimi
Instalimi
Instalimi
Instalimi
Instalimi
Instalimi
Instalimi
Instalimi

Fiksoni të gjithë përbërësit e veçantë në kutinë tuaj, duke pasur parasysh se është gjithmonë mirë të lejoni qarkullimin e ajrit rreth Pi për të parandaluar mbinxehjen. Bashkangjitni kabllot audio nga mikseri juaj, goditni butonin dhe kënaquni me transmetimin!

Recommended: