Përmbajtje:
- Hapi 1: Pajisjet
- Hapi 2: Vendosja e Raspberry Pi
- Hapi 3: Pi-blaster
- Hapi 4: Vendosja e Kodit Shembull
- Hapi 5: Krijoni një Certifikatë SSL të Vetë -Nënshkruar
- Hapi 6: Instalimi i qarkut
- Hapi 7: Kodi i serverit
- Hapi 8: Kodi i faqes në internet
- Hapi 9: Së fundi
Video: Ngjyra-pi: 9 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:28
Ky udhëzues tregon se si të përdorni një Raspberry Pi për të kontrolluar me zë një shirit LED RGB, përmes një faqe në internet, duke përdorur ndërfaqet e Web Speech API për SpeechRecognition dhe SpeechSynthesis.
Ky shembull tregon se si
- Krijoni një uebfaqe bazë duke përdorur Node.js mbi
- Përdorni Ndërfaqet Web Web Speech API për SpeechRecognition dhe SpeechSynthesis.
- Përdorni kuadrin Cylon.js për të kontrolluar një shirit LED RGB në një Raspberry Pi
- Komunikoni përmes WSS (bazat e sigurta të uebit) nga uebfaqja te Cylon.js për të kontrolluar ngjyrën për LED
shënim
- Ju do të keni nevojë për altoparlantë ose kufje për të dëgjuar sintetizuesin e të folurit
- Ju do të duhet të jepni qasje në mikrofonin tuaj që njohja e zërit të funksionojë
- Për shkak se kjo qasje në mikrofonin tuaj, faqja duhet të ekzekutohet nën
- Cylon-api-socketio e bibliotekës nuk mbështet https në këtë kohë. Kam një kërkesë tërheqëse që pret të bashkohet, por deri atëherë ju duhet të zëvendësoni /node_modules/cylon-api-socketio/lib/api.js me skedarin në këtë depo
- pi-blaster është i nevojshëm për ta bërë këtë punë.
Hapi 1: Pajisjet
- Raspberry Pi - Kam përdorur një Raspberry Pi 2B që e kisha vendosur, por ju mund të merrni një Kit Raspberry Pi 3 Starter për rreth 100 CAD
- RGB LED Strip Light - Po luaja me Minger LED Strip Light 32.8ft/10M 600leds RGB SMD 5050. Kjo vjen me një kontrollues dhe një furnizim me energji elektrike për rreth 40 CAD
- Barrel Jack Connector - Bleva një nga dyqani im elektronik lokal, diçka si kjo. Vetëm sigurohuni nëse i përshtatet furnizimit tuaj me energji elektrike
- Lidhës Jumper / Wire - Unë kisha disa kabllo lidhës Femër në Mashkull dhe disa tela të lidhur 22 matës të fortë të shtrirë përreth
- Breadboard Solderless Prototype PCB Board - diçka si kjo
- 3 rezistente 10 xΩ
- 3 MOSFET me kanal N për kontrollin e LED -ve - Bleva disa IRL3303 nga dyqani im elektronik lokal. Importantshtë e rëndësishme që tensioni i pragut të portave të jetë maksimal. 3.3V kështu që mund të drejtohet nga kunjat RPi; zakonisht shënohet me një 'L' (Niveli Logjik) në emër.
Hapi 2: Vendosja e Raspberry Pi
Sistemi Operativ
Unë zakonisht përdor ndërtimin më të fundit Raspbian. Shkarkoni imazhin dhe shkruani atë në kartën SD. Nëse jeni duke përdorur një kompjuter Windows, mund të përdorni Win32 Disk Imager për të shkruar imazhin në Kartën SD.
Nyja.js
Instaloni versionin më të fundit të Node.js. Në kohën e shkrimit unë jam duke përdorur 8.9.1
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get instaloni nodejs
Instaloni Git
sudo apt-get install git
Hapi 3: Pi-blaster
pi-blaster mundëson PWM në kunjat GPIO që ju kërkoni nga një Raspberry Pi. Teknika e përdorur është jashtëzakonisht efikase: nuk përdor CPU dhe jep impulse shumë të qëndrueshme.
Ky modulim i gjerësisë së pulsit lejon që Raspberry Pi të kontrollojë se sa të ndritshëm janë secili nga kanalet e Kuq, të Gjelbër dhe Blu për shiritin LED.
Së pari, klononi depon
cd /opt /
sudo git klon https://github.com/sarfata/pi-blaster.git sudo chown -R pi: pi pi-blaster
Pastaj, ndërtoni dhe instaloni
cd/opt/pi-blaster./autogen.sh &&./konfiguro && bëj && sudo make install
Së fundi, konfiguroni cilat kunja doni të përdorni
Nën llogarinë rrënjësore, ose duke përdorur sudo, krijoni dhe modifikoni skedarin
/etc/default/pi-blaster
Shtoni rreshtat e mëposhtëm
DAEMON_OPTS =-gpio 23, 24, 25
Këto kunja gpio duhet të përputhen me kunjat që po lidhni me shiritin tuaj LED.
SH NOTNIM: Ekziston një ndryshim midis GPIO dhe numrit të pin. Ky shembull përdor sa vijon
LED - Blu, GPIO -23, Pin - 16
LED - E kuqe, GPIO -24, Pin - 18 LED - E gjelbër, GPIO -25, Pin - 22
Ndryshime shtesë
Filloni pi-blaster
shërbimi sudo fillimi i pi-blaster
Rinisni pi-blaster
rifillimi i shërbimit sudo pi-blaster
Ndaloni pi-blaster
shërbimi sudo pi-blaster stop
Filloni pi-blaster automatikisht në kohën e nisjes
sudo systemctl aktivizoni pi-blaster
Paralajmërime dhe vërejtje të tjera
Kunjat që përdoren nga pi-blaster do të konfigurohen si dalje. Mos e lidhni diçka me një hyrje ose mund ta shkatërroni! Ky demon përdor gjeneratorin hardware PWM të mjedrës pi për të marrë kohë të sakta. Kjo mund të ndërhyjë në daljen e kartës tuaj të zërit.
Hapi 4: Vendosja e Kodit Shembull
Klononi kodin shembull
1. Krijoni një dosje bazë për tu instaluar
cd /opt
sudo mkdir com.jonhaydock sudo chown pi: pi com.jonhaydockcd com.jonhaydock
2. Klononi depon e shembullit git
git klon
ose
git klon [email protected]: haydockjp/color-pi.git
3. Instaloni varësitë
cd ngjyra-pi
instaloni npm
Kjo mund të zgjasë 2-3 minuta
4. Ky projekt duhet të komunikojë përmes HTTPS dhe WSS. Në këtë kohë cylon-api-socketio nuk mbështet lidhjet SSL. Ekziston një kërkesë e hapur tërheqëse për të shtuar këtë mbështetje, por derisa të bashkohet, ekziston një skedar patch në këtë depo. Drejtoni komandën e mëposhtme pas instalimit npm
git checkout node_modules/cylon-api-socketio/lib/api.js
Hapi 5: Krijoni një Certifikatë SSL të Vetë -Nënshkruar
1. Krijoni një skedar privat të çelësit
cd /opt/com.jonhaydock/colour-pi/certe
openssl genrsa-jashtë ngjyrës-pi-kyç.pem 2048
2. Krijoni një CSR (Kërkesë për nënshkrimin e certifikatës)
openssl req -i ri -fjala-ngjyra-pi-kyç.pem-jashtë ngjyrës-pi-csr.pem
Në këtë pikë do t'ju kërkohet disa informacione për kërkesën e certifikatës. Meqenëse kjo është një certifikatë e vetë -nënshkruar, varet nga ju se sa saktësisht i plotësoni detajet. Këtu është një shembull
Emri i Shtetit (kodi me 2 shkronja) [AU]: CA
Emri i Shtetit ose Provincës (emri i plotë) [Disa Shtete]: Emri i Lokalitetit të British Columbia (p.sh., qyteti) : Emri i Organizatës Vancouver (p.sh., kompania) [Internet Widgits Pty Ltd]: Emri i Njësisë Organizative Color Pi (p.sh., seksioni) : Emri i zakonshëm (p.sh. serveri FQDN ose emri YT) : adresa e postës elektronike color-pi : [email protected]
Një fjalëkalim sfidues :
Emri i një kompanie opsionale :
Në këtë shembull, thjesht shtypni kthimin për ta lënë fjalëkalimin e sfidës bosh
3. Gjeneroni certifikatën
openssl x509 -req -ditë 1095 -në ngjyrë-pi-csr.pem -sinkey ngjyra-pi-kyç.pem-jashtë ngjyrës-pi-cert.pem
4. Për siguri shtesë ne gjithashtu do të krijojmë një skedar Diffie Hellman Parameters
openssl dhparam -jashtë dh_2048.pem 2048
Kjo mund të zgjasë 15-20 minuta
Hapi 6: Instalimi i qarkut
Fuqizimi i shiritit LED
Shiriti LED mundësohet nga 12 volt. Raspberry Pi është vetëm me kapacitet 3.3v ose 5v dhe nuk është i aftë të dalë diku pranë amperit të nevojshëm për të drejtuar kaq shumë LED.
Isshtë e rëndësishme të mos lidhni furnizimin me energji 12 volt me Raspberry Pi. Transistorët MOSFET me kanale N përdoren për të ndarë 3.3v në kunjat RPi dhe 12v të furnizimit me energji LED.
MOSFET ka tre kunja Gate, Drain dhe Source. Nëse nuk jeni të sigurt se cila është Google për fletën e të dhënave të tranzistorit që po përdorni, p.sh. IRL3303
Ne do të lidhim Pin Raspberry Pi me Portën, tela LED me Drain dhe një bazë të përbashkët me Burimin. Kur Kunja shkon lartë, tensioni midis Kullimit dhe Burimit do të aktivizojë Portën dhe do të lidhë portën me Burimin.
Ne gjithashtu do të vendosim Rezistorë 10kΩ përtej Portës dhe Burimit, në mënyrë që kur pini RPi është i lartë, ne mund të mbrojmë pinin duke zvogëluar rrymën që kalon nëpër të.
Kryeni hapat e ardhshëm në rrezikun tuaj. Unë nuk mbaj përgjegjësi për asgjë që mund të shkojë keq
Ekziston një imazh tërheqës dhe një fotografi e qarkut aktual më lart.
Unë do të rekomandoja ta bëni këtë ndërsa energjia është e fikur për RPi dhe shiritin LED
Vendosni qarqet e tranzistorit, një për kanalin e ngjyrave
- Futni një nga transistorët në tabelën e bukës siç tregohet në diagram
- Vendosni një nga Rezistencat 10kΩ në të gjithë Kullimin dhe kunjat e Burimit të tranzistorit. Kjo është kunja e parë dhe e fundit
- Përdorni një tel për të lidhur kunjin Burimi (kunja e fundit) me tokën në dërrasën e bukës
- Përsëritni hapat 1 - 3 edhe dy herë të tjera, në mënyrë që të keni tre grupe - një për ngjyrë (E kuqe, jeshile dhe blu)
Lidhni kunjat RPi me tabelën
- Lidhni Pin 16 me Pin Gate (kunja e parë) e tranzistorit të parë - Ky do të jetë kanali Blue LED
- Lidhni Pin 18 me Gate Pin (kunja e parë) e tranzistorit të parë - Ky do të jetë kanali LED i Kuq
- Lidhni Pin 20 me njërën nga linjat Ground në anën e dërrasës së bukës
- Lidhni Pin 22 me Pin Gate (kunja e parë) e tranzistorit të parë - Ky do të jetë kanali LED Green
Unë kam përdorur ngjyrat e telave që përputhen me LED -të: Blu, e Kuqe dhe E Gjelbër. Unë kam përdorur të zezën për tokën
Lidhni kapakun e fuçisë
- Lidhni një tel të bardhë në fundin e prizës së fuçisë
- Lidhni një tel të zi në fund të prizës së fuçisë
- Lidhni tela të zezë me të njëjtën linjë terreni në dërrasën e bukës me të cilën ishte lidhur RPi Pin 20
- Lidhni tela të bardhë me vijën + në tabelën e bukës
Lidhja e shiritit LED
Shiriti im LED erdhi me një lidhës që ishte me një madhësi mjaft të mirë saqë mund të lidhej përkohësisht në dërrasën e bukës. Unë e shtyva lidhësin në tabelën e bukës dhe e lidha atë në provën e qarkut.
- Transistori i parë i lidhur me Pin 16. Unë kalova një tel blu nga kunja e kullimit (kunja e mesme) në tela blu në lidhësin e shiritit LED
- Transistori i dytë i lidhur me Pin 18. Unë kalova një tel të kuq nga
Kulloni
kunja (kunja e mesme) në telin e kuq në lidhësin e shiritit LED
- Transistori i tretë i lidhur me Pin 22. Unë vrapova një tel të gjelbër nga
Kulloni
kunja (kunja e mesme) në tela të gjelbër në lidhësin e shiritit LED
- Më në fund, unë drejtova një tel të bardhë nga vija + në dërrasën e bukës që ishte e lidhur me prizën e fuçisë, me tela të bardhë në lidhësin e shiritit LED.
Fuqia
Pas kontrollimit të qarkut, duhet të jeni të mirë për të ndezur Raspberry Pi dhe futni furnizimin 12v në prizën e fuçisë.
Hapi 7: Kodi i serverit
Ekzekutimi i kodit nga ana e serverit
cd /opt/com.jonhaydock/colour-pi
sudo npm fillimi
Kjo do të fillojë serverin në internet dhe do të fillojë të dëgjojë kërkesat HTTPS dhe WSS.
SHENIM: Mos harroni që së pari të përdorni pi-blaster
Variablat e Mjedisit
Porta e parazgjedhur e faqes në internet është 443, por ju mund ta anashkaloni këtë duke vendosur një ndryshore të mjedisit para fillimit të kodit. Për shembull
eksport COLOUR_PI_PORT = 2443
Porta e paracaktuar e prizës në internet është 1443, por ju mund ta anashkaloni këtë duke vendosur një ndryshore të mjedisit para se të filloni kodin. Për shembull
eksport COLOUR_PI_WSS_PORT = 3443
Shënim: Meqenëse priza në internet trajtohet nga cylon.js dhe jo nga uebfaqja kryesore, këto duhet të jenë në porte të ndryshme
Kunjat që përdoren për blu (kunja 16), jeshile (kunja 18) dhe e kuqe (kunja 22) gjithashtu mund të anashkalohen. Për shembull
eksport COLOUR_PI_PIN_BLUE = 36
eksport COLOUR_PI_PIN_RED = 38 eksport COLOUR_PI_PIN_GREEN = 40
Shënim: Këto duhet të përputhen me kunjat fizike që keni përdorur. Nëse i ndryshoni këto, do t'ju duhet gjithashtu azhurnimi i GPIO-ve të përcaktuara në skedarin/etc/default/pi-blaster. Për shembull
DAEMON_OPTS =-gpio 16, 20, 21
Kodi kryesor i serverit mund të gjendet në skedarin app.js. Ky skedar fillon serverin e uebit HTTPS dhe gjithashtu, përmes kornizës Cylon.js, përdor socket.io për të dëgjuar kërkesat e prizave në internet në një port të veçantë.
Për të hyrë në faqen e internetit, duhet të hapni një shfletues uebi në kompjuterin tuaj kryesor (këtë e kam testuar vetëm në Chrome) dhe të përdorni adresën IP të Raspberry Pi, p.sh.
10.0.1.2/
Ju mund të zbuloni adresën tuaj IP nga rreshti i komandës Raspberry Pi.
ifconfig
Serveri në internet do të shërbejë çdo përmbajtje nën dosjen publike. Deshtë e paracaktuar të shfaqet faqja index.html.
Cylon.js krijon një pikë përfundimtare që mund ta lidhni Socket.io.
10.0.1.2:1443/api/robots/colour-pi
Mund të dërgoni një mesazh set_colour përmes prizës për të vendosur vlerat e Kuqe, të Gjelbër dhe Blu
pajisje.emit ('set_colour', r, g, b)
E cila thërret komandën set_colour, e cila thërret funksionin setColour në app.js. Ky funksion përcakton nivelet e ndriçimit, për secilën prej vlerave R, G dhe B, midis 0 dhe 255. Ku 0 është i fikur dhe 255 është plotësisht i ndezur.
p.sh.
E kuqe r = 255, g = 0, b = 0
E gjelbër r = 0, g = 255, b = 0 Blu r = 0, g = 0, b = 255 E bardhë r = 255, g = 255, b = 255 E zezë / Off r = 0, g = 0, b = 0
Hapi 8: Kodi i faqes në internet
Të përgjithshme
Faqja e internetit përdor njohjen e zërit për të zgjedhur ngjyrat nga një listë e paracaktuar. Për të shtuar një ngjyrë në listë, modifikoni skedarin në server: public/data/colours.json
p.sh.
"e kuqe": "#FF0000",
Kur të gjendet një ngjyrë, ose të zgjidhet nga zbritja, kutia Output do të vendoset në atë ngjyrë dhe një mesazh do të dërgohet përmes socket.io në Raspnerry Pi, i cili do të vendosë LED -të në të njëjtën ngjyrë.
SHENIM: në varësi të asaj se sa të mira janë LED -et tuaja mund të shihni ose jo një ngjyrë të ngjashme. Disa janë më të lehta për tu kopjuar se të tjerat
Kur ngarkoni për herë të parë faqen e internetit, pasi jeni duke përdorur një certifikatë SSL të vetë-nënshkruar, do t'ju duhet ta pranoni këtë në shfletuesin. Ju duhet të shihni një paralajmërim të sigurisë në lidhje me certifikatën.
Njohja e zërit
Kjo kuti ka një ikonë të mikrofonit. Nëse klikoni ikonën kur është e gjelbër, ajo do të fillojë të dëgjojë ngjyrat. Ndërsa dëgjon, do të bëhet e kuqe. Do të dëgjojë për një kohë të shkurtër dhe më pas do të ndalet. Klikimi i ikonës së mikrofonit kur është i kuq gjithashtu do ta ndalojë atë të dëgjojë.
Meqenëse kjo faqe duhet të ketë qasje në mikrofonin tuaj, do t'ju duhet t'i jepni leje kur t'ju kërkohet
SH NOTNIM: Ju keni nevojë për një mikrofon për këtë pjesë. Unë përdor atë në kamerën time në internet.
Transkript i përkohshëm
Kjo kuti po ndjek supozimet e fjalëve që po thoni, siç po i thoni.
Transkripti përfundimtar
Kjo kuti gjurmon supozimin përfundimtar se çfarë keni thënë.
Ngjyrat e njohura
Kjo është një listë e të gjitha ngjyrave për të cilat flet faqja. Isshtë krijuar nga skedari colours.json. Nëse zgjidhni një nga këto ngjyra, faqja do të flasë për ngjyrën dhe do të vendosë ngjyrën e daljes.
SH NOTNIM: Ju keni nevojë për altoparlantë ose kufje për të dëgjuar fjalimin
Ngjyrat e gjetura
Kjo faqe në internet aktualisht mbështet vetëm përputhjen e ngjyrës. Nëse fjala ose fjalët që folët në mikrofon përputhen me emrin e një ngjyre të njohur, ose zgjidhni një ngjyrë nga lista e Ngjyrave të Njohura, ajo do të shtohet këtu si regjistër.
Dalje
Ngjyra e fundit e gjetur do të shfaqet këtu. Vlera Color Hex (p.sh. #7cb9e8) dhe vlera RGB (p.sh. 124, 185, 232) do të shfaqen si tekst dhe sfondi i kutisë në mes do të vendoset në ngjyrën aktuale.
Kjo ngjyrë i dërgohet edhe Raspberry Pi dhe duhet të shihni që ngjyra e shiritit LED ndryshon.
SH NOTNIM: nëse nuk shihni ndryshimin e ngjyrës LED, provoni të rinisni pi-blaster dhe/ose aplikacionin node.js
rifillimi i shërbimit sudo pi-blaster
sudo npm fillimi
Zërat e njohur
Kjo kuti shfaq një listë të "Zërave të njohur" nga Sinteza e të folurit të mbështetur. Zgjedhja e njërit prej këtyre zërave do të ndryshojë zërin dhe gjuhën që do të dëgjoni, dhe do të flasë emrin e zërit.
Gjithashtu do të ndryshojë gjuhën e njohjes së të folurit për të qenë e njëjtë me atë të zgjedhur në listë.
Hapi 9: Së fundi
Këtu është një shembull i asaj që duhet të shihni.
Ju lutem më tregoni nëse keni ndonjë problem dhe unë mund të azhurnoj sipas nevojës.
Recommended:
Selia e nxehtë: Ndërtoni një jastëk të ndezur me ngjyra që ndryshon: 7 hapa (me fotografi)
Selia e nxehtë: Ndërtoni një jastëk të ndezur që ndryshon ngjyrën: Dëshironi të mbani veten të thekur në ditët e ftohta të dimrit? Hot Seat është një projekt që përdor dy nga mundësitë më emocionuese të e -tekstilit - ndryshimi i ngjyrës dhe nxehtësia! Ne do të ndërtojmë një jastëk të sediljes që ngroh dhe kur të jetë gati për të shkuar do të zbulojë
Reja me ngjyra e kontrolluar nga aplikacioni: 7 hapa (me fotografi)
Reja me ngjyra e kontrolluar nga aplikacioni: Përshëndetje, në këtë udhëzues ju tregoj se si të ndërtoni një ndriçim të dhomës nga një rrjetë zhavorri. E gjithë gjëja mund të kontrollohet përmes WLAN me një aplikacion. Por në fund mund ta bësh të zgjuar
Ngjyra e lehtë e bazuar në pjerrësi Ndryshimi i llambës së kubit të Rubikut pa tel: 10 hapa (me fotografi)
Ngjyra e lehtë e bazuar në pjerrësi Ndryshimi i llambës kubike të Rubikut pa tel: Sot do të ndërtojmë këtë llambë të mrekullueshme të Rubikut me kubike, e cila ndryshon ngjyrën në bazë të anës së sipërme. Kubi funksionon me një bateri të vogël LiPo, të ngarkuar nga një kabllo standarde micro-usb, dhe, në testimin tim, ka një jetëgjatësi të baterisë prej disa ditësh. Kjo
Mini dritë paralajmëruese rrotulluese me dy ngjyra me ngjyra: 6 hapa
Mini Dritë Paralajmëruese e Fenerit Rrotullues me Ngjyra të Dyfishta: Në këtë Udhëzues, ne do të krijojmë një dritë mini fener. E dini, një nga ato dritat rrotulluese të modës së vjetër që ata përdorën për të vënë në pajisjet e ndërtimit para se LED-et të bëheshin të mëdha? Po Nje nga ato. Ky do të jetë relativisht i thjeshtë dhe i vogël
Skulpturë LED me ngjyra të ndezura me shumë ngjyra: 4 hapa
Skulpturë me ngjyra të lehta LED që vezullon: Ky udhëzues përdor një shandan Ikea dhe LED me shumë ngjyra që shfaqen në mermerë të mëdhenj. E gjithë kjo është e fiksuar në një bazë pishe të punuar me dorë. Kështu e bëra