Мазмұны:

Диско-пи: 8 қадам (суреттермен)
Диско-пи: 8 қадам (суреттермен)

Бейне: Диско-пи: 8 қадам (суреттермен)

Бейне: Диско-пи: 8 қадам (суреттермен)
Бейне: Меховая 8/1 - Жаңа Жыл! | Новый Год! 2024, Қараша
Anonim
Диско-пи
Диско-пи

Бұл нұсқаулық веб -шолғыштан ойналатын музыкаға негізделген түсті LED жолағын басқару үшін Raspberry Pi қалай қолдануға болатынын көрсетеді.

Онда HTTPS арқылы Node.js көмегімен негізгі веб -сайтты құру және WSS (Secure Websocket) арқылы socket.io пайдалану әдісі көрсетілген.

Веб -сайтта өте қарапайым орналасуы бар бір бет бар. Веб -бет сервердегі жалпыға ортақ/аудио қалтада орналасқан музыка файлдары бар ашылмалы тізімді толтырады. Тізімдегі опцияны таңдау HTML 5 аудио элементі арқылы веб -беттегі музыкалық файлды ойнатады. Музыкалық файлды ойнату кезінде веб -бет музыканы талдау үшін AudioContext интерфейсін қолданады, ол серверге қауіпсіз веб -розетка арқылы қосылады.

Raspberry Pi -де жұмыс істейтін сервер WS2811 жарықдиодты жолағындағы жарықдиодтардың түстерін өзгерту үшін торап RPI WS281x Native кітапханасын (Джереми Гарфтың WS281X кітапханасын орау) пайдаланады, бұл веб -ұяшық арқылы жіберілген деректерге негізделген.

Мысал кодын мына жерден табуға болады: disco-pi

1 -қадам: Жабдық

  1. Raspberry Pi - Мен өзімде төселген Raspberry Pi 2B қолдандым, бірақ сіз CAD 100 шамасында Raspberry Pi 3 бастапқы жинағын ала аласыз.
  2. WS2811 LED жолағы - Мен ALITOVE 16.4ft 150 пиксель WS2811 -мен ойнадым. Бұл контроллермен және шамамен 45-50 долларлық қуат көзімен келеді
  3. Баррель Джек Коннектор - Мен оны жергілікті электроника дүкенінен сатып алдым, осындай. Тек қуат көзіне сәйкес келетініне көз жеткізіңіз
  4. Өткізгіш қосқыштар / сым - Менде әйел мен еркектің қосқыш кабельдері және айналасында 22 калибрлі қатты байланыс сымы болды.

2 -қадам: Raspberry Pi орнату

Операциялық жүйе

Мен әдетте соңғы Raspbian конструкциясын қолданамын. Суретті жүктеп алып, оны SD картасына жазыңыз. Егер сіз Windows компьютерін қолдансаңыз, суретті SD картасына жазу үшін Win32 Disk Imager бағдарламасын пайдалануға болады.

Node.js

Node.js. соңғы нұсқасын орнатыңыз. Жазу кезінде мен 8.9.1 қолданамын

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

sudo apt-get nodejs орнатыңыз

Git орнатыңыз

sudo apt-get install git

3 -қадам: Мысал кодын орнату

Мысал кодын клондау

1. Орнатылатын негізгі қалтаны орнатыңыз

cd /opt

sudo mkdir com.jonhaydock sudo chown pi: pi com.jonhaydockcd com.jonhaydock

2. Мысал git репозиторийін клондау

git клоны https://github.com/haydockjp/disco-pi.git »

немесе

git clone [email protected]: haydockjp/disco-pi.git

3. Тәуелділіктерді орнатыңыз

CD дискотекасы

npm орнату

Бұл 2-3 минутқа созылуы мүмкін

4 -қадам: SSL сертификатын өзіңіз жасаңыз

1. Жеке кілт файлын жасаңыз

cd /opt/com.jonhaydock/disco-pi/certs

openssl genrsa-диско-pi-key.pem 2048 ж

2. КӘЖ құру (Сертификаттарға қол қою сұранысы)

мекемесі

Осы сәтте сізге сертификат сұрауына қатысты кейбір ақпарат қажет болады. Бұл өздігінен қол қойылған куәлік болғандықтан, мәліметтерді қаншалықты дәл толтыру сізге байланысты. Міне мысал

Ел атауы (2 әріптік код) [AU]: CA

Штат немесе провинция атауы (толық атауы) [Кейбір штат]: Британдық Колумбияның жергілікті атауы (мысалы, қала) : Ванкувер ұйымының атауы (мысалы, компания) [Internet Widgits Pty Ltd]: Disco Pi ұйымдық бөлімшесінің атауы (мысалы, бөлім) : Жалпы атау (мысалы, FQDN сервері немесе СІЗДІҢ атыңыз) : disco-pi электрондық пошта мекенжайы : [email protected] Шақыру паролі : Қосымша компания атауы :

Бұл мысалда шақыру құпия сөзін бос қалдыру үшін қайтару түймесін басыңыз

3. Сертификатты жасаңыз

