Sisällysluettelo:

Väri-pi: 9 vaihetta
Väri-pi: 9 vaihetta

Video: Väri-pi: 9 vaihetta

Video: Väri-pi: 9 vaihetta
Video: МОЩНЫЙ ОПАСНЫЙ БОЕВИК МИРОВОГО МАСШТАБА! ДЛЯ ЕГО ПОИМКИ ОТПРАВЛЯЮТ СПЕЦГРУППУ! Чёрный пёс! ФИЛЬМ HD 2024, Lokakuu
Anonim
Väri-pi
Väri-pi

Tässä ohjeessa näytetään, miten Raspberry Pi -laitteella voidaan ohjata RGB -LED -nauhaa puheohjauksella verkkosivuston kautta käyttämällä Web Speech API -rajapintoja SpeechRecognition- ja SpeechSynthesis -sovelluksille.

Tämä esimerkki osoittaa, miten

  • Luo perussivusto käyttämällä Node.js -protokollaa HTTPS -protokollan avulla
  • Käytä Web Speech -sovellusliittymiä puheentunnistukseen ja puhesynteesiin.
  • Käytä Cylon.js -kehystä RGB -LED -nauhan ohjaamiseen Raspberry Pi -laitteessa
  • Kommunikoi WSS: n (Secure Web -liitännät) kautta verkkosivulta Cylon.js: lle LED -valon värin hallitsemiseksi

Huomautus

  • Tarvitset kaiuttimet tai kuulokkeet puhesyntetisaattorin kuulemiseen
  • Sinun on annettava mikrofonin käyttöoikeus, jotta äänentunnistus toimisi
  • Koska tämä käyttää mikrofoniasi, sivusto on suoritettava HTTPS -protokollalla
  • Kirjasto cylon-api-socketio ei tue https: ää tällä hetkellä. Minulla on vetopyyntö, joka odottaa yhdistämistä, mutta siihen asti sinun on korvattava /node_modules/cylon-api-socketio/lib/api.js tämän arkiston tiedostolla.
  • Pi-blaster tarvitaan tämän työn tekemiseen.

Vaihe 1: Laitteet

  1. Raspberry Pi - Käytin Raspberry Pi 2B: tä, jonka olin asettanut, mutta voit saada Raspberry Pi 3 -aloituspaketin hintaan noin 100 CAD
  2. RGB -LED -nauhavalo - Pelasin Mingerin LED -nauhavalolla 32,8ft/10M 600leds RGB SMD 5050. Tässä mukana tulee ohjain ja virtalähde noin 40 CAD: lle
  3. Barrel Jack Connector - Ostin sellaisen paikallisesta elektroniikkakaupastani, jotain tällaista. Varmista vain, että se sopii virtalähteeseesi
  4. Jumper -liittimet / johto - Minulla oli naaras -uros -liitäntäkaapeleita ja noin 22 -mittarinen kiinteä koukkujohto makaa ympäri
  5. Breadboard Solderless Prototype PCB Board - jotain tällaista
  6. 3 x 10 kΩ vastukset
  7. 3 x N -kanavaista MOSFETia LEDien ohjaamiseen - ostin joitain IRL3303 -laitteita paikallisesta verkkokaupastani. On tärkeää, että porttien kynnysjännite on maks. 3.3V, joten sitä voidaan ohjata RPi -nastoilla; yleensä merkitty nimellä L (Logic-Level).

Vaihe 2: Asenna Raspberry Pi

Käyttöjärjestelmä

Käytän yleensä uusinta Raspbian -rakennetta. Lataa kuva ja kirjoita se SD -kortille. Jos käytät Windows -tietokonetta, voit kirjoittaa kuvan SD -kortille Win32 Disk Imager -ohjelmalla.

Node.js

Asenna Node.js: n uusin versio. Käytän tätä kirjoitettaessa 8.9.1

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

sudo apt-get install nodejs

Asenna Git

sudo apt-get install git

Vaihe 3: Pi-blaster

Pi-blaster
Pi-blaster

