Përmbajtje:

Raspitone: i lehtë për t’u përdorur Jukebox: 7 hapa
Raspitone: i lehtë për t’u përdorur Jukebox: 7 hapa

Video: Raspitone: i lehtë për t’u përdorur Jukebox: 7 hapa

Video: Raspitone: i lehtë për t’u përdorur Jukebox: 7 hapa
Video: THE WALKING DEAD SEASON 3 COMPLETE EPISODE 2024, Korrik
Anonim
Raspitone: Jukebox i lehtë për t’u përdorur
Raspitone: Jukebox i lehtë për t’u përdorur

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:

Imazhi
Imazhi

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

Cabling
Cabling
Cabling
Cabling

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

Kutia
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: