Sadržaj:
- Supplies
- 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: jednostavan za korištenje Jukebox: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
Zdravo, moj sljedeći projekt, kao što to i radim, nije baš koristan:
Ovo je džuboks zasnovan na malini 3 B+
Znam, ovako nešto se lako može učiniti pametnim telefonom i Bluetooth zvučnikom.
Ali za svoj projekat imao sam dva teška preduslova:
Htio sam napraviti nešto "vintage".
I sve u svemu, s obzirom na činjenicu da je moja dama definitivno beznadežna za računarom ili bluetoothom ili bilo čim drugim 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:
Jedno dugme za pokretanje mašine
Zaslon osjetljiv na dodir (vrlo jednostavan) za upravljanje muzikom.
Jednim dodirom na ekranu zaustavite mašinu.
I za dobar zvuk ………
Supplies
Za ovo sam koristio:
1 malina 3 B+
1 staro kućno kino koje je bilo beskorisno zbog DVD čitača OOS (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 snage)
1 kapacitivni ekran osetljiv na dodir 7 (moj je Makeasy za maline sa HDMI ulazom i napaja se preko USB -a, ali svaki HDMI ekran osetljiv na dodir bi trebao 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, moj dobivam sa starog multimedijskog tvrdog diska s daljinskom komandom)
3 led
1 prekidač za način održavanja
1 prekidač za rad na arduinu (tokom učitavanja arduino se resetira)
neki JST i Dupont konektori
I za kutiju
Drvo i šperploča (ali neću detaljno opisivati izradu kutije). samo da kažem, što se tiče bumera unutar kutije, 10 mm šperploča i 18 mm drvo su obavezni ako ne želite vidjeti Jukebox kako prelazi dnevnu sobu dok se igrate !!!!
Korak 1: Opis dijela maline:
Raspi mora upravljati različitim stvarima:
1) komande kućnom kinu (putem IC daljinskog upravljača)
2) muzičke datoteke
3) ekran osetljiv 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 HDD -a 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 mogao pronaći plan kola kućnog kina, odlučio sam se njime upravljati putem daljinskih komandi
Prvi korak koji sam morao dovršiti bio je naučiti Raspi kodove daljinske komande kućnog kina. Za to sam koristio vrlo dobre tuto u Instructables iz Austin Stanton IR kodova
Imao sam nekih razlika, vjerovatno 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, ja sam sa svoje strane koristio 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 će biti spojena na pin22 Raspija.
Jedna važna napomena: prilikom učenja kodova za Raspi obavezno je korištenje ključnih riječi navedenih 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
# koristeći lirc -0.9.4c (zadano) 9. četvrtka 17:33:37 # Korištena naredbena linija: -d /dev /lirc0 /root/lircd.conf
# Verzija kernela (uname -r): 4.14.98 -v7+ # # Daljinsko ime (od konfiguracijske datoteke): džuboks
# 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 snimanje 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 uređaja kojim se upravlja
# (TV, videorekorder, audio, DVD, satelit, kablovska, HTPC, …):
# Uređaja kojima upravlja ovaj daljinski upravljač:
počni 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
početni kodovi
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
krajnji kodovi
kraj daljinski
Kao što vidite, potrebne su mi samo 4 komande za upravljanje kućnim kinom
Napajanje (ON/OFF)
AUX => za prebacivanje na optički ulazni kanal (jer HC uvijek počinje na DVD čitaču)
I jačina zvuka +/-
Povezane naredbe izvršavaju se pomoću naredbi 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 mnogo poboljšati, ali to radi….
Specifikacije:
1) upravljanje grafičkim ekranom:
Za ovo 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 svako tromjesečje, napravio sam mali program kako bih provjerio nije li broj prisutan na x prethodnoj listi brojeva (x ovisno o dužini playliste).
Funkcija randint u pythonu nije toliko "slučajna" koliko sam vidio.
4) pošaljite "otkucaj srca" na Arduino
5) upravljajte datotečnim plejerom:
Kako je Mplayer asinhroni, kada se datoteka pokrene, ne postoji način da se zna za Python kada je završena (barem nisam pronašao jednostavan način)
Da bih to riješio, koristio sam mplayer naredbe koje su dale dužinu 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 "task manager" 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 ekran 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:
U stvari, 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 poziva Python 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 za automatsko pokretanje 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 -no -splash
@lxterminal --command = "dem_jukebox.bash"
point-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:
Svi fajlovi su u /home /pi
mp3 datoteke se nalaze u/home/pi/Music direktoriju
Svaki izvođač ima svoj poddirektorij koji sadrži 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. jun 2017. Dolazak.mp3
-rwxr ----- 1 pi pi 8383244 30. jun 2017. Uzašašće.mp3
-rwxr ----- 1 pi pi 5410816 30. lipnja 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 30. jun 2017. Castaway_ (Instrumental).mp3
-rwxr ----- 1 pi pi 12903583 30. lipnja 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 30. jun 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đenu listu 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 listama reprodukcije (ali to je izgrađeno Python skriptom)
Mala Python skripta dodaje nove pjesme, sačuvane u Music, u list.txt nakon što je formatirala naslove 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 lako za početak, odlučio sam to učiniti malim nano:
Princip:
Kada pritisnete gumb za pokretanje, svi uređaji se 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 Raspberryja (znači da je proces pokretanja dovršen i da se program za džuboks pokreće).
Sve dok nano prima otkucaje srca, relej je uključen (mjerač vremena psa)
Ako više nema otkucaja srca (znači da je program za džuboks zaustavljen) Nano čeka 20 sekundi (da 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 -a za označavanje načina održavanja (koristim džuboks za upravljanje ostalim raspi serverima putem ssh et vnc). Nano tada deaktivira proces pasa čuvara
Napomena:
ulaz za otkucaje srca iz Raspija treba smanjiti (ali Nano smatra 3.3V iz Raspija visokim nivoom)
Moglo bi se to sa NE555, ali ja sam lijen i uvijek imam neke nano u ladici !!!!
Evo kratkog C programa (može se otvoriti sa Notepad ++)
Korak 6: Kabliranje
Za ekran:
HDMI kabel i USB kabel koriste se na Raspiju za napajanje i pokretanje ekrana.
Za prednju ploču:
USB kabl je takođe povezan sa Raspija kako bi se mogli učitavati nove datoteke ili praviti rezervne kopije.
USB kabel je povezan s Nano -om kako bi mogao pristupiti softveru (za izmjene ako je potrebno)
Priključujem i bežični ključ za tastaturu na malinu kako bih mogao održavati bez upotrebe 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 na Arduinu
na Arduinu
Pin 2 se koristi kao pin za prekidanje otkucaja srca iz Raspija.
Igle 3 do 5 koriste se za pogon LED dioda (Start, Wdt, održavanje).
Pin 6 služi za prekidač za održavanje.
Pin 7 je izlaz na relejni štit.
Evo datoteke za prevrtanje:
Korak 7: Kutija
Neću puno opisivati šta sam uradio jer to zavisi od pojačala i zvučnika koji se koriste.
Kao informacija, kućni bioskop se nalazi na dnu kutije.
Odmah preko zvučnika:
1 niskotonac
2 srednja zvučnika, koja sam izmijenila kako bih ih umetnula u kutiju.
Na vrhu:
Prednja ploča sa ekranom, LED diodama, prekidačima i USB utičnicama.
Drvo:
Za zvučnike, bočne ploče s gornje i donje strane koristio sam 18 mm drvenu dasku.
Prednja strana je 10 mm šperploča sa 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, na dnu stražnje ploče napravljena je velika rupa, 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 davanje ideje.
Pa to je to !!!!!!!!!
Hvala što ste me pročitali
I vidimo se sljedeći put u novim avanturama
Preporučuje se:
Korištenje Pimoroni Enviro+ FeatherWing s Adafruit perom 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žuju se sastancima na Zoomu. Nakon nekog vremena ovo može postati vrlo dosadno i zamorno. Prilikom čišćenja kuće našao sam staru gitaru Guitar Hero koja je bačena u
Neopixel Ws2812 Rainbow LED sjaj sa M5stick-C - Pokretanje Rainbow -a na Neopixelu Ws2812 Korištenje M5stack M5stick C Korištenje Arduino IDE -a: 5 koraka
Neopixel Ws2812 Rainbow LED sjaj sa M5stick-C | Pokretanje Rainbow-a na Neopixel Ws2812 Korištenje M5stack M5stick C Korištenje Arduino IDE-a: Zdravo momci 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 sa njim
Brz i jednostavan način da promijenite zaključani ekran u 6 jednostavnih koraka (Windows 8-10): 7 koraka
Brz i jednostavan način da promijenite zaključani ekran u 6 jednostavnih koraka (Windows 8-10): Želite li promijeniti stvari na svom prijenosnom računaru ili računaru? Želite promjenu svoje atmosfere? Slijedite ove brze i jednostavne korake za uspješnu personalizaciju zaključanog ekrana računara
(Jednostavan) jednostavan način za dobivanje analognog/pwm zvuka s Raspberry PI Zero -a i povezivanje na Crt TV: 4 koraka
(Jednostavan) jednostavan način za dobijanje analognog/pwm zvuka s Raspberry PI Zero -a i povezivanje na Crt TV: Ovdje sam upotrijebio najjednostavniji način za unos zvuka na TV zajedno sa kompim video zapisom