Sisukord:

Värvipiirang: 9 sammu
Värvipiirang: 9 sammu

Video: Värvipiirang: 9 sammu

Video: Värvipiirang: 9 sammu
Video: Ajurlu kolay iki şiş örgü modeli anlatımı 🎉CROCHET KNİTTİNG 2024, November
Anonim
Värv-pi
Värv-pi

See juhend näitab, kuidas kasutada Raspberry Pi -d RGB LED -riba hääljuhtimiseks veebisaidi kaudu, kasutades kõne kõnetuvastuse ja kõnesünteesi jaoks mõeldud Web Speech API liideseid.

See näide näitab, kuidas

  • Looge põhiline veebisait, kasutades HTTPS -i kaudu Node.js -i
  • Kasutage kõnetuvastuse ja kõnesünteesi jaoks veebikõne API liideseid.
  • Kasutage Cylon.js raamistikku Raspberry Pi RGB LED -riba juhtimiseks
  • Suhtlege WSS -i (turvaliste veebipesade) kaudu veebilehelt saidile Cylon.js, et juhtida LED -i värvi

Märge

  • Kõnesüntesaatori kuulamiseks vajate kõlareid või kõrvaklappe
  • Hääletuvastuse toimimiseks peate andma juurdepääsu oma mikrofonile
  • Kuna see juurdepääs teie mikrofonile vajab saiti HTTPS -i abil
  • Raamatukogu cylon-api-socketio ei toeta praegu https-i. Mul on tõmbamistaotlus, mis ootab ühendamist, kuid seni peate asendama /node_modules/cylon-api-socketio/lib/api.js selle hoidla failiga
  • selle töö tegemiseks on vaja pi-blasterit.

Samm: varustus

  1. Raspberry Pi - kasutasin Raspberry Pi 2B -d, mis mul oli, aga Raspberry Pi 3 stardikomplekti saate umbes 100 CAD eest
  2. RGB LED -ribalamp - mängisin Minger LED -ribalambiga 32,8 jalga/10M 600leds RGB SMD 5050. Sellega on kaasas kontroller ja toide umbes CAD 40 jaoks
  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
  5. Leivaplaat Solderless Prototype PCB Board - midagi sellist
  6. 3 x 10 kΩ takisti
  7. 3 x N -kanaliga MOSFET -d valgusdioodide juhtimiseks - ostsin kohalikult elektroonikapoest mõned IRL3303 -d. On oluline, et väravate lävipinge oleks max. 3.3V, nii et seda saab juhtida RPi tihvtidega; tavaliselt tähistatakse nimes "L" (loogikatase).

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: Pi-blaster

Pi-lõhkaja
Pi-lõhkaja

pi-blaster võimaldab PWM-i GPIO-tihvtidel, mida te Raspberry Pi-l taotlete. Kasutatav tehnika on äärmiselt tõhus: ei kasuta protsessorit ja annab väga stabiilseid impulsse.

See impulsi laiuse modulatsioon võimaldab Raspberry Pi -l juhtida, kui heledad punased, rohelised ja sinised kanalid on LED -riba jaoks.

Esiteks kloonige hoidla

cd /opt /

sudo git kloon https://github.com/sarfata/pi-blaster.git sudo chown -R pi: pi pi-blaster

Seejärel ehitage ja installige

cd/opt/pi-blaster./autogen.sh &&./configure && make && sudo make install

Lõpuks seadistage, milliseid tihvte soovite kasutada

Looge ja muutke fail juurkonto all või sudo abil

/etc/default/pi-blaster

Lisage järgmised read

DAEMON_OPTS =-gpio 23, 24, 25

Need gpio -tihvtid peavad vastama tihvtidele, mille ühendate oma LED -ribaga.

MÄRKUS. GPIO ja pin -numbri vahel on erinevus. See näide kasutab järgmist

LED - sinine, GPIO -23, tihvt - 16

LED - punane, GPIO -24, tihvt - 18 LED - roheline, GPIO -25, tihvt - 22

Täiendavad muudatused

Käivitage pi-blaster

sudo teenuse pi-blaster käivitamine

Taaskäivitage pi-blaster

sudo teenuse pi-blaster taaskäivitamine

Lõpeta pi-blaster

sudo teenuse pi-blaster stop

Käivitage pi-blaster automaatselt alglaadimise ajal

sudo systemctl lubab pi-blasteri

Hoiatused ja muud hoiatused

Pi-blasteri kasutatavad tihvtid konfigureeritakse väljunditeks. Ärge ühendage sisendiga midagi, muidu võite selle hävitada! See deemon kasutab täpse ajastuse saamiseks vaarika pi riistvara PWM -generaatorit. See võib häirida helikaardi väljundit.

Samm 4: 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

või

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

3. Installige sõltuvused

cd värv-pi

npm install

Selleks võib kuluda 2-3 minutit

4. See projekt peab suhtlema HTTPS -i ja WSS -i kaudu. Praegu ei toeta cylon-api-socketio SSL-ühendusi. Selle toe lisamiseks on avatud tõmbetaotlus, kuid kuni selle ühendamiseni on selles hoidlas patch -fail. Pärast npm installimist käivitage järgmine käsk

git checkout node_modules/cylon-api-socketio/lib/api.js

Samm: looge ise allkirjastatud SSL -sertifikaat

1. Looge privaatvõtme fail

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

2048

2. Looge CSR (sertifikaadi allkirjastamise taotlus)

openssl req -new -key color-pi-key.pem -out color-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 Asukoha nimi (nt linn) : Vancouveri organisatsiooni nimi (nt ettevõte) [Internet Widgits Pty Ltd]: Värv Pi organisatsiooniüksuse nimi (nt jaotis) : Üldnimi (nt serveri FQDN või SINU nimi) : color-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 -in color-pi-csr.pem-signkey color-pi-key.pem -out color-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: vooluahela ühendamine

Vooluahela ühendamine
Vooluahela ühendamine
Vooluahela ühendamine
Vooluahela ühendamine
Vooluahela ühendamine
Vooluahela ühendamine
Vooluahela ühendamine
Vooluahela ü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. N-kanaliga MOSFET-transistore kasutatakse RPi tihvtide 3,3 V ja LED-toite 12 V eraldamiseks.

MOSFETil on kolm tihvti Gate, Drain ja Source. Kui te pole kindel, milline google otsib teie kasutatava transistori andmelehte, nt. IRL3303

Me ühendame Raspberry Pi tihvti väravaga, LED -juhtme äravooluga ja ühise maa allikaga. Kui pin läheb kõrgeks, aktiveerib äravoolu ja allika vaheline pinge värava ja ühendab värava allikaga.

Samuti kavatseme paigutada väravale ja allikale 10 kΩ takistid, nii et kui RPi tihvt on kõrge, saame seda kaitsta, vähendades seda läbivat voolu.

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

Ülaltoodud tegelikust vooluringist on fritseeriv pilt ja foto.

Soovitan seda teha ajal, mil RPi ja LED -riba on välja lülitatud

Seadistage transistoriahelad, üks värvikanali kohta

  1. Sisestage üks transistoritest leivalauale, nagu on näidatud joonisel
  2. Sisestage üks 10 kΩ takisti transistori äravoolu ja allika tihvtide kohale. See on esimene ja viimane tihvt
  3. Ühendage allika tihvt (viimane tihvt) leivaplaadil oleva maaga mõne juhtme abil
  4. Korrake samme 1–3 veel kaks korda, nii et teil on kolm komplekti - üks värvi kohta (punane, roheline ja sinine)

Ühendage RPi tihvtid plaadiga

  1. Ühendage tihvt 16 esimese transistori värava tihvtiga (esimene tihvt) - see on sinine LED -kanal
  2. Ühendage tihvt 18 esimese transistori värava tihvtiga (esimene tihvt) - see on punane LED -kanal
  3. Ühendage tihvt 20 leivaplaadi küljel oleva maandusjoonega
  4. Ühendage tihvt 22 esimese transistori värava tihvtiga (esimene tihvt) - see on roheline LED -kanal

Olen kasutanud LED -idele sobivaid juhtmete värve: sinine, punane ja roheline. Maapinna jaoks olen kasutanud musta

Ühendage tünni pistik

  1. Ühendage tünnipistiku + otsaga valge juhe
  2. Ühendage must juhe silindri pesa otsa
  3. Ühendage must juhe leivaplaadil sama maandusjoonega, millega RPi Pin 20 ühendati
  4. Ühendage valge traat leivaplaadil oleva joonega +

LED -riba ühendamine

Minu LED -ribaga tuli pistik, mis oli piisavalt hea, et selle saaks ajutiselt leivaplaadiga ühendada. I Lükkasin leivalaua pistiku ja ühendasin selle vooluahela testimisega.

  1. Esimene transistor ühendati tihvtiga 16. Ma juhtisin sinise juhtme tühjendusnõelast (keskmine tihvt) LED -riba pistiku sinise juhtmeni
  2. Teine transistor ühendati tihvtiga 18. Jooksin punast traati

    Äravool

    tihvt (keskmine tihvt) LED -riba pistiku punase juhtme külge

  3. Kolmas transistor ühendati tihvtiga 22. Ma juhtisin rohelist traati

    Äravool

    tihvt (keskmine tihvt) LED -riba pistiku rohelise juhtme külge

  4. Lõpuks jooksin valge traadi + joonelt leivaplaadil, mis oli ühendatud tünnipistikuga, valge juhtmega LED -riba pistikul.

Võimsus

Pärast vooluahela kontrollimist peaksite olema hea sisse lülitama Raspberry Pi ja ühendama 12 -voldise pistiku pistikupessa.

Samm: serveripoolne kood

Serveripoolne kood
Serveripoolne kood

Serveripoolse koodi käitamine

cd /opt/com.jonhaydock/colour-pi

sudo npm start

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

MÄRKUS. Pidage meeles, et pi-blaster tuleb kõigepealt käivitada

Keskkonnamuutujad

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

eksport COLOUR_PI_PORT = 2443

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

eksport COLOUR_PI_WSS_PORT = 3443

Märkus. Kuna veebipesa haldab cylon.js, mitte peamine veebisait, peavad need asuma erinevates portides

Nööpnõelad, mida kasutatakse sinise (tihvt 16), rohelise (tihvt 18) ja punase (tihvt 22) jaoks, saab samuti tühistada. Näiteks

eksport COLOUR_PI_PIN_BLUE = 36

eksport COLOUR_PI_PIN_RED = 38 eksport COLOUR_PI_PIN_GREEN = 40

Märkus. Need peavad vastama kasutatud füüsilistele tihvtidele. Kui muudate neid, peate värskendama ka failis/etc/default/pi-blaster määratletud GPIO-sid. Näiteks

DAEMON_OPTS =-gpio 16, 20, 21

Põhiserveri koodi leiate failist app.js. See fail käivitab HTTPS -veebiserveri ja kasutab ka Cylon.js raamistiku kaudu socket.io -d, et kuulata veebipesa taotlusi eraldi pordis.

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.

Cylon.js loob lõpp -punkti, mille abil saate Socket.io ühendada.

10.0.1.2:1443/api/robots/colour-pi

Pistiku, rohelise ja sinise väärtuste määramiseks saate pistikupesa kaudu saata sõnumi set_colour

device.emit ('set_colour', r, g, b)

Mis kutsub käsku set_colour, mis kutsub funktsiooni setColour rakenduses app.js. See funktsioon määrab iga R, G ja B väärtuse heledustaseme vahemikku 0 kuni 255. Kui 0 on välja lülitatud ja 255 on täielikult sisse lülitatud.

nt.

Punane r = 255, g = 0, b = 0

Roheline r = 0, g = 255, b = 0 Sinine r = 0, g = 0, b = 255 Valge r = 255, g = 255, b = 255 Must / väljas r = 0, g = 0, b = 0

8. samm: veebisaidi kood

Veebisaidi kood
Veebisaidi kood

Kindral

Veebisait kasutab eelmääratud loendist värvide valimiseks häältuvastust. Loendisse värvi lisamiseks muutke faili serveris: public/data/colours.json

nt.

"punane": "#FF0000", Kui värv on leitud või rippmenüüst valitud, määratakse kasti Väljund selle värvi ja sõnumi kaudu socket.io saadetakse teade Raspnerry Pi -le, mis määrab LED -id sama värvi.

MÄRKUS. Sõltuvalt teie LED -de heast olekust võite sarnast värvi näha või mitte. Mõnda on lihtsam kopeerida kui teist

Veebisaidi esmakordsel laadimisel, kui kasutate ise allkirjastatud SSL-sertifikaati, peate seda brauseris kinnitama. Peaksite nägema sertifikaadi kohta turvahoiatust.

Hääletuvastus

Sellel kastil on mikrofoniikoon. Kui klõpsate rohelisel ikoonil, hakkab see värve kuulama. Kuulamise ajal muutub see punaseks. See kuulab lühikest aega ja seejärel peatub. Punase mikrofoni ikooni klõpsamine peatab ka selle kuulamise.

Kuna see sait peab teie mikrofonile juurde pääsema, peate te sellele loa andma, kui seda küsitakse

MÄRKUS. Selle osa jaoks on vaja mikrofoni. Kasutan oma veebikaameras olevat.

Ajutine ärakiri

See kast jälgib teie öeldavate sõnade oletusi nii nagu te neid ütlete.

Lõplik ärakiri

See kast jälgib teie lõplikku oletust.

Tuntud värvid

See on kõigi värvide loend, mida leht teab. See luuakse failist colours.json. Kui valite ühe neist värvidest, räägib leht värvi ja määrab väljundi värvi.

MÄRKUS. Kõne kuulamiseks on vaja kõlareid või kõrvaklappe

Leitud värvid

See veebileht toetab praegu ainult värvi sobitamist. Kui sõna või sõnad, mida mikrofoni ütlesite, kattuvad mõne tuntud värvi nimega või valite loendi Tuntud värvid värvi, lisatakse see siia logina.

Väljund

Siin kuvatakse viimati leitud värv. Värvi heksade väärtus (nt #7cb9e8) ja RGB väärtus (nt 124, 185, 232) kuvatakse tekstina ja keskel oleva kasti taust on seatud tegelikule värvile.

See värv saadetakse ka Raspberry Pi -le ja peaksite nägema LED -riba värvi muutumist.

MÄRKUS. Kui te ei näe LED-i värvi muutumist, proovige taaskäivitada pi-blaster ja/või rakendus node.js

sudo teenuse pi-blaster taaskäivitamine

sudo npm start

Tuntud hääled

Selles kastis kuvatakse toetatud kõnesünteesi loend "Tuntud hääled". Nende häälte valimine muudab häält ja kuuldavat keelt ning räägib hääle nime.

Samuti muudab see kõnetuvastuse keeleks sama, mis loendis valitud.

Samm 9: Lõpuks

Image
Image

Siin on näide sellest, mida peaksite nägema.

Palun andke mulle teada, kui teil on probleeme, ja ma saan vajadusel värskendada.

Soovitan: