Sisukord:
- Tarvikud
- 1. samm: vaarika osa kirjeldus:
- 2. samm: IR -kaugkoodid
- Samm: põhiprogramm
- 4. samm: Vaarika osa: automaatne käivitamine ja uute failide lisamine
- Samm: toitehaldus Arduino Nano kaudu
- 6. samm: kaabeldus
- 7. samm: kast
Video: Raspitone: lihtne kasutada Jukeboxi: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Tere, minu järgmine projekt on, nagu ma tegin, mitte eriti kasulik projekt:
See on Raspberry 3 B+ põhinev jukebox
Ma tean, midagi sellist saab hõlpsasti teha nutitelefoni ja Bluetooth -kõlariga.
Kuid minu projekti jaoks oli mul kaks rasket eeldust:
Tahtsin teha midagi "vintage".
Ja üldiselt, pidades silmas asjaolu, et mu daam on lõplikult lootusetu arvuti, bluetoothi või muu 21. sajandi (ja isegi 20. sajandi) suhtes, pidin kasutama midagi väga lihtsat …….
Seega olid spetsifikatsioonid järgmised:
Üks nupp masina käivitamiseks
Puuteekraan (väga lihtne) muusika haldamiseks.
Masina peatamiseks ekraanil üks puudutus.
Ja hea heli saamiseks …….
Tarvikud
Selleks kasutasin:
1 vaarikas 3 B+
1 vana kodukino, mis oli DVD -lugeja OOS tõttu kasutu (vana Samsungi 2.1 bassikõlari ja 2 kõlariga, mida ma karbile sobivaks muutsin)
1 HIFIBERRY DIGI+ plaat (optilise väljundiga võimendi jaoks)
1 mahtuvuslik 7 -tolline puutetundlik ekraan (minu oma on Makeasy vaarikale, millel on HDMI -sisend ja mis töötab USB kaudu, kuid mis tahes HDMI -puuteekraan peaks olema korras)
1 toiteallikas 5V 5A
1 releekilp
1 Arduino nano toite ON/OFF protsessi juhtimiseks
1 IR juhtis kodukino (juhtis 2N2222 NPN transistor)
1 IR -vastuvõtja (projekti IR -koodide õppimise osa jaoks saan oma vana multimeedia kõvakettalt kaugjuhtimisega)
3 LED -i
1 lüliti hooldusrežiimi jaoks
1 lüliti arduinoga töötamiseks (üleslaadimise ajal lähtestatakse arduino)
mõned JST ja Dupont pistikud
Ja kasti jaoks
Puit ja vineer (aga ma ei kirjelda sügavalt karbi valmistamist). Lihtsalt öeldes, et karbis oleva buumi osas on 10 mm vineer ja 18 mm puit kohustuslikud, kui te ei taha mängides Jukeboxi elutuba ületada !!!!
1. samm: vaarika osa kirjeldus:
Raspi peab juhtima erinevaid asju:
1) kodukino käsud (IR -puldi kaudu)
2) muusikafailid
3) puuteekraan
4) Arduino südamelöögid (mis haldavad Wdt -d (valvekoera taimer))
Alustasin Raspbian strech levitamisest 16 G SD -kaardil (Kuna me loeme ainult SD -kaardilt faile, pole kõvaketta kasutamine vajalik). Ma ei kuluta sellele osale aega, kuna veeb on selle kohta õpetusi täis..
Vaatame järgmisi samme erinevates osades….
2. samm: IR -kaugkoodid
Kuna ma ei leidnud kodukino skeemi, otsustasin seda juhtida kaugkäskude abil
Esimene samm, mille ma pidin lõpetama, oli õppida kodukino kaugjuhtimispuldi Raspi koode. Selleks kasutasin Austin Stantoni IR -koodide Instructables väga head õpetust
Mul oli mõningaid erinevusi, ilmselt uue versiooni tõttu, kuna juhised on üsna vanad, faili hardware.conf pole enam olemas (vähemalt ma ei leidnud seda)
Tundub samuti, et juhendis kasutatav transistor on PNP -transistor, omalt poolt kasutasin 2N2222, mis on NPN, kuid tulemus on sama. (Välja arvatud kaabeldus !!!!!!!!)
Tihvti määramine on antud failis /boot/config.txt:
#autorisation de lirc le 2019-07-08 dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IR -LED ühendatakse nii Raspi tihvtiga 22.
Üks oluline märkus: Raspile koodide õppimisel on kohustuslik kasutada käsus loetletud märksõnu
irrecord-list-nimeruum
Siin on fail, mille ehitasin oma jukeboxi jaoks:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Palun leidke aega selle faili lõpetamiseks, nagu on kirjeldatud jaotises # https://sourceforge.net/p/lirc-remotes/wiki/Check… # ja tehke see teistele kättesaadavaks, saates selle aadressile # #
# See konfiguratsioonifail loodi automaatselt
# kasutades lirc -0.9.4c (vaikimisi) neljapäeval, 9. mail 17:33:37 2019 # Kasutatud käsurea: -d /dev /lirc0 /root/lircd.conf
# Kerneli versioon (uname -r): 4.14.98 -v7+ # # Kaugnimi (konfiguratsioonifaili seisuga): jukebox
# Kaugseadme kaubamärk, mida hoiate käes: # Kaugseadme mudel nr:
# Kaugseadme teabe URL:
# Kas kaugseadmel on komplektis salvestusseade e. g., a
# usb dongle?:
# Komplekti kuuluvate USB -seadmete puhul: USB -müüja ID, toote ID
# ja seadme string (kasutage dmesg või lsusb):
# Juhitava seadme tüüp
# (TV, videomakk, heli, DVD, satelliit, kaabel, HTPC jne):
# Selle kaugjuhtimispuldiga juhitavad seadmed:
alustada kaugjuhtimist
nimi jukebox
bitti 16
lipud SPACE_ENC | CONST_LENGTH
eps 30
aep 100
päis 4470 4496
üks 542 1693
null 542 581
ptrail 553
eelandmed_bitid 16
eelandmed 0xC2CA
vahe 107863
toggle_bit_mask 0x0
sagedus 38000
alustada koode
VÕTMEVÕIM 0x807F
KEY_AUX 0x8877
VÕTTE_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
lõppkoodid
lõpp pult
Nagu näete, vajan kodukino juhtimiseks vaid 4 käsku
Toide (ON/OFF)
AUX => optilisele sisendkanalile üleminekuks (kuna HC käivitub alati DVD -lugejal)
Ja helitugevus +/-
Seotud käsud täidetakse LIRC -käskude kaudu:
näiteks: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"
Samm: põhiprogramm
Põhiprogramm on kirjutatud Pythonis:
Kuna olen Pythonis uus, arvan, et saab palju parandada, kuid see töötab….
Spetsifikatsioonid:
1) hallata graafilist ekraani:
Selleks kasutasin APPJAR -i, mis on TKINTER, kuid üliõpilase jaoks tsiviliseeritud (minu puhul), see tähendab, et seda on palju lihtsam kasutada, tõenäoliselt vähemate võimalustega, kuid see oli minu jaoks piisav.
2) mängida mp3 -faile:
Pythoniks kasutasin mplayerit.
3) genereerige juhuslikud numbrid segamisrežiimis mängimiseks:
Kuna ma ei tahtnud iga kvartali sama laulu kuulda, koostasin väikese programmi, et kontrollida, kas numbrit pole x eelmiste numbrite loendis (x olenevalt esitusloendi pikkusest).
Randoni funktsioon pythonis pole minu arvates nii "juhuslik".
4) saatke "südamelöögid" Arduinole
5) hallata failimängijat:
Kuna Mplayer on asünkroonne, ei saa faili käivitamisel Pythoni jaoks teada, millal see on lõpetatud (vähemalt ma ei leidnud lihtsat viisi)
Selle lahendamiseks kasutasin mplayeri käske, mis andsid faili pikkuse ja praeguse faili edenemise
Nii 4 kui ka 5 puhul kasutasin Appjari antud võimalust perioodilise ülesande genereerimiseks (kuna appjar on sündmuste programm, on see võimalus perioodilise sündmuse loomiseks). funktsioon on:
#******************* käivita tegija ********************** app.registerEvent (tegum)
p.setPollTime (1000)
Taskman "ülesannete haldurile", mis on programmis def, mis haldab kõike, mis pole ekraanisündmusi (esitatava faili lõpp, edenemisriba täitmine, südamelöökide saatmine nanole …)
Pärast käivitamist näeb ekraan välja selline:
Siin on programm: (saab avada Notepad ++ või Geany kaudu)
4. samm: Vaarika osa: automaatne käivitamine ja uute failide lisamine
Programmi vaadates näete, et kasutan mõnda bash -faili:
1) Start_jukebox:
Tegelikult on eesmärk kodukino sisse lülitada ja minna D. IN sisendile (optiline sisend minu kodukinos)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
magama 7
irsend SEND_ONCE jukebox KEY_AUX
magama 2
2) stop_jukebox:
Kodukino väljalülitamiseks
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
Neid kahte bash -faili kutsub Python käsuga os.system
Pythoni skripti käivitamiseks tegin väikese bashi
pi@raspitone: ~ $ kass dem_jukebox.bash#!/bin/bash
cd /kodu /pi
python jukebox_gui.py
GUI-režiimis automaatseks käivitamiseks muutsin äsja automaatse käivitamise faili kaustas/etc/xdg/lxsession/LXDE-pi
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ kass autostart@lxpanel-profiil LXDE-pi
@pcmanfm --desktop --profiil LXDE-pi
@xscreensaver -no -pritsmed
@lxterminal --command = "dem_jukebox.bash"
point-rpi
Uute mp3 -failide lisamine:
Uute failide lisamiseks eelistasin teha väikese spetsiaalse Pythoni skripti:
new_song_file.py
Esmalt selgitan süsteemifailide korraldust:
Kõik failid on kataloogis /home /pi
mp3 -faile otsitakse kataloogist/home/pi/Music
Igal kunstnikul on oma alamkataloog, mis majutab seotud mp3 -faile
pi@raspitone: ~/Muusika/Mike_oldfield $ ls -kokku 760516
-rwxr ----- 1 pi pi 2254923 30. juuni 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 juuni 30 2017 Saabumine.mp3
-rwxr ----- 1 pi pi 8383244 juuni 30 2017 Ülestõusmine.mp3
-rwxr ----- 1 pi pi 5410816 juuni 30 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 juuni 30 2017 Castaway_ (Instrumental).mp3
-rwxr ----- 1 pi pi 12903583 juun 30 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 juun 30 2017 Celt.mp3
-rwxr ----- 1 pi pi 9047745 juuni 30 2017 Chariots_ (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 juin 30 2017 Chariots.mp3
Kataloogist Dokumendid leiame esitatavate failide loendi.
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
Leiame ka esitusloendite andmed (kuid see on loodud Pythoni skripti järgi)
Väike Pythoni skript lisab uued tiitlid muusikasse salvestatud lood list.txt -sse pärast seda, kui on vormindanud tiitlid UNIX -vormingus
Siin on skript: (saab avada Notepad ++ või Geany kaudu)
Samm: toitehaldus Arduino Nano kaudu
Kuna ma tahtsin midagi lihtsat alustada, otsustasin selle teha väikese nano abil:
Põhimõte:
Kui käivitusnupule vajutada, on kõik seadmed toiteallikad, nano käivitub (1 või 2 sekundit) ja võtab üle toitehalduse, käivitades relee, mis surub nuppude kontakte.
Seejärel ootab Nano 35 sekundit, et saada Raspberrylt südamelööke (tähendab, et käivitusprotsess on lõpule viidud ja jukeboxi programm töötab).
Niikaua kui nano saab südamelööke, hoiab relee sisselülitatud (valvekoera taimer)
Kui südamelööke enam ei ole (tähendab, et jukeboxi programm on peatatud), ootab Nano 20 sekundit (veendumaks, et raspi on täielikult peatatud), et vabastada toiterelee.
Jukebox lülitatakse seejärel täielikult välja
Lisasin lüliti, et aktiveerida nano sisend hooldusrežiimi näitamiseks (kasutan jukeboksi oma teiste raspi serverite haldamiseks ssh et vnc kaudu). Seejärel deaktiveerib Nano valvekoera protsessi
Märkus:
Raspi südamelöögi sisend tuleb alla tõmmata (kuid Raspi 3,3 V peetakse Nano kõrgeks tasemeks)
Seda saaks teha NE555 -ga, kuid ma olen laisk ja mul on alati sahtlis mõni nano !!!!
Siin on lühike C -programm (saab avada Notepad ++ abil)
6. samm: kaabeldus
Ekraani jaoks:
Ekraani toiteks ja juhtimiseks kasutatakse Raspi HDMI -kaablit ja USB -kaablit.
Esipaneeli jaoks:
Samuti on Raspist ühendatud USB -kaabel, et saaksite uusi faile üles laadida või varukoopiaid teha.
Nano külge on ühendatud USB -kaabel, et pääseda juurde pehmele (vajadusel muudatuste tegemiseks)
Ma ühendan ka vaarika traadita klaviatuuri dongli, et saaksin hooldust teha ilma välist USB -pistikut kasutamata
Kuna kasutatakse vaarikat ja Arduinot, on kaabeldus üsna lihtne.
Kõik asub ribamaatriksplaadil.
Vaarikast 2 kasutatakse GPIO -d:
Pin22 IR -LED jaoks
Pin 27 südamelöökide jaoks Arduinole
Arduino peal
Tihvti 2 kasutatakse Raspi südamelöögi katkestamiseks.
Tihvte 3 kuni 5 kasutatakse LED -ide juhtimiseks (Start, Wdt, Hooldus).
Tihvt 6 on hoolduslüliti jaoks.
Pin 7 väljastatakse releekilbile.
Siin on fritzeeriv fail:
7. samm: kast
Ma ei kirjelda palju, mida ma tegin, kuna see sõltub võimsusvõimendist ja kasutatavatest kõlaritest.
Teabena asub kodukino kasti allosas.
Veidi kõlarite kohal:
1 bassikõlar
2 keskmist kõlarit, mida ma muutsin, et need kasti sisestada.
Peal:
Esipaneel koos ekraaniga, LED -id, lülitid ja USB -pistikud.
Puit:
Kõlarite puhul pani külgpaneelid ülemise ja alumise osa 18 mm puitplaati.
Esikülg on 10 mm vineer 40 mm kruvidega.
Kaabelduse ja hoolduse hõlbustamiseks (kui vaja !!!) panin vooluringi esipaneeli taha sahtlile
Ülekuumenemise vältimiseks tehakse tagumise paneeli põhjale suur auk ja panen 5V ventilaatori (8 cm) tagumisele paneelile otse vooluringi kõrvale.
Ülaltoodud pilt on lihtsalt ettekujutuse andmiseks.
Nii, see ongi !!!!!!!!!
Aitäh, et mind lugesite
Ja kohtume järgmisel korral uute seikluste jaoks
Soovitan:
PlotClock, WeMos ja Blynk mängivad Vintage AMI Jukeboxi: 6 sammu (koos piltidega)
PlotClock, WeMos ja Blynk Playing Vintage AMI Jukebox: Neli tehnilist uuendust tegid selle projekti võimalikuks: 1977. aasta Rowe AMI Jukebox, PlotClock robotkätekomplekt, mikrokontroller WeMos/ESP 8266 ja Blynk App/Cloud teenus. MÄRKUS. Jukebox käepärast - ärge lõpetage lugemist! See projekt võib
Mobiiliga juhitav Bluetooth -auto -- Lihtne -- Lihtne -- Hc-05 -- Mootorikilp: 10 sammu (koos piltidega)
Mobiiliga juhitav Bluetooth -auto || Lihtne || Lihtne || Hc-05 || Motor Shield: … Palun TELLI minu YouTube'i kanalile ………. See on Bluetooth-juhitav auto, mis kasutas mobiiliga suhtlemiseks Bluetooth-moodulit HC-05. Saame autot juhtida mobiiltelefoniga Bluetoothi kaudu. Auto liikumise juhtimiseks on olemas rakendus
Heli aktiveeritud LED -tulede ümberehitamine jukeboxi: 4 sammu
Heli aktiveeritud LED -tuled jukeboxi moderniseerimiseks: ma mõtlesin mõnda aega muusika tegemiseks tulede valmistamisele, mis muudaksid värvi mõne aja pärast, et lisada jukeboxi ja kui nägin LED -riba kiiruse väljakutset, ja kuna me oleme praegu suletud, arvasin, et see oleks
COVID-19 armatuurlaud (lihtne ja lihtne): 4 sammu
COVID-19 juhtpaneel (lihtne ja lihtne): kõikjal on uudse COVID-19 viiruse puhang. Vajalik oli jälgida praegust COVID-19 stsenaariumi riigis. Niisiis, kodus olles oli see projekt, millele ma mõtlesin: " Informatsiooni armatuurlaud " - A
DIY MusiLED, muusika sünkroonitud LED-id ühe klõpsuga Windowsi ja Linuxi rakendusega (32-bitine ja 64-bitine). Lihtne taastada, lihtne kasutada, lihtne teisaldada: 3 sammu
DIY MusiLED, muusika sünkroonitud LED-id ühe klõpsuga Windowsi ja Linuxi rakendusega (32-bitine ja 64-bitine). Lihtne taastada, lihtne kasutada, lihtne teisaldada .: See projekt aitab teil ühendada 18 LED-i (6 punast + 6 sinist + 6 kollast) oma Arduino plaadiga ja analüüsida arvuti helikaardi reaalajasignaale ning edastada need valgusdioodid, mis neid löögiefektide järgi süttivad (Snare, High Hat, Kick)