Агуулгын хүснэгт:

Disco-pi: 8 алхам (зурагтай)
Disco-pi: 8 алхам (зурагтай)

Видео: Disco-pi: 8 алхам (зурагтай)

Видео: Disco-pi: 8 алхам (зурагтай)
Видео: NK | НАСТЯ КАМЕНСКИХ -- ПOПА КАК У КИМ (OFFICIAL VIDEO) 2024, Долдугаар сарын
Anonim
Диско-пи
Диско-пи

Энэхүү зааварчилгаа нь вэб браузераас тоглосон хөгжим дээр үндэслэн өнгөт LED зурвасыг удирдахын тулд Raspberry Pi -ийг хэрхэн ашиглахыг харуулав.

Энэ нь HTTPS дээр Node.js ашиглан үндсэн вэбсайт үүсгэж, WSS (Secure Websocket) дээр socket.io -ийг хэрхэн ашиглахыг харуулав.

Вэбсайт нь маш энгийн зохион байгуулалттай ганцхан хуудастай. Вэб хуудас нь сервер дээрх нийтийн/аудио фолдерт байрладаг хөгжмийн файлуудын жагсаалтаас бүрддэг. Жагсаалтаас сонголт хийх нь HTML 5 аудио элементийг ашиглан вэб хуудсан дээрх хөгжмийн файлыг тоглуулдаг. Хөгжмийн файлыг тоглуулах явцад вэб хуудас нь хөгжимд дүн шинжилгээ хийхийн тулд AudioContext интерфэйсийг ашигладаг бөгөөд үүнийг аюулгүй вэбсокет холболтоор сервер рүү илгээдэг.

Raspberry Pi дээр ажилладаг сервер нь вэбсокетээр дамжуулсан өгөгдөл дээр үндэслэн WS2811 LED туузан дээрх LED -ийн өнгийг өөрчлөхийн тулд Node RPI WS281x Native номын санг (Jeremy Garff -ийн WS281X номын санг ороосон) ашигладаг.

Жишээ кодыг эндээс олж болно: disco-pi

Алхам 1: Тоног төхөөрөмж

  1. Бөөрөлзгөнө Pi - Би Raspberry Pi 2B -ийг ашиглаж байсан боловч та CAD 100 орчим Raspberry Pi 3 гарааны иж бүрдэл авах боломжтой.
  2. WS2811 LED зурвас - Би ALITOVE 16.4ft 150 пиксел WS2811 -тэй тоглож байсан. Энэ нь хянагч болон ойролцоогоор CAD 45-50-ийн тэжээлийн хангамжтай ирдэг
  3. Barrel Jack Connector - Би орон нутгийн цахилгаан барааны дэлгүүрээс ийм зүйл худалдаж авсан. Зөвхөн таны цахилгаан хангамжид нийцэж байгаа эсэхийг шалгаарай
  4. Холбогч / утас - Надад зарим эмэгтэй -эрэгтэй холбогч кабель, 22 хэмжигч хатуу залгууртай утас байсан.

Алхам 2: Raspberry Pi -ийг тохируулах

Үйлдлийн систем

Би ихэвчлэн хамгийн сүүлийн үеийн Raspbian бүтцийг ашигладаг. Зургийг татаж аваад SD карт руу бичнэ үү. Хэрэв та Windows компьютер ашиглаж байгаа бол Win32 Disk Imager програмыг ашиглан дүрсийг SD карт руу бичих боломжтой.

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 суулгах git

Алхам 3: Жишээ кодыг тохируулах

Жишээ кодыг хуулна уу

1. Суурилуулах үндсэн фолдерыг тохируулна уу

cd /opt

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

2. git git репозиторын жишээг клон хийх

git clone https://github.com/haydockjp/disco-pi.git"

эсвэл

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

3. Хараат байдлыг суурилуул

cd disco-pi

npm суулгах

Үүнд 2-3 минут шаардагдаж магадгүй

Алхам 4: Өөрөө гарын үсэг зурсан SSL сертификат үүсгэх

1. Хувийн түлхүүр файл үүсгэх

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

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

2. CSR (Гэрчилгээнд гарын үсэг зурах хүсэлт) үүсгэх

openssl req -шинэ-түлхүүр диско-pi-key.pem -out disco-pi-csr.pem

Энэ үед гэрчилгээ авах хүсэлтийн талаар зарим мэдээллийг асуух болно. Энэ нь өөрөө гарын үсэг зурсан гэрчилгээ тул дэлгэрэнгүй мэдээллийг хэр үнэн зөв бөглөх нь танд хамаарна. Энд нэг жишээ дурдъя

Улсын нэр (2 үсгийн код) [AU]: CA

