Kazalo:
- Zaloge
- 1. korak: Opis dela maline:
- Korak: Kode za IR daljinsko upravljanje
- 3. korak: Glavni program
- 4. korak: Del maline: samodejni zagon in dodajanje novih datotek
- 5. korak: Upravljanje napajanja prek Arduino Nano
- Korak 6: Kabli
- 7. korak: Škatla
Video: Raspitone: enostaven za uporabo Jukebox: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Pozdravljeni, moj naslednji projekt, kot to počnem, ni zelo koristen:
To je avtomat, ki temelji na malini 3 B+
Vem, kaj takega je mogoče enostavno narediti s pametnim telefonom in zvočnikom Bluetooth.
Toda za svoj projekt sem imel dva težka pogoja:
Hotel sem narediti nekaj "vintage".
Na splošno, glede na dejstvo, da je moja gospa dokončno brezupna za računalnik ali bluetooth ali karkoli drugega iz 21. stoletja (in celo 20.), sem moral narediti nekaj zelo preprostega za uporabo ………
Torej, specifikacije so bile naslednje:
En sam gumb za zagon stroja
Zaslon na dotik (zelo preprost) za upravljanje glasbe.
Z enim dotikom zaslona ustavite stroj.
In za dober zvok ………
Zaloge
Za to sem uporabil:
1 malina 3 B+
1 stari domači kino, ki je bil neuporaben zaradi bralnika DVD -jev (stari Samsung 2.1 z nizkotoncem in 2 zvočnikoma, ki sem jih spremenil tako, da so ustrezali škatli)
1 plošča HIFIBERRY DIGI+ (z optičnim izhodom za ojačevalnik moči)
1 kapacitivni zaslon na dotik 7 (moj je Makeasy za maline z vhodom HDMI in napaja prek USB -ja, vendar mora biti vsak zaslon na dotik HDMI v redu)
1 napajalnik 5V 5A
1 relejni ščit
1 Arduino nano za upravljanje procesa vklopa/izklopa napajanja
1 IR vodil za vožnjo domačega kina (vodil ga je 2N2222 NPN tranzistor)
1 IR sprejemnik (za del projekta, ki se uči IR kod, ga dobim s starega večpredstavnostnega trdega diska z daljinskim ukazom)
3 led
1 stikalo za vzdrževalni način
1 stikalo za delo na arduinu (med nalaganjem se arduino ponastavi)
nekaj priključkov JST in Dupont
In za škatlo
Les in vezan les (vendar izdelave škatle ne bom podrobno opisoval). samo povedati, da sta glede bumera v škatli 10 mm vezanega lesa in 18 mm lesa obvezna, če med igranjem ne želite videti Jukeboxa, ki prečka dnevno sobo !!!!
1. korak: Opis dela maline:
Raspi mora upravljati različne stvari:
1) ukazi za domači kino (prek daljinskega upravljalnika IR)
2) glasbene datoteke
3) zaslon na dotik
4) Srčni utrip za Arduino (ki upravlja Wdt (časovni pas za opazovanje))
Začel sem z distribucijo Raspbian strech na SD kartici 16 G (Ker bomo datoteke brali samo s kartice SD, uporaba trdega diska ni potrebna). Ne bom porabil časa za ta del, saj je splet poln predavanj o tem.
Poglejmo različne dele v naslednjih korakih….
Korak: Kode za IR daljinsko upravljanje
Ker nisem našel načrta vezja za domači kino, sem se odločil, da ga vozim prek daljinskih ukazov
Prvi korak, ki sem ga moral dokončati, je bil naučiti se Raspi kode daljinskega ukaza za domači kino.
Imel sem nekaj razlik, verjetno zaradi nove različice, saj so navodila precej stara, datoteka hardware.conf ne obstaja več (vsaj jaz je nisem našel)
Zdi se tudi, da je tranzistor, uporabljen v tutu, tranzistor PNP, jaz pa sem uporabil 2N2222, ki je NPN, vendar je rezultat enak. (Razen kabliranja !!!!!!!!)
Dodelitev pin je podana v /boot/config.txt:
#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IR LED bo tako priključen na pin22 Raspija.
Ena pomembna pripomba: pri učenju kod za Raspi je obvezna uporaba ključnih besed, navedenih v ukazu
unrecord --list-namespace
Tu je datoteka, ki sem jo zgradil za svoj jukebox:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Vzemite si čas za dokončanje te datoteke, kot je opisano v # https://sourceforge.net/p/lirc-remotes/wiki/Check… #, in jo dajte na voljo drugim tako, da jo pošljete na # #
# Ta konfiguracijska datoteka je bila samodejno ustvarjena
# z uporabo lirc -0.9.4c (privzeto) 9. maja 17:33:37 # Uporabljena ukazna vrstica: -d /dev /lirc0 /root/lircd.conf
# Različica jedra (uname -r): 4.14.98 -v7+ # # Ime na daljavo (od konfiguracijske datoteke): jukebox
# Znamka oddaljene naprave, stvar, ki jo držite v roki: # Model oddaljene naprave št.:
# URL informacij o oddaljeni napravi:
# Ali ima oddaljena naprava vgrajeno napravo za zajemanje e. g., a
# usb ključ?:
# Za priložene naprave USB: ID prodajalca USB, ID izdelka
# in niz naprave (uporabite dmesg ali lsusb):
# Vrsta upravljane naprave
# (TV, videorekorder, avdio, DVD, satelit, kabel, HTPC, …):
# Naprav, ki jih upravlja ta daljinski upravljalnik:
začnite na daljavo
ime jukebox
bitov 16
zastave SPACE_ENC | CONST_LENGTH
eps 30
aeps 100
glava 4470 4496
ena 542 1693
nič 542 581
ptrail 553
pred_data_bits 16
pred_podatki 0xC2CA
vrzel 107863
toggle_bit_mask 0x0
frekvenca 38000
kode za začetek
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
končne kode
konec na daljavo
Kot vidite, potrebujem le 4 ukaze za vožnjo domačega kina
Napajanje (ON/OFF)
AUX => za preklop na optični vhodni kanal (ker se HC vedno zažene na bralniku DVD -jev)
In glasnost +/-
Povezani ukazi se izvajajo z ukazi LIRC:
na primer: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"
3. korak: Glavni program
Glavni program je napisan v Pythonu:
Ker sem nov v Pythonu, mislim, da je mogoče veliko izboljšati, vendar deluje …
Specifikacije:
1) upravljajte grafični zaslon:
Za to sem uporabil APPJAR, ki je TKINTER, vendar civiliziran za študente (moj primer), to pomeni veliko lažjo uporabo, verjetno z manj možnosti, vendar je bilo za moj namen dovolj.
2) predvajajte datoteke mp3:
Za python sem uporabil mplayer.
3) ustvarite naključne številke za predvajanje v naključnem načinu:
Ker nisem želel slišati iste pesmi vsako četrtletje, sem zgradil majhen program, ki je preveril, ali številka ni na seznamu x prejšnjih številk (x odvisno od dolžine seznama predvajanja).
Funkcija randint v pythonu ni tako "naključna", kolikor sem videl.
4) pošljite "srčni utrip" na Arduino
5) upravljajte predvajalnik datotek:
Ker je Mplayer asinhroni, pri zagonu datoteke ni mogoče vedeti, kdaj je Python končan (vsaj nisem našel preprostega načina)
Za rešitev tega sem uporabil ukaze mplayer, ki podajajo dolžino datoteke in napredek v trenutni datoteki
Tako za 4 kot za 5 sem uporabil možnost, ki jo je dal Appjar, za ustvarjanje periodične naloge (ker je appjar program za dogodke, je to način za ustvarjanje periodičnega dogodka). funkcija je:
#**********************************************************************
p.setPollTime (1000)
Taskman za "upravitelja opravil", ki je def v programu, ki upravlja vse dogodke, ki niso prikazani na zaslonu (konec predvajane datoteke, vnesite vrstico napredka, pošljite srčni utrip v Nano,….)
Ko se zaslon zažene, izgleda tako:
Tu je program: (odpre se lahko prek Notepad ++ ali Geany)
4. korak: Del maline: samodejni zagon in dodajanje novih datotek
Če pogledate program, lahko vidite, da uporabljam nekaj bash datotek:
1) Start_jukebox:
Pravzaprav je namen vklopiti domači kino in preklopiti na vhod D. IN (optični vhod v mojem domačem kinu)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
spanje 7
irsend SEND_ONCE jukebox KEY_AUX
spanje 2
2) stop_jukebox:
Za izklop domačega kina
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
Ti dve datoteki bash Python pokliče z ukazom os.system
Za zagon skripta Python sem naredil majhen udarec
pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash
cd /home /pi
python jukebox_gui.py
Za samodejni zagon v načinu grafičnega vmesnika sem samo spremenil datoteko samodejnega zagona v/etc/xdg/lxsession/LXDE-pi
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat autostart@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no -splash
@lxterminal --command = "dem_jukebox.bash"
point-rpi
Dodajanje novih mp3 datotek:
Za dodajanje novih datotek sem raje naredil majhen namenski skript Python:
new_song_file.py
Najprej bom razložil organizacijo sistemskih datotek:
Vse datoteke so v /home /pi
mp3 datoteke so shranjene v imeniku/home/pi/Music
Vsak izvajalec ima svoj podimenik, v katerem so povezane mp3 datoteke
pi@raspitone: ~/Music/Mike_oldfield $ ls -skupaj 760516
-rwxr ----- 1 pi pi 2254923 30. junij 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 30. junij 2017 Prihod.mp3
-rwxr ----- 1 pi pi 8383244 30. junij 2017 Vnebovzetje.mp3
-rwxr ----- 1 pi pi 5410816 30. junij 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 30. junij 2017 Castaway_ (Instrumental).mp3
-rwxr ----- 1 pi pi 12903583 30. junij 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 30. junij 2017 Celt.mp3
-rwxr ----- 1 pi pi 9047745 30. junij 2017 Chariots_ (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 30. junij 2017 Chariots.mp3
V imeniku Dokumenti najdemo zgrajen seznam datotek za predvajanje.
pi@raspitone: ~/Documents $ cat list.txtFranz_Ferdinand/Michael_live.mp3
Franz_Ferdinand/evil_and_a_heathen.mp3
Franz_Ferdinand/Walk_Away_live.mp3
Franz_Ferdinand/love_and_destroy.mp3
Franz_Ferdinand/his_fffire.mp3
Franz_Ferdinand/eleanor_put_your_boots_on.mp3
Franz_Ferdinand/missing_you.mp3
Franz_Ferdinand/this_fire_ (playgroup_remix).mp3
Franz_Ferdinand/Jacqueline.mp3
Lahko najdemo tudi podatke o seznamih predvajanja (vendar to gradi skript Python)
Majhen skript Python doda nove pesmi, shranjene v Glasbi, v list.txt po tem, ko je naslove formatiral v formatu UNIX
Tu je skript: (lahko ga odprete prek Notepad ++ ali Geany)
5. korak: Upravljanje napajanja prek Arduino Nano
Ker sem hotel imeti nekaj preprostega za začetek, sem se odločil, da to naredim z majhnim nano:
Načelo:
Ko pritisnete gumb za zagon, se vse naprave napajajo, nano se zažene (1 ali 2 sekundi) in prevzame upravljanje porabe z sprožitvijo releja, ki odklopi stike gumba.
Nato Nano počaka 35 sekund, da prejme srčni utrip iz maline (pomeni, da je postopek zagona končan in program jukebox se zažene).
Dokler nano sprejema srčni utrip, rele drži vklopljen (časovnik za gledanje psov)
Če srčni utrip ni več (pomeni, da je program jukebox ustavljen), Nano počaka 20 sekund (da se prepriča, da je raspi popolnoma ustavljen), da sprosti rele za napajanje.
Jukebox se nato popolnoma izklopi
Dodal sem stikalo za aktiviranje vnosa nano za označevanje načina vzdrževanja (jukebox uporabljam za upravljanje drugih strežnikov raspi prek ssh et vnc). Nano nato izklopi postopek čuvajskega psa
Opomba:
vhod za srčni utrip iz Raspija je treba potegniti navzdol (vendar Nano 3.3V iz Raspija šteje za visoko raven)
To bi lahko naredili z NE555, vendar sem len in imam vedno nekaj nano v predalu !!!!
Tu je kratek program C (lahko ga odprete z Notepad ++)
Korak 6: Kabli
Za zaslon:
Za napajanje in pogon zaslona na Raspiju uporabljata kabel HDMI in kabel USB.
Za sprednjo ploščo:
Iz Raspija je priključen tudi kabel USB, ki omogoča nalaganje novih datotek ali varnostno kopiranje.
Za dostop do programske opreme Nano je priključen kabel USB (za spremembe po potrebi)
Na malino priključim tudi brezžični ključ za tipkovnico, da lahko vzdržujem brez uporabe zunanjega vtiča USB
Ker se uporabljata Raspberry in Arduino, je ožičenje precej preprosto.
Vse se nahaja na matrični plošči s trakovi.
Od maline 2 GPIO se uporabljajo:
Pin22 za IR LED
Pin 27 za utrip srca za Arduino
na Arduinu
Pin 2 se uporablja kot prekinitveni pin za srčni utrip iz Raspija.
Zatiči od 3 do 5 se uporabljajo za pogon LED (Start, Wdt, Maintenance).
Pin 6 je za stikalo za vzdrževanje.
Pin 7 je izhod na relejni ščit.
Tukaj je datoteka za frcanje:
7. korak: Škatla
Ne bom veliko opisoval, kaj sem naredil, saj je odvisno od ojačevalnika moči in uporabljenih zvočnikov.
Kot informacija je domači kino na dnu škatle.
Tik nad zvočniki:
1 nizkotonec
2 srednje velika zvočnika, ki sem jih spremenil tako, da sem jih vstavil v škatlo.
Na vrh:
Sprednja plošča z zaslonom, LED diodami, stikali in vtiči USB.
Les:
Za zvočnike, stranske plošče zgoraj in spodaj sem uporabil 18 mm leseno desko.
Sprednja stran je 10 mm vezanega lesa s 40 mm vijaki.
Za lažje ožičenje in vzdrževanje (če je potrebno !!!) sem vezje postavil na predal za sprednjo ploščo
Da bi se izognili pregrevanju, je na dnu zadnje plošče narejena velika luknja, zraven vezja pa sem na zadnjo ploščo postavil 5V ventilator (8 cm).
Zgornja slika je samo za predstavo.
Torej, to je to !!!!!!!!!
Hvala, ker ste me prebrali
In naslednjič se vidimo za nove dogodivščine
Priporočena:
Enostaven enosmerni - DC pretvornik za povečanje z uporabo 555: 4 korakov
Preprost enosmerni - DC pretvornik za povečanje z uporabo 555: V vezju je pogosto koristno imeti višje napetosti. Za zagotavljanje +ve in -ve tirnic za op -amp, za pogon brenčal ali celo releja brez potrebe po dodatni bateriji. To je preprost pretvornik 5V do 12V DC, zgrajen s časovnikom 555 a
Enostaven sledilnik linij z uporabo Arduina: 5 korakov
Enostaven sledilnik linij z uporabo Arduina: Robo sledilca linij Arduino V tej vadnici bomo razpravljali o delovanju robota Arduino, ki sledi robotu, ki bo sledil črni črti v belem ozadju in zavil pravilno, ko bo dosegel ovinke na svoji poti. Arduino Line Follower Co
Uporabniški vmesnik, enostaven za uporabo -- OLED zaslon z igralno palico in gumbi: 6 korakov
Uporabniški vmesnik, enostaven za uporabo || Zaslon OLED z igralno palico in gumbi: Ta modul ima zaslon OLED z dvema gumboma, 5-smerno krmilno palčko in 3-osni merilnik pospeška. To je koristno pri nastavitvi uporabniškega vmesnika za projekt. Hej, kaj je fantje? Akarsh tukaj iz CETech-a. Danes si bomo ogledali modul vse v enem, ki
Enostaven in enostaven spletni strelec Spider-Man: 12 korakov
Enostaven in enostaven spletni strelec Spider-Man: Ste že gledali film o Spider-Manu? Zakaj ne bi naredili preprostega spletnega strelca? Po nekaj vaje sem ustvaril dizajn iz hišnih materialov, ki bi jih lahko ustvarili
DIY MusiLED, glasbeno sinhronizirane LED z aplikacijo Windows in Linux z enim klikom (32-bitne in 64-bitne). Enostaven za ponovno ustvarjanje, enostaven za uporabo, enostaven za prenos .: 3 koraki
DIY MusiLED, glasbeno sinhronizirane LED z aplikacijo Windows in Linux z enim klikom (32-bitne in 64-bitne). Enostaven za ponovno ustvarjanje, enostaven za uporabo, enostaven za prenos. Ta projekt vam bo pomagal povezati 18 LED (6 rdečih + 6 modrih + 6 rumenih) na ploščo Arduino ter analizirati signale zvočne kartice v računalniku v realnem času in jih posredovati LED diode, ki jih prižgejo glede na učinke utripa (Snare, High Hat, Kick)