pi-blaster mahdollistaa PWM-toiminnon GPIO-nastoissa, joita pyydät Raspberry Pi: ltä. Käytetty tekniikka on erittäin tehokas: ei käytä CPU: ta ja antaa erittäin vakaita pulsseja.

Tämän pulssileveysmodulaation avulla Raspberry Pi voi hallita punaisen, vihreän ja sinisen kanavan kirkkautta LED -nauhalle.

Kloonaa ensin arkisto

cd /opt /

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

Rakenna ja asenna sitten

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

Määritä lopuksi, mitä nastoja haluat käyttää

Luo ja muokkaa tiedostoa juuritilin alla tai sudon avulla

/etc/default/pi-blaster

Lisää seuraavat rivit

DAEMON_OPTS =-gpio 23, 24, 25

Näiden gpio -nastojen on vastattava nastoja, jotka yhdistät LED -nauhaasi.

HUOMAUTUS: GPIO: n ja pin -numeron välillä on ero. Tässä esimerkissä käytetään seuraavaa

LED - sininen, GPIO -23, nasta - 16

LED - punainen, GPIO -24, nasta - 18 LED - vihreä, GPIO -25, nasta - 22

Lisämuutoksia

Käynnistä pi-blaster

sudo-palvelun pi-blaster-käynnistys

Käynnistä pi-blaster uudelleen

sudo service pi-blaster uudelleenkäynnistys

Lopeta pi-blaster

sudo service pi-blaster stop

Käynnistä pi-blaster automaattisesti käynnistyksen yhteydessä

sudo systemctl ottaa käyttöön pi-blasterin

Varoitukset ja muut varoitukset

Pi-blasterin käyttämät nastat konfiguroidaan lähtöiksi. Älä kytke mitään tuloon tai saatat tuhota sen! Tämä daemon käyttää raspberry pi -laitteiston PWM -generaattoria saadakseen tarkat ajoitukset. Tämä saattaa häiritä äänikortin lähtöä.

Vaihe 4: Esimerkkikoodin määrittäminen

Kloonaa esimerkkikoodi

1. Määritä peruskansio asennettavaksi

cd /opt

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

2. Kloonaa esimerkki git -arkisto

git-klooni

tai

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

3. Asenna riippuvuudet

cd väri-pi

npm asennus

Tämä voi kestää 2-3 minuuttia

4. Tämän projektin on kommunikoitava HTTPS- ja WSS -yhteyden kautta. Tällä hetkellä cylon-api-socketio ei tue SSL-yhteyksiä. Tämän tuen lisäämiseksi on avoin pyyntö, mutta kunnes se on yhdistetty, tässä arkistossa on korjaustiedosto. Suorita seuraava komento npm -asennuksen jälkeen

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

Vaihe 5: Luo itse allekirjoitettu SSL -varmenne

1. Luo yksityisen avaimen tiedosto

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

openssl genrsa -out color-pi-key.pem 2048

2. Luo CSR (Certificate Signing Request)

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

Tässä vaiheessa sinulta kysytään varmennepyyntöä koskevia tietoja. Koska tämä on itse allekirjoitettu todistus, sinun on päätettävä, kuinka tarkasti täytät tiedot. Tässä on esimerkki

Maan nimi (2 -kirjaiminen koodi) [AU]: CA

Osavaltion tai maakunnan nimi (koko nimi) [Jotkin osavaltiot]: Brittiläinen Kolumbia Paikannimi (esim. Kaupunki) : Vancouver-organisaation nimi (esim. Yritys) [Internet Widgits Pty Ltd]: Väri Pi Organisaatioyksikön nimi (esim.) : Yleinen nimi (esim. Palvelimen FQDN tai SINUN nimi) : color-pi Sähköpostiosoite : [email protected]

Haastusalasana :

Valinnainen yrityksen nimi :

Tässä esimerkissä paina vain paluuta, jos haluat jättää haassalasanan tyhjäksi

3. Luo varmenne

openssl x509 -req -päivät 1095 -värissä-pi-csr.pem -signkey-väri-pi-avain.pem -out väri-pi-cert.pem

