Tartalomjegyzék:

Raspitone: könnyen használható Jukebox: 7 lépés
Raspitone: könnyen használható Jukebox: 7 lépés

Videó: Raspitone: könnyen használható Jukebox: 7 lépés

Videó: Raspitone: könnyen használható Jukebox: 7 lépés
Videó: Голубая стрела (1958) фильм 2024, November
Anonim
Raspitone: könnyen használható Jukebox
Raspitone: könnyen használható Jukebox

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:

Kép
Kép

Í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ábelezés
A kábelezés
A kábelezé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

A doboz
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: