Talaan ng mga Nilalaman:
- Hakbang 1: I-set-up ang Iyong Server
- Hakbang 2: I-set-up ang Pi at I-install ang Darkice
- Hakbang 3: Stream Button at On-Air Sign
- Hakbang 4: Ligtas na Button na Shutdown at LED na Aktibidad
- Hakbang 5: Gawin ang Mga Script ng Python Mula sa Boot
- Hakbang 6: Buuin ang Kahon
- Hakbang 7: Pag-install
Video: Isang-pindutan na Radio Streaming Box: 7 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Nagtayo ako ng isang kahon para sa bar ng aking kaibigan na mayroong isang Raspberry Pi sa loob at sa pagpindot ng isang pindutan ay dumadaloy ito ng audio sa isang website gamit ang Darkice at Icecast, habang sabay na sinisindi ang isang sign na 'On-Air'. Akala ko ito ay isang bagay na ginagawa na ng mga tao ngunit pagkatapos ng malawak na paghahanap ay wala akong nahanap at nagpasyang alamin ito para sa aking sarili at gawin itong Makatuturo.
Gumamit ako ng isang Raspberry Pi 3+ B ngunit hanggang sa masasabi kong gagana ito sa anumang Pi (marahil ang mga numero ng GPIO pin ay magkakaiba, hindi ko mapapatunayan iyon). Ginamit ko ang NOOBS package para sa OS at bumili ng sobrang simpleng soundcard para sa input. Nagdagdag din ako ng isang ligtas na shut-down button at aktibidad na LED sa kahon upang maprotektahan ang Pi.
Kakailanganin mong:
Raspberry Pi
NOOBS package sa isang SD card
On / Off switch (Gumamit ako ng isang malaking pulang pindutan ng emergency na tumigil tulad nito, ngunit maaari itong maging anumang uri ng 'click' switch)
Push Button
1 LED
Isang tanda na 'On-Air', gumawa ako ng sarili ko gamit ang isang LED array
Panghinang na bakal at maliit na konektor-board (pinutol ko lang ang isang strip mula sa isa sa mga ito sa paligid ko)
Soundcard (Gumamit ako ng napakasimple na tulad nito)
Hakbang 1: I-set-up ang Iyong Server
Para sa tunay na istasyon ng radyo na ginagamit namin hindi ko nagawa ang bahaging ito dahil wala akong access sa server at ginawa ito ng aking kaibigan, ngunit may isang pangunahing gabay sa pag-set up sa website ng Icecast at nakakuha ako ito ay gumagana mula sa Pi sa simula lamang upang makita kung paano ito napupunta. Bilang kahalili maaari kang makakuha ng isang account sa internet-radio.com at gumagana ito sa Darkice.
Hakbang 2: I-set-up ang Pi at I-install ang Darkice
Kumuha ng isang SD Card na may package na NOOBS. Sa sandaling nabuksan mo ang Raspbian at na-install ang lahat ng mga update buksan ang isang window ng Terminal at i-type:
sudo apt-get update
sudo apt-get install ng darkice
Ang Darkice ay bahagi ng Debian kaya awtomatiko itong mag-i-install, tumatagal ng ilang sandali.
Kapag natapos na ito sa agarang uri:
madilim
Magbibigay ito ng isang mensahe ng error at hindi tatakbo, ngunit ok lang iyon. Sa mensahe sasabihin nito tulad ng:
Paggamit ng config file: /etc/darkice.cfg
Kailangan mong i-edit ang file na iyon, kaya sa agarang uri:
sudo nano /etc/darkice.cfg
I-edit ang file na bubukas gamit ang impormasyon sa wiki na ito. Pahina ng radioreference, kapag tapos ka pindutin ang CTRL-X upang isara, Y upang mai-save at dapat kang bumalik sa prompt ng Terminal. Palaging magandang i-reboot pagkatapos mag-install ng isang bagong programa kaya't i-type:
i-reboot
at kapag na-restart ng Pi muli ang isang window ng Terminal. Ngayon kapag na-type mo ang 'Darkice' dapat itong tumakbo nang walang anumang mga mensahe ng error. Kung pupunta ka sa https:// HISSERVERADDRESS: 8000 / (8000 o alinmang port na itinalaga sa iyong server ng icecast) dapat kang makakuha ng isang pahina ng mga istatistika na nagsasabing konektado ka. Kung hindi, sabunutan ang config file (ang linya ng audio input ay nagbigay sa akin ng ilang mga problema ngunit sinubukan ko ang lahat ng mga pagpipilian at kalaunan natagpuan ang aking soundcard). Kapag ang Darkice ay tumatakbo nang maayos na lumipat sa susunod na hakbang.
Hakbang 3: Stream Button at On-Air Sign
Ginawa ko ang isang pangkat ng iba't ibang mga tutorial para dito dahil walang tiyak na isa para sa pagtatalaga ng isang aksyon sa isang pindutan sa Python. Ang pinakamalaking problema na kinakaharap ko ay ang pagkuha ng Darkice na tumakbo sa background (at sa gayon ay hindi i-freeze ang script ng Python nang magsimula itong tumakbo) ngunit tinanong ko ang isang kaibigan na taga-coder na lumapit at tumulong at naisip niya ang isang paraan upang gawin ito sa mga sheet ng pagsulat, isang bagay na wag mong makuha. Maliwanag na maaari ding posible gamit ang isang '&' sa isang lugar sa code ngunit wala akong coder at kung ano ang mayroon akong mga gawa kaya't pinili kong huwag makialam dito. Sa sandaling natapos ko ang lahat ay nagsimula ako sa pag-whittling lahat ng mga cable mula sa breadboard hanggang sa maiiwan ako sa sumusunod na set-up:
GPIO16 sa isang panlabas na 3-point na konektor.
GPIO7 sa positibong terminal ng LED array para sa ON-Air sign.
GPIO25 sa click-switch.
Ang kabilang panig ng click-switch ay nakakabit sa 3-point na konektor.
Ang negatibong terminal ng LED array ay nakakabit din sa 3-point na konektor.
(Ang iba pang mga bahagi sa diagram ay ipinaliwanag sa susunod na hakbang).
Ang script ng Python na natapos namin ay ang mga sumusunod (mangyaring tandaan na ito ay isang maituturo para sa buong proyekto, hindi ko talaga alam na sapat upang ipaliwanag ang code. Pinagsama ko ito mula sa iba't ibang iba pang mga tutorial para sa iba't ibang mga pag-andar):
import timeimport os import RPi. GPIO bilang GPIO GPIO.setwarnings (Mali) GPIO.setmode (GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup (ledPin, GPIO. OUT) GPIO.setup (buttonPin, GPIO. IN, pull_up_down = GPIO. PUD_UP)
toggle = Mali
def start_darkice ():
print ('calling subprocess') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('resume') def stop_darkice (): os.system ('screen -X -S darkice quit')
habang Totoo:
buttonState = GPIO.input (buttonPin) kung buttonState == True: kung hindi i-toggle: toggle = True print ('turn on darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)
iba pa:
kung toggle: toggle = False print ('stopping darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sulog (1)
Ang py file ay naka-attach sa Instructible na ito, maaari mo lamang itong i-download at sundin ang Hakbang 5 kung nais mo.
Hakbang 4: Ligtas na Button na Shutdown at LED na Aktibidad
Para lamang sa kaligtasan at upang pahabain ang buhay ng Pi Nagdagdag ako ng isang ligtas na shutdown button at isang panlabas na aktibidad na LED upang malaman ng mga tao kung ligtas na i-unplug ang kahon. Madali akong natagpuan ang mga tutorial para sa pareho sa mga ito, ngunit napansin ko na ang Raspberry Pi 3 B + ay mayroong isang ACT LED na nakatalaga sa GPIO pin habang ang mga naunang modelo ay hindi at maaaring maging problema kung mayroon kang isang mas matandang Pi.
Ikabit ang positibong terminal ng LED sa GPIO13 at ang negatibo sa GPIO26. Upang gumana ang ACT LED kailangan mong i-edit ang config.txt file sa direktoryo ng BOOT. Mahahanap mo ito sa browser ng Raspbian o sa:
sudo nano /usr/boot/config.txt
Kapag ini-edit mo ang file idagdag lamang ang mga sumusunod na linya:
# Gumamit ng panlabas na LED bilang SD ACT LED dtoverlay = pi3-act-led, gpio = 19
Ngayon ang panlabas na LED wil flicker na may aktibidad ng SD card.
Ikabit ang mga push switch terminal sa GPIO3 at GPIO8. Natagpuan ko ang sumusunod na code mula sa isang tutorial at gumagana ito ng maayos:
i-import ang timefrom gpiozero import Button mula sa subprocess na pag-import ng check_call mula sa pag-pause ng signal
def shutdown ():
check_call (['sudo', 'poweroff'])
shutdown_btn = Button (2, hold_time = 1)
shutdown_btn.when_held = shutdown
i-pause ()
oras. tulog (1)
Ang py file na ito ay nakakabit din para ma-download mo kung nais mo. Ang aking pindutan ay dapat na gaganapin sa 1 segundo, kung nais mong baguhin ang pagbabago na baguhin ang halagang 'hold-time ='.
Hakbang 5: Gawin ang Mga Script ng Python Mula sa Boot
Muli, maraming mga tutorial sa paksang ito, ginamit ko ang isang ito mula sa Dexter Industries at sinundan ang unang hakbang sa pamamagitan ng pag-edit ng rc.local file.
sudo nano /etc/rc.local
Dito kailangan mong idagdag ang kumpletong file-path sa dulo ng dokumento, kumpleto sa isang '&' sa dulo ng bawat linya. Dapat kang magdagdag ng isang linya para sa bawat isa sa mga file:
sudo python / home / pi / YOURFILENAME, py &
sudo python /home/pi/YOURFILENAME2.py &
bago ang linya
exit 0
Ang '&' sa dulo ng bawat linya ay mahalaga upang matiyak na ang mga loop ng programa.
Hakbang 6: Buuin ang Kahon
Nasa iyo ang lahat. Talagang kailangan lamang ang laki ng Pi, ngunit naglalagay ako ng isang tagapiga sa aking set-up upang mapanatili ang stream ng radyo sa isang medyo pare-pareho na antas upang medyo mas malaki ang kahon. Ang minahan ay may butas sa harap para sa On-Air sign at isa para sa Big Red Button, kasama ang gumawa ako ng isang maliit na card ng pagtuturo para sa mga DJ at inayos ito sa ibaba ng pindutan. Sa gilid ng kahon mayroong isang butas para sa pindutan ng itulak, ang LED LED at ang audio-input, kasama ang mga inlaid na tagubilin para sa kawani ng bar kung paano ligtas na ma-shut-down ang kahon.
Hakbang 7: Pag-install
Ayusin ang lahat ng magkakahiwalay na mga bahagi sa iyong kahon, naisip na laging mabuti na payagan ang ilang sirkulasyon ng hangin sa paligid ng Pi upang maiwasan ang sobrang pag-init. Ikabit ang mga audio cable mula sa iyong panghalo, pindutin ang pindutan at tangkilikin ang pag-broadcast!
Inirerekumendang:
Isang Radio na Tinukoy ng Software sa isang Shoestring: 9 Mga Hakbang (na may Mga Larawan)
Isang Radio na Tinukoy ng Software sa isang Shoestring: Sa simula ay ang kristal na hanay - ang unang praktikal na tumatanggap ng radio broadcast. Ngunit kailangan nito ng isang mahabang panghimpapawid at makakatanggap lamang ng mga lokal na istasyon. Nang sumama ang mga balbula (mga tubo, para sa aming mga kaibigan na Amerikano) ginawang posible upang makabuo ng higit pa
Isang Maliliit na Bass Preamp at Mga Box ng Mga Epekto: Itim na Yelo, Electra Fuzz: 9 Mga Hakbang (na may Mga Larawan)
Isang Maliliit na Bass Preamp at Mga Box ng Mga Epekto: Itim na Yelo, Electra Fuzz: Sa gabay na ito ipapakita ko kung paano mo magagawa ang iyong sariling bass / gitara pre-amplifier at effects box. Pinili kong gumawa ng isang hybrid effect box, na pinaghahalo ang karaniwang "Black Ice" o "Electra Distortion" distortion effect sa "Bazz Fuss" fuzz effect.
Paano Mag-disassemble ng isang Computer Na May Madaling Hakbang at Mga Larawan: 13 Hakbang (na may Mga Larawan)
Paano Mag-disassemble ng isang Computer Na May Madaling Mga Hakbang at Larawan: Ito ay isang tagubilin tungkol sa kung paano i-disassemble ang isang PC. Karamihan sa mga pangunahing sangkap ay modular at madaling matanggal. Gayunpaman mahalaga na maging maayos ka tungkol dito. Makakatulong ito upang maiwasan ka sa pagkawala ng mga bahagi, at sa paggawa din ng muling pagsasama
Pagbuo ng isang DIY Arduino sa isang PCB at Ilang Mga Tip para sa Mga Nagsisimula: 17 Mga Hakbang (na may Mga Larawan)
Pagbuo ng isang DIY Arduino sa isang PCB at Ilang Mga Tip para sa Mga Nagsisimula: Ito ay sinadya bilang isang gabay sa sinumang paghihinang ng kanilang sariling Arduino mula sa isang kit, na maaaring mabili mula sa A2D Electronics. Naglalaman ito ng maraming mga tip at trick upang matagumpay itong mabuo. Malalaman mo rin ang tungkol sa kung ano ang lahat ng iba't ibang mga sangkap
I-convert ang isang Radio Tape Player sa isang MP3 Boombox: 10 Hakbang (na may Mga Larawan)
I-convert ang isang Radio Tape Player sa isang MP3 Boombox: Gusto namin ng aking pamilya na makinig ng musika kapag nasa labas kaming nakikipaglaro sa mga bata o lumalangoy sa aming maliit na pool sa itaas. Mayroon kaming isang pares ng mga lumang CD / Tape / Radio Boomboxes ngunit ang mga CD player ay hindi gumana at ang lumang analog radio tuner ay madalas na mahirap