4. Turvallisuuden lisäämiseksi luomme myös Diffie Hellman -parametritiedoston

openssl dhparam -out dh_2048.pem 2048

Tämä voi kestää 15-20 minuuttia

Vaihe 6: Piirin kytkentä

Piirin kytkentä
Piirin kytkentä
Piirin kytkentä
Piirin kytkentä
Piirin kytkentä
Piirin kytkentä
Piirin kytkentä
Piirin kytkentä

Virta LED -nauhalle

LED -nauha saa virtansa 12 voltista. Raspberry Pi tuottaa vain 3.3v tai 5v, eikä se pysty lähettämään lähelle vahvistimia, joita tarvitaan niin monien LED -valojen käyttämiseen.

On tärkeää olla kytkemättä 12 voltin virtalähdettä Raspberry Pi -laitteeseen. N-kanavaisia MOSFET-transistoreita käytetään erottamaan RPi-nastojen 3.3v ja LED-virtalähteen 12V.

MOSFETissa on kolme nastaa Gate, Drain ja Source. Jos et ole varma, kumpi Google on käyttämäsi transistorin tietolomakkeelle, esim. IRL3303

Yhdistämme Raspberry Pi -tapin porttiin, LED -johdon viemäriin ja yhteisen maan lähteeseen. Kun nasta nousee korkeaksi, tyhjennyksen ja lähteen välinen jännite aktivoi portin ja yhdistää portin lähteeseen.

Aiomme myös asettaa 10 kΩ vastuksia portin ja lähteen poikki, jotta kun RPi -nasta on korkea, voimme suojata tappia vähentämällä sen läpi kulkevaa virtaa.

Suorita seuraavat vaiheet omalla vastuullasi. En ota vastuuta mistään, mikä voi mennä pieleen

Yllä on fritzing kuva ja valokuva todellisesta piiristä.

Suosittelen tekemään tämän, kun RPi: n ja LED -nauhan virta on katkaistu

Määritä transistoripiirit, yksi per värikanava

  1. Aseta yksi transistoreista leipälevyyn kaavion mukaisesti
  2. Aseta yksi 10 kΩ: n vastuksista transistorin tyhjennys- ja lähdetappien poikki. Tämä on ensimmäinen ja viimeinen nasta
  3. Liitä lähde nasta (viimeinen nasta) leipälevyn maahan jollakin johdolla
  4. Toista vaiheet 1-3 vielä kaksi kertaa, jotta sinulla on kolme sarjaa - yksi per väri (punainen, vihreä ja sininen)

Liitä RPi -nastat levyyn

  1. Liitä nasta 16 ensimmäisen transistorin porttiin (ensimmäinen nasta) - tämä on sininen LED -kanava
  2. Liitä nasta 18 ensimmäisen transistorin porttitappiin (ensimmäinen nasta) - tämä on punainen LED -kanava
  3. Kytke nasta 20 yhteen leipälevyn sivussa olevasta maadoitusjohdosta
  4. Liitä nasta 22 ensimmäisen transistorin porttiin (ensimmäinen nasta) - tämä on vihreä LED -kanava

Olen käyttänyt LED -valoihin sopivia langan värejä: sininen, punainen ja vihreä. Olen käyttänyt maata mustana

Liitä tynnyrin liitin

  1. Kytke valkoinen johto piippuliittimen + -päähän
  2. Liitä musta johto tynnyrin liittimen päähän
  3. Kytke musta johto samaan maadoitusjohtoon leipälaudalla, johon RPi Pin 20 oli kytketty
  4. Liitä valkoinen johto leipälevyn + -viivaan

LED -nauhan liittäminen

