Мазмуну:
- Жабдуулар
- 1 -кадам: Raspberry Part Description:
- 2 -кадам: IR Remote Codes
- 3 -кадам: Негизги программа
- 4 -кадам: Raspberry Part: autostart жана New Files кошуу
- 5 -кадам: Ардуино Нано аркылуу бийликти башкаруу
- 6 -кадам: Кабель
- 7 -кадам: кутуча
Video: Raspitone: Jukeboxту колдонууга оңой: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Саламатсызбы, менин кийинки долбоорум, мен колдонгондой, абдан пайдалуу эмес долбоор:
Бул Raspberry 3 B+ негизделген джук кутусу
Билем, мындай нерсени смартфон жана Bluetooth колонкасы менен оңой эле жасаса болот.
Бирок менин долбоорум үчүн менде эки катуу шарт бар болчу:
Мен "винтаж" бир нерсе жасагым келди.
Жалпысынан алганда, менин айым 21 -кылымдан (жана ал тургай 20 -кылымдан) компьютерден же Bluetoothдан же башка нерселерден биротоло үмүтсүз экенин эске алганда, мен колдонуу үчүн өтө жөнөкөй нерсени жасоого туура келди.
Ошентип, спецификациялар төмөнкүдөй болгон:
Машинаны иштетүү үчүн бир гана баскыч
Музыканы башкаруу үчүн сенсордук экран (абдан жөнөкөй).
Машинаны токтотуу үчүн экранда бир тийүү.
Жана жакшы үн үчүн ………
Жабдуулар
Бул үчүн мен колдондум:
1 Малина 3 B+
DVD окурман OOSтун айынан пайдасыз болгон 1 эски үй кинотеатры (эски Samsung 2.1 вуфери жана 2 спикери менен, мен кутуга ылайыкташкан)
1 HIFIBERRY DIGI+ такта (күчөткүч үчүн оптикалык чыгаруу менен)
1 дюймдук 7 сенсордук экран (меники - бул малина үчүн HDMI киргизүү жана USB аркылуу иштетилген, бирок HDMI сенсордук экраны жакшы болушу керек)
1 кубат 5V 5A
1 релелик калкан
1 Arduino нано күйгүзүү/өчүрүү процессин башкаруу үчүн
1 IR үй кинотеатрын башкарууга алып келди (2N2222 NPN транзистору менен жетектелген)
1 IR алгыч (долбоордун бир бөлүгүн үйрөнүп жаткан IR коддору үчүн мен алыскы буйрук менен эски мультимедиялык катуу дисктен алам)
3 лед
1 тейлөө режими үчүн которгуч
Ардуинодо иштөө үчүн 1 которгуч (жүктөө учурунда arduino баштапкы абалга келтирилет)
кээ бир JST жана Dupont бириктиргичтери
Анан куту үчүн
Жыгач жана фанера (бирок мен кутунун жасалышын терең сүрөттөп бербейм). жөн эле айта кетейин, кутунун ичиндеги бумерге байланыштуу, эгер ойноп жатып Jukeboxтун бөлмөдөн өтүп баратканын көргүңүз келбесе, 10 мм фанера жана 18 мм жыгач милдеттүү түрдө !!!!
1 -кадам: Raspberry Part Description:
Raspi ар кандай нерселерди башкарышы керек:
1) үй кинотеатрына буйруктар (IR пульту аркылуу)
2) музыкалык файлдар
3) сенсордук экран
4) Arduino үчүн жүрөктүн согушу (Wdtти көзөмөлдөгөн (иттердин таймери))
Мен 16 G SD картадагы Raspbian стреш бөлүштүрүүдөн баштадым (Биз SD картадан файлдарды гана окуй тургандыктан, HDDди колдонуунун кажети жок). Мен бул бөлүккө убакыт коротпойм, анткени желе бул жөнүндө тутого толгон..
Келгиле, кийинки кадамдарда ар кандай бөлүктөрдү көрөлү ….
2 -кадам: IR Remote Codes
Мен үй кинотеатрынын райондук планын таба албагандыктан, мен аны алыстан буйруктар аркылуу башкарууну чечтим
Мен аягына чыгарышым керек болгон биринчи кадам, үй кинотеатрынын алыскы командаларынын коддорун Raspiге үйрөтүү болду. Мен Остин Стэнтон IR коддорунун Instructables программасында абдан жакшы туто колдондум.
Мен кээ бир айырмачылыктарга ээ болдум, балким жаңы нускадан улам, инструкциялар эски болгондуктан, hardware.conf файлы мындан ары жок (жок дегенде мен тапкан жокмун)
Тутодо колдонулган транзистор PNP транзистору окшойт, мен NPN болгон 2N2222 колдондум, бирок натыйжасы бирдей. (Кабелден башка !!!!!!!!)
Пин тапшырма /boot/config.txt берилет:
#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IR LED ушунчалык Raspi pin22 менен туташат.
Бир маанилүү эскертүү: Raspiге коддорду үйрөнүүдө буйрукта көрсөтүлгөн ачкыч сөздөрдү колдонуу милдеттүү болуп саналат
irrecord-list-namespace
Мына, мен Jukebox үчүн курган файл:
pi@raspitone:/etc/lirc $ cat lircd.conf
# Сураныч, бул файлды # https://sourceforge.net/p/lirc-remotes/wiki/Check… # сүрөттөлгөндөй бүтүрүп, башкаларга # # жөнөтүү менен жеткиликтүү кылыңыз.
# Бул конфигурация файлы автоматтык түрдө түзүлгөн
# колдонуу lirc -0.9.4c (демейки) 9 -майга карата 17:33:37 2019 # Команда сабы колдонулган: -d /dev /lirc0 /root/lircd.conf
# Ядро версиясы (uname -r): 4.14.98 -v7+ # # Алыстан аталышы (конфигурация файлында): jukebox
# Алыскы түзмөктүн маркасы, колуңузда турган нерсе: # Алыскы түзмөктүн модели nr:
# Алыскы түзмөк маалыматынын url:
# Алыскы түзмөктө топтолгон тартуу түзмөгү барбы д. ж., а
# usb dongle?:
# Топтолгон USB түзмөктөрү үчүн: usb сатуучунун идентификатору, продукт id
# жана түзмөк сабы (dmesg же lsusb колдонуңуз):
# Аппараттын түрү көзөмөлдөнөт
# (Сыналгы, видеомагнитофон, аудио, DVD, спутник, кабель, HTPC,…):
Бул алыстан башкарылуучу # түзмөктөр:
алыстан баштоо
аты jukebox
бит 16
желектер SPACE_ENC | CONST_LENGTH
eps 30
aeps 100
баш 4470 4496
бир 542 1693
582
553
pre_data_bits 16
pre_data 0xC2CA
ажырым 107863
toggle_bit_mask 0x0
жыштыгы 38000
коддорду баштоо
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
аяктоо коддору
алыстан бүтүрүү
Көрүнүп тургандай, мага үй кинотеатрын айдоо үчүн 4 гана буйрук керек
Кубат (ON/OFF)
AUX => оптикалык киргизүү каналына өтүү үчүн (HC дайыма DVD окурмандан башталгандай)
Жана том +/-
Тиешелүү буйруктар LIRC буйруктары аркылуу аткарылат:
мисалы: "irsend SEND_ONCE jukebox KEY_VOLUMEUP"
3 -кадам: Негизги программа
Негизги программа Pythonдо жазылган:
Мен Pythonдо жаңы болгондуктан, көп нерсени жакшыртууга болот деп ойлойм, бирок ал иштейт ….
Мүнөздөмөлөр:
1) графикалык экранды башкаруу:
Бул үчүн мен TKINTER болгон, бирок студент үчүн цивилизациялуу APPJAR колдондум (менин ишим), бул колдонууну бир топ жеңилирээк, мүмкүн мүмкүнчүлүктөрү азыраак, бирок бул менин максатым үчүн жетиштүү болчу.
2) mp3 файлдарын ойнотуу:
Мен python үчүн mplayer колдондум.
3) аралаштыруу режиминде ойноо үчүн туш келди сандарды жаратуу:
Мен ар бир чейрек сайын бир эле ырды уккум келбегендиктен, мен кичинекей программаны түздүм, бул сан мурунку х сандар тизмесинде жокпу же жокпу, текшерүү үчүн (ойноо тизмесинин узундугуна жараша x).
Питондогу randint функциясы мен көргөндөй "туш келди" эмес.
4) "жүрөктүн согуусун" Arduinoго жөнөтүү
5) файлдарды ойноткучту башкаруу:
Mplayer асинхрондуу болгондуктан, файл иштей баштаганда Python үчүн ал бүткөндө билүүнүн эч кандай жолу жок (жок дегенде мен жөнөкөй жолду тапкан жокмун)
Муну чечүү үчүн мен mplayer командаларын колдонуп, файлдын узундугун жана учурдагы файлдагы прогрессти бердим
4 жана 5 үчүн мен Appjar берген мүмкүнчүлүктү мезгилдик тапшырманы түзүү үчүн колдондум (appjar - бул окуялардын программасы, бул мезгилдүү окуяны түзүүнүн жолу). функция болуп саналат:
#******************* Taskman ********************** app.registerEvent (Taskman)
p.setPollTime (1000)
"Тапшырма менеджери" үчүн Taskman, бул экранда болбогон нерселердин бардыгын башкаруучу программанын дефиси (ойнотулган файлдын аягы, прогресс тилкесин толтуруу, Наного жүрөктүн согуусун жөнөтүү,….)
Экран башталгандан кийин мындай көрүнөт:
Бул жерде программа: (Notepad ++ же Geany аркылуу ачылышы мүмкүн)
4 -кадам: Raspberry Part: autostart жана New Files кошуу
Эгерде сиз программаны карасаңыз, анда мен баш файлдарын колдонуп жатканымды көрө аласыз:
1) Start_jukebox:
Чынында, максаты - үй кинотеатрын күйгүзүү жана D. IN кирүүсүнө өтүү (менин үй кинотеатрымдагы оптикалык киргизүү)
pi@raspitone:/bin $ cat start_jukebox#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
уктоо 7
irsend SEND_ONCE jukebox KEY_AUX
уктоо 2
2) stop_jukebox:
Үй кинотеатрын өчүрүү
pi@raspitone:/bin $ cat stop_jukebox
#!/bin/bash
irsend SEND_ONCE jukebox KEY_POWER
Бул эки баш файлды Python os.system буйругу менен чакырат
Python сценарийин баштоо үчүн мен кичинекей баш жасадым
pi@raspitone: ~ $ cat dem_jukebox.bash#!/bin/bash
cd /home /pi
python jukebox_gui.py
GUI режиминде автоматтык түрдө баштоо үчүн мен жөн эле/etc/xdg/lxsession/LXDE-pi ичиндеги автоматтык баштоо файлын өзгөрттүм.
pi@raspitone:/etc/xdg/lxsession/LXDE-pi $ cat autostart@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no -splash
@lxterminal --command = "dem_jukebox.bash"
чекит-rpi
Жаңы mp3 файлдарды кошуу:
Жаңы файлдарды кошуу үчүн мен кичинекей атайын Python скриптин жасоону туура көрдүм:
new_song_file.py
Мен алгач системалык файлдардын уюштурулушун түшүндүрөм:
Бардык файлдар /home /pi ичинде
mp3 файлдары/home/pi/Music каталогунда сакталат
Ар бир сүрөтчүнүн тиешелүү mp3 файлдарын жайгаштырган өзүнүн каталогу бар
pi@raspitone: ~/Музыка/Майк_олдфилд $ ls -бардыгы 760516
-rwxr ----- 1 pi pi 2254923 juin 30 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 juin 30 2017 Баруу.mp3
-rwxr ----- 1 pi pi 8383244 juin 30 2017 Ascension.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 Арабалар.mp3
Документтер каталогунда биз ойной турган файлдардын курулган тизмесин таба алабыз.
pi@raspitone: ~/Документтер $ 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
Биз ошондой эле ойнотмо тизмелеринин маалыматтарын таба алабыз (бирок бул Python скрипти менен курулган)
Кичинекей Python скрипти UNIX форматында титлеттерди форматтагандан кийин list.txt ичинде Музыкада сакталган жаңы ырларды кошот.
Бул жерде сценарий: (Notepad ++ же Geany аркылуу ачылышы мүмкүн)
5 -кадам: Ардуино Нано аркылуу бийликти башкаруу
Мен баштоо оңой болгон нерсени каалагандыктан, мен муну кичинекей нано менен жасоону чечтим:
Принцип:
Старт баскычын басканда, бардык түзмөктөр иштейт, нано башталат (1 же 2 секунд) жана баскычтын контактыларынан алыс турган релени иштетүү менен электр энергиясын башкарууну өзүнө алат.
Андан кийин Nano Raspberryден жүрөктүн согушу үчүн 35 секунд күтөт (баштоо процесси аяктаганын жана джукебокс программасы иштей турганын билдирет).
Нано жүрөктүн согуусун кабыл алганда, ал релесин күйгүзөт (Watch dog timer)
Эгерде жүрөктүн согушу жок болсо (джукбокс программасы токтотулганын билдирет) Нано 20 секунд күтөт (raspi толугу менен токтоп калганына ишенүү үчүн), күч релесин бошотуу үчүн.
Jukebox андан кийин толугу менен өчүрүлөт
Мен тейлөө режимин көрсөтүү үчүн нанонун киришин активдештирүү үчүн которгучту коштум (мен башка raspi серверлеримди ssh et vnc аркылуу башкаруу үчүн jukeboxту колдоном). Нано анда күзөтчү процессин өчүрөт
Эскертүү:
Raspiден жүрөктүн кагышын азайтуу керек (бирок Raspiден 3.3V Nano тарабынан жогорку деңгээл деп эсептелет)
Бул NE555 менен жасалышы мүмкүн, бирок мен жалкоомун жана менин суурмамда дайыма нанолор бар !!!!
Бул жерде кыска C программасы (Notepad ++ менен ачылышы мүмкүн)
6 -кадам: Кабель
Экран үчүн:
HDMI кабели жана USB кабели Raspiде экранды иштетүү жана иштетүү үчүн колдонулат.
Алдыңкы панель үчүн:
USB кабели дагы жаңы файлдарды жүктөө же камдык көчүрмөлөрдү алуу үчүн Raspiден туташкан.
Нанодон USB кабели жумшактыкка жетүү үчүн туташтырылган (эгер зарыл болсо өзгөртүү үчүн)
Тышкы USB сайгычын колдонбостон тейлөө жүргүзүү үчүн, мен малинадагы зымсыз клавиатура ключун да туташтырам
Raspberry жана Arduino колдонулгандыктан, кабелдөө абдан жөнөкөй.
Бардыгы матрицанын тактасында жайгашкан.
Малинадан 2 GPIO колдонулат:
IR LED үчүн Pin22
Ардуиного жүрөктүн согушу үчүн 27 -пин
Arduino боюнча
Pin 2 Raspiден жүрөктүн согушу үчүн үзгүлтүк пини катары колдонулат.
3 -тен 5 -ке чейин жетектерди айдоо үчүн колдонулат (Start, Wdt, Maintenance).
Pin 6 тейлөө которгуч үчүн.
7 -пин реле калканчына чыгарылат.
Мына фритинг файл:
7 -кадам: кутуча
Мен эмне кылганымды көп сүрөттөп бербейм, анткени ал күчөткүчкө жана колдонулган динамиктерге байланыштуу.
Маалымат катары үй кинотеатры кутунун ылдый жагында жайгашкан.
Динамиктердин үстүнөн:
1 woofer
Мен аларды кутуга салуу үчүн өзгөрткөн 2 орто динамик.
Үстүндө:
Алдыңкы панель экраны, светодиоддор, өчүргүчтөр жана USB плагиндери менен.
Жыгач:
Баяндамачылар үчүн үстүнкү жана астыңкы панелдер 18 мм жыгач тактайды колдонгон.
Алдыңкы бети 40 мм бурамалары бар 10 мм фанера.
Кабелдерди жана тейлөөнү жеңилдетүү үчүн (эгер керек болсо !!!) Мен схеманы алдыңкы панелдин артындагы суурмага койдум
Ысып кетпеш үчүн арткы панелдин түбүндө чоң тешик жасалат, мен 5В желдеткичин (8 см) арткы панелге схеманын жанына койдум.
Жогорудагы сүрөт жөн гана түшүнүк берүү үчүн.
Ошентип, бул !!!!!!!!!
Мени окуганыңыз үчүн рахмат
Жана кийинки жолу жаңы укмуштуу окуялар үчүн көрүшкөнчө
Сунушталууда:
[Win] АӨБ буйругун CMDге кантип орнотуу керек (Колдонууга даяр): 6 кадам
[Win] АӨБ буйругун CMDге кантип орнотуу керек (Колдонууга даяр): Кийинки кадамга өтүңүз
PiTextReader-Көрүүсү начарлашы үчүн колдонууга оңой документ окуучу: 8 кадам (сүрөттөр менен)
PiTextReader-Көрүүсү начар үчүн документти оңой окуучу: Обзордун жаңыртылышы: Кыска видео демо: https://youtu.be/n8-qULZp0GoPiTextReader начар көргөн адамга конверттерден, каттардан жана башка нерселерден текстти "окууга" мүмкүнчүлүк берет. Бул нерсенин сүрөтүн сүрөткө тартып, OCR (Optical Char…) аркылуу жөнөкөй текстке айландырат
DIY MusiLED, Windows менен Linuxтун бир чыкылдатуусу менен музыканын синхрондуу LEDлери (32-бит жана 64-бит). Оңой жаратуу, колдонууга оңой, портко оңой: 3 кадам
DIY MusiLED, Windows менен Linuxтун бир чыкылдатуусу менен музыканын синхрондуу LEDлери (32-бит жана 64-бит). Оңой жаратуу, колдонууга оңой, портко оңой .: Бул долбоор сизге 18 LED (6 Кызыл + 6 Көк + 6 Сары) Arduino тактасына туташтырууга жана компьютериңиздин Үн картасынын реалдуу убакыт сигналдарын талдоого жана аларды өткөрүүгө жардам берет. Светодиоддор аларды эффекттерге жараша күйгүзүшөт (Snare, High Hat, Kick)
Orange PI HowTo: 5 "HDMI TFT LCD дисплейи менен колдонууга орнотуңуз: 8 кадам (сүрөттөр менен)
Orange PI HowTo: Аны 5 "HDMI TFT ЖК дисплейи менен колдонууга орнотуңуз: Эгерде сиз Orange PI менен бирге HDMI TFT LCD дисплейине заказ кылуу үчүн кыраакы болсоңуз, анда аны иштөөгө мажбурлоодогу кыйынчылыктар көңүлүңүздү чөгөрөт. Башкалар эч кандай тоскоолдуктарды байкай алышпаса да. Эң негизгиси, бул жерде
Өзүңүздү 12V үчүн кайра туташтыруунун ордуна, LED Жарык Сызыктары үчүн 12V-AC-Line Инверторун колдонууга көндүрүңүз. 3 кадам
Өзүңүздү 12V үчүн кайра туташтыруунун ордуна, LED чырактары үчүн 12V-AC-Line инверторун колдонууга көндүрүңүз. Менин планым жөнөкөй эле. Мен дубал менен иштөөчү LED светодиодун бөлүктөргө бөлүп, анан кайра 12 вольтко өчүрүп салгым келди. Альтернатива электр инверторун колдонуу болчу, бирок биз алардын абдан натыйжасыз экенин билебиз, туурабы? Туурабы? Же алар?