Orodha ya maudhui:

Rangi-pi: Hatua 9
Rangi-pi: Hatua 9

Video: Rangi-pi: Hatua 9

Video: Rangi-pi: Hatua 9
Video: План 9 из космоса (1957) Тор Джонсон, Вампира, Том Кин, Бела Лугоши | Полный фильм, субтитры 2024, Novemba
Anonim
Rangi-pi
Rangi-pi

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

  1. Raspberry Pi - Nilitumia Raspberry Pi 2B ambayo nilikuwa nimelala karibu, lakini unaweza kupata Raspberry Pi 3 Starter Kit kwa karibu CAD 100
  2. 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
  3. Pipa Jack Kiunganishi - Nilinunua moja kutoka duka langu la elektroniki, kitu kama hiki. Hakikisha tu ikiwa inafaa usambazaji wako wa umeme
  4. Viunganishi vya Jumper / Waya - Nilikuwa na nyaya za Kike hadi Kiume na baadhi ya 22 Gauge Mango iliyounganishwa imelala karibu.
  5. Bodi ya mkate isiyo na waya ya Bodi ya mkate - kitu kama hiki
  6. 3 x 10kΩ Resistors
  7. 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
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

Kuunganisha Mzunguko
Kuunganisha Mzunguko
Kuunganisha Mzunguko
Kuunganisha Mzunguko
Kuunganisha Mzunguko
Kuunganisha Mzunguko
Kuunganisha Mzunguko
Kuunganisha Mzunguko

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

  1. Ingiza moja ya transistors kwenye ubao wa mkate kama onyesho kwenye mchoro
  2. Ingiza moja ya Resistors ya 10kΩ kote kwenye Machafu na pini za Chanzo za transistor. Hii ni pini ya kwanza na ya mwisho
  3. Tumia waya fulani kuunganisha pini ya Chanzo (pini ya mwisho) chini kwenye ubao wa mkate
  4. 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

  1. Unganisha Pin 16 kwa Pini ya Lango (pini ya kwanza) ya transistor ya kwanza - Hii itakuwa kituo cha Bluu ya Bluu
  2. Unganisha Pini 18 na Pini ya Lango (pini ya kwanza) ya transistor ya kwanza - Hii itakuwa kituo cha Red LED
  3. Unganisha Pin 20 kwa moja ya mistari ya chini upande wa ubao wa mkate
  4. 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

  1. Unganisha waya mweupe hadi mwisho wa pipa
  2. Unganisha waya mweusi hadi mwisho wa pipa
  3. Unganisha waya mweusi kwa laini moja ya ardhini kwenye ubao wa mkate kama RPi Pin 20 iliunganishwa
  4. 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.

  1. 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
  2. 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

  3. 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

  4. 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

Msimbo wa Upande wa Seva
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

Nambari ya Wavuti
Nambari ya 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

Image
Image

Hapa kuna mfano wa kile unapaswa kuona.

Tafadhali nijulishe ikiwa una shida yoyote na ninaweza kusasisha kama inahitajika.

Ilipendekeza: