Turinys:
- Prekės
- 1 žingsnis: aviečių dalies aprašymas:
- 2 žingsnis: IR nuotoliniai kodai
- 3 žingsnis: pagrindinė programa
- 4 žingsnis: aviečių dalis: automatinis paleidimas ir naujų failų pridėjimas
- 5 veiksmas: energijos valdymas naudojant „Arduino Nano“
- 6 žingsnis: Kabelis
- 7 žingsnis: dėžutė
Video: Raspitone: paprasta naudoti „Jukebox“: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Sveiki, kitas mano projektas, kaip ir anksčiau, yra nelabai naudingas projektas:
Tai „Jukebox“, pagrįsta „Raspberry 3 B+“
Žinau, kažką panašaus galima lengvai padaryti naudojant išmanųjį telefoną ir „Bluetooth“garsiakalbį.
Tačiau mano projektui buvo dvi sunkios sąlygos:
Norėjau padaryti kažką „vintažinio“.
Ir apskritai, atsižvelgiant į tai, kad mano ponia yra visiškai beviltiška naudotis kompiuteriu ar „Bluetooth“ar bet kuo kitu XXI amžiuje (ir net 20 -ame), aš turėjau padaryti labai paprastą naudojimą ………
Taigi, specifikacijos buvo tokios:
Vienu mygtuko paspaudimu mašina paleidžiama
Jutiklinis ekranas (labai paprastas) muzikai valdyti.
Vienu paspaudimu ekrane sustabdysite mašiną.
Ir kad būtų geras garsas ………..
Prekės
Tam aš naudojau:
1 Avietė 3 B+
1 senas namų kinas, kuris buvo nenaudingas dėl DVD skaitytuvo OOS (senas „Samsung 2.1“su žemų dažnių garsiakalbiu ir 2 garsiakalbiais, kuriuos pakeičiau, kad tilptų į dėžutę)
1 HIFIBERRY DIGI+ plokštė (su maitinimo stiprintuvo optine išvestimi)
1 talpinis jutiklinis ekranas 7 colių (mano „Makeasy for Averes“su HDMI įvestimi ir maitinamas per USB, bet bet koks HDMI jutiklinis ekranas turi būti tinkamas)
1 maitinimo šaltinis 5V 5A
1 relės skydas
1 „Arduino nano“maitinimo įjungimo/išjungimo procesui valdyti
1 IR paskatino valdyti namų kiną (vadovaujamas 2N2222 NPN tranzistoriaus)
1 IR imtuvas (IR kodų mokymosi projekto daliai aš gaunu iš seno daugialypės terpės standžiojo disko su nuotoline komanda)
3 ledai
1 priežiūros režimo jungiklis
1 jungiklis, skirtas dirbti su arduino (įkėlimo metu arduino iš naujo nustatomas)
kai kurios JST ir Dupont jungtys
Ir dėl dėžutės
Mediena ir fanera (bet aš giliai neaprašysiu dėžutės gamybos). Tiesiog norėčiau pasakyti, kad dėl boomerio dėžutės viduje 10 mm fanera ir 18 mm mediena yra privalomos, jei nenorite matyti „Jukebox“, kertančio svetainę žaidžiant !!!!
1 žingsnis: aviečių dalies aprašymas:
„Raspi“turi valdyti įvairius dalykus:
1) komandos į namų kiną (per IR nuotolinio valdymo pultą)
2) muzikos failai
3) jutiklinis ekranas
4) Arduino širdies plakimas (kuris valdo Wdt (laikrodžio šuns laikmatis))
Aš pradėjau nuo „Raspbian strech“paskirstymo 16 G SD kortelėje (Kadangi mes nuskaitysime tik failus iš SD kortelės, HDD naudoti nebūtina). Negaišiu laiko šiai daliai, nes žiniatinklyje pilna pamokų apie tai.
Kituose žingsniuose pažiūrėkime skirtingas dalis….
2 žingsnis: IR nuotoliniai kodai
Kadangi negalėjau rasti namų kino grandinės plano, nusprendžiau jį valdyti nuotolinėmis komandomis
Pirmas žingsnis, kurį turėjau atlikti, buvo išmokti Raspi namų kino nuotolinio valdymo pulto kodus. Tam panaudojau labai gerą pamoką „Instructables“iš Austino Stantono IR kodų
Turėjau tam tikrų skirtumų, tikriausiai dėl naujos versijos, nes instrukcijos yra gana senos, failas hardware.conf nebeegzistuoja (bent jau aš jo neradau)
Taip pat atrodo, kad pamokoje naudojamas tranzistorius yra PNP tranzistorius, aš naudoju 2N2222, kuris yra NPN, bet rezultatas yra tas pats. (Išskyrus kabelius !!!!!!!!)
Smeigtuko priskyrimas pateiktas /boot/config.txt:
#autorisation de lirc le 2019-08-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IR šviesos diodas bus taip prijungtas prie „Raspi“kaiščio22.
Viena svarbi pastaba: mokantis Raspi kodų privaloma naudoti komandoje išvardytus raktinius žodžius
irrecord --list-namespace
Čia yra failas, kurį sukūriau savo „Jukebox“:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Skirkite laiko užbaigti šį failą, kaip aprašyta # https://sourceforge.net/p/lirc-remotes/wiki/Check… # ir padarykite jį prieinamą kitiems, nusiųsdami jį adresu # #
# Šis konfigūracijos failas buvo sukurtas automatiškai
# using lirc -0.9.4c (default) on Thu May 9 May 17:33:37 2019 # Naudojama komandinė eilutė: -d /dev /lirc0 /root/lircd.conf
# Branduolio versija (uname -r): 4.14.98 -v7+ # # Nuotolinis pavadinimas (kaip konfigūracijos failo): „jukebox“
# Nuotolinio įrenginio prekės ženklas, kurį laikote rankoje: # Nuotolinio įrenginio modelis Nr.
# Nuotolinio įrenginio informacijos URL:
# Ar nuotolinis įrenginys turi pridedamą fiksavimo įrenginį, pvz. g., a
# usb raktas?:
# Pridedami USB įrenginiai: USB tiekėjo ID, produkto ID
# ir įrenginio eilutė (naudokite dmesg arba lsusb):
# Valdomo įrenginio tipas
# (Televizorius, vaizdo grotuvas, garso įrašas, DVD, palydovas, kabelis, HTPC, …):
# Prietaisas (-ai), valdomas (-i) šiuo nuotolinio valdymo pultu:
pradėti nuotoliniu būdu
pavadinimą „jukebox“
bitai 16
vėliavos SPACE_ENC | CONST_LENGTH
eps 30
aep 100
antraštė 4470 4496
vienas 542 1693
542. 581
553
16
išankstiniai duomenys 0xC2CA
tarpas 107863
toggle_bit_mask 0x0
dažnis 38000
pradėti kodus
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
pabaigos kodai
pabaigos nuotolinio
Kaip matote, man reikia tik 4 komandų, kad galėčiau vairuoti namų kiną
Maitinimas (ON/OFF)
AUX => perjungti į optinį įvesties kanalą (nes HC visada prasideda DVD skaitytuve)
Ir garsumas +/-
Susijusios komandos vykdomos per LIRC komandas:
pavyzdžiui: „„ irsend SEND_ONCE “„ Jukebox “KEY_VOLUMEUP“
3 žingsnis: pagrindinė programa
Pagrindinė programa parašyta „Python“:
Kadangi esu naujas „Python“, manau, kad galima daug ką patobulinti, tačiau jis veikia….
Specifikacijos:
1) valdyti grafinį ekraną:
Tam aš naudojau APKJTER, kuris yra TKINTER, bet civilizuotas studentui (mano atvejis), tai reiškia daug lengviau naudoti, tikriausiai turint mažiau galimybių, tačiau mano tikslui to pakako.
2) leisti mp3 failus:
Python naudoju mplayer.
3) generuokite atsitiktinius skaičius, kad galėtumėte žaisti maišymo režimu:
Kadangi nenorėjau girdėti tos pačios dainos kiekvieną ketvirtį, sukūriau nedidelę programą, kad patikrintų, ar numerio nėra ankstesnių skaičių sąraše (x, priklausomai nuo grojaraščio ilgio).
Randint funkcija „python“nėra tokia „atsitiktinė“, kiek mačiau.
4) nusiųskite „širdies plakimą“Arduino
5) tvarkyti failų grotuvą:
Kadangi „Mplayer“yra asinchroninis, paleidus failą, „Python“negali žinoti, kada jis bus baigtas (bent jau neradau paprasto būdo)
Norėdami tai išspręsti, naudoju „mplayer“komandas, nurodančias failo ilgį ir dabartinio failo eigą
Tiek 4, tiek 5 naudojau „Appjar“suteiktą galimybę generuoti periodinę užduotį (kadangi „appjar“yra įvykių programa, tai yra būdas sukurti periodinį įvykį). funkcija yra:
#******************* paleiskite užduočių atlikėją ********************** app.registerEvent (uždavinys)
p.setPollTime (1000)
„Užduočių tvarkyklės“užduočių atlikėjas, kuris yra programos defektas, valdantis visus tai, kas nėra ekrano įvykiai (grojamo failo pabaiga, eigos juostos užpildymas, širdies plakimo siuntimas „Nano“ir kt.).
Kai tik pradėsite, ekranas atrodys taip:
Čia yra programa: (galima atidaryti naudojant „Notepad ++“arba „Geany“)
4 žingsnis: aviečių dalis: automatinis paleidimas ir naujų failų pridėjimas
Jei pažvelgsite į programą, pamatysite, kad naudoju kai kuriuos „bash“failus:
1) „Start_jukebox“:
Tiesą sakant, tikslas yra įjungti namų kiną ir pereiti prie D. IN įvesties (optinė įvestis mano namų kine)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
„irsend SEND_ONCE“„Jukebox“KEY_POWER
miegoti 7
„irsend SEND_ONCE“„Jukebox“KEY_AUX
miegoti 2
2) stop_jukebox:
Norėdami išjungti namų kiną
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
„irsend SEND_ONCE“„Jukebox“KEY_POWER
Šiuos du „bash“failus „Python“vadina komanda „os.system“
Norėdami paleisti „Python“scenarijų, padariau nedidelį triukšmą
pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash
cd /home /pi
python jukebox_gui.py
Automatiniam paleidimui GUI režimu ką tik pakeičiau automatinio paleidimo failą/etc/xdg/lxsession/LXDE-pi
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat automatinis paleidimas@lxpanel-profilis LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no -purslų
@lxterminal --command = "dem_jukebox.bash"
point-rpi
Pridedami nauji mp3 failai:
Norėdami pridėti naujų failų, norėjau sukurti nedidelį „Python“scenarijų:
new_song_file.py
Pirmiausia paaiškinsiu sistemos failų organizavimą:
Visi failai yra /home /pi
mp3 failai ieškomi kataloge/home/pi/Music
Kiekvienas atlikėjas turi savo antrinį katalogą, kuriame saugomi susiję mp3 failai
pi@raspitone: ~/Muzika/Mike_oldfield $ ls -iš viso 760516
-rwxr ----- 1 pi pi 2254923 2017 m. liepos 30 d. A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 liepos 30 2017 Atvykimas.mp3
-rwxr ----- 1 pi pi 8383244 liepos 30 2017 Ascension.mp3
-rwxr ----- 1 pi pi 5410816 liepos 30, 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 2017 m. liepos 30 d. (Instrumental).mp3
-rwxr ----- 1 pi pi 12903583 liepos 30 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 2017 30 30 Celt.mp3
-rwxr ----- 1 pi pi 9047745 2017 m. rugpjūčio 30 d. (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 2017 m. kovo 30 d.mp3
Kataloge „Dokumentai“galime rasti sukurtą paleisti failų sąrašą.
pi@raspitone: ~/Dokumentai $ 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
Taip pat galime rasti grojaraščių duomenis (bet tai sukurta naudojant „Python“scenarijų)
Mažas „Python“scenarijus prideda naujas dainas, išsaugotas „Music“, į sąrašą.txt, suformatavęs titrus UNIX formatu
Štai scenarijus: (galima atidaryti naudojant „Notepad ++“arba „Geany“)
5 veiksmas: energijos valdymas naudojant „Arduino Nano“
Kadangi norėjau ką nors lengvai pradėti, nusprendžiau tai padaryti nedideliu nano:
Principas:
Paspaudus paleidimo mygtuką, visi įrenginiai yra maitinami, nano paleidžiama (1 arba 2 sekundės) ir perima energijos valdymą, suveikdama relę, kuri atstumia mygtukų kontaktus.
Tada Nano laukia 35 sekundes, kad gautų širdies plakimą iš Raspberry (reiškia, kad paleidimo procesas baigtas ir paleidžiama „jukebox“programa).
Kol nano gauna širdies plakimą, relė įjungta (laikrodžio šuns laikmatis)
Jei širdies plakimas nebėra (tai reiškia, kad „jukebox“programa yra sustabdyta), „Nano“laukia 20 sekundžių (kad įsitikintų, jog raspi visiškai sustabdytas), kad atleistų maitinimo relę.
Tada „Jukebox“visiškai išjungiamas
Pridėjau jungiklį, kad suaktyvinčiau nano įvestį, nurodantį priežiūros režimą (naudoju „jukebox“kitiems savo raspi serveriams valdyti per „ssh et vnc“). Tada „Nano“išjungia sargybinio šuns procesą
Pastaba:
širdies susitraukimų įvestį iš Raspi reikia nuleisti (tačiau „Nano“3,3 V iš „Raspi“laiko aukštu lygiu)
Tai būtų galima padaryti su NE555, bet aš esu tingus ir visada turiu stalčiuje nano !!!!
Čia yra trumpa C programa (galima atidaryti naudojant „Notepad ++“)
6 žingsnis: Kabelis
Ekranui:
Ekranui maitinti ir vairuoti „Raspi“naudojamas HDMI kabelis ir USB kabelis.
Priekiniam skydeliui:
USB kabelis taip pat prijungtas iš „Raspi“, kad būtų galima įkelti naujus failus arba kurti atsargines kopijas.
Prie „Nano“prijungtas USB kabelis, kad būtų galima pasiekti programinę įrangą (prireikus atlikti pakeitimus)
Aš taip pat prijungiu belaidį klaviatūros raktą prie aviečių, kad galėčiau atlikti techninę priežiūrą nenaudojant išorinio USB kištuko
Kadangi naudojamos avietės ir „Arduino“, kabeliai yra gana paprasti.
Viskas yra ant juostelės matricos plokštės.
Iš aviečių 2 GPIO naudojami:
Kaištis22, skirtas IR šviesos diodams
27 kaištis širdies plakimui Arduino
ant Arduino
2 smeigtukas naudojamas kaip Raspi širdies plakimo pertraukimo kaištis.
Smeigtukai nuo 3 iki 5 naudojami vairuojant šviesos diodus (pradžia, Wdt, priežiūra).
6 kaištis skirtas priežiūros jungikliui.
7 kaištis išvedamas į relės skydą.
Čia yra frizingo failas:
7 žingsnis: dėžutė
Aš daug neaprašysiu, ką padariau, nes tai priklauso nuo galios stiprintuvo ir naudojamų garsiakalbių.
Kaip informacija, namų kinas yra dėžutės apačioje.
Šiek tiek virš garsiakalbių:
1 žemų dažnių garsiakalbis
2 vidutiniai garsiakalbiai, kuriuos pakeičiau, kad įterpčiau juos į dėžutę.
Ant viršaus:
Priekinis skydelis su ekranu, šviesos diodais, jungikliais ir USB kištukais.
Mediena:
Garsiakalbiams šoninės plokštės viršuje ir apačioje naudojau 18 mm medžio lentą.
Priekinė pusė yra 10 mm fanera su 40 mm varžtais.
Norėdami palengvinti laidų prijungimą ir priežiūrą (jei reikia !!!), aš uždėjau grandinę ant stalčiaus už priekinio skydo
Siekiant išvengti perkaitimo, galinio skydelio apačioje padaryta didelė skylė, o aš uždėjau 5 V ventiliatorių (8 cm) ant galinio skydo, šalia grandinės.
Aukščiau pateikta nuotrauka yra tik idėja.
Taigi, tiek to !!!!!!!!!
Ačiū, kad mane perskaitėte
Ir iki kito susitikimo naujų nuotykių
Rekomenduojamas:
Pigus NMEA/AIS koncentratorius - nuo RS232 iki „Wifi“tilto, skirtas naudoti laive: 6 žingsniai
Pigus NMEA /AIS koncentratorius - RS232 prie „Wifi Bridge“, skirtas naudoti laive: Atnaujinimas 2021 m. Sausio 9 d. - Pridėtas papildomas TCP ryšys ir pakartotinai naudojamas paskutinis ryšys, jei prisijungs daugiau klientų. 2020 m. Gruodžio 13 d. AIS RS232 į „WiFi“tiltą yra
Kaip prijungti ir naudoti GY -30 BH1750 šviesos jutiklį (GY30 / GY302) - paprasta - „Arduino Project“!: 7 žingsniai
Kaip prijungti ir naudoti GY -30 BH1750 šviesos jutiklį (GY30 / GY302) - paprasta - „Arduino Project“!: Šioje pamokoje sužinosime, kaip greitai ir lengvai naudoti „GY -30 BH1750“šviesos intensyvumo jutiklį su „Arduino“. Žiūrėkite demonstracinį vaizdo įrašą
Paprasta paprasta LED grandinė (kaip naudoti šviesos diodus): 4 žingsniai
Paprasta pagrindinė šviesos diodų grandinė (kaip naudoti šviesos diodus): šioje instrukcijoje nurodoma, kaip naudoti šviesos diodus ir kaip sukurti paprastas pagrindines šviesos diodų grandines, kurias srovės ribojimo rezistorius gali naudoti 3V, 6V, 9V ir šviesos diodams valdyti. 12V. Šviesos diodas yra svarbus elektronikos komponentas, jis naudojamas keletui
„Pasidaryk pats“„MusiLED“, muzikos sinchronizuoti šviesos diodai su vienu paspaudimu „Windows“ir „Linux“programa (32 bitų ir 64 bitų). Lengva atkurti, paprasta naudoti, lengva perkelti: 3 žingsniai
Pasidaryk pats „MusiLED“, muzikos sinchronizuoti šviesos diodai su vienu paspaudimu „Windows“ir „Linux“programa (32 bitų ir 64 bitų). Lengva atkurti, paprasta naudoti, lengva perkelti. Šis projektas padės jums prijungti 18 šviesos diodų (6 raudonos + 6 mėlynos + 6 geltonos) prie „Arduino“plokštės ir išanalizuoti kompiuterio garso plokštės realaus laiko signalus ir perduoti juos šviesos diodai, kad jie užsidegtų pagal ritmo efektus (Snare, High Hat, Kick)
„XBOX Case Mod **“paprasta ir paprasta; Spalvingas **: 5 žingsniai
„XBOX Case Mod **“paprasta ir paprasta; Spalvinga **: tai mano pirmasis pamokomas hmmm. gana paprastas LED korpuso modas, naudojant lengvai randamas dalis. šis „Instructable“yra visiškai grįžtamas, jei jis neplanuoja … (tai praktiškai yra garantija po kai kurių dalykų, kuriuos mačiau)