Բովանդակություն:
- Քայլ 1: BOM
- Քայլ 2: Հիմնական բաղադրիչների բնութագրերը
- Քայլ 3: ԼՐԱՈՄ
- Քայլ 4. RASPBERRY O.S
- Քայլ 5. Ինչպես վերահսկել մեր WIFI տանկը NODE.JS- ով և WEBSOCKET.IO- ով
- Քայլ 6. ՎԻԴԵՈ ԳՈՐՈ ՀՆԱՐԱՎՈՈԹՅԱՆ ԼՐԱՈՄ
- Քայլ 7: ՏԱՆԿԻ ՐԱԳԻՐ
- Քայլ 8. ՍԿՍԵԼ ՎԵՐԱՀՍԿՈՈԹՅԱՆ ՄԻTERԱFԳԱՅԻՆ ԵՎ STREAMING սերվեր
Video: Ազնվամորու բաք վեբ ինտերֆեյսով և վիդեո հոսքով ՝ 8 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Մենք կտեսնենք, թե ինչպես եմ ես հասկացել մի փոքրիկ WiFi տանկ, որը ունակ է հեռակառավարվող վեբ կառավարման և վիդեո հոսքի:
Սա նախատեսված է լինելու ձեռնարկ, որը պահանջում է էլեկտրոնային և ծրագրային ծրագրավորման հիմնական գիտելիքներ: Այդ պատճառով ես ընտրել եմ Tank chassis Kit- ը (3D տպիչով այն տպելու փոխարեն, կարող է լինել ավելի ուշ արդիականացում) և ընդհանուր առմամբ 6 բաղադրիչ, ներառյալ մարտկոցները: Softwareրագրային ապահովման կողմից դուք կարող եք քայլ առ քայլ հետևել տեղադրման գործընթացին և ծրագրավորմանը `նվազագույնի հասցնելով: Ազնվամորու իրերի հիմնական իմացությունը կարող է օգնել:
Ես գնահատել եմ 12 ժամ աշխատանք 0 -ից մինչև տանկը գործարկելու պատրաստ: Ընդհանուր արժեքը `70 € բոլոր բաղադրիչների համար:
Քայլ 1: BOM
1 - DIY RC Robot Chassis Tank - 32 (€)
www.banggood.com/DIY-RC-Robot-Chassis-Tan…
1 - Երկակի ալիք L298N DC շարժիչային վարորդի տախտակ - 1, 39 (€)
www.banggood.com/Dual-Channel-L298N-DC-Mo…
1 - Raspberry Pi Zero W Starter Kit - 26 (€)
amzn.eu/1ugAaMP
1 - 16 ԳԲ SD քարտ - 5, 50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Raspberry Pi 5MP Camera Module Webcam Model Zero- ի համար - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Power Bank 5V
1 - 9 վ մարտկոց
Խառը Breadboard Cable Dupont միակցիչ
Մկնիկ, ստեղնաշար, մոնիտոր կամ հեռուստացույց ազնվամորու տեղադրման համար (ըստ ցանկության, միայն առաջին կարգավորումն ավելի հեշտ դարձնելու համար)
Քայլ 2: Հիմնական բաղադրիչների բնութագրերը
Շարժիչ
JGA25-370 DC փոխանցման շարժիչ
Այս շարժիչն ունի D- ձևի ելքային լիսեռ:
Տեխնիկական պայմաններ
· Աշխատանքային լարումը `6 Վ -ից 18 Վ -ի սահմաններում
· Անվանական լարումը `12 Վ
· Անվճար գործարկման արագություն 12 Վ-ով ՝ 399 RPM
· Անվտանգ հոսանք 12 Վ-ում `50 մԱ
· Անջատիչ հոսանք 12 Վ -ում `1200 մԱ
· Անջատիչ ոլորող մոմենտը 12 Վ -ի դեպքում ՝ 2.2 կգ.սմ
· Գործիքի հարաբերակցությունը `1:21
· Կրճատիչի չափը `19 մմ
· Քաշը `84 գ
Երկակի ալիք L298N DC շարժիչով վարորդի տախտակ
Երկակի H-Bridge շարժիչով վարորդ, կարող է վարել երկու DC շարժիչ կամ 4-լարային երկաֆազ շարժիչային շարժիչ: Ներկառուցված TSD ՝ շարժիչային կանգառից պաշտպանվելու համար:
Տեխնիկական պայմաններ
· Մոդուլի մատակարարման լարումը `DC 2V-10V
· Ազդանշանի մուտքային լարումը `DC 1.8-7V
· Մեկ աշխատանքային հոսանք `1.5A
· Պիկ հոսանք մինչև 2,5 Ա
· Lowածր սպասման հոսանք (0.1uA- ից պակաս)
· Ներկառուցված ընդհանուր հաղորդակցության միացում, մուտքի տերմինալը դատարկ է, շարժիչը չի աշխատում
· Չափը ՝ 24,7 x 21 x 7 մմ
Քայլ 3: ԼՐԱՈՄ
Սա կլինի վերջնական էլեկտրագծերը, բայց ՍՊԱՍԵՔ, նախքան մենք պետք է որոշ տեղադրենք
ծրագրային ապահովում, և լավ գաղափար է այն փորձարկել ավելի պարզ էլեկտրագծերով, երբ պատրաստ լինեն, վերադառնալ այստեղ:
Մեզ անհրաժեշտ է երկու տարբեր էներգիայի աղբյուր ՝ մեկը շարժիչի և մյուսը ՝ ազնվամորու համար:
Շարժիչային վարորդ Dual Channel L298N DC Motor Driver Board (առավելագույն մուտքային լարումը DC 2V-10V) սնուցվում է 9 Վ մարտկոցի միջոցով, իսկ Raspberry Pi- ն օգտագործում է 5V ստանդարտ USB կուտակիչ:
Շարժիչի վարորդի GND կապը միացված կլինի մարտկոցին հանած և Raspberry Pi- ին (GND): Raspberry Pi- ի GPIO կապումները միացված են շարժիչի վարորդին որպես սեղան:
Քայլ 4. RASPBERRY O. S
Սա Raspbian օպերացիոն համակարգի ստանդարտ տեղադրում է, կարող եք գտնել
շատ մանրամասն ձեռնարկ, որը որոնում է համացանցը, հիմնականում քայլերն են.
1. Ներբեռնեք iso RASPBIAN STRETCH DESKTOP- ով ՝ https://www.raspberrypi.org/downloads/raspbian/ կայքից
2. Ձևաչափեք 16 ԳԲ SD քարտ, ես օգտագործել եմ SD ձևաչափ
3. Այրեք. IMG ֆայլը, ես օգտագործել եմ Win32DiskImager
Այժմ ձեր ազնվամորին պատրաստ է բեռնման, միացնել այն USB հոսանքի աղբյուրին (5V, 2A) և պատրաստվել առաջին բեռնման կարգավորմանը: Դուք կարող եք դա անել երկու եղանակով ՝ օգտագործելով արտաքին սարքեր, ինչպիսիք են մկնիկը, ստեղնաշարը և մոնիտորը, կամ օգտագործելով ձեր համակարգիչը և հեռավոր միացում ազնվամորիին: Այս մասին շատ ձեռնարկներ կան, մեկը ՝
Քայլ 5. Ինչպես վերահսկել մեր WIFI տանկը NODE. JS- ով և WEBSOCKET. IO- ով
Այժմ մենք ունենք մեր ազնվամորու միկրո համակարգչի թարմ տեղադրումը, որը պատրաստ է մեր աշխատանքը վարելու համար, ուստի … ինչո՞վ ենք մենք տանկին հրամաններ տալիս:
Python- ը շատ հեշտ օգտագործվող լեզու է, որը սովորաբար օգտագործվում է Rapsberry նախագծի ավազը գործարկելու համար, կարելի է հեշտությամբ օգտագործել նաև Rapsberry մուտքի և ելքի կապերի (GPIO) հետ փոխազդելու համար
Բայց, իմ նպատակն էր միացնել իմ տանկի wi-fi- ը ցանկացած սարքից (համակարգիչ, բջջային հեռախոս, պլանշետ…) ՝ օգտագործելով ընդհանուր վեբ զննարկիչ, ինչպես նաև տեսանյութեր հոսել դրանից: Այսպիսով, առայժմ մոռացեք Python- ը և թույլ տվեք շարժվել NODE. JS- ով և SOCKET. IO- ով:
NODE.js
Node.js (https://github.com/nodejs/node/wiki) բաց աղբյուրի սերվերի շրջանակային աշխատանք է ՝ հիմնված js լեզվի վրա: Քանի որ ես օգտագործում եմ Raspberry Pi Zero (ARMv6 պրոցեսոր), մենք չենք կարող օգտագործել ավտոմատ տեղադրման գործընթացը (նախատեսված է ARMv7 պրոցեսորի համար), և մենք պետք է դա անենք ձեռքով.
Ներբեռնեք Nodejs- ը տեղական մակարդակում, (ես օգտագործել եմ 7.7.2 տարբերակը ARMv6- ի համար, այլ տարբերակները ստուգեք այստեղ
pi@ազնվամորի: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Ավարտելուց հետո հանեք սեղմված ֆայլը.
pi@ազնվամորի ՝ ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Պատճենեք և տեղադրեք ֆայլերը /օգտագործող /տեղական
pi@ազնվամորի: ~ $ sudo cp -R հանգույց-v7.7.2-linux-armv6l/*/usr/local/
Ավելացրեք այն վայրը, որտեղ մենք տեղադրում ենք nodejs ուղին, խմբագրեք «.profile» ֆայլը.
pi@ազնվամորի ՝ ~ $ nano ~/. պրոֆիլ
Ֆայլի վերջում ավելացրեք հետևյալ տողը, պահեք և դուրս եկեք
PATH = $ PATH:/usr/local/bin
Հեռացրեք ներբեռնված ֆայլը.
pi@ազնվամորի ՝ ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@ազնվամորի ՝ ~ $ rm -r ~/node-v7.7.2-linux-armv6l
Մուտքագրեք հետևյալ հրամանները ՝ nodejs- ի տեղադրումը ստուգելու համար.
pi@ազնվամորի ՝ ~ $ node -v
pi@ազնվամորի ՝ ~ $ npm -v
Որպես պատասխան, դուք պետք է կարդաք v7.7.2 և v4.1.2:
Եթե ամեն ինչ լավ է ընթանում, ստեղծեք նոր թղթապանակ ՝ ձեր nodejs ֆայլերը հյուրընկալելու համար.
pi@ազնվամորի ՝ ~ $ mkdir nodehome
Տեղափոխել նոր թղթապանակի ներսում.
pi@ազնվամորի ՝ ~ $ cd nodehome
Տեղադրեք լրացուցիչ մոդուլ, որն անհրաժեշտ է GPIO- ն ամենահիմնական եղանակով կառավարելու և միացնելու համար.
pi@ազնվամորի. ~ $ npm տեղադրումը անջատված է
Այժմ ժամանակն է փորձարկել մեր առաջին նախագիծը ՝ «Blink.js», արդյունքը կլինի… թարթող լուսադիոդ
pi@ազնվամորի ՝ n $ nano blink.js
Տեղադրեք հետևյալ ծածկագիրը, պահեք և դուրս եկեք.
var Gpio = պահանջում («անջատում»): Gpio; // ներառել անջատում
var LED = նոր Gpio (3, «դուրս»); // օգտագործել GPIO 3
var blinkInterval = setInterval (blinkLED, 250);
// թարթել LED յուրաքանչյուր 250ms- ում
գործառույթը blinkLED () {// գործառույթը ՝ թարթել սկսելու համար
եթե
(LED.readSync () === 0) {// ստուգեք քորոցի վիճակը, եթե վիճակը 0 է (կամ անջատված է)
LED.writeSync (1);
// սահմանել քորոցի վիճակը 1 -ի վրա (միացնել LED- ը)
} ուրիշ {
LED.writeSync (0);
// սահմանել քորոցի վիճակը 0 -ի վրա (անջատել LED- ն)
}
}
գործառույթը endBlink () {// գործառույթը ՝ աչքերը թարթելը դադարեցնելու համար
clearInterval (blinkInterval); // Դադարեցրեք թարթելու միջակայքերը
LED.writeSync (0); // Անջատեք LED- ը
LED.unexport (); // GPIO- ն չարտահանել անվճար ռեսուրսներին
}
setTimeout (endBlink, 5000); // դադարեցնել թարթելը 5 վայրկյանից հետո
Հաղորդեք LED, դիմադրիչ (200 օհմ), ինչպես ցույց է տրված սխեմայում և գործարկեք նախագիծը.
pi@ազնվամորի ՝ ~ $ հանգույց blink.js
Հանգույցը պատրաստ է:
SOCKET. IO
WebSocket- ը համակարգչային հաղորդակցության արձանագրություն է, որը հիմնված է TCP կապի վրա, այն ծրագրավորողին տրամադրում է սերվեր և հաճախորդ ստեղծելու համար: Հաճախորդը միանում է սերվերին և թողարկում և ստանում հաղորդագրություններ դեպի սերվեր և դեպի այն: Node.js- ի համար WebSocket- ի իրականացումը կոչվում է Socket.io (https://socket.io/):
Տեղադրեք socket.io:
pi@raspberry: ~ $ npm տեղադրել socket.io -խնայել
Տեղափոխվեք nodejs home ներսում, որը ստեղծվել է նախապես.
pi@ազնվամորի ՝ ~ $ cd nodehome
Եվ ստեղծեք «հրապարակային» նոր թղթապանակ.
pi@ազնվամորի ՝ m $ mkdir հանրային
Ստեղծեք նոր վեբ սերվեր, անվանեք այն «webserver.js»
pi@ազնվամորի ՝ n $ nano webserver.js
Տեղադրեք հետևյալ ծածկագիրը, պահեք և դուրս եկեք.
var http = պահանջում ('http'): createServer (կառավարիչ); // պահանջում է http սերվեր և սերվեր ստեղծել գործառույթի կառավարիչով ()
var fs = պահանջել ('fs'); // պահանջում է ֆայլային համակարգի մոդուլ
http.listen (8080); // լսեք 8080 նավահանգիստը
գործառույթների կառավարիչ (պահանջ, res) {// սերվեր ստեղծել
fs.readFile (_ dirname + '/public/index.html', գործառույթ (սխալ, տվյալներ) {// կարդալ
ֆայլ index.html հանրային թղթապանակում
եթե (սխալ) {
res.writeHead (404, {'Բովանդակության տեսակ' ՝ 'text/html'}); // ցուցադրել սխալի 404 -ը
վերադարձ res.end ( 404 Not
Գտնվել է »);
}
res.writeHead (200, {'Բովանդակության տեսակ' ՝ 'text/html'}); // գրել HTML
res.write (տվյալներ); // գրել տվյալներ
index.html- ից
վերադարձ res.end ();
});
}
Այս վեբ սերվերը կլսի ձեր Raspberry նավահանգիստ 8080 -ը և ֆայլ կապահովի այն միացնող ցանկացած վեբ հաճախորդի համար: Այժմ մենք պետք է ինչ -որ բան ստեղծենք հյուրընկալելու և մեր հաճախորդներին տրամադրելու համար. Տեղափոխվեք «հանրային» թղթապանակի ներսում. Pi@raspberry: ~ $ cd public
Ստեղծեք նոր html ֆայլ «index.html»:
pi@ազնվամորի ՝ ~ $ nano index.html
Տեղադրեք ծածկագիրը կցված «HelloWorld.txt» - ից, պահեք և դուրս եկեք:
Տեղափոխեք nodejs պանակի «nodehome»:
pi@ազնվամորի ՝ ~ $ cd nodehome
Գործարկել HTTP վեբ սերվերը.
pi@raspberry: ~ $ node webserver.js
Բացեք կայքը դիտարկիչում ՝ օգտագործելով https:// Raspberry_IP: 8080/(փոխարինեք Raspberry_IP- ը ձեր IP- ով)
Քայլ 6. ՎԻԴԵՈ ԳՈՐՈ ՀՆԱՐԱՎՈՈԹՅԱՆ ԼՐԱՈՄ
Ազնվամորիով վիդեո հոսք իրականացնելու տարբեր եղանակներ կան, ամենահեշտը
Ինչպես ես գտել եմ մինչ այժմ, որ որպես գերազանց կատարում և հնարավոր է ինտեգրվել վեբ ինտերֆեյսի վրա, հիմնված է Միգել Մոտայի նախագծի վրա.
miguelmota.com/blog/raspberry-pi-camera-bo…
Շնորհակալություն Միգել! Նրա բլոգից հետևյալ քայլերն են.
Տեղադրեք libjpeg8 և cmake բաղադրիչները.
pi@raspberry: su $ sudo apt-get install libjpeg8
pi@raspberry: ~ $ sudo apt-get install libjpeg8-dev
pi@raspberry: su $ sudo apt-get install cmake
Ներբեռնեք mjpg-streamer- ը raspicam plugin- ով.
pi@ազնվամորի: ~ $ git կլոն
github.com/jacksonliam/mjpg-streamer.git/mjpg-streamer
Փոխել գրացուցակը.
pi@raspberry: ~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental
Կազմել:
pi@ազնվամորի: ~ $ մաքրել բոլորը
Փոխարինեք հին mjpg-streamer- ը ՝
pi@ազնվամորի ՝ su $ sudo rm -rf /opt /-j.webp
pi@raspberry: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental
/opt/mjpg-streamer
pi@ազնվամորի ՝ su $ sudo rm -rf ~/mjpg -streamer
Ստեղծեք նոր «start_stream.sh» ֆայլ, պատճենեք և տեղադրեք կցված «start_stream.txt» ֆայլից:
Դարձրեք այն գործարկելի (ստեղծեք shell սցենարներ).
pi@ազնվամորի ՝ ch $ chmod +x start_stream.sh
Սկսեք հոսքային սերվեր.
pi@ազնվամորի ՝ ~ $./start_stream.sh
Բացեք կայքը դիտարկիչում ՝ օգտագործելով https:// Raspberry_IP: 9000 (փոխարինեք Raspberry_IP- ը ձեր IP- ով)
Քայլ 7: ՏԱՆԿԻ ՐԱԳԻՐ
Ամեն ինչ պատրաստ է, այժմ մենք պետք է ստեղծենք մեր վեբ էջը, որը կառավարելու է տանկը (index.html) և մեր վեբ սերվերը `մեր հրամանները լսելու համար (webserver.js): Այսպիսով, պարզապես փոխարինեք մինչ այժմ տեսած ֆայլերը (պարզապես համակարգի փորձարկման օրինակներ) կցված webserver.txt և index.txt- ով:
Քայլ 8. ՍԿՍԵԼ ՎԵՐԱՀՍԿՈՈԹՅԱՆ ՄԻTERԱFԳԱՅԻՆ ԵՎ STREAMING սերվեր
Առայությունները սկսելու համար բացեք երկու տերմինալային պատուհան և գործարկեք հետևյալ հրամանները.
հանգույց nodehome/webserver.js
./nodehome/start_stream.sh
Բացեք կայքը դիտարկիչում ՝ օգտագործելով https:// Raspberry_IP: 8080 (փոխարինեք Raspberry_IP- ը ձեր IP- ով)
Խորհուրդ ենք տալիս:
ESP32-CAM Կառուցեք ձեր սեփական ռոբոտ-մեքենան կենդանի վիդեո հոսքով `4 քայլ
ESP32-CAM Կառուցեք ձեր սեփական ռոբոտ-մեքենան կենդանի վիդեո հոսքի միջոցով. Գաղափարն այն է, որ այստեղ նկարագրված ռոբոտ-մեքենան հնարավորինս էժան լինի: Հետևաբար, ես հույս ունեմ, որ կհասնեմ մեծ թիրախային խմբին `իմ մանրամասն հրահանգներով և էժան մոդելի համար ընտրված բաղադրիչներով: Ես կցանկանայի ձեզ ներկայացնել իմ գաղափարը ռոբոտ մեքենայի համար
LED թարթում ազնվամորու Pi- ով - Ինչպես օգտագործել GPIO կապում ազնվամորու Pi- ի վրա. 4 քայլ
LED թարթում ազնվամորու Pi- ով | Ինչպես օգտագործել GPIO կապում ազնվամորու Pi- ի վրա. Բարև տղերք, այս հրահանգներում մենք կսովորենք, թե ինչպես օգտագործել Raspberry pi- ի GPIO- ն: Եթե երբևէ օգտվել եք Arduino- ից, ապա հավանաբար գիտեք, որ մենք կարող ենք LED անջատիչ և այլն միացնել դրա կապումներին և այնպես անել, որ այն աշխատի: LED- ը թարթել կամ մուտքագրել անջատիչից, որպեսզի
Վեբ կայք/WiFi վերահսկվող LED ժապավեն ազնվամորու Pi- ով. 9 քայլ (նկարներով)
Վեբ կայք/WiFi վերահսկվող LED ժապավեն ազնվամորու Pi- ով. Նախապատմություն. Ես դեռահաս եմ և վերջին մի քանի տարիների ընթացքում նախագծում և ծրագրավորում եմ փոքր էլեկտրոնիկայի նախագծեր ՝ ռոբոտաշինության մրցումներին մասնակցելու հետ մեկտեղ: Վերջերս ես աշխատում էի աշխատասեղանի տեղադրումը թարմացնելու վրա, և որոշեցի, որ դա հաճելի հավելում է
ESP8266 Ավտոմատացում վեբ ինտերֆեյսով և DDNS- ով. 8 քայլ
ESP8266 Ավտոմատացում վեբ ինտերֆեյսով և DDNS- ով: Այսօրվա հոդվածում մենք ցույց կտանք ավտոմատացում, որը կարող է բնակելի լինել ՝ օգտագործելով DDNS (դինամիկ տիրույթի անվան համակարգ) հնարավորությունը: Դուք կհասկանաք, թե ինչպես կարգավորել ծրագիրը, որը տեղադրելու եք ESP8266- ում ՝ NodeMCU- ում: Բացի այդ, մենք կտեսնենք, թե ինչպես
Հեշտ $ 5 խելացի լամպ սմարթֆոնի վեբ ինտերֆեյսով `4 քայլ
Հեշտ $ 5 խելացի լամպ սմարթֆոնի վեբ ինտերֆեյսով. Բարև: Իմ անունը Ռաֆայել է: Սա իմ առաջին հրահանգն է: Այս լամպի ստեղծման իմ հիմնական շարժառիթը շարժունակությունից անապահով մարդկանց կյանքին օգնելն է: Երբևէ մենք չենք ունենա անջատիչներ պատերին կամ դժվարամատչելի վարդակներ, այլ ավելի շուտ ՝ մեր սմարթֆոնները վերահսկելու համար