Sadržaj:
- Pribor
- Korak 1: Opis dijela maline:
- Korak 2: IR daljinski kodovi
- Korak 3: Glavni program
- Korak 4: Malinin dio: automatsko pokretanje i dodavanje novih datoteka
- Korak 5: Upravljanje napajanjem putem Arduino Nano
- Korak 6: Kabliranje
- Korak 7: Kutija
Video: Raspitone: Jukebox jednostavan za korištenje: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Poštovani, moj sljedeći projekt, kao što to i radim, nije baš koristan:
Ovo je džuboks baziran na malini 3 B+
Znam, ovako nešto se lako može učiniti pametnim telefonom i Bluetooth zvučnikom.
No za svoj projekt imao sam dva teška preduvjeta:
Htio sam napraviti nešto "vintage".
I sve u svemu, s obzirom na činjenicu da je moja dama definitivno beznadna za računalo ili bluetooth ili bilo što drugo iz 21. stoljeća (pa čak i 20.), morao sam učiniti nešto vrlo jednostavno za korištenje ………
Dakle, specifikacije su bile sljedeće:
Jedan jedini gumb za pokretanje stroja
Zaslon osjetljiv na dodir (vrlo jednostavan) za upravljanje glazbom.
Jednim dodirom na zaslonu zaustavite stroj.
I za dobar zvuk ………
Pribor
Za ovo sam koristio:
1 malina 3 B+
1 staro kućno kino koje je bilo beskorisno zbog OOS čitača DVD -a (stari Samsung 2.1 sa wooferom i 2 zvučnika koje sam izmijenio tako da odgovaraju kutiji)
1 HIFIBERRY DIGI+ ploča (s optičkim izlazom za pojačalo)
1 kapacitivni zaslon osjetljiv na dodir 7 (moj je Makeasy za maline s HDMI ulazom i napaja se putem USB -a, ali svaki HDMI zaslon osjetljiv na dodir trebao bi biti u redu)
1 napajanje 5V 5A
1 relejni štit
1 Arduino nano za upravljanje procesom uključivanja/isključivanja napajanja
1 IC vodio je za upravljanje kućnim kinom (vođen 2N2222 NPN tranzistorima)
1 IR prijemnik (za dio projekta koji uči o IR kodovima, ja svoj dobivam sa starog multimedijskog tvrdog diska s daljinskom naredbom)
3 led
1 prekidač za način održavanja
1 prekidač za rad na arduinu (tijekom učitavanja arduino se resetira)
neki konektori JST i Dupont
I za kutiju
Drvo i šperploča (ali neću detaljno opisivati izradu kutije). samo da kažem, što se tiče boomera unutar kutije, 10 mm šperploča i 18 mm drvo su obavezni ako ne želite vidjeti Jukebox kako prelazi dnevnu sobu tijekom igre !!!!
Korak 1: Opis dijela maline:
Raspi mora upravljati različitim stvarima:
1) naredbe za kućno kino (putem IC daljinskog upravljača)
2) glazbene datoteke
3) zaslon osjetljiv na dodir
4) Otkucaji srca za Arduino (koji upravlja Wdt -om (mjerač vremena psa))
Počeo sam od Raspbian strech distribucije na 16 G SD kartici (Budući da ćemo čitati samo datoteke sa SD kartice, upotreba tvrdog diska nije potrebna). Neću trošiti vrijeme na ovaj dio jer je web prepun tuta o tome.
Pogledajmo različite dijelove u sljedećim koracima….
Korak 2: IR daljinski kodovi
Kako nisam uspio pronaći plan kola kućnog kina, odlučio sam se njime upravljati putem daljinskih naredbi
Prvi korak koji sam morao dovršiti bio je naučiti Raspi kodove daljinske komande kućnog kina. Za to sam koristio vrlo dobre tutoteke u Instructables iz Austin Stanton IR kodova
Imao sam nekih razlika, vjerojatno zbog nove verzije jer su instrukcije prilično stare, datoteka hardware.conf više ne postoji (barem je nisam našao)
Čini se također da je tranzistor koji se koristi u tutu PNP tranzistor, sa svoje strane koristio sam 2N2222 koji je NPN, ali rezultat je isti. (Osim kabliranja !!!!!!!!)
Dodjela pin -a data je u /boot/config.txt:
#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IC LED dioda bit će tako spojena na pin22 Raspija.
Jedna važna napomena: pri učenju kodova za Raspi obavezno je koristiti ključne riječi navedene u naredbi
unrecord --list-namespace
Evo datoteke koju sam izgradio za svoj džuboks:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Molimo odvojite malo vremena da završite ovu datoteku kako je opisano u # https://sourceforge.net/p/lirc-remotes/wiki/Check… # i učinite je dostupnom drugima slanjem na # #
# Ova konfiguracijska datoteka je automatski generirana
# pomoću lirc -0.9.4c (zadano) u četvrtak, 9. svibnja 17:33:37 2019 # Korištena naredbena linija: -d /dev /lirc0 /root/lircd.conf
# Verzija jezgre (uname -r): 4.14.98 -v7+ # # Udaljeni naziv (od konfiguracijske datoteke): jukebox
# Marka udaljenog uređaja, ono što držite u ruci: # Model udaljenog uređaja br:
# URL informacija o udaljenom uređaju:
# Ima li udaljeni uređaj paketni uređaj za hvatanje e. g., a
# USB ključ?:
# Za USB uređaje u paketu: ID dobavljača USB -a, ID proizvoda
# i niz uređaja (koristite dmesg ili lsusb):
# Vrsta upravljanog uređaja
# (TV, videorekorder, audio, DVD, satelit, kabel, HTPC, …):
# Uređaja kojima upravlja ovaj daljinski upravljač:
početi daljinski
ime džuboks
bitovi 16
zastavice SPACE_ENC | CONST_LENGTH
eps 30
aeps 100
zaglavlje 4470 4496
jedan 542 1693
nula 542 581
ptrail 553
pre_data_bits 16
pre_data 0xC2CA
jaz 107863
toggle_bit_mask 0x0
frekvencija 38000
kodovi za početak
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
krajnji kodovi
kraj daljinski
Kao što vidite, potrebne su mi samo 4 naredbe za vožnju kućnim kinom
Napajanje (ON/OFF)
AUX => za prelazak na optički ulazni kanal (budući da HC uvijek počinje na DVD čitaču)
I glasnoća +/-
Povezane naredbe izvršavaju se naredbama LIRC:
na primjer: "irsend SEND_ONCE džuboks KEY_VOLUMEUP"
Korak 3: Glavni program
Glavni program je napisan na Pythonu:
Budući da sam nov u Pythonu, pretpostavljam da se može puno poboljšati, ali to radi….
Specifikacije:
1) upravljanje grafičkim zaslonom:
Za to sam koristio APPJAR koji je TKINTER, ali civiliziran za studente (moj slučaj), što znači da je mnogo lakši za korištenje, vjerojatno s manje mogućnosti, ali to je bilo dovoljno za moju svrhu.
2) reproducirajte mp3 datoteke:
Koristio sam mplayer za python.
3) generirajte nasumične brojeve za igru u slučajnom redoslijedu:
Kako nisam htio čuti istu pjesmu svake četvrtine, napravio sam mali program za provjeru nije li broj prisutan na popisu x prethodnih brojeva (x ovisno o duljini popisa za reprodukciju).
Funkcija randint u pythonu nije toliko "slučajna" koliko sam vidio.
4) pošaljite "otkucaje srca" na Arduino
5) upravljajte datotečnim playerom:
Kako je Mplayer asinkroni, kada se datoteka pokrene, ne postoji način da se zna za Python kada je gotova (barem nisam pronašao jednostavan način)
Da bih to riješio, upotrijebio sam naredbe mplayer koje su dale duljinu datoteke i napredak u trenutnoj datoteci
I za 4 i za 5 koristio sam mogućnost koju je dao Appjar za generiranje periodičnog zadatka (budući da je appjar program za događaje, ovo je način za stvaranje periodičnog događaja). funkcija je:
#******************* start taskman ********************** app.registerEvent (taskman)
p.setPollTime (1000)
Taskman za "upravitelja zadataka" koji je def u programu koji upravlja svim događajima koji nisu na ekranu (kraj reproducirane datoteke, popunjavanje trake napretka, slanje otkucaja srca u Nano,….)
Nakon pokretanja zaslon izgleda ovako:
Evo programa: (može se otvoriti putem Notepad ++ ili Geany)
Korak 4: Malinin dio: automatsko pokretanje i dodavanje novih datoteka
Ako pogledate program, možete vidjeti da koristim neke bash datoteke:
1) Start_jukebox:
Zapravo, svrha je uključivanje kućnog kina i prelazak na ulaz D. IN (optički ulaz u mom kućnom kinu)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE džuboks KEY_POWER
spavaj 7
irsend SEND_ONCE džuboks KEY_AUX
spavati 2
2) stop_jukebox:
Isključivanje kućnog kina
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE džuboks KEY_POWER
Ove dvije bash datoteke Python poziva naredbom os.system
Za pokretanje Python skripte napravio sam mali bash
pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash
cd /home /pi
python jukebox_gui.py
Za automatsko pokretanje u GUI načinu rada samo sam izmijenio datoteku automatskog pokretanja u/etc/xdg/lxsession/LXDE-pi
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat autostart@lxpanel --profil LXDE-pi
@pcmanfm --desktop --profil LXDE-pi
@xscreensaver -nema prskanja
@lxterminal --command = "dem_jukebox.bash"
točka-rpi
Dodavanje novih mp3 datoteka:
Za dodavanje novih datoteka radije sam napravio malu namjensku Python skriptu:
new_song_file.py
Prvo ću objasniti organizaciju sistemskih datoteka:
Sve datoteke su u /home /pi
mp3 datoteke nalaze se u/home/pi/Music direktoriju
Svaki izvođač ima svoj podimenik u kojem se nalaze povezane mp3 datoteke
pi@raspitone: ~/Music/Mike_oldfield $ ls -ukupno 760516
-rwxr ----- 1 pi pi 2254923 30. lipnja 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 30. lipnja 2017 Dolazak.mp3
-rwxr ----- 1 pi pi 8383244 30. lipnja 2017 Uzašašće.mp3
-rwxr ----- 1 pi pi 5410816 30. lipnja 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 30. lipnja 2017 Castaway_ (Instrumental).mp3
-rwxr ----- 1 pi pi 12903583 30. lipnja 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 30. lipnja 2017 Celt.mp3
-rwxr ----- 1 pi pi 9047745 30. lipnja 2017 Chariots_ (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 30. lipnja 2017 Chariots.mp3
U direktoriju Dokumenti možemo pronaći izgrađeni popis datoteka za reprodukciju.
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
Također možemo pronaći podatke o popisima za reprodukciju (ali to je izgrađeno Python skriptom)
Mala Python skripta dodaje nove pjesme, spremljene u Glazbi, u list.txt nakon formatiranja naslova u UNIX formatu
Evo skripte: (može se otvoriti putem Notepad ++ ili Geany)
Korak 5: Upravljanje napajanjem putem Arduino Nano
Kako sam želio imati nešto jednostavno za početak, odlučio sam to učiniti malim nano:
Princip:
Kad pritisnete gumb za pokretanje, svi se uređaji napajaju, nano se pokreće (1 ili 2 sekunde) i preuzima upravljanje napajanjem aktiviranjem releja koji preskače kontakte gumba.
Zatim Nano čeka 35 sekundi da primi otkucaje srca od maline (znači da je proces pokretanja dovršen i program jukebox pokrenut).
Dok nano prima otkucaje srca, relej je uključen (mjerač vremena psa)
Ako više nema otkucaja srca (znači da je program za jukebox zaustavljen) Nano čeka 20 sekundi (kako bi bio siguran da je raspi potpuno zaustavljen) da oslobodi relej za napajanje.
Džuboks se tada potpuno isključuje
Dodao sam prekidač za aktiviranje unosa nano za označavanje načina održavanja (ja koristim džuboks za upravljanje svojim drugim raspi poslužiteljima putem ssh et vnc). Nano tada deaktivira proces pasa čuvara
Napomena:
ulaz za otkucaje srca iz Raspija mora biti smanjen (ali Nano smatra da 3.3V iz Raspija smatra visokom razinom)
Moglo bi se to učiniti s NE555, ali ja sam lijen i uvijek imam neke nano u ladici !!!!
Evo kratkog C programa (može se otvoriti pomoću Notepada ++)
Korak 6: Kabliranje
Za ekran:
HDMI kabel i USB kabel koriste se na Raspiju za napajanje i pokretanje zaslona.
Za prednju ploču:
USB kabel je također spojen s Raspija da biste mogli učitati nove datoteke ili napraviti sigurnosnu kopiju.
USB kabel je spojen s Nano -a radi pristupa softveru (za izmjene ako je potrebno)
Uključujem i bežični ključ za tipkovnicu na malinu kako bih mogao održavati bez korištenja vanjskog USB priključka
Kako se koriste Raspberry i Arduino, ožičenje je prilično jednostavno.
Sve se nalazi na matričnoj ploči.
Od maline 2 GPIO se koriste:
Pin22 za IR LED
Pin 27 za otkucaje srca za Arduino
na Arduinu
Pin 2 se koristi kao prekidni pin za otkucaje srca iz Raspija.
Igle 3 do 5 koriste se za vožnju LED dioda (Start, Wdt, održavanje).
Pin 6 služi za prekidač za održavanje.
Pin 7 izlazi na relejni štit.
Evo datoteke za prevrtanje:
Korak 7: Kutija
Neću puno opisivati što sam učinio jer ovisi o pojačalu snage i o korištenim zvučnicima.
Kao informacija, kućno kino nalazi se na dnu kutije.
Odmah preko zvučnika:
1 niskotonac
2 srednja zvučnika, koja sam izmijenila tako da ih umetnem u kutiju.
Na vrhu:
Prednja ploča s zaslonom, LED diodama, prekidačima i USB utičnicama.
Drvo:
Za zvučnike, bočne ploče s gornje i donje strane koristio sam dasku od 18 mm.
Prednja strana je 10 mm šperploča s vijcima od 40 mm.
Kako bih olakšao ožičenje i održavanje (ako je potrebno !!!), sklop sam stavio na ladicu iza prednje ploče
Kako bi se izbjeglo pregrijavanje, velika rupa je napravljena na dnu stražnje ploče, a ja sam stavio ventilator od 5 V (8 cm) na stražnju ploču odmah do strujnog kruga.
Gornja slika služi samo za ideju.
Znaci to je to !!!!!!!!!
Hvala vam što ste me pročitali
I vidimo se sljedeći put u novim avanturama
Preporučeni:
Korištenje Pimoroni Enviro+ FeatherWing s perjem Adafruit NRF52840 Express: 8 koraka
Korištenje Pimoroni Enviro+ FeatherWing s Adafruit Feather NRF52840 Express: Pimoroni Enviro+ FeatherWing je ploča prepuna senzora dizajniranih za rad s nizom ploča Adafruit Feather. To je korisno mjesto za početak za sve koji se zanimaju za praćenje okoliša, zagađenje atmosfere i izmjenu podataka. Ja
Korištenje gitare Hero Guitar za kontrolu zumiranja (samo za Windows): 9 koraka
Korištenje gitare Guitar Hero za kontrolu zumiranja (samo za Windows): Kako smo usred globalne pandemije, mnogi od nas zaglavili su u čišćenju kuće i pridruživanju sastancima na Zoomu. Nakon nekog vremena ovo može postati vrlo dosadno i zamorno. Čišćenjem kuće našao sam staru gitaru Guitar Hero koja je bačena u
Neopixel Ws2812 Rainbow LED sjaj s M5stick-C - Pokretanje Rainbow na Neopixelu Ws2812 Korištenje M5stack M5stick C Korištenje Arduino IDE -a: 5 koraka
Neopixel Ws2812 Rainbow LED sjaj s M5stick-C | Pokretanje Rainbow-a na Neopixelu Ws2812 Korištenje M5stack M5stick C Korištenje Arduino IDE-a: Zdravo dečki, u ovim uputama naučit ćemo kako koristiti neopixel ws2812 LED diode ili LED traku ili LED matricu ili LED prsten s razvojnom pločom m5stack m5stick-C s Arduino IDE-om, a mi ćemo napraviti dugin uzorak s njim
Brz i jednostavan način promjene zaključanog zaslona u 6 jednostavnih koraka (Windows 8-10): 7 koraka
Brz i jednostavan način promjene zaključanog zaslona u 6 jednostavnih koraka (Windows 8-10): Želite li promijeniti stvari na prijenosnom računalu ili računalu? Želite promjenu svoje atmosfere? Slijedite ove brze i jednostavne korake za uspješnu prilagodbu zaključanog zaslona računala
(Jednostavan) jednostavan način dobivanja analognog/pwm zvuka s Raspberry PI Zero -a i povezivanja na Crt TV: 4 koraka
(Jednostavan) jednostavan način za dobivanje analognog/pwm zvuka s Raspberry PI Zero -a i povezivanje s Crt TV -om: Ovdje sam upotrijebio najjednostavniji način za unos zvuka na televizor uz kompim video