Satura rādītājs:
- 1. solis: aprīkojums
- 2. darbība. Raspberry Pi iestatīšana
- 3. solis: Pi-blaster
- 4. darbība: parauga koda iestatīšana
- 5. darbība: izveidojiet pašparakstītu SSL sertifikātu
- 6. solis: ķēdes savienošana
- 7. darbība: servera puses kods
- 8. darbība: vietnes kods
- 9. solis: Visbeidzot
Video: Krāsu pi: 9 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šī pamācība parāda, kā lietot Raspberry Pi, lai balss vadītu RGB LED sloksni, izmantojot vietni, izmantojot Web Speech API saskarnes runas atpazīšanai un runas sintēzei.
Šis piemērs parāda, kā to izdarīt
- Izveidojiet pamata vietni, izmantojot Node.js, izmantojot
- Izmantojiet Web Speech API saskarnes runas atpazīšanai un runas sintēzei.
- Izmantojiet Cylon.js ietvaru, lai vadītu RGB LED sloksni Raspberry Pi
- Sazinieties, izmantojot WSS (drošas tīmekļa ligzdas) no tīmekļa lapas uz vietni Cylon.js, lai kontrolētu gaismas diodes krāsu
Piezīme
- Lai dzirdētu runas sintezatoru, jums būs nepieciešami skaļruņi vai austiņas
- Lai balss atpazīšana darbotos, jums būs jāpiešķir piekļuve mikrofonam
- Tā kā šī piekļuve jūsu mikrofonam ir nepieciešama, vietne ir jādarbina, izmantojot
- Bibliotēka cylon-api-socketio pašlaik neatbalsta https. Man ir vilkšanas pieprasījums, kas gaida apvienošanu, bet līdz tam /node_modules/cylon-api-socketio/lib/api.js jāaizstāj ar failu šajā krātuvē.
- pi-blaster ir nepieciešams, lai veiktu šo darbu.
1. solis: aprīkojums
- Raspberry Pi - es izmantoju Raspberry Pi 2B, kas bija man apkārt, bet jūs varat iegādāties Raspberry Pi 3 sākuma komplektu par aptuveni 100 CAD
- RGB LED sloksnes gaisma - es spēlēju ar Minger LED sloksnes gaismu 32.8ft/10M 600leds RGB SMD 5050. Tas nāk ar kontrolieri un barošanas avotu apmēram CAD 40
- Barrel Jack Connector - es nopirku vienu no sava vietējā elektronikas veikala, kaut kas līdzīgs šim. Vienkārši pārliecinieties, vai tas atbilst jūsu barošanas avotam
- Džempera savienotāji / vads - man bija daži savienotāju kabeļi no sievietes līdz vīrietim un daži 22 gabarīta cietie savienojuma vadi, kas atrodas apkārt
- Breadboard Solderless Prototype PCB Board - kaut kas līdzīgs šim
- 3 x 10 kΩ rezistori
- 3 x N -kanālu MOSFET gaismas diodes kontrolei - es nopirku dažus IRL3303 no sava vietējā elektroniskā veikala. Ir svarīgi, lai vārtu sliekšņa spriegums būtu maks. 3.3V, lai to varētu vadīt ar RPi tapām; parasti nosaukumā apzīmē ar “L” (loģikas līmenis).
2. darbība. Raspberry Pi iestatīšana
Operētājsistēma
Es parasti izmantoju jaunāko Raspbian būvējumu. Lejupielādējiet attēlu un ierakstiet to SD kartē. Ja izmantojat Windows datoru, attēla ierakstīšanai SD kartē varat izmantot Win32 Disk Imager.
Node.js
Instalējiet jaunāko Node.js versiju. Rakstīšanas laikā es izmantoju 8.9.1
čokurošanās -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
Instalējiet Git
sudo apt-get instalēt git
3. solis: Pi-blaster
pi-blaster iespējo PWM GPIO tapās, kuras pieprasāt no Raspberry Pi. Izmantotā tehnika ir ārkārtīgi efektīva: neizmanto CPU un dod ļoti stabilus impulsus.
Šī impulsa platuma modulācija ļauj Raspberry Pi kontrolēt, cik spilgti katrs LED sloksnes sarkanais, zaļais un zilais kanāls ir.
Vispirms klonējiet krātuvi
cd /opt /
sudo git klons https://github.com/sarfata/pi-blaster.git sudo chown -R pi: pi pi-blaster
Pēc tam izveidojiet un instalējiet
cd/opt/pi-blaster./autogen.sh &&./configure && make && sudo make install
Visbeidzot, konfigurējiet, kuras tapas vēlaties izmantot
Zem saknes konta vai izmantojot sudo, izveidojiet un rediģējiet failu
/etc/default/pi-blaster
Pievienojiet šādas rindas
DAEMON_OPTS =-gpio 23, 24, 25
Šīm gpio tapām jāatbilst tapām, kuras pievienojat savai LED sloksnei.
PIEZĪME. Pastāv atšķirība starp GPIO un pin numuru. Šajā piemērā tiek izmantots šāds
LED - zils, GPIO -23, tapa - 16
LED - sarkans, GPIO -24, tapa - 18 LED - zaļa, GPIO -25, tapa - 22
Papildu pielāgojumi
Sāciet pi-blaster
sudo servisa pi-blaster start
Restartējiet pi-blaster
sudo pakalpojuma pi-blaster restartēšana
Beidz pi-blaster
sudo servisa pi-blaster pietura
Sākt pi-blaster automātiski sāknēšanas laikā
sudo systemctl iespējo pi-blaster
Brīdinājumi un citi brīdinājumi
Pi-blaster izmantotās tapas tiks konfigurētas kā izejas. Nepievienojiet kaut ko ieejai, pretējā gadījumā jūs to varat iznīcināt! Šis dēmons izmanto aveņu pi aparatūras PWM ģeneratoru, lai iegūtu precīzu laiku. Tas var traucēt skaņas kartes izvadi.
4. darbība: parauga koda iestatīšana
Klonējiet parauga kodu
1. Iestatiet bāzes mapi, kurā instalēt
cd /opt
sudo mkdir com.jonhaydock sudo chown pi: pi com.jonhaydockcd com.jonhaydock
2. Klonējiet git repozitoriju
git klons
vai
git klons [email protected]: haydockjp/color-pi.git
3. Instalējiet atkarības
cd krāsa-pi
npm instalēt
Tas var aizņemt 2-3 minūtes
4. Šim projektam ir jāsazinās, izmantojot HTTPS un WSS. Pašlaik cylon-api-socketio neatbalsta SSL savienojumus. Pastāv atklāts pieprasījums pievienot šo atbalstu, taču līdz brīdim, kad tas ir apvienots, šajā krātuvē atrodas ielāpa fails. Pēc npm instalēšanas palaidiet šādu komandu
git izrakstīšanās node_modules/cylon-api-socketio/lib/api.js
5. darbība: izveidojiet pašparakstītu SSL sertifikātu
1. Izveidojiet privātas atslēgas failu
cd /opt/com.jonhaydock/colour-pi/certs
openssl genrsa -out color-pi-key.pem 2048
2. Izveidojiet CSR (sertifikāta parakstīšanas pieprasījumu)
openssl req -new -key color-pi-key.pem -out color-pi-csr.pem
Šajā brīdī jums tiks piedāvāta informācija par sertifikāta pieprasījumu. Tā kā šis ir pašparakstīts sertifikāts, tas ir atkarīgs no jums, cik precīzi jūs aizpildāt informāciju. Šeit ir piemērs
Valsts nosaukums (divu burtu kods) [AU]: CA
Štata vai provinces nosaukums (pilns nosaukums) [Dažas valstis]: Britu Kolumbijas apgabala nosaukums (piemēram, pilsēta) : Vankūveras organizācijas nosaukums (piemēram, uzņēmums) [Internet Widgits Pty Ltd]: Krāsa Pi Organizācijas vienības nosaukums (piemēram, sadaļa)) : Parastais nosaukums (piemēram, servera FQDN vai JŪSU vārds) : color-pi E-pasta adrese : [email protected]
Izaicinājuma parole :
Neobligāts uzņēmuma nosaukums :
Šajā piemērā vienkārši nospiediet atgriešanās pogu, lai atstātu izaicinājuma paroli tukšu
3. Izveidojiet sertifikātu
openssl x509 -req -days 1095-in color-pi-csr.pem-signkey color-pi-key.pem -out color-pi-cert.pem
4. Papildu drošībai mēs izveidosim arī Difija Helmena parametru failu
openssl dhparam -out dh_2048.pem 2048
Tas var aizņemt 15-20 minūtes
6. solis: ķēdes savienošana
LED sloksnes barošana
LED sloksni darbina 12 volti. Raspberry Pi spēj izvadīt tikai 3.3v vai 5v, un to nevar izvadīt nekur pie pastiprinātājiem, kas nepieciešami, lai darbinātu tik daudz gaismas diodes.
Ir svarīgi nepievienot 12 voltu barošanas avotu Raspberry Pi. N-kanālu MOSFET tranzistori tiek izmantoti, lai atdalītu 3.3v uz RPi tapām un 12V no LED barošanas avota.
MOSFET ir trīs tapas Gate, Drain un Source. Ja neesat pārliecināts par to, kurš google izmanto jūsu izmantotā tranzistora datu lapu, piem. IRL3303
Mēs pievienosim Raspberry Pi tapu vārtiem, LED vadu kanalizācijai un kopēju zemi avotam. Kad tapa kļūst augsta, spriegums starp kanalizāciju un avotu aktivizēs vārtus un savienos vārtus ar avotu.
Mēs arī ievietosim 10kΩ rezistorus pāri vārtiem un avotam, lai, kad mēs RPi tapa būtu augsta, mēs varētu aizsargāt tapu, samazinot caur to plūstošo strāvu.
Veiciet nākamos soļus uz savu risku. Es neuzņemos atbildību par visu, kas var notikt nepareizi
Augšpusē ir satriecošs attēls un faktiskās ķēdes fotoattēls.
Es ieteiktu to darīt, kamēr RPi un LED sloksnei ir izslēgta strāva
Iestatiet tranzistora shēmas pa vienam katrā krāsu kanālā
- Ievietojiet vienu no tranzistoriem maizes dēļā, kā parādīts diagrammā
- Ievietojiet vienu no 10 kΩ rezistoriem pāri kanalizācijai un tranzistora avota tapām. Šī ir pirmā un pēdējā tapa
- Izmantojiet kādu vadu, lai savienotu avota tapu (pēdējo tapu) ar zemi uz maizes dēļa
- Atkārtojiet 1. - 3. darbību vēl divas reizes, lai jums būtu trīs komplekti - viens katrai krāsai (sarkans, zaļš un zils)
Pievienojiet RPi tapas pie tāfeles
- Savienojiet tapu 16 ar pirmā tranzistora vārtu tapu (pirmo tapu) - tas būs zilais LED kanāls
- Savienojiet tapu 18 ar pirmā tranzistora vārtu tapu (pirmo tapu) - tas būs sarkanais LED kanāls
- Pievienojiet tapu 20 vienai no zemes līnijām maizes dēļa sānos
- Savienojiet tapu 22 ar pirmā tranzistora vārtu tapu (pirmo tapu) - tas būs zaļais LED kanāls
Gaismas diodēm esmu izmantojis atbilstošas vadu krāsas: zilu, sarkanu un zaļu. Zemei esmu izmantojis melno
Pievienojiet mucas ligzdu
- Pievienojiet baltu vadu mucas ligzdas + galam
- Pievienojiet melnu vadu mucas ligzdas galam
- Pievienojiet melno vadu pie tās pašas maizes līnijas zemējuma līnijas, kurai tika pievienots RPi Pin 20
- Pievienojiet balto vadu + līnijai uz maizes dēļa
LED sloksnes savienošana
Manai LED sloksnei bija savienotājs, kas bija pietiekami labs, lai to varētu īslaicīgi pievienot elektrotīklam. I Iespiedu savienotāju maizes dēļā un pievienoju to ķēdes pārbaudei.
- Pirmais tranzistors savienots ar tapu 16. Es vadīju zilu vadu no iztukšošanas tapas (vidējā tapa) līdz zilajam vadam uz LED sloksnes savienotāja
-
Otrs tranzistors savienots ar Pin 18. Es vadīju sarkanu vadu no
Drenāžas
tapu (vidējo tapu) līdz sarkanajam vadam uz LED sloksnes savienotāja
-
Trešais tranzistors savienots ar Pin 22. Es vadīju zaļo vadu no
Drenāžas
tapu (vidējo tapu) līdz zaļajam vadam uz LED sloksnes savienotāja
- Visbeidzot, es vadīju baltu vadu no + līnijas uz maizes dēļa, kas bija savienots ar mucas ligzdu, līdz baltajam vadam uz LED sloksnes savienotāja.
Jauda
Pēc ķēdes pārbaudes jums vajadzētu labi ieslēgt Raspberry Pi un pieslēgt 12 voltu barjeru mucas ligzdai.
7. darbība: servera puses kods
Tiek palaists servera puses kods
cd /opt/com.jonhaydock/colour-pi
sudo npm sākums
Tas sāks tīmekļa servera darbību un sāks klausīties HTTPS un WSS pieprasījumus.
PIEZĪME. Atcerieties, ka vispirms jāieslēdz pi-blaster
Vides mainīgie
Noklusējuma vietnes ports ir 443, taču to var ignorēt, pirms koda palaišanas iestatot vides mainīgo. Piemēram
eksportēt COLOUR_PI_PORT = 2443
Noklusējuma tīmekļa ligzdas ports ir 1443, taču to var ignorēt, pirms koda palaišanas iestatot vides mainīgo. Piemēram
eksportēt COLOUR_PI_WSS_PORT = 3443
Piezīme. Tā kā tīmekļa ligzdu apstrādā cilon.js, nevis galvenā vietne, tām ir jābūt dažādās ostās
Tapas, kas tiek izmantotas zilajam (16. tapa), zaļajam (18. tapa) un sarkanajam (22. tapa), var arī ignorēt. Piemēram
eksportēt COLOUR_PI_PIN_BLUE = 36
eksportēt COLOUR_PI_PIN_RED = 38 eksportēt COLOUR_PI_PIN_GREEN = 40
Piezīme: tiem jāatbilst jūsu izmantotajām fiziskajām tapām. Ja tos mainīsit, jums būs jāatjaunina arī GPIO, kas definēti failā/etc/default/pi-blaster. Piemēram
DAEMON_OPTS =-gpio 16, 20, 21
Galveno servera kodu var atrast failā app.js. Šis fails palaiž HTTPS tīmekļa serveri, kā arī izmantojot Cylon.js ietvaru, izmanto socket.io, lai atsevišķā portā noklausītos tīmekļa ligzdu pieprasījumus.
Lai piekļūtu vietnei, galvenajā datorā ir jāatver tīmekļa pārlūkprogramma (esmu to pārbaudījis tikai pārlūkā Chrome) un jāizmanto Raspberry Pi IP adrese, piem.
10.0.1.2/
Jūs varat uzzināt savu IP adresi no Raspberry Pi komandrindas.
ifconfig
Tīmekļa serveris apkalpos jebkuru saturu publiskajā mapē. Pēc noklusējuma tiek parādīta lapa index.html.
Cylon.js izveido beigu punktu, ar kuru var savienot Socket.io.
10.0.1.2:1443/api/robots/colour-pi
Izmantojot kontaktligzdu, varat nosūtīt ziņojumu set_colour, lai iestatītu sarkanās, zaļās un zilās vērtības
device.emit ('set_colour', r, g, b)
Kurš izsauc komandu set_colour, kas izsauc funkciju setColour lietotnē app.js. Šī funkcija nosaka spilgtuma līmeņus katrai R, G un B vērtībai no 0 līdz 255. Kur 0 ir izslēgts un 255 ir pilnībā ieslēgts.
piem.
Sarkans r = 255, g = 0, b = 0
Zaļš r = 0, g = 255, b = 0 Zils r = 0, g = 0, b = 255 Balts r = 255, g = 255, b = 255 Melns / izslēgts r = 0, g = 0, b = 0
8. darbība: vietnes kods
Vispārīgi
Vietne izmanto balss atpazīšanu, lai atlasītu krāsas no iepriekš definēta saraksta. Lai sarakstam pievienotu krāsu, rediģējiet failu serverī: public/data/colours.json
piem.
"sarkans": "#FF0000", Kad tiek atrasta krāsa vai tā tiek atlasīta nolaižamajā izvēlnē, lodziņā Izvade tiks iestatīta šī krāsa, un ziņojums tiks nosūtīts caur socket.io uz Raspnerry Pi, kas iestatīs gaismas diodes tādā pašā krāsā.
PIEZĪME. Atkarībā no gaismas diodes kvalitātes jūs varat redzēt vai neredzēt līdzīgu krāsu. Dažus ir vieglāk dublēt nekā citus
Pirmo reizi ielādējot vietni, izmantojot pašparakstītu SSL sertifikātu, jums tas būs jāatzīst pārlūkprogrammā. Jums vajadzētu redzēt drošības brīdinājumu par sertifikātu.
Balss atpazīšana
Šajā lodziņā ir mikrofona ikona. Ja noklikšķināsit uz ikonas, kad tā ir zaļa, tā sāks klausīties krāsas. Klausoties, tas kļūs sarkans. Tas klausīsies īsu laiku un pēc tam apstāsies. Noklikšķinot uz mikrofona ikonas, kad tā ir sarkana, tiks pārtraukta arī klausīšanās.
Tā kā šai vietnei ir jāpiekļūst jūsu mikrofonam, jums būs jāpiešķir tai atļauja, kad tas tiek prasīts
PIEZĪME. Šai daļai ir nepieciešams mikrofons. Es izmantoju to, kas atrodas manā tīmekļa kamerā.
Pagaidu stenogramma
Šajā lodziņā tiek izsekoti jūsu teikto vārdu minējumi, kā jūs tos sakāt.
Galīgais atšifrējums
Šajā lodziņā tiek izsekots pēdējais minējums, ko jūs teicāt.
Zināmās krāsas
Šis ir saraksts ar visām lapai zināmajām krāsām. Tas ir izveidots no faila colours.json. Ja izvēlaties kādu no šīm krāsām, lapa izrunās krāsu un iestatīs izvades krāsu.
PIEZĪME. Lai dzirdētu runu, jums ir nepieciešami skaļruņi vai austiņas
Atrastās krāsas
Šī tīmekļa lapa pašlaik atbalsta tikai krāsas saskaņošanu. Ja vārds vai vārdi, ko runājāt mikrofonā, atbilst zināmas krāsas nosaukumam vai atlasāt krāsu sarakstā Zināma krāsa, tā tiks pievienota šeit kā žurnāls.
Izeja
Šeit tiks parādīta pēdējā atrastā krāsa. Krāsu heksadecimālā vērtība (piemēram, #7cb9e8) un RGB vērtība (piemēram, 124, 185, 232) tiks parādīta kā teksts, un vidū esošā lodziņa fons tiks iestatīts uz faktisko krāsu.
Šī krāsa tiek nosūtīta arī uz Raspberry Pi, un jums vajadzētu redzēt, kā mainās LED sloksnes krāsa.
PIEZĪME: ja neredzat LED krāsas maiņu, mēģiniet restartēt pi-blaster un/vai lietotni node.js
sudo pakalpojuma pi-blaster restartēšana
sudo npm sākums
Zināmās balsis
Šajā lodziņā tiek parādīts saraksts ar zināmajām balsīm no atbalstītās runas sintēzes. Izvēloties vienu no šīm balsīm, tiks mainīta balss un valoda, ko dzirdēsit, un tā runās balss nosaukumu.
Tas arī mainīs runas atpazīšanas valodu uz to pašu, kas izvēlēta sarakstā.
9. solis: Visbeidzot
Šeit ir piemērs tam, kas jums jāredz.
Lūdzu, dariet man zināmu, ja jums ir kāda problēma, un es varu atjaunināt, ja nepieciešams.
Ieteicams:
Karstais sēdeklis: izveidojiet apsildāmu spilvenu, kas maina krāsu: 7 soļi (ar attēliem)
Karstais sēdeklis: izveidojiet apsildāmu spilvenu, kas maina krāsu: Vai vēlaties aukstās ziemas dienās saglabāt grauzdiņus? Hot Seat ir projekts, kurā tiek izmantotas divas no aizraujošākajām e -tekstila iespējām - krāsu maiņa un siltums! Mēs būvēsim sēdekļa spilvenu, kas sasilst, un, kad tas būs gatavs lietošanai, tas atklās t
Kā kodēt krāsu šķirotāju Modkit for Vex: 7 soļi
Kā kodēt krāsu šķirotāju programmā Modkit for Vex: Sveiki visi! Šajā apmācībā jūs uzzināsit, kā kodēt krāsu lodīšu šķirotāju Modkit for VexHope, kuru jūs izgatavojat un izbaudiet! Pls balsojiet par mani
Lietotņu kontrolēts krāsu mākonis: 7 soļi (ar attēliem)
Krāsu mākonis, ko kontrolē lietotne: Sveiki, šajā pamācībā es jums parādīšu, kā no grants ceļu režģa izveidot telpas apgaismojumu. Visu var kontrolēt, izmantojot WLAN, izmantojot lietotni. Http://youtu.be/NQPSnQKSuo Bet galu galā jūs to varat padarīt asprātīgu
Kā izmantot fotoelementu, lai mainītu RGB LED krāsu: 3 soļi
Kā izmantot fotoelementu, lai mainītu RGB gaismas diodes krāsu: Manai Arduino projekta daļai 01 mana sākotnējā ideja bija izmantot temperatūras sensoru, lai ieslēgtu un izslēgtu gaismas diodi, bet diemžēl mans temperatūras sensors vēl nebija atnācis, un tas mani atstāja izvēlējās no sensoriem, kas pieejami Elegoo sākuma komplektā, un domājat, vai
Krāsu noteikšanas krāsu iekārta: 4 soļi
Krāsu noteikšanas krāsu iekārta: Krāsu noteikšanas krāsu iekārta kopē krāsas ap jums un ļauj zīmēt ar tām. Ja jums ir primāro krāsu krāsa, varat izmantot RGB krāsu sensoru, lai saprastu vēlamo krāsu un to sajauktu. Bet atcerieties, izmantojiet spilgtas krāsas objektu