Sisukord:

Disco-pi: 8 sammu (piltidega)
Disco-pi: 8 sammu (piltidega)

Video: Disco-pi: 8 sammu (piltidega)

Video: Disco-pi: 8 sammu (piltidega)
Video: ЮЛЯ ФИНЕСС: Как я вышла с 8 этажа! Групповое изнасилование под мефедроном, психиатрическая больница 2024, November
Anonim
Disko-pi
Disko-pi

See juhend näitab, kuidas Raspberry Pi abil juhtida värvilist LED -riba, mis põhineb veebibrauserist esitataval muusikal.

See näitab, kuidas luua põhiline veebisait, kasutades HTTPS -i kaudu Node.js -i ja kasutada socket.io -d WSS -i (Secure Websocket) kaudu.

Veebisaidil on üks leht, millel on väga lihtne paigutus. Veebileht täidab ripploendi muusikafailidega, mis asuvad serveri avalikus/helikaustas. Loendis suvandi valimine taasesitab veebilehel oleva muusikafaili, kasutades HTML 5 helielementi. Muusikafaili esitamise ajal kasutab veebileht muusika analüüsimiseks AudioContext liidest, mis seejärel saadetakse serverisse turvalise veebipistikuühenduse kaudu.

Raspberry Pi -l töötav server kasutab veebipistiku kaudu saadetud andmete põhjal WS2811 LED -riba valgusdioodide värvide muutmiseks Node RPI WS281x Native Library (Jeremy Garffi WS281X raamatukogu).

Näidiskoodi leiate siit: disco-pi

Samm: varustus

  1. Raspberry Pi - kasutasin Raspberry Pi 2B -d, mis mul oli, aga Raspberry Pi 3 stardikomplekti saate umbes 100 CAD eest
  2. WS2811 LED -riba - mängisin ALITOVE 16,4ft 150 piksliga WS2811. Kaasas kontroller ja toiteallikas umbes CAD 45-50
  3. Barrel Jack Connector - ostsin ühe oma kohalikust elektroonikapoest, midagi sellist. Lihtsalt veenduge, kas see sobib teie toiteallikaga
  4. Jumperi pistikud / traat - mul olid mõned naissoost isase pistiku kaablid ja umbes 22 gabariidiga tahke haaketraat

2. samm: seadistage Raspberry Pi

Operatsioonisüsteem

Tavaliselt kasutan uusimat Raspbiani ehitust. Laadige pilt alla ja kirjutage see SD -kaardile. Kui kasutate Windowsi arvutit, saate pildi SD -kaardile kirjutamiseks kasutada Win32 Disk Imagerit.

Node.js

Installige uusim versioon Node.js. Kirjutamise ajal kasutan 8.9.1

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

sudo apt-get install nodejs

Installige git

sudo apt-get install git

3. samm: näidiskoodi seadistamine

Näite koodi kloonimine

1. Seadistage baaskaust, kuhu installida

cd /opt

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

2. Kloonige näite git hoidla

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

või

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

3. Installige sõltuvused

cd disko-pi

npm install

Selleks võib kuluda 2-3 minutit

Samm: looge ise allkirjastatud SSL -sertifikaat

1. Looge privaatvõtme fail

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

2048

2. Looge CSR (sertifikaadi allkirjastamise taotlus)

openssl req -new -key disco-pi-key.pem -out disco-pi-csr.pem

Sel hetkel küsitakse teilt teavet sertifikaadi taotlemiseks. Kuna see on ise allkirjastatud sertifikaat, on teie otsustada, kui täpselt andmed sisestate. Siin on näide

Riigi nimi (kahetäheline kood) [AU]: CA

Osariigi või provintsi nimi (täisnimi) [mõni osariik]: Briti Columbia koha nimi (nt linn) : Vancouveri organisatsiooni nimi (nt ettevõte) [Internet Widgits Pty Ltd]: Disco Pi organisatsiooniüksuse nimi (nt jaotis) : Üldnimi (nt serveri FQDN või teie nimi) : disco-pi e-posti aadress : [email protected] Väljakutse parool : valikuline ettevõtte nimi :

Selles näites vajutage lihtsalt tagasitulek, et jätta väljakutse parool tühjaks

3. Loo sertifikaat

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

4. Lisaturvalisuse huvides loome ka Diffie Hellmani parameetrite faili

openssl dhparam -out dh_2048.pem 2048

Selleks võib kuluda 15-20 minutit

Samm: riistvara ühendamine

Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine

LED -riba toide

LED -riba töötab 12 volti. Raspberry Pi väljastab võimekalt ainult 3.3v või 5v ja ei ole võimeline väljastama nii paljude LED -ide juhtimiseks vajalike võimendite läheduses.

Oluline on mitte ühendada 12 -voldist toiteallikat Raspberry Pi -ga.

Minu ribal olid riba külge ühendatud ka täiendavad toitejuhtmed mõlemas otsas. Soovitan need lindistada, et need ei puutuks kokku teie muude seadmetega.

Tehke järgmised sammud omal vastutusel. Ma ei vastuta millegi eest, mis võib valesti minna.

LED riba

Minu LED -ribal on kolm juhet:

PUNANE - +12 volti

MUST - Maa

ROHELINE - andmed

MÄRKUS: seal on Din ja Dout - andmed sisse ja välja. Veenduge, et töötate LED -riba otsaga, mis ütleb Din.

Veenduge, et tünni pistik pole vooluvõrku ühendatud

1. Ühendage LED -riba punane juhe silindripesa + küljega.

Kasutasin valget 22 -mõõtmelist haaketraati.

Asetage traat silindri tungraua pesasse + ja keerake see oma kohale.

Lükake juhtme teine ots LED -pistikupessa. Veenduge, et ühendate punase juhtmega.