Муж эсвэл мужийн нэр (бүтэн нэр) [Зарим муж]: Британийн Колумбын нутаг дэвсгэрийн нэр (жишээ нь, хот) : Ванкуверын байгууллагын нэр (жишээ нь, компани) [Интернет Виджитс Пти Ltd]: Диско Пи Байгууллагын нэгжийн нэр (жишээ нь, хэсэг)) : Нийтлэг нэр (жишээ нь сервер FQDN эсвэл ТАНЫ нэр) : disco-pi Имэйл хаяг : [email protected] Сорилтын нууц үг : Компанийн нэмэлт нэр :

Энэ жишээн дээр буцах товчийг дарахад л сорилтын нууц үгийг хоосон орхино

3. Сертификат үүсгэх

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

4. Нэмэлт аюулгүй байдлын үүднээс бид Diffie Hellman Parameters файлыг үүсгэх болно

openssl dhparam -dh_2048.pem 2048 он

Энэ нь 15-20 минут болно

Алхам 5: Тоног төхөөрөмжийг холбох

Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох
Тоног төхөөрөмжийг холбох

LED туузыг тэжээх

LED зурвас нь 12 вольтоор тэжээгддэг. Raspberry Pi нь зөвхөн 3.3v эсвэл 5v гаралтын чадалтай бөгөөд маш олон LED хөтлөхөд шаардлагатай амперын ойролцоо хаана ч гаргах чадваргүй юм.

12 вольтын цахилгаан хангамжийг Raspberry Pi -тэй холбохгүй байх нь чухал юм.

Миний зурвас дээр хоёр төгсгөлд нь туузан дээр нэмэлт тэжээлийн утас холбогдсон байв. Таны бусад тоног төхөөрөмжтэй холбоо тогтоохгүйн тулд тэдгээрийг наахыг зөвлөж байна.

Дараагийн алхамуудыг өөрийн эрсдэлээр хийх. Буруу зүйлд би ямар ч хариуцлага хүлээхгүй.

LED зурвас

Миний LED зурвас гурван утастай:

Улаан - +12 вольт

ХАР - Газар

НОГООН - Өгөгдөл

ТАЙЛБАР: Din and Dout байдаг - Өгөгдөл оруулах ба гаргах. Дин гэж бичсэн LED туузны төгсгөлтэй ажиллаж байгаа эсэхээ шалгаарай.

Barrel Jack цахилгаан тэжээлд холбогдоогүй эсэхийг баталгаажуулах

1. LED туузнаас Улаан утсыг баррель үүрний + талд холбоно уу.

Би цагаан өнгийн 22 хэмжигч холбох утас ашигласан.

Утасыг баррель үүрний + үүрэнд оруулаад шургуулна.

Утасны нөгөө үзүүрийг LED дээрх залгуур руу түлх. Улаан утсаар холбогдож байгаа эсэхийг шалгаарай.

2. LED туузны Хар утсыг баррель үүрний хажуу талд холбоно уу.

Би хар өнгийн 22 хэмжигч холбох утас ашигласан.

Утасыг баррель үүрэнд байгаа үүрэнд оруулна уу. Энэ үед бас нэг холбогч кабелийн эрэгтэй үзүүрийг (зурган дээрх хүрэн утас) нэг нүхэнд хийж хоёуланг нь шургуулна.

Хар утасны нөгөө үзүүрийг LED дээрх залгуур руу түлх.

Хар утсаар холбогдсон эсэхээ шалгаарай.

3. LED туузнаас ногоон утсыг холбоно уу

Эмэгтэй ба эрэгтэй холбогч кабелийн нэгийг ав. Миний зурган дээр энэ бол ногоон утас юм.

Эрэгтэй үзүүрийг ногоон утсаар LED залгуурт хийнэ.

Энэ бол өгөгдлийн кабель юм.

Raspberry Pi

1. Ногоон холбогч кабелийг аваад Raspberry Pi GPIO руу холбоно уу.

Та үүнийг PCM_CLK (Pin 12 / GPIO 18) руу холбох хэрэгтэй.

2. Хар холбогч кабелийг аваад Raspberry Pi GPIO руу холбоно уу.

Та үүнийг нэг үндэслэлтэй холбох хэрэгтэй. Би танд 14 -р зүү ашиглахыг санал болгож байна, гэхдээ та 6, 9, 20, 25, 30, 34 эсвэл 39 -р зүүг ашиглаж болно.

ТАЙЛБАР: Үүнийг хийхийн тулд LED тэжээлийн эх үүсвэр болон Raspberry Pi нь нийтлэг ойлголттой байх ёстой. Та 12 вольт + (улаан утас) -ийг Raspberry Pi -тэй холбох ёсгүй гэдгийг анхаарна уу.

LED хүч

Та 12 вольтын цахилгаан тэжээлээ баррель үүрэнд холбох боломжгүй байх ёстой

Таны LED туузан дээрх бүх LED одоо ЦАГААН асах ёстой

Алхам 6: Серверийн талын код

Сервер талын кодыг ажиллуулж байна

cd /opt/com.jonhaydock/disco-pi

sudo npm эхлэх

Энэ нь вэб серверийг эхлүүлж, HTTPS болон WSS хүсэлтийг сонсох болно.

Анхдагч порт нь 443 боловч та кодыг эхлүүлэхээсээ өмнө орчны хувьсагчийг тохируулснаар үүнийг хүчингүй болгож болно. Жишээлбэл

экспортлох DISCO_PI_PORT = 1443

Миний LED зурвас нь 150 LED -тэй. Эдгээрийг гурваар нь бүлэглэн хянадаг. Энэ нь би LED тус бүрийг дангаар нь хянах боломжгүй гэсэн үг бөгөөд 50 -г хянахад хангалттай мэдээлэл дамжуулах шаардлагатай байна.

Хэрэв таны LED их эсвэл бага хэмжээтэй бол параметрүүдийг эхлүүлэх замаар дамжуулж хянаж буй LED -ийнхээ тоог дарж болно. Жишээлбэл, хэрэв та зөвхөн 10 LED -ийг хянах боломжтой бол

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. Энэ төгсгөлийн цэг нь нийтийн/аудио фолдер доторх аливаа файлыг хайж, жагсаалтыг буцаана. Жишээлбэл

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

Хөгжимийг сонголт болгон нэмэхийн тулд файлуудаа энэ хавтсанд хуулж ав. Би хувьдаа Filezilla -ийг ssh дээр ашигладаг. Файл нэмэхийг хүсч буй фолдер нь /opt/com.jonhaydock/disco-pi/public/audio

Алхам 7: Вэбсайтын код

Вэбсайтын код
Вэбсайтын код

Та вэбсайт руу орохдоо иймэрхүү зүйлийг харах ёстой.

Хэрэв та аюулгүй байдлын анхааруулгыг олж харвал энэ нь бид өөрөө гарын үсэг зурсан SSL сертификат ашиглаж байгаатай холбоотой юм. Та үүнийг үл тоомсорлож эсвэл үл хамаарах зүйл болгон нэмж болно.

Файлын нэрийг сонгохдоо HTML 5 аудио элементийн эх сурвалж болно. тэр файлд тохируулах болно. Бэлэн болмогц хөгжим тоглож эхэлнэ. Дуу дууссаны дараа хөгжим зогсох болно.

Хэрэв та None сонголтыг сонговол хөгжим тоглохоо болино.

Хөгжмийн файлыг тоглуулах явцад вэб хуудас нь хөгжимд дүн шинжилгээ хийхийн тулд AudioContext интерфэйсийг ашигладаг бөгөөд үүнийг аюулгүй вэбсокет холболтоор сервер рүү илгээдэг.

Зурвас нь "ws2811" -г сонсохоор сервер дээрх socket.io -г тохируулсан төрөл юм. Энэ нь 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 LED туузан дээрх LED -ийн өнгийг өөрчлөхийн тулд Node RPI WS281x Native номын санг (Жереми Гарфын WS281X номын санг ороосон) ашигладаг.

Алхам 8: Эцэст нь

Image
Image

Вэб хуудсан дээр хийсэн Fast Fourier Transform шинжилгээнд үндэслэн зурвас дээрх LED -ууд хөгжмийн өнгө өөрчлөгдөж байгааг харах ёстой.

Энэ танд таалагдана гэж найдаж байна. Та үүгээр юу хийж байгаагаа надад хэлээрэй!

ЖИЧ: Хэрэв танд ямар нэгэн асуудал байвал

Энэхүү номын сан болон Raspberry Pi аудио төхөөрөмж хоёулаа ХОУХ -ийг ашигладаг тул тэдгээрийг хамт ашиглах боломжгүй юм.

Та /etc/modprobe.d/snd-blacklist.conf файл үүсгэж Broadcom аудио цөмийн модулийг хар жагсаалтад оруулах шаардлагатай болж магадгүй юм.

хар жагсаалт snd_bcm2835

Хэрэв хар жагсаалтын дараа аудио төхөөрөмж ачаалагдсаар байгаа бол та үүнийг /etc /modules файлд тайлбарлах шаардлагатай болж магадгүй юм. Толгойгүй систем дээр та аудиог hdmi -ээр хүчээр оруулах шаардлагатай болж магадгүй юм

Config.txt файлыг засварлаж нэмнэ үү:

hdmi_force_hotplug = 1

hdmi_force_edid_audio = 1

Энэ өөрчлөлт хүчин төгөлдөр болохын тулд дахин ачаалах шаардлагатай

Зөвлөмж болгож буй: