Orodha ya maudhui:
- Hatua ya 1: Vifaa
- Hatua ya 2: Kuweka Raspberry Pi
- Hatua ya 3: Pi-blaster
- Hatua ya 4: Kuweka Msimbo wa Mfano
- Hatua ya 5: Unda Cheti cha SSL Iliyotiwa Saini
- Hatua ya 6: Wiring Up Circuit
- Hatua ya 7: Msimbo wa Upande wa Seva
- Hatua ya 8: Msimbo wa Wavuti
- Hatua ya 9: Mwishowe
Video: Rangi-pi: Hatua 9
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Hii inaweza kufundishwa jinsi ya kutumia Raspberry Pi kudhibiti sauti ya RGB LED strip, kupitia wavuti, ukitumia Maingiliano ya API ya Hotuba ya Wavuti ya Utambuzi wa Maongezi na Utamkaji wa Hotuba.
Mfano huu unaonyesha jinsi ya
- Unda wavuti ya msingi ukitumia Node.js juu ya
- Tumia Maingiliano ya API ya Hotuba ya Wavuti kwa Utambuzi wa Hotuba na Utangamano wa Hotuba.
- Tumia mfumo wa Cylon.js kudhibiti ukanda wa RGB LED kwenye Raspberry Pi
- Wasiliana juu ya WSS (Soketi salama za Wavuti) kutoka ukurasa wa wavuti hadi Cylon.js kudhibiti rangi ya LED
Kumbuka
- Utahitaji spika au vichwa vya sauti kusikia synthesizer ya hotuba
- Utahitaji kutoa idhini ya kufikia kipaza sauti chako ili utambuzi wa sauti ufanye kazi
- Kwa sababu ufikiaji kipaza sauti chako tovuti inahitaji kuendeshwa chini ya
- Maktaba ya siloni-api-socketio haitumii https kwa wakati huu. Nina ombi la kuvuta linalosubiri kuunganishwa, lakini hadi wakati huo unahitaji kuchukua nafasi ya /node_modules/cylon-api-socketio/lib/api.js na faili kwenye hazina hii
- pi-blaster inahitajika kufanya kazi hii.
Hatua ya 1: Vifaa
- Raspberry Pi - Nilitumia Raspberry Pi 2B ambayo nilikuwa nimelala karibu, lakini unaweza kupata Raspberry Pi 3 Starter Kit kwa karibu CAD 100
- RGB LED Strip Light - Nilikuwa nikicheza na Minger LED Strip Light 32.8ft / 10M 600leds RGB SMD 5050. Hii inakuja na mtawala na usambazaji wa umeme kwa karibu CAD 40
- Pipa Jack Kiunganishi - Nilinunua moja kutoka duka langu la elektroniki, kitu kama hiki. Hakikisha tu ikiwa inafaa usambazaji wako wa umeme
- Viunganishi vya Jumper / Waya - Nilikuwa na nyaya za Kike hadi Kiume na baadhi ya 22 Gauge Mango iliyounganishwa imelala karibu.
- Bodi ya mkate isiyo na waya ya Bodi ya mkate - kitu kama hiki
- 3 x 10kΩ Resistors
- 3 x N-channel MOSFETs za kudhibiti LEDs - nilinunua IRL3303's kutoka kwa duka langu la elektroniki. Ni muhimu kwamba voltage ya kizingiti cha milango ni kiwango cha juu. 3.3V ili iweze kuendeshwa na pini za RPi; kawaida huonyeshwa na 'L' (Kiwango cha Mantiki) kwa jina.
Hatua ya 2: Kuweka Raspberry Pi
Mfumo wa Uendeshaji
Kawaida mimi hutumia muundo wa hivi karibuni wa Raspbian. Pakua picha na uiandike kwa Kadi ya SD. Ikiwa unatumia kompyuta ya Windows, unaweza kutumia Win32 Disk Imager kuandika picha hiyo kwa Kadi ya SD.
Node
Sakinisha toleo la hivi karibuni la Node.js. Wakati wa kuandika ninatumia 8.9.1
curl -sL https://deb.nodesource.com/setup_8.x | Sudo -E bash -
Sudo apt-get kufunga nodejs
Sakinisha Git
Sudo apt-get kufunga git
Hatua ya 3: Pi-blaster
pi-blaster inawezesha PWM kwenye pini za GPIO unazoomba Raspberry Pi. Mbinu inayotumiwa ni bora sana: haitumii CPU na inatoa kunde thabiti sana.
Moduli hii ya Upana wa Pulse inaruhusu Raspberry Pi kudhibiti jinsi kila moja ya Njia Nyekundu, Kijani na Bluu ilivyo mwangaza kwa ukanda wa LED.
Kwanza, onyesha hifadhi
cd / chagua /
kipenzi cha git git https://github.com/sarfata/pi-blaster.git sudo chown -R pi: pi pi-blaster
Kisha, jenga na usakinishe
cd / opt / pi-blaster./autogen.sh &&./configure && make && sudo make install
Mwishowe, sanidi ni pini gani unayotaka kutumia
Chini ya akaunti ya mizizi, au tumia Sudo, unda na uhariri faili
/ nk / default / pi-blaster
Ongeza mistari ifuatayo
DAEMON_OPTS = - gpio 23, 24, 25
Pini hizi za gpio zinahitaji kufanana na pini ambazo unaunganisha na ukanda wako wa LED.
KUMBUKA: Kuna tofauti kati ya GPIO na nambari ya siri. Mfano huu unatumia yafuatayo
LED - Bluu, GPIO-23, Pin - 16
LED - Nyekundu, GPIO-24, Pin - 18 LED - Kijani, GPIO-25, Pin - 22
Vidokezo vya ziada
Anza pi-blaster
huduma ya sudo pi-blaster kuanza
Anzisha tena pi-blaster
huduma ya sudo pi-blaster kuanza upya
Acha pi-blaster
huduma ya sudo pi-blaster stop
Anza pi-blaster moja kwa moja wakati wa boot
Sudo systemctl kuwezesha pi-blaster
Maonyo na maonyo mengine
Pini zinazotumiwa na pi-blaster zitasanidiwa kama matokeo. Usizie kitu kwenye pembejeo au unaweza kuiharibu! Daemon hii hutumia jenereta ya vifaa vya PWM ya pi ya raspberry kupata nyakati sahihi. Hii inaweza kuingiliana na pato lako la kadi ya sauti.
Hatua ya 4: Kuweka Msimbo wa Mfano
Fanya msimbo wa mfano
1. Sanidi folda ya msingi ili uweke ndani
cd / chagua
sudo mkdir com.jonhaydock sudo chown pi: pi com.jonhaydockcd com.jonhaydock
2. Fanya mfano wa hazina ya git
clone ya git
au
git clone [email protected]: haydockjp / color-pi.git
3. Sakinisha utegemezi
rangi ya cd
npm kufunga
Hii inaweza kuchukua dakika 2-3
4. Mradi huu unahitaji kuwasiliana juu ya HTTPS na WSS. Kwa wakati huu siloni-api-socketio haitumii unganisho la SSL. Kuna ombi la wazi la kuvuta ili kuongeza msaada huu, lakini hadi hapo itakapounganishwa, kuna faili ya kiraka katika hazina hii. Endesha amri ifuatayo baada ya kufunga npm
git Checkout node_modules / cylon-api-socketio / lib / api.js
Hatua ya 5: Unda Cheti cha SSL Iliyotiwa Saini
1. Unda faili muhimu ya faragha
cd /opt/com.jonhaydock/colour-pi/certs
openssl genrsa - rangi-pi-ufunguo.pem 2048
2. Unda CSR (Ombi la Kutia Saini Cheti)
openssl req -ufunguo-mpya-rangi-pi-ufunguo.pem -katika rangi-pi-csr.pem
Kwa wakati huu utahamasishwa kupata habari fulani kwa ombi la cheti. Kwa kuwa hii ni cheti kilichotiwa saini, ni juu yako jinsi unavyojaza maelezo kwa usahihi. Hapa kuna mfano
Jina la Nchi (nambari 2 ya herufi) [AU]: CA
Jina la Jimbo au Mkoa (jina kamili) [Baadhi ya Jimbo]: Jina la Mitaa la British Columbia (kwa mfano, jiji) : Jina la Shirika la Vancouver (kwa mfano, kampuni) [Internet Widgits Pty Ltd]: Rangi Pi Jina la Kitengo cha Shirika (kwa mfano, sehemu Jina la kawaida (kwa mfano seva FQDN au jina lako) : rangi-pi Anwani ya barua pepe : [email protected]
Nenosiri la changamoto :
Jina la kampuni la hiari :
Katika mfano huu, bonyeza tu kurudi ili kuacha nenosiri tupu la changamoto
3. Zalisha cheti
openssl x509 -req-siku 1095 -katika rangi-pi-csr.pem -saini ya rangi-pi-ufunguo.pem -katika rangi-pi-cert.pem
4. Kwa usalama wa ziada pia tutaunda faili ya Parameters ya Diffie Hellman
openssl dhparam - nje ya dh_2048. nambari 2048
Hii inaweza kuchukua dakika 15-20
Hatua ya 6: Wiring Up Circuit
Kuwezesha ukanda wa LED
Ukanda wa LED unaendeshwa na volts 12. Raspberry Pi ni uwezo tu wa kutoa 3.3v au 5v na haina uwezo wa kutoa popote karibu na amps zinazohitajika kuendesha LED nyingi.
Ni muhimu kutounganisha umeme wa volt 12 kwa Raspberry Pi. Transistors ya N-channel MOSFET hutumiwa kutenganisha 3.3v kwenye pini za RPi na 12v ya usambazaji wa umeme wa LED.
MOSFET ina pini tatu Lango, Machafu na Chanzo. Ikiwa haujui ni ipi google ya karatasi ya data ya transistor unayotumia, n.k. IR3303
Tutaunganisha Pini ya Raspberry Pi kwenye Lango, waya wa LED kwenye Machafu na uwanja wa kawaida kwa Chanzo. Pini inapokwenda juu, voltage kati ya Mchoro na Chanzo itaamsha Lango na itaunganisha lango kwa Chanzo.
Tutaweka pia Resistors 10kΩ kote Lango na Chanzo, ili wakati sisi pini ya RPi iko juu, tunaweza kulinda pini kwa kupunguza sasa inayopitia.
Fanya hatua zifuatazo kwa hatari yako mwenyewe. Sichukui jukumu la kitu chochote ambacho kinaweza kwenda vibaya
Kuna picha ya kukwaruza na picha ya mzunguko halisi hapo juu.
Napenda kupendekeza kufanya hivi wakati umeme umezimwa kwa RPi na ukanda wa LED
Sanidi nyaya za transistor, moja kwa kila kituo cha rangi
- Ingiza moja ya transistors kwenye ubao wa mkate kama onyesho kwenye mchoro
- Ingiza moja ya Resistors ya 10kΩ kote kwenye Machafu na pini za Chanzo za transistor. Hii ni pini ya kwanza na ya mwisho
- Tumia waya fulani kuunganisha pini ya Chanzo (pini ya mwisho) chini kwenye ubao wa mkate
- Rudia hatua 1 - 3 mara mbili zaidi, ili uwe na seti tatu - moja kwa kila rangi (Nyekundu, Kijani na Bluu)
Unganisha pini za RPi kwenye ubao
- Unganisha Pin 16 kwa Pini ya Lango (pini ya kwanza) ya transistor ya kwanza - Hii itakuwa kituo cha Bluu ya Bluu
- Unganisha Pini 18 na Pini ya Lango (pini ya kwanza) ya transistor ya kwanza - Hii itakuwa kituo cha Red LED
- Unganisha Pin 20 kwa moja ya mistari ya chini upande wa ubao wa mkate
- Unganisha Pini 22 na Pini ya Lango (pini ya kwanza) ya transistor ya kwanza - Hii itakuwa kituo cha Green LED
Nimetumia rangi za waya zinazofanana na LEDs: Bluu, Nyekundu na Kijani. Nimetumia nyeusi kwa ardhi
Unganisha Pipa Jack
- Unganisha waya mweupe hadi mwisho wa pipa
- Unganisha waya mweusi hadi mwisho wa pipa
- Unganisha waya mweusi kwa laini moja ya ardhini kwenye ubao wa mkate kama RPi Pin 20 iliunganishwa
- Unganisha waya mweupe kwenye laini + kwenye ubao wa mkate
Kuunganisha ukanda wa LED
Kamba yangu ya LED ilikuja na kontakt ambayo ilikuwa saizi nzuri ya kutosha ambayo inaweza kuingizwa kwa muda kwenye ubao wa mkate. Nilisukuma kontakt kwenye ubao wa mkate na kuiweka waya kwenye jaribio la mzunguko.
- Transistor ya kwanza iliyounganishwa na Pin 16. Niliendesha waya wa samawati kutoka kwa Bomba la Drain (pini ya kati) hadi waya wa hudhurungi kwenye kiunganishi cha mkanda wa LED
- Transistor ya pili iliyounganishwa na Pin 18. Niliendesha waya mwekundu kutoka
Futa
pini (pini ya kati) kwa waya nyekundu kwenye kiunganishi cha mkanda wa LED
- Transistor ya tatu iliyounganishwa na Pin 22. Niliendesha waya wa kijani kutoka
Futa
pini (pini ya kati) kwa waya wa kijani kwenye kiunganishi cha mkanda wa LED
- Mwishowe, niliendesha waya mweupe kutoka kwa + mstari kwenye ubao wa mkate uliokuwa umeunganishwa na pipa la pipa, kwenye waya mweupe kwenye kontakt ya mkanda wa LED.
Nguvu
Baada ya kuangalia mzunguko, unapaswa kuwa mzuri kwa nguvu kwenye Raspberry Pi na kuziba usambazaji wa 12v kwa pipa la pipa.
Hatua ya 7: Msimbo wa Upande wa Seva
Inaendesha msimbo wa upande wa seva
cd /opt/com.jonhaydock/colour-pi
Sudo npm kuanza
Hii itaanzisha seva ya wavuti na kuanza kusikiliza maombi ya HTTPS na WSS.
KUMBUKA: Kumbuka kuwa na pi-blaster inayoendesha kwanza
Viwango vya Mazingira
Bandari chaguomsingi ya wavuti ni 443, lakini unaweza kupuuza hii kwa kuweka ubadilishaji wa mazingira kabla ya kuanza nambari. Kwa mfano
usafirishaji COLOUR_PI_PORT = 2443
Bandari ya msingi ya tundu la wavuti ni 1443, lakini unaweza kubatilisha hii kwa kuweka ubadilishaji wa mazingira kabla ya kuanza nambari. Kwa mfano
usafirishaji COLOUR_PI_WSS_PORT = 3443
Kumbuka: Kama tundu la wavuti linashughulikiwa na cylon.js na sio wavuti kuu, hizi zinahitajika kuwa kwenye bandari tofauti
Pini ambazo hutumiwa kwa Bluu (pini 16), Kijani (pini 18) na Nyekundu (pini 22) pia zinaweza kubatilishwa. Kwa mfano
usafirishaji COLOUR_PI_PIN_BLUE = 36
usafirishaji COLOUR_PI_PIN_RED = 38 usafirishaji COLOUR_PI_PIN_GREEN = 40
Kumbuka: Hizi zinahitaji kufanana na pini za mwili ulizotumia. Ukibadilisha haya, utahitaji pia kusasisha GPIOs zilizoainishwa kwenye faili ya / nk / default / pi-blaster. Kwa mfano
DAEMON_OPTS = - gpio 16, 20, 21
Nambari kuu ya seva inaweza kupatikana katika faili ya programu.js. Faili hii huanza seva ya wavuti ya HTTPS na pia, kupitia mfumo wa Cylon.js, hutumia socket.io kusikiliza maombi ya tundu la wavuti kwenye bandari tofauti.
Ili kufikia wavuti, unapaswa kufungua kivinjari kwenye wavuti yako kuu (nimejaribu hii tu kwenye Chrome) na utumie anwani ya IP ya Raspberry Pi, n.k.
10.0.1.2/
Unaweza kujua anwani yako ya IP kutoka kwa laini ya amri ya Raspberry Pi.
ifconfig
Seva ya wavuti itatumia yaliyomo chini ya folda ya umma. Inakosea kuonyesha ukurasa wa index.html.
Cylon.js inaunda hatua ya mwisho ambayo unaweza kuunganisha Socket.io.
10.0.1.2:1443/api/robots/colour-pi
Unaweza kutuma ujumbe wa set_colour kupitia tundu ili kuweka maadili Nyekundu, Kijani na Bluu
kifaa.emit ('set_colour', r, g, b)
Inayoita set_colour amri, ambayo inaita kazi ya setColour katika app.js. Kazi hii inaweka viwango vya mwangaza, kwa kila moja ya R, G na B, kati ya 0 na 255. Ambapo 0 imezimwa na 255 imewashwa kabisa.
mf.
Nyekundu r = 255, g = 0, b = 0
Kijani r = 0, g = 255, b = 0 Bluu r = 0, g = 0, b = 255 Nyeupe r = 255, g = 255, b = 255 Nyeusi / Imezimwa r = 0, g = 0, b = 0
Hatua ya 8: Msimbo wa Wavuti
Mkuu
Tovuti hutumia utambuzi wa sauti kuchagua rangi kutoka kwa orodha iliyotanguliwa. Ili kuongeza rangi kwenye orodha, hariri faili kwenye seva: umma / data / colours.json
mf.
"nyekundu": "# FF0000",
Wakati rangi inapatikana, au imechaguliwa kutoka kwa kushuka chini, sanduku la Pato litawekwa kwenye rangi hiyo na ujumbe utatumwa kupitia socket.io kwa Raspnerry Pi, ambayo itaweka LED kwa rangi moja.
KUMBUKA: kulingana na jinsi LED zako zilivyo nzuri unaweza kuona au usione rangi inayofanana. Baadhi ni rahisi kuiga kuliko zingine
Unapopakia wavuti kwanza, unapotumia cheti cha SSL kilichosainiwa utahitaji kukiri hii kwenye kivinjari. Unapaswa kuona tahadhari ya usalama kuhusu cheti.
Utambuzi wa Sauti
Sanduku hili lina aikoni ya maikrofoni. Ukibonyeza ikoni ikiwa kijani kibichi, itaanza kusikiliza rangi. Wakati inasikiliza, itageuka kuwa nyekundu. Itasikiliza kwa muda mfupi na kisha isimame. Kubofya ikoni ya maikrofoni wakati ni nyekundu pia itaizuia isisikilize.
Kwa kuwa tovuti hii inahitaji kufikia maikrofoni yako, utahitaji kuipatia idhini unapoombwa
KUMBUKA: Unahitaji kipaza sauti kwa sehemu hii. Ninatumia moja kwenye kamera yangu ya wavuti.
Nakala ya Muda
Sanduku hili linafuatilia makisio ya maneno unayoyasema, kama unavyosema.
Nakala ya Mwisho
Sanduku hili linafuatilia nadhani ya mwisho ni yale uliyosema.
Rangi zinazojulikana
Hii ni orodha ya rangi zote ambazo ukurasa unajua. Imeundwa kutoka kwa faili ya colours.json. Ukichagua moja ya rangi hizi, ukurasa utasema rangi na kuweka rangi ya pato.
KUMBUKA: Unahitaji spika au vichwa vya sauti kusikia hotuba hiyo
Rangi zilizopatikana
Ukurasa huu wa wavuti kwa sasa unasaidia tu kulinganisha rangi. Ikiwa neno au maneno uliyoyazungumza kwenye kipaza sauti yanalingana na jina la rangi inayojulikana, au ukichagua rangi kutoka kwa orodha inayojulikana ya Rangi, itaongezwa hapa kama logi.
Pato
Rangi ya mwisho iliyopatikana itaonyeshwa hapa. Thamani ya Hex ya rangi (k.m. # 7cb9e8) na thamani ya RGB (k. 124, 185, 232) itaonyeshwa kama maandishi na usuli wa sanduku katikati utawekwa kwa rangi halisi.
Rangi hii pia imetumwa kwa Raspberry Pi na unapaswa kuona rangi ya mabadiliko ya ukanda wa LED.
KUMBUKA: ikiwa hauoni mabadiliko ya rangi ya LED, jaribu kuanzisha tena pi-blaster na / au programu ya node.js
huduma ya sudo pi-blaster kuanza upya
Sudo npm kuanza
Sauti zinazojulikana
Sanduku hili linaonyesha orodha ya "Sauti zinazojulikana" kutoka kwa Usemi wa usemi unaoungwa mkono. Kuchagua moja ya sauti hizi kutabadilisha sauti na lugha utakayosikia, na itazungumza jina la sauti.
Pia itabadilisha lugha ya Utambuzi wa Hotuba kuwa sawa na ile iliyochaguliwa kwenye orodha.
Hatua ya 9: Mwishowe
Hapa kuna mfano wa kile unapaswa kuona.
Tafadhali nijulishe ikiwa una shida yoyote na ninaweza kusasisha kama inahitajika.
Ilipendekeza:
M5StickC ESP32 & NeoPixels Rangi ya Rangi ya Random Random: Hatua 7
M5StickC ESP32 & NeoPixels Rangi ya Rangi ya Random Random: Katika mradi huu tutajifunza jinsi ya kuonyesha rangi bila mpangilio kwenye NeoPixels LED Ring kwa kutumia bodi ya M5StickC ESP32
Rangi ya 512 Rangi ya Flasher (nasibu): Hatua 13
Rangi ya 512 Rangi ya Flasher (bila mpangilio): Taa hii ya LED huonyesha rangi 512 bila kutumia mdhibiti mdogo. Kaunta ya biti 9-bit hutengeneza nambari isiyo ya kawaida na 3 D / A (dijiti kwa analog) waongofu huendesha mwangaza wa LED nyekundu, kijani na bluu
Mashine ya Rangi ya Kugundua Rangi: Hatua 4
Mashine ya Rangi ya Kugundua Rangi: Mashine ya rangi ya kugundua rangi inazunguka rangi karibu na wewe na hukuruhusu uchora nao. Ikiwa una rangi ya rangi ya msingi, unaweza kutumia sensa ya rangi ya RGB kuhisi rangi unayotaka na kuichanganya. Lakini kumbuka, tumia kitu chenye rangi-mkali
Muziki wa rangi ya rangi ya rangi: Hatua 7 (na Picha)
Muziki wa rangi ya rangi. Chanzo cha msukumo wa kifaa changu ni 'Chromola', chombo ambacho Preston S. Millar aliunda kutoa mwangaza wa rangi kwa Alexander Scriabin's 'Prometeus: Shairi la Moto', symphony iliyoonyeshwa kwenye ukumbi wa Carnegie kwenye Machi 21, 1915.
Rangi ya rangi ya rangi ya MaKey MaKey: Hatua 4
Rangi za rangi za MaKey MaKey: Eureka! Kiwanda kilishikilia Maagizo yetu ya Jumanne ya Kuunda Usiku na MaKey MaKey na baadhi ya vijana wetu wapenzi, Edgar Allan Ohms, timu ya KWANZA ya Mashindano ya Roboti (FRC) iliyo kwenye Maktaba ya Tawi la Land O'Lakes huko Pasco, FL. Ohms