LED -nauhani mukana tuli liitin, joka oli riittävän hyvä, jotta se voitaisiin kytkeä väliaikaisesti leipälautaan. I Työnsin liittimen leipälevyyn ja johdotin sen piirin testiin.

  1. Ensimmäinen transistori kytkettiin nastaan 16. Ajoin sinisen johdon tyhjennystapista (keskimmäinen nasta) LED -nauhan liittimen siniseen johtoon
  2. Toinen transistori kytketty nastaan 18. Ajoin punaista johtoa

    Valua

    nasta (keskitappi) LED -nauhan liittimen punaiseen johtoon

  3. Kolmas transistori kytketty nastaan 22. Ajoin vihreää johtoa

    Valua

    nasta (keskitappi) LED -nauhan liittimen vihreään johtoon

  4. Lopuksi vedin valkoisen johdon + -viivasta leipälevyltä, joka oli liitetty tynnyrin jakkiin, LED -nauhan liittimen valkoiseen johtoon.

Virta

Kun olet tarkistanut piirin, sinun pitäisi olla hyvä kytkeä Raspberry Pi -laite päälle ja kytkeä 12 voltin syöttö pistorasiaan.

Vaihe 7: Palvelinpuolen koodi

Palvelinpuolen koodi
Palvelinpuolen koodi

Palvelinpuolen koodi suoritetaan

cd /opt/com.jonhaydock/colour-pi

sudo npm käynnistyy

Tämä käynnistää verkkopalvelimen ja alkaa kuunnella HTTPS- ja WSS -pyyntöjä.

HUOMAUTUS: Muista pitää pi-blaster käynnissä ensin

ympäristömuuttujat

Verkkosivuston oletusportti on 443, mutta voit ohittaa tämän asettamalla ympäristömuuttujan ennen koodin käynnistämistä. Esimerkiksi

vienti COLOUR_PI_PORT = 2443

Verkkopistokkeen oletusportti on 1443, mutta voit ohittaa tämän asettamalla ympäristömuuttujan ennen koodin käynnistämistä. Esimerkiksi

vienti COLOUR_PI_WSS_PORT = 3443

Huomautus: Koska verkkopistoketta käsittelee cylon.js eikä pääsivusto, niiden on oltava eri porteissa

Sinisen (nasta 16), vihreän (nasta 18) ja punaisen (nasta 22) tapit voidaan myös ohittaa. Esimerkiksi

vienti COLOUR_PI_PIN_BLUE = 36

vienti COLOUR_PI_PIN_RED = 38 vienti COLOUR_PI_PIN_GREEN = 40

Huomautus: Näiden on vastattava käyttämiäsi fyysisiä nastoja. Jos muutat näitä, sinun on myös päivitettävä GPIO: t, jotka on määritetty tiedostossa/etc/default/pi-blaster. Esimerkiksi

DAEMON_OPTS =-gpio 16, 20, 21

Pääpalvelimen koodi löytyy app.js -tiedostosta. Tämä tiedosto käynnistää HTTPS -verkkopalvelimen ja käyttää myös Cylon.js -kehyksen kautta socket.io -ohjelmaa verkkopistokepyyntöjen kuuntelemiseen erillisessä portissa.

Päästäksesi verkkosivustoon, avaa verkkoselain pääkoneellasi (olen testannut tämän vain Chromessa) ja käytä Raspberry Pi: n IP -osoitetta, esim.

10.0.1.2/

Voit selvittää IP -osoitteesi Raspberry Pi -komentoriviltä.

ifconfig

Verkkopalvelin palvelee mitä tahansa julkisen kansion sisältöä. Se näyttää oletuksena index.html -sivun.

Cylon.js luo päätepisteen, johon voit yhdistää Socket.io.

10.0.1.2:1443/api/robots/colour-pi

Voit lähettää set_colour -viestin pistorasian kautta asettaaksesi punaiset, vihreät ja siniset arvot

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

Joka kutsuu set_colour -komentoa, joka kutsuu setColour -funktiota sovelluksessa app.js. Tämä toiminto asettaa kirkkaustasot kullekin R-, G- ja B -arvolle väliltä 0 ja 255. Jos 0 on pois päältä ja 255 on täysin päällä.

esim.

Punainen r = 255, g = 0, b = 0

Vihreä r = 0, g = 255, b = 0 Sininen r = 0, g = 0, b = 255 Valkoinen r = 255, g = 255, b = 255 Musta / pois käytöstä r = 0, g = 0, b = 0

Vaihe 8: Verkkosivuston koodi

Verkkosivuston koodi
Verkkosivuston koodi

Yleistä

Verkkosivusto käyttää puheentunnistusta valitakseen värit ennalta määritetystä luettelosta. Jos haluat lisätä värin luetteloon, muokkaa tiedostoa palvelimella: public/data/colours.json

esim.

"punainen": "#FF0000", Kun väri löytyy tai valitaan avattavasta valikosta, Output -ruutu asetetaan kyseiseen väriin ja viesti lähetetään socket.io: n kautta Raspnerry Pi: lle, joka asettaa LEDit samaan väriin.

HUOMAUTUS: riippuen siitä, kuinka hyviä LED -valot ovat, saatat nähdä saman värin tai et. Jotkut on helpompi kopioida kuin toiset

Kun lataat verkkosivuston ensimmäisen kerran, kun käytät itse allekirjoitettua SSL-varmennetta, sinun on tunnustettava tämä selaimessa. Sinun pitäisi nähdä varoitusta koskeva turvahälytys.

Äänentunnistus

Tässä laatikossa on mikrofonikuvake. Jos napsautat kuvaketta sen ollessa vihreä, se alkaa kuunnella värejä. Kun se kuuntelee, se muuttuu punaiseksi. Se kuuntelee lyhyen aikaa ja pysähtyy sitten. Mikrofonin kuvakkeen napsauttaminen, kun se on punainen, myös estää sen kuuntelemasta.

Koska tämän sivuston on käytettävä mikrofoniasi, sinun on annettava sille lupa pyydettäessä

HUOMAUTUS: Tätä osaa varten tarvitset mikrofonin. Käytän verkkokamerassa olevaa.

Väliaikainen transkriptio

Tässä ruudussa seurataan sanomiesi sanojen arvauksia, kuten sanot ne.

Lopullinen transkriptio

Tämä laatikko seuraa viimeistä arvaustasi, mitä sanoit.

Tunnetut värit

Tämä on luettelo kaikista väreistä, joista sivu tietää. Se luodaan colours.json -tiedostosta. Jos valitset jonkin näistä väreistä, sivu puhuu värin ja asettaa tulostusvärin.

HUOMAUTUS: Tarvitset kaiuttimet tai kuulokkeet kuullaksesi puheen

Löytyi värejä

Tämä verkkosivu tukee tällä hetkellä vain värin vastaavuutta. Jos mikrofoniin puhuttu sana tai sanat vastaavat tunnetun värin nimeä tai valitset värin Tunnetut värit -luettelosta, se lisätään tähän lokina.

Lähtö

Viimeksi löydetty väri näkyy tässä. Värin heksadesimaaliarvo (esim. #7cb9e8) ja RGB -arvo (esim. 124, 185, 232) näytetään tekstinä ja keskellä olevan ruudun tausta asetetaan todelliseen väriin.

Tämä väri lähetetään myös Raspberry Pi -laitteeseen ja sinun pitäisi nähdä LED -nauhan väri muuttuvan.

HUOMAUTUS: jos et näe LED-värin muutosta, yritä käynnistää uudelleen pi-blaster ja/tai node.js-sovellus

sudo service pi-blaster uudelleenkäynnistys

sudo npm käynnistyy

Tunnetut äänet

Tässä ruudussa näkyy luettelo "Tunnetuista äänistä" tuetusta puhesynteesistä. Jos valitset jonkin näistä äänistä, ääni ja kuulemasi kieli muuttuvat ja se puhuu äänen nimen.

Se muuttaa myös puheentunnistuksen kielen samaksi kuin luettelossa valittu kieli.

Vaihe 9: Lopuksi

Image
Image

Tässä on esimerkki siitä, mitä sinun pitäisi nähdä.

Kerro minulle, jos sinulla on ongelmia, ja voin päivittää ne tarvittaessa.

Suositeltava: