Taula de continguts:
- Pas 1: configureu el servidor
- Pas 2: configureu el Pi i instal·leu Darkice
- Pas 3: botó de reproducció i senyal d'emissió
- Pas 4: botó d'apagada segura i LED d'activitat
- Pas 5: feu que els scripts Python s'executin des de l'arrencada
- Pas 6: Construeix la caixa
- Pas 7: Instal·lació
Vídeo: Caixa de transmissió de ràdio amb un botó: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Vaig construir una caixa per al bar del meu amic que tenia un Raspberry Pi a l'interior i amb només prémer un botó emet àudio a un lloc web mitjançant Darkice i Icecast, alhora que il·luminava un rètol "On-Air". Vaig pensar que això feia alguna cosa que la gent ja estava fent, però després d'una extensa recerca no vaig trobar res i vaig decidir esbrinar-ho per mi mateix i fer-ho instructiu.
He utilitzat un Raspberry Pi 3+ B, però pel que puc dir funcionaria en qualsevol Pi (potser els números de pin GPIO podrien variar, però no ho puc donar fe). Vaig utilitzar el paquet NOOBS per al sistema operatiu i vaig comprar una targeta de so súper senzilla per a l'entrada. També he afegit un botó d’apagada segur i un LED d’activitat a la caixa per protegir el Pi.
Necessitarà:
Raspberry Pi
Paquet NOOBS en una targeta SD
Interruptor d'encès / apagat (he utilitzat un gran botó vermell d'aturada d'emergència com aquest, però pot ser qualsevol tipus de commutador "clic")
Polsador
1 LED
Un senyal "en directe", el vaig fer amb una matriu de LED
Soldador i tauler de connectors petit (acabo de tallar una tira d’una d’aquestes que tenia al voltant)
Targeta de so (n’he utilitzat una de molt senzilla com aquesta)
Pas 1: configureu el servidor
Per a l’emissora de ràdio que estem utilitzant no he fet aquesta part, ja que no tenia accés al servidor i el meu amic ho ha fet, però al lloc web d’Icecast hi ha una guia bàsica de configuració i he aconseguit obtenir funciona des del Pi al principi només per veure com va. També podeu obtenir un compte a internet-radio.com i funciona amb Darkice.
Pas 2: configureu el Pi i instal·leu Darkice
Obteniu una targeta SD amb el paquet NOOBS. Un cop hàgiu obert Raspbian i instal·lat totes les actualitzacions, obriu una finestra de Terminal i escriviu:
sudo apt-get update
sudo apt-get install darkice
Darkice forma part de Debian, per la qual cosa s’instal·larà automàticament, triga uns quants moments.
Un cop acabat, escriviu l'indicatiu:
darkice
Donarà un missatge d'error i no s'executarà, però està bé. Al missatge es dirà una cosa així com:
Mitjançant el fitxer de configuració: /etc/darkice.cfg
Heu d’editar aquest fitxer, de manera que al tipus de sol·licitud:
sudo nano /etc/darkice.cfg
Editeu el fitxer que s’obre amb la informació d’aquesta pàgina wiki. Radioreference, quan hàgiu acabat premeu CTRL-X per tancar, Y per desar i hauríeu de tornar a l’indicador de Terminal. Sempre és bo reiniciar després d’instal·lar un programa nou, així que escriviu:
reiniciar
i quan el Pi s'ha reiniciat, torneu a obrir una finestra de Terminal. Ara, quan escriviu "Darkice", hauria d'executar-se sense cap missatge d'error. Si aneu a https:// YOURSERVERADDRESS: 8000 / (8000 o a qualsevol port al qual estigui assignat el vostre servidor icecast), hauríeu de rebre una pàgina d’estadístiques on estigueu connectat. Si no, ajusteu el fitxer de configuració (la línia d'entrada d'àudio em va donar alguns problemes, però vaig provar totes les opcions i, finalment, vaig trobar la meva targeta de so). Quan Darkice funcioni correctament, passeu al següent pas.
Pas 3: botó de reproducció i senyal d'emissió
Vaig fer un munt de tutorials diferents, ja que no n'hi havia cap específic per assignar una acció a un botó de Python. El problema més gran que vaig tenir va ser aconseguir que Darkice s’executés en segon pla (i, per tant, no congelés l’escriptura Python quan es va començar a executar), però vaig demanar a un amic codificador que vingués a ajudar-lo i va trobar una manera de fer-ho escrivint fulls, cosa que jo no ho entenc. Pel que sembla, també podria ser possible utilitzar un "&" en algun lloc del codi, però no sóc cap programador i el que tinc funciona, així que vaig optar per no embolicar-m'hi. Un cop ho vaig tenir tot funcionant, vaig començar a reduir tots els cables de la placa fins que em vaig quedar amb la configuració següent:
GPIO16 a un connector extern de 3 punts.
GPIO7 al terminal positiu de la matriu LED per al signe ON-Air.
GPIO25 al clic-commutador.
L’altra cara del clic-switch s’adhereix al connector de 3 punts.
El terminal negatiu de la matriu de LED també s’uneix al connector de 3 punts.
(Els altres components del diagrama s’expliquen al següent pas).
L'escriptura Python amb la qual hem acabat és la següent (tingueu en compte que es tracta d'un manual instructiu per a tot el projecte, realment no sé prou com per explicar el codi. L'he preparat a partir d'altres tutorials per a diferents funcions):
importar temps importar RPi. GPIO com a GPIO GPIO.setwarnings (fals) GPIO.setmode (GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup (ledPin, GPIO. OUT) GPIO.setup (buttonPin, GPIO. IN, pull_up_down = GPIO. PUD_UP)
alternar = Fals
def start_darkice ():
print ('trucant al subprocés') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('reprenent') def stop_darkice (): os.system ('screen -X -S darkice quit')
mentre que és cert:
buttonState = GPIO.input (buttonPin) si buttonState == True: si no commuta: toggle = True print ('activant darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)
en cas contrari:
if toggle: toggle = Impressió falsa ('stopping darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)
El fitxer py s’adjunta a aquest Instructible, només el podeu descarregar i seguir el pas 5 si voleu.
Pas 4: botó d'apagada segura i LED d'activitat
Només per seguretat i per allargar la vida útil del Pi, he afegit un botó d’apagat segur i un LED d’activitat extern perquè la gent sàpiga quan és segur desconnectar la caixa. Vaig trobar fàcilment tutorials per a tots dos, però em vaig adonar que el Raspberry Pi 3 B + té un pin GPIO assignat per un LED ACT, mentre que els models anteriors no ho fan i això podria ser problemàtic si teniu un Pi més antic.
Connecteu el terminal positiu del LED a GPIO13 i el negatiu a GPIO26. Perquè el LED ACT funcioni, heu d’editar el fitxer config.txt al directori BOOT. Ho podeu trobar al navegador Raspbian o amb:
sudo nano /usr/boot/config.txt
Quan editeu el fitxer, simplement afegiu les línies següents:
# Utilitzeu LED extern com a LED ACT ACT dtoverlay = pi3-act-led, gpio = 19
Ara el LED extern parpellejarà amb l’activitat de la targeta SD.
Connecteu els terminals del commutador push a GPIO3 i GPIO8. He trobat el següent codi d’un tutorial i funciona bé:
importació del temps des de la importació gpiozero Botó des del subprocés d'importació check_call des de la pausa d'importació del senyal
apagat definitiu ():
check_call (['sudo', 'poweroff'])
shutdown_btn = Botó (2, hold_time = 1)
shutdown_btn.when_held = apagat
pausa ()
time.sleep (1)
Aquest fitxer py també s’adjunta per descarregar-lo si voleu. El meu botó s'ha de mantenir premut durant 1 segon, si voleu canviar-lo, canvieu el valor "hold-time =".
Pas 5: feu que els scripts Python s'executin des de l'arrencada
Una vegada més, hi ha molts tutorials sobre aquest tema, he utilitzat aquest de Dexter Industries i he seguit el primer pas editant el fitxer rc.local.
sudo nano /etc/rc.local
Aquí haureu d'afegir el camí d'accés complet al fitxer al final del document, amb una "&" al final de cada línia. Heu d'afegir una línia per a cadascun dels fitxers:
sudo python / home / pi / YOURFILENAME, py &
sudo python /home/pi/YOURFILENAME2.py &
just abans de la línia
sortida 0
El signe "&" al final de cada línia és important per assegurar que els bucles del programa.
Pas 6: Construeix la caixa
Això depèn completament de vosaltres. Realment només ha de tenir la mida del Pi, però he posat un compressor a la meva configuració per mantenir el flux de ràdio a un nivell bastant constant, de manera que la caixa és una mica més gran. El meu té un forat a la part frontal per al rètol On-Air i un per al Big Red Button, a més de que he fet una petita targeta d’instruccions per als DJ i l’he incrustat a sota del botó. Al lateral de la caixa hi ha un forat per al polsador, el LED ACT i l’entrada d’àudio, a més d’instruccions incrustades per al personal de la barra sobre com apagar la caixa amb seguretat.
Pas 7: Instal·lació
Fixeu tots els components separats a la vostra caixa, tenint en compte que sempre és bo permetre una mica de circulació d’aire al voltant del Pi per evitar el sobreescalfament. Connecteu els cables d'àudio del mesclador, premeu el botó i gaudiu de la transmissió.
Recomanat:
Creeu el vostre robot de transmissió de vídeo controlat per Internet amb Arduino i Raspberry Pi: 15 passos (amb imatges)
Construeix el teu robot de transmissió de vídeo controlat per Internet amb Arduino i Raspberry Pi: sóc @RedPhantom (també conegut com LiquidCrystalDisplay / Itay), un estudiant de 14 anys d'Israel que aprèn a la Max Shein Junior High School for Advanced Science and Mathematics. Estic fent aquest projecte perquè tothom pugui aprendre-lo i compartir-lo. És possible que tingueu
Kit de transmissió web Raspberry Pi: part 2 (transmissió de vídeo Pi): 6 passos
Raspberry Pi Web Stream Kit - Part 2 (Pi Video Streaming): D'acord, no crec que això necessités fotos, però al lloc web li agraden les imatges. Aquests són principalment una sèrie d’ordres i passos per a vosaltres. Hi ha una sèrie d’altres llocs que poden abordar qualsevol peculiaritat. Això és el que va funcionar per a mi. Això combina altres
Màquina de temps de transmissió per ràdio de la Segona Guerra Mundial: 13 passos (amb imatges)
WW2 Ràdio Broadcast Time Machine: La idea darrere d’això era utilitzar algunes parts que tenia al voltant i construir un disc musical d’àudio format en una antiga ràdio. Per proporcionar un propòsit més al darrere, també vaig decidir omplir-lo d'antigues emissions de ràdio de la Segona Guerra Mundial i després reutilitzar el
Raspberry Tank amb interfície web i transmissió de vídeo: 8 passos (amb imatges)
Raspberry Tank amb interfície web i transmissió de vídeo: veurem com he realitzat un petit dipòsit WiFi, capaç de control remot de web i transmissió de vídeo. Es tracta d’un tutorial que requereix coneixements bàsics de programació electrònica i de programari. Per aquest motiu, he escollit
La caixa de Barbie: una caixa o un boom camuflat per al reproductor de Mp3: 4 passos (amb imatges)
La caixa Barbie: una caixa o un boom camuflat per al vostre reproductor de MP3: es tracta d’una funda protectora encoixinada per al vostre reproductor de mp3 que també converteix la presa d’auriculars a quarts de polzada, disfressa el reproductor de mp3 com a reproductor de cinta dels primers anys noranta o similar de robatori baix