openssl x509 -req -days 1095-disco-pi-csr.pem -bignkey disco-pi-key.pem -out disco-pi-cert.pem

4. Қосымша қауіпсіздік үшін біз Diffie Hellman Parameters файлын жасаймыз

openssl dhparam -dh_2048.pem 2048

Бұл 15-20 минутқа созылуы мүмкін

5 -қадам: Жабдықты қосу

Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу
Жабдықты қосу

Жарық диодты жолаққа қуат беру

Жарық диодты жолақ 12 вольттан тұрады. Raspberry Pi тек 3.3v немесе 5v шығара алады және көптеген жарықдиодты жүргізуге қажет күшейткіштерге жақын жерде шығара алмайды.

12 вольтты қуат көзін Raspberry Pi -ге қоспау маңызды.

Менің жолағымда екі ұшына да қосымша қуат сымдары қосылды. Мен оларды басқа жабдықтармен байланысқа түспейтіндей етіп жапсыруды ұсынамын.

Келесі қадамдарды өзіңізге тәуекел етіңіз. Мен қате кетуі мүмкін ештеңе үшін жауапкершілік алмаймын.

Жарықдиодты жолақ

Менің жарық диодты жолағымда үш сым бар:

ҚЫЗЫЛ - +12 вольт

ҚАРА - Жер

ЖАСЫЛ - Деректер

ЕСКЕРТПЕ: Din және Dout бар - Деректерді енгізу және шығару. Дин деген жарықдиодты жолақтың ұшымен жұмыс жасағаныңызға көз жеткізіңіз.

Бөшке ұясының қуат көзіне қосылмағанын қамтамасыз ету

1. Жарық диодты жолағының қызыл сымын баррель ұясының + жағына жалғаңыз.

Мен ақ 22 калибрлі сымды қолдандым.

Сымды баррель ұясындағы + ойығына салыңыз және орнына бұраңыз.

Сымның екінші ұшын светодиодтағы розеткаға итеріңіз. Қызыл сыммен қосылғаныңызға көз жеткізіңіз.

2. Жарықдиодты жолақтың қара сымын баррель ұясының бүйіріне жалғаңыз.

Мен қара 22 калибрлі сымды қолдандым.

Сымды баррель ұясының ұясына салыңыз. Сонымен қатар, қосқыш кабельдердің бірінің еркек ұшын (суреттегі қоңыр сым) сол тесікке салыңыз да, екеуін де орнына бұраңыз.

Қара сымның екінші ұшын жарық диодты ұяға итеріңіз.

Қара сыммен қосылғаныңызға көз жеткізіңіз.

3. Жарық диодты жолақтан жасыл сымды жалғаңыз

Әйелдік -еркек қосқыш кабельдерінің бірін алыңыз. Менің фотосуреттерімде бұл жасыл сым.

Еркек ұшын жасыл сыммен жарықдиодты розеткаға салыңыз.

Бұл деректер кабелі.

Raspberry Pi

1. Жасыл қосқыш кабелін алып, оны Raspberry Pi GPIO -ға қосыңыз.

Сіз оны PCM_CLK -ге қосуыңыз керек (Pin 12 / GPIO 18)

2. Қара коннектор кабелін алып, оны Raspberry Pi GPIO -ға қосыңыз.

Сіз оны негіздердің біріне қосуыңыз керек. Мен сізге 14 түйреуішті қолдануды ұсынамын, бірақ сіз 6, 9, 20, 25, 30, 34 немесе 39 түйреуіштерді де қолдана аласыз.

ЕСКЕРТПЕ: бұл жұмыс істеу үшін жарықдиодты қуат көзі мен Raspberry Pi ортақ негізге ие болуы керек. Сондай -ақ, 12 вольтты + (қызыл сымды) Raspberry Pi -ге қоспау керектігін ескеріңіз.

Жарықдиодты қуат

12 вольтты қуат көзін оқпан ұясына қосуға болмайды

Жарық диодты жолағыңыздағы барлық светодиодтар енді ақ түспен жануы керек

6 -қадам: серверлік код

Серверлік кодты іске қосу

cd /opt/com.jonhaydock/disco-pi

sudo npm басталуы

Бұл веб -серверді іске қосады және HTTPS және WSS сұрауларын тыңдай бастайды.

Әдепкі порт - 443, бірақ сіз кодты бастамас бұрын оны қоршаған орта айнымалысын орнату арқылы қайта анықтай аласыз. Мысалға

экспорттау DISCO_PI_PORT = 1443

Менің жарық диодты жолағымда 150 жарық диоды бар. Бұлар үш топта бақыланады. Бұл мен әр жарықдиодты жеке басқара алмайтынымды білдіреді және 50 басқару үшін жеткілікті ақпарат жіберуім керек.

Егер сіздің жарықдиодты шамаңыз көп немесе аз болса, сіз параметрлерді іске қосуға жіберу арқылы басқарылатын жарықдиодты шамаларды ауыстыра аласыз. Мысалы, егер сіз тек 10 жарықдиодты басқара алсаңыз

sudo npm басталуы 10