2. Ühendage LED -riba must juhe silindripesa küljega.

Kasutasin musta 22 -mõõtmelist haaketraati.

Asetage traat silindripesa pesasse. Siinkohal asetage ka ühe pistikukaabli (fotol pruun traat) klemmotsik samasse auku ja keerake mõlemad oma kohale.

Lükake musta juhtme teine ots LED -pistikupessa.

Veenduge, et ühendate musta juhtmega.

3. Ühendage roheline juhe LED -ribalt

Võtke üks naissoost ja isase pistiku kaablitest. Minu fotodel on see roheline juhe.

Asetage isane ots rohelise juhtmega LED -pistikupessa.

See on andmekaabel.

Vaarika Pi

1. Võtke roheline pistikukaabel ja ühendage see Raspberry Pi GPIO -ga.

Peate selle ühendama PCM_CLK -ga (tihvt 12 / GPIO 18)

2. Võtke must pistikukaabel ja ühendage see Raspberry Pi GPIO -ga.

Peate selle ühendama ühe alusega. Soovitan kasutada tihvti 14, kuid võite kasutada ka tihvti 6, 9, 20, 25, 30, 34 või 39.

MÄRKUS. Selle toimimiseks peab LED -toiteallikal ja Raspberry Pi -l olema ühine alus. Pange tähele, et te ei tohi ühendada 12 V + (punane juhe) Raspberry Pi -ga.

LED võimsus

Te ei tohiks oma 12 -voldist toiteallikat vooluvõrku ühendada

Kõik teie LED -ribal olevad LED -id peaksid nüüd põlema VALGE

6. samm: serveripoolne kood

Serveripoolse koodi käitamine

cd /opt/com.jonhaydock/disco-pi

sudo npm start

See käivitab veebiserveri ja hakkab kuulama HTTPS- ja WSS -päringuid.

Vaikimisi kasutatav port on 443, kuid saate selle tühistada, määrates enne koodi käivitamist keskkonnamuutuja. Näiteks

eksport DISCO_PI_PORT = 1443

Minu LED -ribal on 150 LED -i. Neid kontrollitakse kolmekaupa. See tähendab, et ma ei saa iga LED -i eraldi juhtida ja ma pean 50 juhtimiseks edastama piisavalt teavet.

Kui teie valgusdioodil on rohkem või vähem, saate alistada kontrollitavate LED -ide arvu, edastades käivitamisele parameetri. Näiteks kui saate juhtida ainult 10 LED -i

sudo npm algab 10

Põhiserveri koodi leiate failist app.js. See fail käivitab HTTPS -veebiserveri ja lisab ka socket.io, et kuulata veebipõhiseid taotlusi samal pordil.

Veebilehele pääsemiseks peaksite oma põhiarvutis avama veebibrauseri (olen seda testinud ainult Chrome'is) ja kasutama Raspberry Pi IP -aadressi, nt.

10.0.1.2/

Oma IP -aadressi saate teada käsurealt Raspberry Pi.

ifconfig

Veebiserver teenib avaliku kausta all olevat sisu. Vaikimisi kuvatakse leht index.html.

Sellel on üks API lõpp -punkt - /api /audio. See lõpp -punkt otsib avaliku/helikausta all olevaid faile ja tagastab loendi. Näiteks

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

Muusika lisamiseks kopeerige failid sellesse kausta. Mina isiklikult kasutan Filezilla üle ssh. Kaust, kuhu soovite faile lisada, on /opt/com.jonhaydock/disco-pi/public/audio

Samm: veebisaidi kood

Veebisaidi kood
Veebisaidi kood

Veebisaidile jõudes peaksite nägema midagi sellist.

Kui näete turvahoiatust, siis sellepärast, et kasutame ise allkirjastatud SSL-sertifikaati. Saate seda ignoreerida või lisada erandina.

Faili nime valimisel HTML 5 helielemendi allikas. seatakse sellele failile. Kui see on valmis, hakkab muusika mängima. Kui laul on lõpetatud, siis muusika peatub.

Kui valite suvandi Puudub, lõpetatakse muusika esitamine.

Muusikafaili esitamise ajal kasutab veebileht muusika analüüsimiseks AudioContext liidest, mis seejärel saadetakse serverisse turvalise veebipistikuühenduse kaudu.

Sõnum on tüüp, mille serveri socket.io on seadistatud kuulama "ws2811". See sisaldab 50 elementi, mis on vahemikus 0 kuni 255.

"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}

Server kasutab veebipistiku kaudu saadetud andmete põhjal WS2811 LED -riba valgusdioodide värvide muutmiseks Node RPI WS281x Native Library (Jeremy Garffi WS281X raamatukogu).

Samm 8: Lõpuks

Image
Image

Veebilehel tehtud kiire Fourier -teisenduse analüüsi põhjal peaksite ribal olevad LED -id värvi muutma.

Loodan, et naudite seda. Andke mulle teada, mida te sellega teete!

MÄRKUS. Kui teil on probleeme

Kuna see raamatukogu ja pardal olev Raspberry Pi heliseade kasutavad PWM -i, ei saa neid koos kasutada.

Võimalik, et peate Broadcomi helituuma mooduli musta nimekirja lisama, luues faili /etc/modprobe.d/snd-blacklist.conf

must nimekiri snd_bcm2835

Kui heliseade laaditakse pärast musta nimekirja lisamist, peate selle võib -olla ka failis /etc /modules kommenteerima. Peata süsteemides peate võib -olla ka heli sundima hdmi kaudu

Muutke config.txt ja lisage:

hdmi_force_hotplug = 1

hdmi_force_edid_audio = 1

Selle muudatuse jõustumiseks on vaja taaskäivitada

Soovitan: