Përmbajtje:
- Furnizimet
- Hapi 1: Përshkrimi i Pjesës së Mjedrës:
- Hapi 2: Kodet e telekomandës IR
- Hapi 3: Programi kryesor
- Hapi 4: Pjesa e mjedrës: fillimi automatik dhe shtimi i skedarëve të rinj
- Hapi 5: Menaxhimi i energjisë përmes Arduino Nano
- Hapi 6: Kablloja
- Hapi 7: Kutia
Video: Raspitone: i lehtë për t’u përdorur Jukebox: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:16
Përshëndetje, projekti im i ardhshëm është, siç e bëj, një projekt jo shumë i dobishëm:
Ky është një jukebox i bazuar në një Raspberry 3 B+
E di, diçka e tillë mund të bëhet lehtësisht me një smartphone dhe një altoparlant Bluetooth.
Por për projektin tim, kisha dy parakushte të vështira:
Doja të bëja diçka "të cilësisë së mirë".
Dhe në përgjithësi, duke pasur parasysh faktin se zonja ime është përfundimisht e pashpresë për kompjuter ose bluetooth ose ndonjë gjë tjetër nga shekulli 21, (dhe madje edhe 20), më duhej të bëja diçka shumë të thjeshtë për t’u përdorur ………
Pra, specifikimet ishin si më poshtë:
Një buton i vetëm për të ndezur makinën
Një ekran me prekje (shumë i thjeshtë) për të menaxhuar muzikën.
Një prekje e vetme në ekran për të ndaluar pajisjen.
Dhe për të pasur një tingull të mirë ………
Furnizimet
Për këtë kam përdorur:
1 Mjedër 3 B+
1 kinema e vjetër në shtëpi që ishte e padobishme për shkak të lexuesit DVD OOS (një Samsung i vjetër 2.1 me një woofer dhe 2 altoparlantë që i modifikova për t'iu përshtatur kutisë)
1 bord HIFIBERRY DIGI+ (me dalje optike për fuqinë Amp)
1 ekran me kapacitet me prekje 7 (imi është Makeasy për mjedër me hyrje HDMI dhe mundësuar përmes USB por çdo ekran me prekje HDMI duhet të jetë në rregull)
1 energji suplly 5V 5A
1 mburojë stafetë
1 Arduino nano për të menaxhuar procesin e ndezjes/fikjes së energjisë
1 IR çoi në drejtimin e kinemasë në shtëpi (e udhëhequr nga një tranzistor 2N2222 NPN)
1 marrës IR (për kodet IR që mësojnë pjesën e projektit, e marr timin nga një hard disk i vjetër Multimedia me komandë në distancë)
3 led
1 ndërprerës për mënyrën e mirëmbajtjes
1 çelës për të punuar në arduino (gjatë ngarkimit arduino rivendoset)
disa lidhje JST dhe Dupont
Dhe për kutinë
Druri dhe kompensatë (por nuk do të përshkruaj thellë bërjen e kutisë). vetëm për të thënë se, në lidhje me bumerin brenda kutisë, kompensatë 10 mm dhe dru 18 mm janë të detyrueshëm nëse nuk doni të shihni Jukebox duke kaluar dhomën e ndenjes ndërsa luani !!!!
Hapi 1: Përshkrimi i Pjesës së Mjedrës:
Raspi duhet të menaxhojë gjëra të ndryshme:
1) komandat për kinemanë në shtëpi (përmes telekomandës IR)
2) skedarët muzikorë
3) ekrani me prekje
4) Rrahjet e zemrës për Arduino (i cili menaxhon Wdt (kohëmatësi i qenve të shikimit))
Fillova nga një shpërndarje strech Raspbian në një kartë SD 16 G (pasi ne do të lexojmë vetëm skedarë nga karta SD, përdorimi i një HDD nuk është i nevojshëm). Unë nuk do të kaloj kohë në këtë pjesë pasi uebi është plot me mësime rreth tij..
Le të shohim pjesët e ndryshme në hapat e ardhshëm….
Hapi 2: Kodet e telekomandës IR
Meqenëse nuk mund ta gjeja planin qarkor të kinemasë në shtëpi, vendosa ta drejtoja atë përmes komandave në distancë
Hapi i parë që duhej të përfundoja ishte të mësoja Raspi kodet e komandës së telekomandës të kinemasë shtëpiake. Për këtë kam përdorur tuton shumë të mirë në Instructables nga kodet IR Austin Stanton
Kam pasur disa dallime, ndoshta për shkak të versionit të ri pasi udhëzimet janë mjaft të vjetra, skedari hardware.conf nuk ekziston më (të paktën nuk e gjeta)
Duket gjithashtu se tranzistori i përdorur në tuto është një transistor PNP, nga ana ime kam përdorur një 2N2222 që është NPN por rezultati është i njëjtë. (Përveç kabllove !!!!!!!!)
Caktimi i kunjit jepet në /boot/config.txt:
#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
LED IR do të jetë aq i lidhur me pin22 të Raspi.
Një vërejtje e rëndësishme: kur mësoni kodet tek Raspi është e detyrueshme të përdorni fjalët kyçe të renditura në komandë
irrecord-lista-emra hapësirë
Këtu është skedari që kam ndërtuar për jukebox -in tim:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Ju lutemi merrni kohë për të përfunduar këtë skedar siç përshkruhet në # https://sourceforge.net/p/lirc-remotes/wiki/Check… # dhe bëjeni të disponueshëm për të tjerët duke e dërguar në # #
# Ky skedar konfigurimi u krijua automatikisht
# duke përdorur lirc -0.9.4c (parazgjedhje) të enjte 9 maj 17:33:37 2019 # Linja e komandës e përdorur: -d /dev /lirc0 /root/lircd.conf
# Versioni i kernelit (uname -r): 4.14.98 -v7+ # # Emri në distancë (si i skedarit të konfigurimit): jukebox
# Marka e pajisjes në distancë, gjëja që mbani në dorë: # Modeli i pajisjes në distancë nr:
# Url e informacionit të pajisjes në distancë:
# A ka pajisja në distancë një pajisje të kapur të bashkuar e. g., a
# dongle usb?:
# Për pajisjet USB të paketuara: ID e shitësit usb, ID e produktit
# dhe vargu i pajisjes (përdorni dmesg ose lsusb):
# Lloji i pajisjes së kontrolluar
# (TV, VCR, Audio, DVD, Satelit, Kabllo, HTPC,…):
# Pajisje (të) të kontrolluara nga ky telekomandë:
filloj në distancë
emri jukebox
copa 16
flamujt SPACE_ENC | CONST_LENGTH
eps 30
aep 100
kokë 4470 4496
një 542 1693
zero 542 581
ptrail 553
bitet_para_data 16
të dhënat paraprake 0xC2CA
hendeku 107863
toggle_bit_maskë 0x0
frekuenca 38000
filloni kodet
KEY_POWER 0x807F
KEY_AUX 0x8877
KRYESORE_VOLUMEUP 0xCC33
KRYESORE_VOLUMEDOWN 0xDC23
kodet përfundimtare
fund telekomandë
Siç mund ta shihni, më duhen vetëm 4 komanda për të drejtuar Kinemanë në shtëpi
Fuqia (ON/OFF)
AUX => për të kaluar në kanalin optik të hyrjes (pasi HC fillon gjithmonë në lexuesin DVD)
Dhe vëllimi +/-
Komandat përkatëse ekzekutohen përmes komandave LIRC:
për shembull: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"
Hapi 3: Programi kryesor
Programi kryesor është shkruar në Python:
Meqenëse jam i ri në Python mendoj se ka shumë përmirësime që mund të bëhen, por funksionon….
Specifikimet:
1) menaxhoni ekranin grafik:
Për këtë, unë përdor APPJAR i cili është TKINTER por i civilizuar për studentët (rasti im), kjo do të thotë shumë më e lehtë për t'u përdorur, ndoshta me më pak mundësi, por ishte e mjaftueshme për qëllimin tim.
2) luani skedarët mp3:
Kam përdorur mplayer për python.
3) gjeneroni numra të rastësishëm për të luajtur në modalitetin e përzierjes:
Meqenëse nuk doja të dëgjoja të njëjtën këngë çdo tremujor, ndërtova një program të vogël për të kontrolluar nëse numri nuk ishte i pranishëm në listën e numrave të mëparshëm x (x në varësi të gjatësisë së listës për luajtje).
Funksioni randint në python nuk është aq "i rastësishëm" me sa kam parë.
4) dërgoni "rrahjet e zemrës" tek Arduino
5) menaxhoni skedarin e skedarit:
Meqenëse Mplayer është asinkron, kur skedari fillon nuk ka asnjë mënyrë të dijë për Python kur të përfundojë (të paktën nuk gjeta një mënyrë të thjeshtë)
Për ta zgjidhur atë, unë përdor komandat mplayer që japin gjatësinë e skedarit dhe përparimin në skedarin aktual
Për 4 dhe 5 kam përdorur mundësinë e dhënë nga Appjar për të gjeneruar një detyrë periodike (pasi appjar është një program ngjarjeje kjo është një mënyrë për të krijuar një ngjarje periodike). funksioni është:
#******************* start taskman ********************* app.registerEvent (taskman)
f.setPollTime (1000)
Taskman për "menaxherin e detyrave" i cili është një def në program që menaxhon të gjitha ato që nuk janë ngjarje të ekranit (fundi i skedarit të luajtur, mbushni shiritin e përparimit, dërgoni rrahje zemre te Nano,….)
Sapo të fillojë, ekrani duket kështu:
Këtu është programi: (mund të hapet përmes Notepad ++ ose Geany)
Hapi 4: Pjesa e mjedrës: fillimi automatik dhe shtimi i skedarëve të rinj
Nëse shikoni programin, mund të shihni që unë përdor disa skedarë bash:
1) Start_jukebox:
Në fakt qëllimi është të ndizni kinemanë shtëpiake dhe të kaloni në hyrjen D. IN (hyrja optike në kinemanë time në shtëpi)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
fle 7
irsend SEND_ONCE jukebox KEY_AUX
fle 2
2) stop_jukebox:
Për të fikur kinemanë në shtëpi
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
Këto dy skedarë bash thirren nga Python me komandën os.system
Për të filluar shkrimin Python bëra një bash të vogël
pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash
cd /home /pi
python jukebox_gui.py
Për fillimin automatik në modalitetin GUI sapo modifikova skedarin autostart në/etc/xdg/lxsession/LXDE-pi
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat autostart@lxpanel --profile LXDE-pi
@pcmanfm-desktop-profil LXDE-pi
@xscreensaver -no -splash
@lxterminal --command = "dem_jukebox.bash"
pikë-rpi
Shtimi i skedarëve të rinj mp3:
Për të shtuar skedarë të rinj, preferova të bëja një skript të vogël të dedikuar Python:
file_file.py
Së pari do të shpjegoj organizimin e skedarëve të sistemit:
Të gjithë skedarët janë në /home /pi
skedarët mp3 futen në dosjen/home/pi/Music
Secili artist ka nën -drejtorinë e tij që pret skedarët mp3 të lidhur
pi@raspitone:/Music/Mike_oldfield $ ls -gjithsej 760516
-rwxr ----- 1 pi pi 2254923 juin 30 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 juin 30 2017 Mbërritja.mp3
-rwxr ----- 1 pi pi 8383244 juin 30 2017 Ngjitja.mp3
-rwxr ----- 1 pi pi 5410816 juin 30 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 juin 30 2017 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 juin 30 2017 Chariots_ (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 juin 30 2017 Qerre.mp3
Në drejtorinë Dokumentet mund të gjejmë listën e ndërtuar të skedarëve për tu luajtur.
pi@raspitone:/Documents $ cat list.txtFranz_Ferdinand/Michael_live.mp3
Franz_Ferdinand/keq_dhe_aathen.mp3
Franz_Ferdinand/Walk_Away_live.mp3
Franz_Ferdinand/love_and_destroy.mp3
Franz_Ferdinand/zjarri i tij.mp3
Franz_Ferdinand/eleanor_put_yots_boots_on.mp3
Franz_Ferdinand/missing_you.mp3
Franz_Ferdinand/this_fire_ (playgroup_remix).mp3
Franz_Ferdinand/Jacqueline.mp3
Ne gjithashtu mund të gjejmë të dhënat e listave të luajtjes (por kjo është ndërtuar nga skripti Python)
Skenari i vogël Python shton këngët e reja, të ruajtura në Muzikë, në listë. Tekst pasi të keni formatuar titrat në formatin UNIX
Këtu është skenari: (mund të hapet përmes Notepad ++ ose Geany)
Hapi 5: Menaxhimi i energjisë përmes Arduino Nano
Ndërsa doja të kisha diçka të lehtë për të filluar, vendosa ta bëj atë nga një nano e vogël:
Parimi:
Kur shtypni butonin e fillimit të gjitha pajisjet mundësohen, nano fillon (1 ose 2 sekonda) dhe merr përsipër menaxhimin e energjisë duke shkaktuar një stafetë e cila shmang kontaktet e butonit shtytës.
Pastaj Nano pret 35 sekonda për të marrë rrahjet e zemrës nga Raspberry (do të thotë që procesi i fillimit është i plotë dhe programi jukebox funksionon).
Për sa kohë që nano merr rrahjet e zemrës, ai e mban stafetën të ndezur (Kohëmatësi i qenve të shikuar)
Nëse nuk ka më rrahje zemre (do të thotë që programi jukebox është ndalur) Nano pret 20 sekonda (për t'u siguruar që raspi është ndalur plotësisht) për të lëshuar stafetën e energjisë.
Jukebox -i pastaj fiket plotësisht
Shtova një çelës për të aktivizuar një hyrje të nano për të treguar mënyrën e mirëmbajtjes (unë përdor jukebox për të menaxhuar serverët e mi të tjerë raspi përmes ssh et vnc). Nano pastaj çaktivizon procesin e qenit vëzhgues
Vërejtje:
hyrja për rrahjet e zemrës nga Raspi duhet të tërhiqet (por 3.3V nga Raspi konsiderohet si nivel i lartë nga Nano)
Mund të bëhet me NE555, por unë jam dembel dhe kam gjithmonë disa nano në sirtarin tim !!!!
Këtu është programi i shkurtër C (mund të hapet me Notepad ++)
Hapi 6: Kablloja
Për ekranin:
Një kabllo HDMI dhe një kabllo USB përdoren në Raspi për të fuqizuar dhe drejtuar ekranin.
Për panelin e përparmë:
Një kabllo USB është gjithashtu e lidhur nga Raspi për të qenë në gjendje të ngarkoni skedarë të rinj ose të bëni kopje rezervë.
Një kabllo USB është e lidhur nga Nano për të qenë në gjendje të hyjë në butë (për modifikime nëse është e nevojshme)
Unë gjithashtu lidh një dongle pa tel të tastierës në mjedër për të qenë në gjendje të bëjë mirëmbajtje pa përdorur prizën e jashtme USB
Ndërsa Raspberry dhe Arduino përdoren, kabllot janë mjaft të thjeshta.
E gjithë është e vendosur në një tabelë të matricës së shiritit.
Nga mjedra 2 GPIO përdoren:
Pin22 për LED LED
Pin 27 për rrahjet e zemrës tek Arduino
në Arduino
Pin 2 përdoret si një kunj ndërprerës për rrahjet e zemrës nga Raspi.
Kunjat 3 deri në 5 përdoren për drejtimin e led -ve (Start, Wdt, Maintenance).
Pin 6 është për ndërprerësin e mirëmbajtjes.
Pin 7 del në mburojën e stafetës.
Këtu është skedari tërheqës:
Hapi 7: Kutia
Unë nuk do të përshkruaj shumë atë që kam bërë pasi varet nga fuqia e fuqisë dhe nga altoparlantët e përdorur.
Si informacion, kinemaja në shtëpi është e vendosur në fund të kutisë.
Vetëm mbi altoparlantët:
1 woofer
2 folës të mesëm, të cilët i modifikova për t’i futur në kuti.
Në krye:
Paneli i përparmë me ekranin, LED -të, çelsat dhe prizat USB.
Druri:
Për altoparlantët, pjesa anësore e sipërme dhe e poshtme kam përdorur dërrasë druri 18 mm.
Ana e përparme është kompensatë 10 mm me vida 40 mm.
Për të lehtësuar kabllon dhe mirëmbajtjen (nëse është e nevojshme !!!) e vendosa qarkun në një sirtar prapa panelit të përparmë
Për të shmangur mbinxehjen, bëhet një vrimë e madhe në pjesën e poshtme të panelit të pasmë dhe unë vendos një tifoz 5V (8 cm) në panelin e pasmë, pranë qarkut.
Fotografia e mësipërme është vetëm për të dhënë një ide.
Pra, kjo është ajo !!!!!!!!!
Faleminderit që më lexuat
Dhe shihemi herën tjetër për aventura të reja
Recommended:
DIY Si të shfaqni kohën në M5StickC ESP32 duke përdorur Visuino - Lehtë për tu bërë: 9 hapa
DIY Si të shfaqni kohën në M5StickC ESP32 duke përdorur Visuino - Lehtë për tu bërë: Në këtë tutorial do të mësojmë se si të programojmë ESP32 M5Stack StickC me Arduino IDE dhe Visuino për të shfaqur kohën në LCD
M5STACK Si të shfaqni temperaturën, lagështinë dhe presionin në M5StickC ESP32 duke përdorur Visuino - Lehtë për tu bërë: 6 hapa
M5STACK Si të shfaqni temperaturën, lagështinë dhe presionin në M5StickC ESP32 duke përdorur Visuino - Lehtë për tu bërë: Në këtë tutorial do të mësojmë se si të programojmë ESP32 M5Stack StickC me Arduino IDE dhe Visuino për të shfaqur temperaturën, lagështinë dhe presionin duke përdorur sensorin ENV (DHT12, BMP280, BMM150)
Konfigurimi i lehtë i telekomandës IR duke përdorur LIRC për Raspberry PI (RPi) - korrik 2019 [Pjesa 1]: 7 hapa
Konfigurimi i lehtë i telekomandës IR duke përdorur LIRC për Raspberry PI (RPi) - Korrik 2019 [Pjesa 1]: Pas shumë kërkimesh unë u befasova dhe u trondita nga informacioni konfliktual se si të konfiguroja telekomandën IR për projektin tim RPi. Mendova se do të ishte e lehtë, por ngritja e Linux InfraRed Control (LIRC) ka qenë problematike për një kohë të gjatë
PiTextReader-një Lexues dokumentesh i lehtë për t’u përdorur për shikimin e dëmtuar: 8 hapa (me fotografi)
PiTextReader-një Lexues dokumentesh i lehtë për t’u përdorur për shikimin e dëmtuar: Vështrim i përgjithshëm Përditëso: Demo e shkurtër video: https://youtu.be/n8-qULZp0GoPiTextReader lejon dikë me shikim të dëmtuar të "lexojë" tekstin nga zarfat, letrat dhe artikujt e tjerë. Ai fotografon një imazh të artikullit, shndërrohet në tekst të thjeshtë duke përdorur OCR (Char Optical
DIY MusiLED, LED të sinkronizuara me muzikë me aplikacionin Windows & Linux me një klik (32-bit & 64-bit). Lehtë për t’u rikrijuar, e lehtë për t’u përdorur, e lehtë për t’u portuar .: 3 hapa
DIY MusiLED, LED të sinkronizuara me muzikë me aplikacionin Windows & Linux me një klik (32-bit & 64-bit). Lehtë për t'u rikrijuar, e lehtë për t'u përdorur, e lehtë për t'u transferuar.: Ky projekt do t'ju ndihmojë të lidhni 18 LED (6 të kuqe + 6 blu + 6 të verdhë) në bordin tuaj Arduino dhe të analizoni sinjalet e Kartës së Zërit të kompjuterit tuaj në kohë reale dhe t'i transmetoni ato në LED për t'i ndezur ato sipas efekteve të rrahjes (Snare, High Hat, Kick)