Cov txheej txheem:
- Kauj ruam 1: BOM
- Kauj Ruam 2: Cov Txheej Txheem Tseem Ceeb Tshwj Xeeb
- Kauj ruam 3: WIRING
- Kauj Ruam 4: Npaj RASPBERRY O.S
- Kauj Ruam 5: YUAV UA LI CAS tswj peb lub WIFI TANK nrog NODE.JS THIAB WEBSOCKET.IO
- Kauj Ruam 6: TSHUAJ TIV THAIV VIDEO STREAMING CAPABILITY
- Kauj Ruam 7: TANK PROGRAM
- Kauj Ruam 8: Pib QHIA INTERFACE THIAB STREAMING SERVER
Video: Raspberry Tank Nrog Web Interface thiab Video Streaming: 8 Cov Kauj Ruam (nrog Duab)
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
Peb yuav mus saib yuav ua li cas kuv tau pom me ntsis WiFi Tank, muaj peev xwm ntawm tej thaj chaw deb tswj lub vev xaib thiab Video Streaming.
Qhov no yog npaj los ua kev qhia uas xav tau kev paub yooj yim ntawm hluav taws xob thiab software software. Vim li no kuv tau xaiv lub Tank chassis Kit (tsis txhob luam nws siv 3D tshuab luam ntawv, tej zaum yuav tau hloov kho tom qab) thiab tag nrho ntawm 6 yam khoom suav nrog roj teeb. Ntawm software sab koj tuaj yeem ua raws cov kauj ruam ib kauj ruam txheej txheem kev teeb tsa thiab kev ua haujlwm raug khaws cia yam tsawg kawg nkaus, kev paub pib ntawm Raspberry yam tuaj yeem pab tau.
Kuv tau kwv yees 12 teev ntawm kev ua haujlwm los ntawm 0 kom npaj tau khiav lub tank. Tag nrho tus nqi 70 € rau txhua qhov khoom siv.
Kauj ruam 1: BOM
1 - DIY RC Neeg Hlau Chassis Tank - 32 (€)
www.banggood.com/DIY-RC-Robot-Chassis-Tan…
1 - Dual Channel L298N DC Tsav Tsav Tsav Tsheb - 1, 39 (€)
www.banggood.com/Dual-Channel-L298N-DC-Mo…
1 - Raspberry Pi Zero W Starter Kit - 26 (€)
amzn.eu/1ugAaMP
1 - 16 GB SD Card - 5,50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Raspberry Pi 5MP Lub Koob Yees Duab Module Webcam rau Qauv Xoom - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Power Bank 5V
1 - 9v roj teeb
Sib tov Breadboard Cable Dupont Connector
Mouse, keyboard, Saib lossis TV rau Raspberry teeb (xaiv tau, tsuas yog ua thawj zaug teeb tsa yooj yim dua)
Kauj Ruam 2: Cov Txheej Txheem Tseem Ceeb Tshwj Xeeb
Tsav
JGA25-370 DC gearmotor
Lub cav no muaj lub ntsej muag D-zoo li tus ncej.
Kev qhia tshwj xeeb
· Ua haujlwm voltage: nruab nrab ntawm 6 V thiab 18 V
· Nominal voltage: 12 V
· Kev khiav ceev dawb ntawm 12 V: 399 RPM
· Ua haujlwm pub dawb ntawm 12 V: 50 mA
· Khw tam sim no ntawm 12V: 1200 mA
· Stall torque ntawm 12V: 2.2 kg.cm
· Iav piv: 1:21
· Qhov loj me me: 19 hli
Qhov hnyav: 84g
Dual Channel L298N DC Tsav Tsav Tsav Tsheb
Dual H-choj tsav tsheb, tuaj yeem tsav ob lub cav DC lossis 4-hlau ob-theem stepper motors. Built-in TSD, los tiv thaiv los ntawm lub cav nres.
Kev qhia tshwj xeeb
· Cov khoom siv hluav taws xob: DC 2V-10V
· Teeb liab qhov hluav taws xob: DC 1.8-7V
· Ib leeg ua haujlwm tam sim no: 1.5A
· Peak tam sim no txog 2.5A
· Tsawg standby tam sim no (tsawg dua 0.1uA)
· Ua-nyob rau hauv ib qho kev coj ua hluav taws xob, lub davhlau ya nyob twg nkag tsis tau, lub cav tsis ua haujlwm
· Loj: 24.7 x 21 x 7mm
Kauj ruam 3: WIRING
Qhov no yuav yog qhov txuas kawg, tab sis WAIT, ua ntej peb xav tau los nruab qee qhov
software thiab nws yog lub tswv yim zoo los ntsuas nws nrog cov kab yooj yim dua, thaum npaj tau rov qab los ntawm no.
Peb xav tau ob lub zog sib txawv, ib qho rau lub cev muaj zog thiab ib qho rau Raspberry.
Tus tsav tsheb Dual Channel L298N DC Tsav Tsav Tsav Tsav Tsheb (qhov siab tshaj qhov hluav taws xob DC 2V-10V) tau siv los ntawm kev siv 9V roj teeb thiab Raspberry Pi siv cov qauv 5V USB accumulator.
GND tus pin ntawm tus tsav tsheb yuav txuas nrog lub roj teeb rho tawm thiab Raspberry Pi (GND). GPIO pins ntawm Raspberry Pi txuas nrog tus tsav tsheb raws li lub rooj.
Kauj Ruam 4: Npaj RASPBERRY O. S
Nov yog tus txheej txheem teeb tsa rau Raspbian cov haujlwm ua haujlwm, koj tuaj yeem pom
ntau cov ncauj lus qhia ntxaws tshawb hauv lub vev xaib, cov theem pib yog:
1. Rub iso RASPBIAN STRETCH NROG DESKTOP los ntawm
2. Format 16 GB SD Card, Kuv tau siv SD Formatter
3. Hlawv. IMG cov ntaub ntawv, Kuv tau siv Win32DiskImager
Tam sim no koj cov raspberry tau npaj rau khau raj, txuas nws mus rau USB lub zog siv hluav taws xob (5V, 2A) thiab npaj rau kev teeb tsa thawj zaug. Koj tuaj yeem ua nws hauv ob txoj hauv kev, siv cov cuab yeej sab nraud zoo li nas, keyboard thiab saib xyuas lossis siv koj lub PC thiab kev sib txuas deb ntawm Raspberry. Muaj ntau qhov kev qhia txog qhov no, ib qho yog:
Kauj Ruam 5: YUAV UA LI CAS tswj peb lub WIFI TANK nrog NODE. JS THIAB WEBSOCKET. IO
Tam sim no peb muaj kev teeb tsa tshiab ntawm peb Raspberry micro PC npaj los ua peb txoj haujlwm, yog li … peb siv dab tsi los tso cov lus txib rau lub tank?
Python yog ib qho yooj yim heev rau siv cov lus uas nquag siv los ua haujlwm Rapsberry cov xuab zeb tuaj yeem siv tau yooj yim kuj tseem cuam tshuam nrog Rapsberry cov tswv yim thiab cov pins tso tawm (GPIO)
Tab sis, kuv lub hom phiaj yog txhawm rau txuas kuv lub tank wi-fi los ntawm ib qho khoom siv (PC, xov tooj ntawm tes, ntsiav tshuaj …) siv lub vev xaib sib txuas thiab tseem tso cov vis dis aus los ntawm nws. Yog li, hnov qab Python tam sim no, thiab cia txav mus rau NODE. JS thiab SOCKET. IO.
NODE.js
Node.js (https://github.com/nodejs/node/wiki) yog qhov qhib qhov server server ua haujlwm raws li lus js. Txij li thaum kuv siv Raspberry Pi Zero (ARMv6 CPU) peb tsis tuaj yeem siv cov txheej txheem teeb tsa tsis siv neeg (npaj rau ARMv7 CPU) thiab peb yuav tsum ua nws tus kheej:
Rub tawm Nodejs hauv zos, (Kuv tau siv 7.7.2 version rau ARMv6, txheeb xyuas lwm cov ntawv ntawm no
pi@raspberry: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Thaum ua tiav, rho tawm cov ntaub ntawv compressed:
pi@raspberry: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Luam thiab Nruab cov ntaub ntawv rau hauv /user /local
pi@raspberry: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/zos/
Ntxiv qhov chaw uas peb teeb tsa nodejs rau txoj hauv kev, kho cov ntaub ntawv ".profile":
pi@raspberry: ~ $ nano ~/.profile
Ntxiv kab hauv qab no ntawm qhov kawg ntawm cov ntawv, txuag thiab tawm
PATH = $ PATH:/usr/local/bin
Tshem cov ntaub ntawv rub tawm:.
pi@raspberry: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@raspberry: ~ $ rm -r ~/node-v7.7.2-linux-armv6l
Ntaus cov lus txib hauv qab no los tshuaj xyuas nodejs kev teeb tsa:
pi@raspberry: ~ $ node -v
pi@raspberry: ~ $ npm -v
Koj yuav tsum nyeem v7.7.2 thiab v4.1.2 raws li cov lus teb.
Yog tias txhua yam mus tau zoo, tsim daim nplaub tshev tshiab los tuav koj cov ntaub ntawv nodejs:
pi@raspberry: ~ $ mkdir nodehome
Txav mus rau hauv daim nplaub tshev tshiab:
pi@raspberry: ~ $ cd nodehome
Txhim kho cov qauv ntxiv uas yuav tsum tau tswj GPIO hauv txoj hauv kev yooj yim, ON thiab OFF:
pi@raspberry: ~ $ npm nruab onoff
Tam sim no yog lub sijhawm los sim peb thawj qhov haujlwm "Blink.js", qhov txiaj ntsig yuav yog … lub ntsais ntsais LED
pi@raspberry: ~ $ nano blink.js
Muab tshuaj txhuam cov cai hauv qab no, txuag thiab tawm:
var Gpio = xav tau ('onoff'). Gpio; // suav nrog onoff
var LED = tshiab Gpio (3, 'tawm'); // siv GPIO 3
var blinkInterval = setInterval (blinkLED, 250);
// ntsais LED txhua 250ms
muaj nuj nqi blinkLED () {// muaj nuj nqi kom pib ntsais muag
yog
(LED.readSync () === 0) {// xyuas lub xeev tus pin, yog tias lub xeev yog 0 (lossis tawm)
LED.writeSync (1);
// teeb lub xeev tus pin rau 1 (tig LED rau)
lwm yam {
LED.writeSync (0);
// teeb lub xeev tus pin rau 0 (tua LED tawm)
}
}
muaj nuj nqi endBlink () {// muaj nuj nqi kom tsis txhob ntsais muag
clearInterval (blinkInterval); // Tsis txhob ntsais muag ib ntus
LED.writeSync (0); // Tua LED tawm
LED.unexport (); // Unexport GPIO pub dawb cov peev txheej
}
setTimeout (endBlink, 5000); // nres ntsais muag tom qab 5 vib nas this
Hlau ib LED, tus tiv thaiv (200ohms) raws li qhia hauv cov phiaj xwm thiab ua haujlwm:
pi@raspberry: ~ $ node blink.js
Node yog npaj txhij.
SOCKET. IO
WebSocket yog lub khoos phis tawj sib tham sib tham, raws TCP kev sib txuas, nws muab tus programmer los tsim cov server thiab cov neeg siv khoom. Tus neeg siv khoom txuas rau lub server thiab tso tawm thiab tau txais cov lus mus thiab los ntawm tus neeg rau zaub mov. Kev siv WebSocket rau Node.js hu ua Socket.io (https://socket.io/).
Nruab socket.io:
pi@raspberry: ~ $ npm nruab socket.io --save
Tsiv mus rau hauv nodejs tsev, tsim ua ntej:
pi@raspberry: ~ $ cd nodehome
Thiab tsim cov ntawv tshiab "pej xeem":
pi@raspberry: ~ $ mkdir pej xeem
Tsim tus qauv tshiab web server, hu nws "webserver.js"
pi@raspberry: ~ $ nano webserver.js
Muab tshuaj txhuam cov cai hauv qab no, txuag thiab tawm:
var http = xav tau ('http'). createServer (tus tuav); // xav tau http server, thiab tsim server nrog ua haujlwm ua haujlwm ()
var fs = xav tau ('fs'); // xav tau fileystem module
http.listen (8080); // mloog qhov chaw nres nkoj 8080
muaj nuj nqi handler (req, res) {// tsim server
fs.readFile (_ dirname + '/public/index.html', muaj nuj nqi (yuam kev, cov ntaub ntawv) {// nyeem
cov ntaub ntawv index.html hauv cov nplaub tshev pej xeem
yog (yuam kev) {
res.writeHead (404, {'Cov ntsiab lus-Hom': 'ntawv/html'}); // tso saib 404 ntawm qhov ua yuam kev
rov res.end ( 404 Tsis yog
Pom );
}
res.writeHead (200, {'Cov ntsiab lus-Hom': 'ntawv/html'}); // sau HTML
res.write (cov ntaub ntawv); // sau cov ntaub ntawv
los ntawm index.html
rov res.end ();
});
}
Lub vev xaib no yuav mloog koj li Raspberry chaw nres nkoj 8080 thiab muab cov ntaub ntawv rau txhua lub vev xaib uas txuas nrog nws. Tam sim no peb yuav tsum tsim qee yam los tuav thiab muab rau peb cov neeg siv khoom: Tsiv sab hauv "pej xeem" nplaub tshev: pi@raspberry: ~ $ cd pej xeem
Tsim cov ntaub ntawv html tshiab “index.html”:
pi@raspberry: ~ $ nano index.html
Muab tshuaj txhuam tus lej los ntawm txuas "HelloWorld.txt", txuag thiab tawm mus.
Tsiv sab hauv nodejs nplaub tshev "nodehome":
pi@raspberry: ~ $ cd nodehome
Pib HTTP web server:
pi@raspberry: ~ $ node webserver.js
Qhib lub vev xaib hauv qhov browser siv https:// Raspberry_IP: 8080/(hloov Raspberry_IP nrog koj tus IP)
Kauj Ruam 6: TSHUAJ TIV THAIV VIDEO STREAMING CAPABILITY
Muaj ntau txoj hauv kev los siv kev tshaj tawm video ntawm Raspberry, yooj yim dua
txoj kev kuv tau pom txog tam sim no, uas yog kev ua tau zoo thiab tuaj yeem koom ua ke hauv lub vev xaib sib tham yog lub hauv paus ntawm txoj haujlwm los ntawm Miguel Mota:
miguelmota.com/blog/raspberry-pi-camera-bo…
Ua tsaug Miguel! Los ntawm nws blog cov no yog cov kauj ruam:
Nruab cov khoom siv libjpeg8 thiab cmake:
pi@raspberry: ~ $ sudo apt-tau nruab libjpeg8
pi@raspberry: ~ $ sudo apt-tau nruab libjpeg8-dev
pi@raspberry: ~ $ sudo apt-tau nruab cmake
Rub tawm mjpg-streamer nrog raspicam plugin:
pi@raspberry: ~ $ git clone
github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer
Hloov cov npe:
pi@raspberry: ~ $ cd ~/mjpg-streamer/mjpg-streamer-sim
Sau:
pi@raspberry: ~ $ ua kom txhua tus huv
Hloov qub mjpg-streamer:
pi@raspberry: ~ $ sudo rm -rf /opt /-j.webp
pi@raspberry: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-sim
/opt/mjpg-tso tawm
pi@raspberry: ~ $ sudo rm -rf ~/mjpg -streamer
Tsim cov ntawv tshiab "start_stream.sh", luam thiab muab tshuaj txhuam los ntawm daim ntawv "start_stream.txt".
Ua kom nws ua tiav (tsim cov ntawv sau hauv plhaub):
pi@raspberry: ~ $ chmod +x start_stream.sh
Pib Streaming server:
pi@raspberry: ~ $./start_stream.sh
Qhib lub vev xaib hauv qhov browser siv https:// Raspberry_IP: 9000 (hloov Raspberry_IP nrog koj tus IP)
Kauj Ruam 7: TANK PROGRAM
Txhua yam tau npaj tiav, tam sim no peb yuav tsum tsim peb lub vev xaib los tswj lub tank (index.html) thiab peb lub vev xaib kom mloog peb cov lus txib (webserver.js). Yog li, tsuas yog hloov cov ntaub ntawv pom txog tam sim no (tsuas yog piv txwv los sim lub kaw lus) nrog txuas nrog webserver.txt thiab index.txt.
Kauj Ruam 8: Pib QHIA INTERFACE THIAB STREAMING SERVER
Txhawm rau pib cov kev pabcuam qhib ob lub davhlau ya nyob twg windows thiab khiav cov lus txib no:
ntawm nodehome/webserver.js
./nodehome/start_stream.sh
Qhib lub vev xaib hauv qhov browser siv https:// Raspberry_IP: 8080 (hloov Raspberry_IP nrog koj tus IP)
Pom zoo:
Tsim Koj Tus Kheej Hauv Is Taws Nem Kev Tswj Video-Streaming Robot Nrog Arduino thiab Raspberry Pi: 15 Cov Kauj Ruam (nrog Duab)
Tsim Koj Tus Kheej Kev Tswj Xyuas Internet-Tshaj Cov Neeg Hlau Nrog Arduino thiab Raspberry Pi: Kuv yog @RedPhantom (aka LiquidCrystalDisplay / Itay), tus menyuam kawm ntawv 14 xyoos los ntawm cov neeg Ixayees kawm hauv Max Shein Junior High School rau Kev Tshawb Fawb Qib Siab thiab lej. Kuv tab tom ua txoj haujlwm no rau txhua tus kom kawm paub thiab qhia tawm! Koj yuav muaj
Qhov muag tsis pom kev Nrog ESP8266, Google Tsev thiab Openhab Kev Sib Koom thiab Kev Tswj Xyuas Web: 5 Cov Kauj Ruam (nrog Duab)
Qhov muag tsis pom kev Nrog ESP8266, Google Tsev thiab Openhab Kev Sib Koom thiab Kev Tswj Xyuas Web: Hauv Cov Lus Qhia no kuv qhia koj li cas kuv ntxiv kev siv tshuab rau kuv qhov muag tsis pom. Kuv xav kom muaj peev xwm ntxiv thiab tshem tawm qhov kev siv tshuab nws, yog li txhua qhov kev teeb tsa yog clip ntawm.Qhov tseem ceeb yog: Stepper motor Stepper tsav tswj bij ESP-01 Iav thiab teeb tsa
Cov Duab Duab Duab thiab Cov Duab 1: 4 Cov Kauj Ruam (nrog Duab)
Cov Duab Duab Cubes thiab Cov Duab 1: Thaum sim nrog qee cov ntoo ntoo thiab cov duab los qhia, kuv pom ob peb txoj hauv kev los ua cov voos thiab lwm yam duab los ntawm cov khoom siv yooj yim. Los ntawm kev muab cov no los ua Cov Ntawv Qhia, Kuv vam tias yuav txhawb nqa kev ua si thiab kev kawm. Kev hloov pauv ntawm qhov kev qhia no
Cov Duab Duab Duab Duab, WiFi Txuas - Raspberry Pi: 4 Cov Kauj Ruam (nrog Duab)
Cov Duab Duab Duab Duab, WiFi Txuas - Raspberry Pi: Nov yog txoj hauv kev yooj yim heev thiab tus nqi qis mus rau cov duab thav duab digital - nrog qhov zoo ntawm kev ntxiv /tshem cov duab hla WiFi ntawm 'nyem thiab luag' siv (pub dawb) xa cov ntaub ntawv . Nws tuaj yeem siv tau los ntawm qhov me me £ 4.50 Pi Zero. Koj tseem tuaj yeem hloov pauv
Kub thiab Vaum Zaub thiab Sau Cov Ntaub Ntawv Nrog Arduino thiab Ua: 13 Kauj Ruam (nrog Duab)
Kub thiab Vaum Zaub thiab Sau Cov Ntaub Ntawv Nrog Arduino thiab Ua: Intro: Qhov no yog Txoj Haujlwm uas siv Arduino board, Sensor (DHT11), lub khoos phis tawj Windows thiab Kev Ua Haujlwm (rub tawm dawb) program los tso saib Kub, Cov ntaub ntawv vaum hauv digital thiab bar kab ntawv, tso tawm lub sijhawm thiab hnub tim thiab suav lub sijhawm suav