Tartalomjegyzék:
- Kellékek
- 1. lépés: Málna alkatrész leírása:
- 2. lépés: Az IR távoli kódok
- 3. lépés: Főprogram
- 4. lépés: Málna rész: automatikus indítás és új fájlok hozzáadása
- 5. lépés: Az energiagazdálkodás az Arduino Nano segítségével
- 6. lépés: A kábelezés
- 7. lépés: A doboz
Videó: Raspitone: könnyen használható Jukebox: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
Helló, a következő projektem, mint szoktam, nem túl hasznos projekt:
Ez a Raspberry 3 B+ alapú zenegép
Tudom, hogy ilyesmit könnyen meg lehet csinálni okostelefonnal és Bluetooth hangszóróval.
De a projektemhez két kemény előfeltételem volt:
Valami "vintage" -ot akartam készíteni.
És összességében, tekintettel arra a tényre, hogy asszonyom végtelenül reménytelen a 21. századi (és akár a 20. századi) számítógép, bluetooth vagy bármi más vonatkozásában, valami nagyon egyszerűt kellett tennem ………
Tehát a specifikációk a következők voltak:
Egyetlen gomb a gép elindításához
Érintőképernyő (nagyon egyszerű) a zene kezeléséhez.
Egyetlen érintés a képernyőn a gép leállításához.
És hogy jó hangja legyen …….
Kellékek
Erre használtam:
1 málna 3 B+
1 régi házimozi, amely használhatatlan volt az OOS DVD -olvasó miatt (egy régi Samsung 2.1, mélynyomóval és 2 hangszóróval, amelyeket úgy módosítottam, hogy illeszkedjenek a dobozhoz)
1 HIFIBERRY DIGI+ kártya (az erősítő optikai kimenetével)
1 kapacitív 7 hüvelykes érintőképernyő (az enyém a Makeasy for málna, HDMI bemenettel és USB -n keresztül, de bármelyik HDMI érintőképernyőnek rendben kell lennie)
1 tápegység 5V 5A
1 relépajzs
1 Arduino nano a be- és kikapcsolási folyamat kezeléséhez
1 IR vezetett a házimozi meghajtásához (2N2222 NPN tranzisztor vezette)
1 IR -vevő (a projekt IR -kódok tanulási részéhez az enyémet egy régi multimédiás merevlemezről kapom, távvezérléssel)
3 led
1 kapcsoló a karbantartási módhoz
1 kapcsoló az arduino használatához (a feltöltés során az arduino alaphelyzetbe áll)
néhány JST és Dupont csatlakozó
És a dobozért
Fa és rétegelt lemez (de nem írom le mélyen a doboz elkészítését). csak annyit, hogy ami a dobozon belüli boomer -t illeti, a 10 mm -es rétegelt lemez és a 18 mm -es fa kötelező, ha nem akarja látni, hogy a Jukebox játék közben keresztezi a nappalit !!!!
1. lépés: Málna alkatrész leírása:
A Raspi -nak különböző dolgokat kell kezelnie:
1) a házimozi parancsai (infravörös távirányítón keresztül)
2) a zenei fájlokat
3) az érintőképernyő
4) Az Arduino szívverése (amely a Wdt -t kezeli (őrkutya időzítő))
Egy Raspbian strech disztribúcióból indultam ki egy 16 G -os SD -kártyán (Mivel csak az SD -kártyáról olvassuk a fájlokat, a HDD használata nem szükséges). Nem fogok időt szánni erre a részre, mivel a web tele van oktatóanyaggal erről.
Nézzük a különböző részeket a következő lépésekben….
2. lépés: Az IR távoli kódok
Mivel nem találtam a házimozi áramköri tervét, úgy döntöttem, hogy távvezérléssel hajtom
Az első lépés, amit el kellett végeznem, az volt, hogy megtanuljam Raspi -nak a házimozi távvezérlő parancsának kódjait. Ehhez az Austin Stanton IR kódokból származó Instructables nagyon jó oktatóanyagát használtam
Volt némi eltérésem, valószínűleg az új verzió miatt, mivel az utasítások meglehetősen régiek, a hardware.conf fájl már nem létezik (legalábbis nem találtam)
Úgy tűnik továbbá, hogy a tutóban használt tranzisztor PNP tranzisztor, részemről 2N2222 -et használtam, ami NPN, de az eredmény ugyanaz. (Kivéve a kábelezést !!!!!!!!)
A tű hozzárendelése a /boot/config.txt fájlban található:
#autorisation de lirc le 2019-07-08 dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
Az IR LED így lesz csatlakoztatva a Raspi 22 -es tűjéhez.
Egy fontos megjegyzés: a kódok Raspi -nak történő elsajátításakor kötelező a parancsban felsorolt kulcsszavak használata
irrecord --list-namespace
Íme a fájl, amelyet a zenegépemhez készítettem:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Kérjük, szánjon időt arra, hogy befejezze ezt a fájlt a https://sourceforge.net/p/lirc-remotes/wiki/Check… # című részben leírtak szerint, és tegye hozzáférhetővé mások számára a # # címre küldve.
# Ez a konfigurációs fájl automatikusan létrejött
# using lirc -0.9.4c (default) on May 9, 2019 17:33:37 # # Parancssor használt: -d /dev /lirc0 /root/lircd.conf
# Kernel verzió (uname -r): 4.14.98 -v7+ # # Távoli név (konfigurációs fájl szerint): jukebox
# Távoli eszköz márkája, amit a kezében tart: # Távoli eszköz típusszáma:
# Távoli eszköz információs URL -címe:
# Van -e távoli eszközhöz mellékelt rögzítőeszköz e. g., a
# usb dongle?:
# Csomagban lévő USB -eszközök esetén: usb -gyártói azonosító, termékazonosító
# és eszköz karakterlánc (dmesg vagy lsusb használata):
# A vezérelt eszköz típusa
# (TV, videomagnó, hang, DVD, műholdas, kábel, HTPC,…):
# A távirányítóval vezérelt eszközök:
távolról kezdeni
név zenegép
bitek 16
zászlók SPACE_ENC | CONST_LENGTH
eps 30
aeps 100
fejléc 4470 4496
egy 542 1693
nulla 542 581
ptrail 553
pre_data_bits 16
pre_data 0xC2CA
rés 107863
toggle_bit_mask 0x0
frekvencia 38000
kódok kezdete
KULCSERŐ 0x807F
KULCS_AUX 0x8877
KULCS_VOLUMEUP 0xCC33
KULCS_VOLUMEDOWN 0xDC23
végkódok
vége távirányító
Amint látja, csak 4 parancsra van szükségem a házimozi meghajtásához
Tápellátás (BE/KI)
AUX => átváltás az optikai bemeneti csatornára (mivel a HC mindig a DVD -olvasón indul)
És hangerő +/-
A kapcsolódó parancsokat a LIRC parancsok hajtják végre:
például: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"
3. lépés: Főprogram
A fő program Pythonban van írva:
Mivel új vagyok a Pythonban, úgy gondolom, hogy sok javítás érhető el, de fut …
A specifikációk:
1) a grafikus képernyő kezelése:
Ehhez az APPJAR -t használtam, amely TKINTER, de civilizált a diákok számára (az én esetem), ez sokkal könnyebben használható, valószínűleg kevesebb lehetőséggel, de ez elég volt a célomhoz.
2) az mp3 fájlok lejátszása:
Az mplayert használtam a pythonhoz.
3) véletlenszerű számok létrehozása véletlenszerű lejátszáshoz:
Mivel nem akartam ugyanazt a dalt hallani minden negyedévben, egy kis programot készítettem annak ellenőrzésére, hogy a szám nem szerepel -e az x előző számlistában (x a lejátszási lista hosszától függően).
A randint függvény a pythonban nem annyira "véletlenszerű", mint láttam.
4) küldje el a "szívverést" az Arduino -nak
5) fájlkezelő kezelése:
Mivel az Mplayer aszinkron, a fájl elindításakor nem lehet tudni a Python számára, hogy mikor fejeződött be (legalábbis nem találtam egyszerű módot)
Ennek megoldásához az mplayer parancsokat használtam, amelyek megadják a fájl hosszát és az aktuális fájl előrehaladását
Mind a 4, mind az 5 esetében az Appjar által adott lehetőséget használtam periodikus feladat generálására (mivel az appjar egy eseményprogram, ez egy módja az időszakos esemény létrehozásának). a funkció a következő:
#******************* start taskman ********************** app.registerEvent (taskman)
p.setPollTime (1000)
Taskman a "feladatkezelő" számára, amely defekt a programban, és kezeli mindazt, ami nem képernyő -esemény (a lejátszott fájl vége, a folyamatjelző kitöltése, a szívverés küldése Nano -nak …)
Amikor elindult, a képernyő így néz ki:
Íme a program: (Notepad ++ vagy Geany segítségével nyitható meg)
4. lépés: Málna rész: automatikus indítás és új fájlok hozzáadása
Ha megnézi a programot, láthatja, hogy néhány bash fájlt használok:
1) Start_jukebox:
Valójában a cél a házimozi bekapcsolása és a D. IN bemenetre váltás (optikai bemenet a házimozimban)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE zenegép KEY_POWER
aludni 7
irsend SEND_ONCE zenegép KEY_AUX
aludni 2
2) stop_jukebox:
A házimozi kikapcsolása
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE zenegép KEY_POWER
Ezt a két bash fájlt a Python az os.system paranccsal hívja meg
A Python szkript elindításához készítettem egy kis bash -t
pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash
cd /home /pi
python jukebox_gui.py
Az automatikus indításhoz GUI módban csak módosítottam az automatikus indítás fájlt az/etc/xdg/lxsession/LXDE-pi fájlban
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat autoostart@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no -splash
@lxterminal --command = "dem_jukebox.bash"
point-rpi
Új mp3 fájlok hozzáadása:
Új fájlok hozzáadásához inkább egy kis dedikált Python -szkriptet készítettem:
new_dal_file.py
Először elmagyarázom a rendszerfájlok szervezését:
Minden fájl a /home /pi mappában található
Az mp3 fájlokat a/home/pi/Music könyvtárban keresik
Minden művésznek saját alkönyvtára van, amely a kapcsolódó mp3 fájlokat tárolja
pi@raspitone: ~/Zene/Mike_oldfield $ ls -összesen 760516
-rwxr ----- 1 pi pi 2254923 2017. július 30. A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 juin 30 2017 Érkezés.mp3
-rwxr ----- 1 pi pi 8383244 juin 30 2017 Ascension.mp3
-rwxr ----- 1 pi pi 5410816 2017. július 30. Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 2017. június 30. Castaway_ (Instrumental).mp3
-rwxr ----- 1 pi pi 12903583 juin 30 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 juin 30 2017 Celt.mp3
-rwxr ----- 1 pi pi 9047745 2017. július 30. Chariots_ (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 juin 30 2017 Chariots.mp3
A Documents könyvtárban megtaláljuk a lejátszandó fájlok beépített listáját.
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
Megtalálhatjuk a lejátszási listák adatait is (de ezt a Python -szkript építi)
A kicsi Python -szkript hozzáadja a Music -ban mentett új dalokat a list.txt fájlhoz, miután a címeket UNIX formátumban formázta
Íme a szkript: (Notepad ++ vagy Geany segítségével nyitható meg)
5. lépés: Az energiagazdálkodás az Arduino Nano segítségével
Mivel azt akartam, hogy valami könnyen elinduljon, úgy döntöttem, hogy egy kis nanóval készítem el:
Az elv:
Amikor megnyomja a start gombot, az eszközök mindegyike be van kapcsolva, a nano elindul (1 vagy 2 másodperc), és átveszi az energiagazdálkodást egy relé aktiválásával, amely elkerüli a nyomógomb érintkezőit.
Ezután Nano 35 másodpercet vár, hogy megkapja a szívverést a Málnától (ez azt jelenti, hogy az indítási folyamat befejeződött, és a jukebox program fut).
Amíg a nano megkapja a szívverést, addig tartja a relét (Watch dog időzítő)
Ha már nincs szívverés (azt jelenti, hogy a jukebox program le van állítva), Nano 20 másodpercet vár (hogy megbizonyosodjon arról, hogy a raspi teljesen leállt), hogy elengedje a tápfeszültség relét.
A zenegép ezután teljesen kikapcsol
Hozzáadtam egy kapcsolót a nano bemenetének aktiválásához, hogy jelezze a karbantartási módot (a zenegépet használom a többi raspi szerver kezeléséhez az ssh et vnc -n keresztül). A Nano ezután kikapcsolja az őrkutya folyamatot
Megjegyzés:
a Raspi szívverésének bemenetét le kell húzni (de a Raspi 3.3V -ját magas szintnek tartja a Nano)
Meg lehet csinálni az NE555 -el is, de lusta vagyok, és mindig van nano a fiókomban !!!!
Íme a rövid C program (Notepad ++ segítségével nyitható meg)
6. lépés: A kábelezés
A képernyőhöz:
A Raspi HDMI -kábelt és USB -kábelt használ a képernyő tápellátásához és meghajtásához.
Az előlaphoz:
USB -kábel is csatlakozik a Raspi -ból, hogy új fájlokat tudjon feltölteni vagy biztonsági másolatot készíteni.
USB -kábel van csatlakoztatva a Nano -ból, hogy hozzáférjen a szoftverhez (szükség esetén módosításokhoz)
A málnához csatlakoztatok egy vezeték nélküli billentyűzetkulcsot is, hogy karbantartást végezhessek a külső USB -csatlakozó használata nélkül
Mivel a málnát és az Arduino -t használják, a kábelezés meglehetősen egyszerű.
Minden egy szalagmátrix táblán található.
A málna 2 GPIO -ból:
22 -es tű az IR LED -hez
27. tű a szívveréshez Arduino számára
az Arduino -n
A 2 -es csap a Raspi szívverésének megszakító csapja.
A 3–5. Csapok a LED -ek meghajtására szolgálnak (Start, Wdt, Karbantartás).
A 6. csap a karbantartó kapcsolóhoz való.
A 7 -es érintkező a relépajzsra kerül.
Itt a frizuráló fájl:
7. lépés: A doboz
Nem írom le sokat, amit tettem, mivel ez a teljesítményerőtől és a használt hangszóróktól függ.
Információként a házimozi a doboz alján található.
Csak a hangszórók felett:
1 mélysugárzó
2 közepes hangszóró, amelyeket módosítottam, hogy behelyezhessem a dobozba.
A tetejére:
Az előlap a képernyővel, a LED -ekkel, a kapcsolókkal és az USB -csatlakozókkal.
A fa:
A hangszórókhoz az oldalsó panelek a tetejét és az alját 18 mm -es fa deszkát használtam.
Az előlap 10 mm -es rétegelt lemez, 40 mm -es csavarokkal.
A kábelezés és a karbantartás megkönnyítése érdekében (ha szükséges !!!) az áramkört egy fiókra helyeztem az előlap mögött
A túlmelegedés elkerülése érdekében egy nagy lyukat készítünk a hátsó panel alján, és egy 5 V -os ventilátort (8 cm) helyezek a hátsó panelre, közvetlenül az áramkör mellett.
A fenti kép csak ötletet ad.
Szóval ennyi !!!!!!!!!
Köszönöm, hogy elolvastál
És legközelebb új kalandokért
Ajánlott:
A robot hajtóműkar 3D nyomtatáshoz használható: 13 lépés
A robot hajtóműkar 3D -s nyomtatáshoz használható: A cél, amelyet a robotnak akartam adni. Ez egy modell elkészítése és az erőátviteli rendszer erősségének bemutatása fogaskerekeken keresztül, és ezzel érintést is generál. A golyóscsapágyakat a súrlódás csökkentésére és a robot harmonikusabban mozog. Az
RC autó akkumulátor mod - Bármilyen RC -hez használható: 5 lépés
RC autó akkumulátor mod - minden RC -hez használható: RC autó akkumulátor mod - minden RC -hez használható
PiTextReader-könnyen használható dokumentumolvasó a látásromláshoz: 8 lépés (képekkel)
A PiTextReader-könnyen használható dokumentumolvasó a látássérültek számára: Áttekintés Frissítés: Rövid videó bemutató: https://youtu.be/n8-qULZp0GoPiTextReader lehetővé teszi, hogy látássérült személy „olvassa” a szöveget a borítékokból, levelekből és egyéb elemekből. Pillanatképeket készít az elemről, egyszerű szöveggé konvertálja OCR (optikai Char
DIY MusiLED, zenével szinkronizált LED-ek egy kattintásos Windows és Linux alkalmazással (32 bites és 64 bites). Könnyen újratelepíthető, könnyen használható, könnyen hordozható: 3 lépés
DIY MusiLED, zenével szinkronizált LED-ek egy kattintásos Windows és Linux alkalmazással (32 bites és 64 bites). Könnyen újratelepíthető, könnyen használható, könnyen hordozható: Ez a projekt segít 18 LED (6 piros + 6 kék + 6 sárga) LED-ek csatlakoztatásában az Arduino Boardhoz, és elemezni a számítógép hangkártyájának valós idejű jeleit, és továbbítani azokat a LED -ek, hogy felgyújtsák őket az ütéshatásoknak megfelelően (pergő, magas kalap, rúgás)
A LED -ekkel használható ellenállás kiválasztása: 3 lépés
A LED -ekkel használható ellenállás kiválasztása: Ezt a kérdést minden nap felteszik a Válaszok és a fórumok között: Milyen ellenállást használjak a LED -eimmel? Tehát több különböző módszert állítottam össze, hogy kitaláljuk. Kezdjük rögtön: Minden lépés ugyanazt teszi. Az első lépés a legegyszerűbb, és