Негізгі сервер кодын app.js файлынан табуға болады. Бұл файл HTTPS веб -серверін іске қосады, сонымен қатар сол порттағы веб -сокет сұрауларын тыңдау үшін socket.io -ға қосылады.

Веб -сайтқа кіру үшін негізгі компьютерде веб -шолғышты ашу керек (мен мұны тек Chrome -да тексердім) және Raspberry Pi -дің IP -мекен -жайын пайдалану керек, мысалы.

10.0.1.2/

IP мекенжайын Raspberry Pi пәрмен жолынан білуге болады.

ifconfig

Веб -сервер жалпы қалтадағы кез келген мазмұнға қызмет көрсетеді. Ол index.html бетін көрсету үшін әдепкі болып табылады.

Оның бір API соңғы нүктесі бар - /api /audio. Бұл соңғы нүкте public/audio қалтасынан кез келген файлдарды іздейді және тізімді қайтарады. Мысалға

[«GYAKO.mp3», «Havana (feat. Young Thug).mp3», «Queen_Bohemian_Rhapsody.mp3», «Set It All Free.mp3», «This is For You For For (feat. Rihanna).mp3»]

Музыканы опция ретінде қосу үшін файлдарды осы қалтаға көшіріңіз. Мен Filezilla -ді жеке ssh -те қолданамын. Файлдарды қосқыңыз келетін қалта /opt/com.jonhaydock/disco-pi/public/audio

7 -қадам: веб -сайт коды

Веб -сайт коды
Веб -сайт коды

Сіз веб -сайтқа кірген кезде сіз осындай нәрсені көресіз.

Егер сіз қауіпсіздік туралы ескертуді көрсеңіз, бұл өздігінен қол қойылған SSL сертификатын қолданғанымызға байланысты. Сіз оны елемеуге немесе оны ерекше жағдай ретінде қосуға болады.

Файл атауын таңдағанда HTML 5 аудио элементінің көзі. сол файлға орнатылады. Дайын болған соң музыка ойнай бастайды. Ән аяқталғаннан кейін музыка тоқтайды.

Егер None опциясын таңдасаңыз, музыка ойнауды тоқтатады.

Музыкалық файлды ойнату кезінде веб -бет музыканы талдау үшін AudioContext интерфейсін қолданады, ол серверге қауіпсіз веб -розетка арқылы қосылады.

Хабар - бұл сервердегі socket.io «ws2811» сөзін тыңдау үшін орнатылған түрі. Онда 0 мен 255 аралығында болатын 50 элементтен тұратын массив бар.

«ws2811», {«0»: 251, «1»: 252, «2»: 241, «3»: 217, «4»: 193, «5»: 164, «6»: 148, «7»: 139, «8»: 110, «9»: 96, «10»: 81, «11»: 67, «12»: 72, «13»: 66, «14»: 60, «15»: 60, «16»: 63, «17»: 54, «18»: 37, «19»: 30, «20»: 31, «21»: 26, «22»: 13, «23»: 3, « 24 «: 10,» 25 «: 7,» 26 «: 6,» 27 «: 0,» 28 «: 0,» 29 «: 0,» 30 «: 1,» 31 «: 8,» 32 «: 12, «33»: 3, «34»: 2, «35»: 2, «36»: 0, «37»: 0, «38»: 0, «39»: 0, «40»: 0, «41»: 0, «42»: 0, «43»: 0, «44»: 0, «45»: 0, «46»: 0, «47»: 0, «48»: 0, « 49 «: 0}

Сервер WS2811 жарықдиодты жолағындағы жарықдиодтардың түстерін өзгерту үшін торап RPI WS281x Native кітапханасын (Джереми Гарфтың WS281X кітапханасын орау) пайдаланады, бұл веб -торап арқылы жіберілген деректерге негізделген.

8 -қадам: Соңында

Image
Image

Сіз веб -бетте жасалған Fast Fourier Transform талдауына негізделген жолақтағы светодиодтар музыканың түсі өзгергенін көресіз.

Сізге бұл ұнайды деп үміттенемін. Маған онымен не істеп жатқаныңызды айтыңыз!

ЕСКЕРТПЕ: Егер сізде мәселелер туындаса

Бұл кітапхана мен Raspberry Pi аудиотабы PWM қолданатындықтан, оларды бірге пайдалану мүмкін емес.

Сізге /etc/modprobe.d/snd-blacklist.conf файлын құру арқылы Broadcom аудио ядро модулін қара тізімге енгізу қажет болуы мүмкін.

қара тізім snd_bcm2835

Егер қара тізімнен кейін аудио құрылғы әлі де жүктеліп жатса, оны /etc /modules файлында түсініктеме беру қажет болуы мүмкін. Басы жоқ жүйелерде дыбысты hdmi арқылы күшейту қажет болуы мүмкін

Config.txt файлын өңдеңіз және қосыңыз:

hdmi_force_hotplug = 1

hdmi_force_edid_audio = 1

Бұл өзгерістің күшіне енуі үшін қайта жүктеу қажет

Ұсынылған: