Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Vadelma -osan kuvaus:
- Vaihe 2: IR -etäkoodit
- Vaihe 3: Pääohjelma
- Vaihe 4: Vadelma -osa: automaattinen käynnistys ja uusien tiedostojen lisääminen
- Vaihe 5: Virranhallinta Arduino Nanon kautta
- Vaihe 6: Kaapelointi
- Vaihe 7: Laatikko
Video: Raspitone: helppokäyttöinen Jukebox: 7 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Hei, seuraava projektini on, kuten ennenkin, ei kovin hyödyllinen projekti:
Tämä jukeboksi perustuu Raspberry 3 B+: een
Tiedän, että jotain tällaista voidaan helposti tehdä älypuhelimella ja Bluetooth -kaiuttimella.
Mutta projektilleni minulla oli kaksi kovaa edellytystä:
Halusin tehdä jotain "vintagea".
Ja kaiken kaikkiaan, kun otetaan huomioon, että rouva on ehdottomasti toivoton tietokoneen tai bluetoothin tai muun 21. vuosisadan (ja jopa 20. vuosisadan) suhteen, minun piti tehdä jotain hyvin yksinkertaista käyttää ………
Eritelmät olivat siis seuraavat:
Yksi painike käynnistää koneen
Kosketusnäyttö (erittäin yksinkertainen) hallita musiikkia.
Pysäytä kone yhdellä kosketuksella näytöllä.
Ja hyvä ääni …….
Tarvikkeet
Tätä varten käytin:
1 Vadelma 3 B+
1 vanha kotiteatteri, joka oli hyödytön OOS -DVD -lukijan vuoksi (vanha Samsung 2.1, jossa bassokaiutin ja 2 kaiutinta, jotka muutin sopivaksi laatikkoon)
1 HIFIBERRY DIGI+ -kortti (optisella ulostulolla tehovahvistimelle)
1 kapasitiivinen kosketusnäyttö 7 (omani on Makeasy for vadelma, jossa on HDMI -tulo ja virtaa USB: n kautta, mutta minkä tahansa HDMI -kosketusnäytön pitäisi olla kunnossa)
1 virtalähde 5V 5A
1 releen suojus
1 Arduino nano virran kytkemiseksi päälle/pois päältä
1 IR -LED johti kotiteatterin ohjaamiseen (johti 2N2222 NPN -transistori)
1 IR -vastaanotin (hankkeen IR -koodien oppimisosaa varten saan omani vanhalta multimedia -kiintolevyltä, jossa on etäkomento)
3 lediä
1 huoltokytkin
1 kytkin arduino -työskentelyyn (latauksen aikana arduino nollataan)
joitakin JST- ja Dupont -liittimiä
Ja laatikolle
Puu ja vaneri (mutta en kerro syvällisesti laatikon valmistusta). sanon vain, että laatikon sisällä olevan boomerin osalta 10 mm vaneri ja 18 mm puu ovat pakollisia, jos et halua nähdä Jukeboxin ylittävän olohuonetta pelatessasi !!!!
Vaihe 1: Vadelma -osan kuvaus:
Raspin on hallittava erilaisia asioita:
1) komennot kotiteatterille (IR -kaukosäätimen kautta)
2) musiikkitiedostot
3) kosketusnäyttö
4) Arduinon sydämenlyönti (joka hallitsee Wdt: tä (vahtikoiran ajastin))
Aloitin Raspbian -strech -jakelusta 16 G: n SD -kortilla (Koska luemme vain tiedostoja SD -kortilta, kiintolevyn käyttö ei ole välttämätöntä). En vietä aikaa tähän osaan, koska verkko on täynnä tutoria siitä.
Katsotaan eri osia seuraavissa vaiheissa….
Vaihe 2: IR -etäkoodit
Koska en löytänyt kotiteatterin piirisuunnitelmaa, päätin ajaa sitä etäkomentojen avulla
Ensimmäinen askel, joka minun täytyi suorittaa, oli oppia Raspille kotiteatterin kaukokomennon koodit. Tätä varten käytin erittäin hyvää tutoria Austin Stantonin IR -koodien Instructables -ohjelmassa
Minulla oli joitain eroja, luultavasti uuden version takia, koska ohjeet ovat melko vanhoja, hardware.conf -tiedostoa ei ole enää olemassa (en ainakaan löytänyt sitä)
Näyttää myös siltä, että tutossa käytetty transistori on PNP -transistori, omalta osaltani käytin 2N2222, joka on NPN, mutta tulos on sama. (Paitsi kaapelointi !!!!!!!!)
Nastamääritys annetaan tiedostossa /boot/config.txt:
#autorisation de lirc le 2019-07-08 dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IR -LED liitetään niin Raspin nastaan 22.
Yksi tärkeä huomautus: kun opit koodeja Raspille, on pakollista käyttää komennossa lueteltuja avainsanoja
irrecord-list-namespace
Tässä on tiedosto, jonka rakensin jukeboksiini varten:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Ota aikaa tämän tiedoston viimeistelemiseen kohdassa # https://sourceforge.net/p/lirc-remotes/wiki/Check… # kuvatulla tavalla ja aseta se muiden saataville lähettämällä se numeroon # #
# Tämä määritystiedosto luotiin automaattisesti
# using lirc -0.9.4c (oletus) to 9. toukokuuta 17:33:37 2019 # Käytetty komentorivi: -d /dev /lirc0 /root/lircd.conf
# Ytimen versio (uname -r): 4.14.98 -v7+ # # Etänimi (määritystiedoston mukaan): jukebox
# Etälaitteen merkki, mitä pidät kädessäsi: # Etälaitteen malli nro:
# Etälaitteen tietojen URL -osoite:
# Onko etälaitteessa kaapattu kaappauslaite e. esim. a
# usb -sovitin?:
# Pakkauksessa olevat USB -laitteet: USB -toimittajan tunnus, tuotetunnus
# ja laitejono (käytä dmesg tai lsusb):
# Ohjattavan laitteen tyyppi
# (TV, videonauhuri, ääni, DVD, satelliitti, kaapeli, HTPC,…):
# Tällä kauko -ohjaimella ohjattavat laitteet:
aloita etäkäyttö
nimi jukebox
bittiä 16
liput SPACE_ENC | CONST_LENGTH
eps 30
aeps 100
otsikko 4470 4496
yksi 542 1693
nolla 542581
ptrail 553
16
pre_data 0xC2CA
aukko 107863
toggle_bit_mask 0x0
taajuus 38000
aloita koodit
AVAINTEHO 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
lopetuskoodit
lopeta kaukosäädin
Kuten näette, tarvitsen vain 4 komentoa kotiteatterin ajamiseen
Virta (ON/OFF)
AUX => siirtyminen optiseen tulokanavaan (koska HC käynnistyy aina DVD -lukijasta)
Ja äänenvoimakkuus +/-
Liittyvät komennot suoritetaan LIRC -komentojen kautta:
esimerkiksi: "irsend SEND_ONCE -jukeboksi KEY_VOLUMEUP"
Vaihe 3: Pääohjelma
Pääohjelma on kirjoitettu Pythonilla:
Koska olen uusi Pythonissa, luulen, että parannettavaa on paljon, mutta se toimii….
Tekniset tiedot:
1) hallita graafista näyttöä:
Tätä varten käytin APPJARia, joka on TKINTER, mutta sivistynyt opiskelijalle (minun tapaukseni), mikä tarkoittaa paljon helpompaa käyttää, luultavasti vähemmän mahdollisuuksia, mutta se riitti tarkoitukseeni.
2) toista mp3 -tiedostot:
Käytin mplayeria pythonille.
3) Luo satunnaislukuja toistoa varten:
Koska en halunnut kuulla samaa kappaletta neljännesvuosittain, rakensin pienen ohjelman, jolla tarkistin, ettei numero ollut x edellisen numeron luettelossa (x riippuen soittolistan pituudesta).
Randyt -funktio pythonissa ei ole niin "satunnainen" kuin olen nähnyt.
4) lähetä "sydämenlyönti" Arduinolle
5) hallita tiedostojen soitinta:
Koska Mplayer on asynkroninen, kun tiedosto käynnistetään, Pythonille ei voi tietää milloin se on valmis (ainakaan en löytänyt yksinkertaista tapaa)
Päätin ratkaista sen käyttämällä mplayer -komentoja, jotka ilmoittavat tiedoston pituuden ja nykyisen tiedoston edistymisen
Sekä 4 että 5 käytin Appjarin antamaa mahdollisuutta luoda jaksollinen tehtävä (koska appjar on tapahtumaohjelma, tämä on tapa luoda jaksollinen tapahtuma). toiminto on:
#******************* aloita tehtävämies
p.setPollTime (1000)
Taskman "tehtävienhallinnalle", joka on ohjelman def, joka hallitsee kaikki muut kuin näytön tapahtumat (toistetun tiedoston loppu, edistymispalkki täytetään, sydämenlyönti lähetetään Nanolle …)
Kun näyttö käynnistyy, se näyttää tältä:
Tässä on ohjelma: (voidaan avata Notepad ++: n tai Geanyn kautta)
Vaihe 4: Vadelma -osa: automaattinen käynnistys ja uusien tiedostojen lisääminen
Jos katsot ohjelmaa, näet, että käytän joitain bash -tiedostoja:
1) Start_jukebox:
Itse asiassa tarkoitus on kytkeä kotiteatteri päälle ja siirtyä D. IN -tuloon (optinen tulo kotiteatterissani)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE -jukeboksi KEY_POWER
nukkua 7
irsend SEND_ONCE -jukeboksi KEY_AUX
nukkua 2
2) stop_jukebox:
Kotiteatterin sammuttaminen
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE -jukeboksi KEY_POWER
Näitä kahta bash -tiedostoa kutsuu Python os.system -komennolla
Python -komentosarjan käynnistämiseksi tein pienen bashin
pi@raspitone: ~ $ kissa dem_jukebox.bash#!/bin/bash
cd /koti /pi
python jukebox_gui.py
Automaattista käynnistystä varten GUI-tilassa muutin juuri automaattisen käynnistyksen tiedostoa/etc/xdg/lxsession/LXDE-pi
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat automaattinen käynnistys@lxpanel --profiili LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no -splash
@lxterminal --command = "dem_jukebox.bash"
point-rpi
Uusien mp3 -tiedostojen lisääminen:
Uusien tiedostojen lisäämiseksi mieluummin tein pienen omistetun Python -komentosarjan:
new_song_file.py
Selitän ensin järjestelmätiedostojen organisaation:
Kaikki tiedostot ovat hakemistossa /home /pi
mp3 -tiedostoja etsitään hakemistosta/home/pi/Music
Jokaisella artistilla on oma alihakemisto, joka isännöi aiheeseen liittyviä mp3 -tiedostoja
pi@raspitone: ~/Musiikki/Mike_oldfield $ ls -yhteensä 760516
-rwxr ----- 1 pi pi 2254923 30. heinäkuuta 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 30. heinäkuuta 2017 Arrival.mp3
-rwxr ----- 1 pi pi 8383244 heinäkuu 30 2017 Ascension.mp3
-rwxr ----- 1 pi pi 5410816 heinäkuu 30, 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 heinäkuu 30 2017 Castaway_ (Instrumental).mp3
-rwxr ----- 1 pi pi 12903583 heinäkuu 30 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 heinäkuu 30 2017 Celt.mp3
-rwxr ----- 1 pi pi 9047745 heinäkuu 30 2017 Chariots_ (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 heinäkuu 30 2017 Chariots.mp3
Dokumentit -hakemistosta löydät rakennetun luettelon toistettavista tiedostoista.
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
Löydämme myös soittolistatiedot (mutta tämä on rakennettu Python -komentosarjan avulla)
Pieni Python -skripti lisää uudet musiikkiin tallennetut kappaleet list.txt -tiedostoon sen jälkeen, kun tekstit on muotoiltu UNIX -muodossa
Tässä on komentosarja: (voidaan avata Notepad ++: n tai Geanyn kautta)
Vaihe 5: Virranhallinta Arduino Nanon kautta
Koska halusin saada jotain helppoa aloittaa, päätin tehdä sen pienellä nanolla:
Periaate:
Kun käynnistyspainiketta painetaan, kaikki laitteet saavat virtaa, nano käynnistyy (1 tai 2 sekuntia) ja ottaa virranhallinnan käyttöön laukaisemalla releen, joka siirtää painikkeen koskettimet.
Sitten Nano odottaa 35 sekuntia saadakseen sykkeen Vadelmalta (tarkoittaa, että käynnistysprosessi on valmis ja jukeboksi -ohjelma suoritetaan).
Niin kauan kuin nano vastaanottaa sydämenlyönnin, se pitää releen päällä (Watch dog ajastin)
Jos sydämenlyöntiä ei enää tapahdu (tarkoittaa, että jukeboksi -ohjelma on pysäytetty), Nano odottaa 20 sekuntia (varmistaakseen, että raspi on pysähtynyt kokonaan) vapauttaakseen virtareleen.
Jukeboksi sammutetaan tällöin kokonaan
Lisäsin kytkimen aktivoimaan nano -tulon huoltotilan osoittamiseksi (käytän jukeboksia hallitsemaan muita raspi -palvelimiani ssh et vnc: n kautta). Nano deaktivoi sitten vahtikoiraprosessin
Huomautus:
Raspin sydämenlyönnin tulo on vedettävä alas (mutta Rasin 3,3 V: n katsotaan olevan Nanon korkealla tasolla)
Se voitaisiin tehdä NE555: llä, mutta olen laiska ja minulla on aina joitain nanoja laatikossani !!!!
Tässä on lyhyt C -ohjelma (voidaan avata Notepad ++: lla)
Vaihe 6: Kaapelointi
Näytölle:
Raspissa käytetään HDMI -kaapelia ja USB -kaapelia näytön virran kytkemiseen ja käyttämiseen.
Etupaneeli:
Raspista on myös liitetty USB -kaapeli uusien tiedostojen lataamiseen tai varmuuskopiointiin.
Nano -laitteeseen on liitetty USB -kaapeli, jotta ohjelmisto voidaan käyttää (tarvittaessa muutoksia varten)
Liitän vadelmaan myös langattoman näppäimistösovittimen, jotta voin tehdä huoltotöitä ilman ulkoista USB -liitintä
Koska Vadelma ja Arduino ovat käytössä, kaapelointi on melko yksinkertaista.
Kaikki sijaitsee nauhamatriisilevyllä.
Raspberry 2 GPIO: sta käytetään:
Pin22 IR -LEDille
Pin 27 sydämenlyönnille Arduinolle
Arduinolla
Nasta 2 toimii keskeytysnappina Raspin sydämenlyönnille.
Tappeja 3–5 käytetään ledien ohjaamiseen (Start, Wdt, Maintenance).
Nasta 6 on huoltokytkimelle.
Nasta 7 lähetetään releen suojaan.
Tässä on fritzing -tiedosto:
Vaihe 7: Laatikko
En kuvaile paljon mitä tein, koska se riippuu tehovahvistimesta ja käytetyistä kaiuttimista.
Tiedoksi kotiteatteri sijaitsee laatikon pohjassa.
Hieman kaiuttimien yläpuolella:
1 bassokaiutin
2 keskikokoista kaiutinta, joita muutin lisätäkseni ne laatikkoon.
Päällä:
Etupaneeli, jossa on näyttö, LEDit, kytkimet ja USB -pistokkeet.
Puu:
Kaiuttimissa sivupaneelit kanavat ylhäältä ja alhaalta 18 mm puulautaa.
Etupuoli on 10 mm vaneria ja 40 mm ruuveja.
Kaapeloinnin ja huollon helpottamiseksi (tarvittaessa !!!) Laitoin piirin etupaneelin takana olevaan laatikkoon
Ylikuumenemisen välttämiseksi tehdään suuri reikä takapaneelin pohjalle ja laitoin 5 V tuulettimen (8 cm) takapaneeliin aivan piirin viereen.
Yllä oleva kuva on vain idea.
Joten se siitä !!!!!!!!!
Kiitos, että luit minut
Ja nähdään seuraavalla kerralla uusilla seikkailuilla
Suositeltava:
DHT12 (halpa i2c -kosteus- ja lämpötila -anturi), nopea helppokäyttöinen: 14 vaihetta
DHT12 (halpa i2c-kosteus- ja lämpötila-anturi), nopea helppokäyttöinen: Löydät päivityksiä ja muuta sivustoltani https://www.mischianti.org/2019/01/01/dht12-library-en/. voidaan käyttää 2 -johtoisella (i2c -protokolla), mutta rakastan halpaa. Tämä on Arduino- ja esp8266 -kirjasto DHT12 -sarjan
Helppo, edullinen JA helppokäyttöinen kynä: 4 vaihetta (kuvilla)
Helppo, edullinen JA helppokäyttöinen kynä: Kapasitiiviset kosketusanturit näkyvät eri muodoissa. Monia suosittuja muotoja ovat älypuhelimien, tablettien ja kytkimien näytöt. Näiden näyttöjen tai kytkimien aktivoimiseksi johtavan materiaalin on oltava lähellä. Monet käyttävät f
LoRa ESP32 -radiot Helppokäyttöinen opetusohjelma - Ei johdotusta: 6 vaihetta
LoRa ESP32 -radiot Helppokäyttöinen opetusohjelma | Ei johdotusta: Hei, mitä kuuluu, kaverit? Akarsh täällä CETechistä. Tänään aiomme tehdä projektin, joka perustuu pohjimmiltaan LoRa -radioiden asettamiseen keskustelemaan keskenään mahdollisimman helpoin tapa. Tässä käyttämäni mikro -ohjain on ESP32, joka on c
Helppokäyttöinen Makey Makey - Palapeli: 8 vaihetta
Helppokäyttöinen Makey Makey - Palapeli: Tämä on pulmapeli, joka keskittyy näkövammaisille käyttäjille. Jokaisessa kappaleessa on erilainen kuparinauhan kuvio, joka vain täydentää piirin ja antaa siten äänivasteen, kun se asetetaan oikeaan paikkaan. Tässä prototyypissä
Helppokäyttöinen robotti: 4 vaihetta
Easy Biped Robot: Olen kehittänyt tätä robottia viimeisen vuoden ajan käyttääkseni sitä alustana robotiikan opettamiseen. Tällä robotilla opetan servojen siirtämistä suorilla liikkeillä ja hallituilla liikkeillä käyttämällä "FOR" Robotti voi tanssia, kävellä ja jopa juosta