Мазмұны:

Веб -интерфейсі мен бейне ағыны бар таңқурай ыдысы: 8 қадам (суреттермен)
Веб -интерфейсі мен бейне ағыны бар таңқурай ыдысы: 8 қадам (суреттермен)

Бейне: Веб -интерфейсі мен бейне ағыны бар таңқурай ыдысы: 8 қадам (суреттермен)

Бейне: Веб -интерфейсі мен бейне ағыны бар таңқурай ыдысы: 8 қадам (суреттермен)
Бейне: Өлді деп жерлемек болған еді. Бірақ Алланың қалауымен тірілген Бала 2024, Қараша
Anonim
Веб -интерфейсі мен бейне ағыны бар таңқурай ыдысы
Веб -интерфейсі мен бейне ағыны бар таңқурай ыдысы

Біз қашықтан веб -басқару мен бейне ағыны бар кішкене WiFi танкісін қалай іске асырғанымды көреміз.

Бұл электронды және бағдарламалық қамтамасыз ету бойынша негізгі білімді қажет ететін оқулыққа арналған. Осы себепті мен танк шасси жинағын таңдадым (оны 3D принтермен басып шығарудың орнына кейінірек жаңарту мүмкін) және батареяларды қоса алғанда 6 компонентті таңдадым. Бағдарламалық қамтамасыз етуде сіз орнату процесін біртіндеп қадағалай аласыз және бағдарламалау минималды болады, бұл таңқурай туралы қарапайым білімге көмектеседі.

Мен 12 сағаттық жұмысты 0 -ден дайын цистернаға дейін бағаладым. Барлық компоненттер үшін жалпы құны 70 евро.

1 -қадам: BOM

БОМ
БОМ
БОМ
БОМ
БОМ
БОМ
БОМ
БОМ

1 - DIY RC робот шасси танкі - 32 (€)

www.banggood.com/DIY-RC-Robot-Chassis-Tan…

1 - қос каналды L298N тұрақты ток қозғалтқыштарының тақтасы - 1, 39 (€)

www.banggood.com/Dual-Channel-L298N-DC-Mo…

1 - Raspberry Pi Zero W бастауыш жинағы - 26 (€)

amzn.eu/1ugAaMP

1 - 16 ГБ SD картасы - 5, 50 (€)

www.gearbest.com/memory-cards/pp_337819.h…

1 - Zero үлгісіне арналған Raspberry Pi 5MP камералық модуль веб -камерасы - 8 (€)

www.gearbest.com/raspberry-pi/pp_612249.h…

1 - 5В қуат банкі

1 - 9В батарея

Аралас жұмыс тақтасы кабелі Dupont қосқышы

Raspberry орнатуға арналған тінтуір, пернетақта, монитор немесе теледидар (міндетті емес, бірінші орнатуды жеңілдету үшін)

2 -қадам: негізгі компоненттердің ерекшеліктері

Мотор

JGA25-370 тұрақты ток редукторы

Бұл қозғалтқышта D-тәрізді шығыс білігі бар.

Ерекшеліктер

· Жұмыс кернеуі: 6 В және 18 В аралығында

· Номиналды кернеу: 12 В.

· 12 В: 399 айн / мин жылдамдықта еркін жүру

· 12 В: 50 мА еркін ток

· 12В: 1200 мА тоқтаушы ток

· 12В кернеудегі тоқ моменті: 2,2 кг.см

· Беріліс коэффициенті: 1:21

· Редуктордың өлшемі: 19 мм

· Салмағы: 84 гр

Қос каналды L298N тұрақты ток қозғалтқышының тақтасы

Н-көпірлі қос қозғалтқыш, екі тұрақты ток қозғалтқышын немесе 4 сымды екі фазалы қадамдық қозғалтқышты басқара алады. Кіріктірілген TSD, моторлық тоқтаудан қорғау үшін.

Ерекшеліктер

· Модульдің кернеуі: тұрақты ток 2В-10В

· Сигналдың кіріс кернеуі: тұрақты ток 1,8-7В

· Бір жұмыс ток: 1,5А

· 2,5А дейін максималды ток

· Күту токы төмен (0,1уА -дан аз)

· Кіріктірілген жалпы өткізгіштік схемасы, кіріс терминалы бос, қозғалтқыш істен шықпайды

· Өлшемі: 24,7 x 21 x 7 мм

3 -қадам: Сымдар

Сымдар
Сымдар
Сымдар
Сымдар

Бұл соңғы сымдар болады, бірақ кейбіреулерін орнатпас бұрын КҮТІҢІЗ

бағдарламалық қамтамасыз ету және дайын болған кезде осында оралу үшін оны қарапайым сымдармен тексерген дұрыс.

Бізге екі түрлі қуат көзі қажет, біреуі моторға, екіншісі таңқурайға арналған.

Қозғалтқыш қос каналы L298N тұрақты мотор драйвері тақтасы (максималды кіріс кернеуі DC 2V-10V) 9В батареямен жұмыс істейді, ал Raspberry Pi стандартты 5В USB аккумуляторын қолданады.

Мотор драйверінің GND түйреуіші минус батареяға және Raspberry Pi (GND) қосылады. Raspberry Pi GPIO түйреуіштері мотор драйверіне үстел ретінде қосылады.

4 -қадам: РАСПБЕРРИГЕ ДАЙЫНДАУ O. S

Бұл Raspbian операциялық жүйесі үшін стандартты қондырғы, сіз таба аласыз

Интернетте көптеген егжей -тегжейлі оқулықтар, негізінен қадамдар:

1. https://www.raspberrypi.org/downloads/raspbian/ сайтынан жұмыс үстелінің көмегімен iso RASPBIAN STRETCH жүктеп алыңыз.

2. 16 ГБ SD картасын пішімдеңіз, мен SD Formatter қолдандым

3.. IMG файлын жазыңыз, мен Win32DiskImager қолдандым

Енді сіздің таңқурай жүктеуге дайын, оны USB қуат көзіне қосыңыз (5V, 2A) және бірінші жүктеуді орнатуға дайын болыңыз. Сіз мұны тышқан, пернетақта және монитор сияқты сыртқы құрылғыларды немесе компьютерді және Raspberry -ге қашықтан қосылу арқылы екі жолмен жасай аласыз. Бұл туралы көптеген оқулықтар бар, олардың бірі:

5 -қадам: WIFI танкімізді NODE. JS және WEBSOCKET. IO арқылы қалай басқаруға болады

NODE. JS және WEBSOCKET. IO арқылы WIFI танкімізді қалай басқаруға болады
NODE. JS және WEBSOCKET. IO арқылы WIFI танкімізді қалай басқаруға болады

Енді бізде Raspberry микрокомпьютерінің жаңа қондырғысы жұмыс істеуге дайын, сондықтан … біз танкке командалар беру үшін не қолданамыз?

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 CPU) қолданғандықтан, біз автоматты орнату процесін қолдана алмаймыз (ARMv7 процессорына арналған) және оны қолмен жасау керек:

Nodejs -ты жергілікті түрде жүктеңіз, (мен ARMv6 үшін 7.7.2 нұсқасын қолдандым, басқа нұсқаларды мына жерден қараңыз

pi@таңқурай: ~ $ wget

nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…

Аяқтағаннан кейін сығылған файлды шығарыңыз:

pi@таңқурай: ~ $ tar -xzf торабы-v7.7.2-linux-armv6l.tar.gz

Файлдарды /user /local ішіне көшіріңіз және орнатыңыз

pi@таңқурай: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/

Жолға nodejs орнататын орынды қосыңыз, «.profile» файлын өңдеңіз:

pi@таңқурай: ~ $ нано ~/.профиль

Файлдың соңына келесі жолды қосыңыз, сақтаңыз және шығыңыз

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 түйін үйі

Жаңа қалтаға жылжыңыз:

pi@таңқурай: ~ $ cd түйіндік үй

ҚОСУЛЫ және ӨШІРІКТІ түрде GPIO басқару үшін қажет қосымша модульді орнатыңыз:

pi@таңқурай: ~ $ npm орнату

Енді біздің бірінші «Blink.js» жобамызды тексеретін уақыт келді, нәтиже … жыпылықтайтын жарық диоды болады

pi@таңқурай: ~ $ nano blink.js

Келесі кодты қойыңыз, сақтаңыз және шығыңыз:

var Gpio = талап етіңіз ('өшіру'). Gpio; // қосуды қосады

var LED = жаңа Gpio (3, 'шығу'); // GPIO 3 пайдаланыңыз

var blinkInterval = setInterval (blinkLED, 250);

// жарық диоды әр 250 м сайын жыпылықтайды

жыпылықтауды бастау үшін функция blinkLED () {// функциясы

егер

(LED.readSync () === 0) {// түйіннің күйін тексеріңіз, егер күй 0 (немесе өшірулі) болса

LED.writeSync (1);

// түйреуіш күйін 1 -ге орнатыңыз (жарық диодты қосыңыз)

} басқа {

LED.writeSync (0);

// түйреуіш күйін 0 күйіне орнатыңыз (жарық диодты өшіріңіз)

}

}

endBlink () {// функциясы жыпылықтауды тоқтату үшін

clearInterval (blinkInterval); // жыпылықтау аралықтарын тоқтату

LED.writeSync (0); // Жарық диодты өшіріңіз

LED.unexport (); // Бос ресурстарға GPIO экспорттау

}

setTimeout (endBlink, 5000); // 5 секундтан кейін жыпылықтауды тоқтатыңыз

Схемада көрсетілгендей светодиодты, резисторды (200 Ом) жалғаңыз және жобаны іске қосыңыз:

pi@таңқурай: ~ $ node blink.js

Түйін дайын.

SOCKET. IO

WebSocket - бұл TCP қосылымына негізделген компьютерлік байланыс хаттамасы, ол бағдарламалаушыға сервер мен клиент құруға мүмкіндік береді. Клиент серверге қосылады және серверге және одан хабарларды шығарады және қабылдайды. Node.js үшін WebSocket енгізу Socket.io деп аталады (https://socket.io/).

Socket.io орнатыңыз:

pi@таңқурай: ~ $ npm socket.io орнатыңыз -сақтаңыз

Nodejs үйінің ішіне көшіңіз, алдын ала жасалған:

pi@таңқурай: ~ $ cd түйіндік үй

Жаңа «жалпыға ортақ» қалтасын жасаңыз:

pi@таңқурай: ~ $ mkdir қоғамдық

Жаңа үлгі веб -серверді жасаңыз, оны «webserver.js» деп атаңыз

pi@таңқурай: ~ $ nano webserver.js

Келесі кодты қойыңыз, сақтаңыз және шығыңыз:

var http = қажет ('http'). createServer (өңдеуші); // http серверін қажет етеді және функция өңдегішпен сервер құрады ()

var fs = қажет ('fs'); // файлдық жүйе модулін қажет етеді

http.listen (8080); // 8080 портын тыңдаңыз

функция өңдегіші (req, res) {// сервер құру

fs.readFile (_ dirname + '/public/index.html', функция (қате, деректер) {// оқу

index.html файлын жалпы қалтада

егер (қате) {

res.writeHead (404, {'Content-Type': 'text/html'}); // қате бойынша 404 көрсету

return res.end («404 Жоқ

Табылды «);

}

res.writeHead (200, {'Content-Type': 'text/html'}); // HTML жазу

res.write (деректер); // деректерді жазу

index.html сайтынан

қайтару res.end ();

});

}

Бұл веб -сервер сіздің Raspberry 8080 портын тыңдайды және оны қосатын кез келген веб -клиентке файл береді. Енді біз өз клиенттерімізге орналастыру және қамтамасыз ету үшін бірдеңе жасауымыз керек: «жалпыға ортақ» қалтасында жылжу: pi@raspberry: ~ $ cd public

Жаңа «index.html» html файлын жасаңыз:

pi@таңқурай: ~ $ нано индексі.html

Қосылған «HelloWorld.txt» ішінен кодты қойыңыз, сақтаңыз және шығыңыз.

Nodejs «nodehome» қалтасына жылжытыңыз:

pi@таңқурай: ~ $ cd түйіндік үй

HTTP веб -серверін іске қосыңыз:

pi@таңқурай: ~ $ node webserver.js

Веб -сайтты браузерде https:// Raspberry_IP: 8080/көмегімен ашыңыз (Raspberry_IP -ді IP -ге ауыстырыңыз)

6 -қадам: VIDEO STREAMING МҮМКІНДІГІН ҚОСУ

Таңқурайға бейне ағынын енгізудің әр түрлі әдістері бар, ең оңай

Мен осы уақытқа дейін Мигель Мота жобасына негізделген керемет өнімділік пен веб -интерфейске біріктіруге болатынын таптым:

miguelmota.com/blog/raspberry-pi-camera-bo…

Рахмет Мигель! Оның блогынан келесі қадамдар:

Libjpeg8 және cmake компоненттерін орнатыңыз:

pi@таңқурай: ~ $ sudo apt-get libjpeg8 орнатыңыз

pi@таңқурай: ~ $ sudo apt-get libjpeg8-dev орнатыңыз

pi@таңқурай: ~ $ sudo apt-get install cmake

Raspicam плагинімен mjpg-ағынды жүктеңіз:

pi@таңқурай: ~ $ git клоны

github.com/jacksonliam/mjpg-streamer.git ~/mjpg-стример

Каталогты өзгерту:

pi@таңқурай: ~ $ cd ~/mjpg-streamer/mjpg-streamer-эксперименттік

Құрастыру:

pi@таңқурай: ~ $ бәрін тазартыңыз

Ескі mjpg-ағынды ауыстырыңыз:

pi@таңқурай: ~ $ sudo rm -rf /opt /-j.webp

pi@таңқурай: ~ $ sudo mv ~/mjpg-стример/mjpg-ағынды-эксперименттік

/opt/mjpg-ағыны

pi@таңқурай: ~ $ sudo rm -rf ~/mjpg -ағын

Жаңа «start_stream.sh» файлын жасаңыз, бекітілген «start_stream.txt» файлынан көшіріп қойыңыз.

Оны орындалатын етіп жасаңыз (қабық сценарийлерін жасаңыз):

pi@таңқурай: ~ $ 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 -қадам: БАСҚАРУ ИНТЕРФЕСІ МЕН СТРИМИНГ ҚЫЗМЕТКЕРІН БАСТАҢЫЗ

БАСҚАРУ ИНТЕРФЕСІ МЕН СТРИМИНГ ҚЫЗМЕТКЕРІН БАСТАҢЫЗ
БАСҚАРУ ИНТЕРФЕСІ МЕН СТРИМИНГ ҚЫЗМЕТКЕРІН БАСТАҢЫЗ

Қызметтерді бастау үшін екі терминалды терезені ашып, мына пәрмендерді орындаңыз:

түйін түйін үйі/webserver.js

./nodehome/start_stream.sh

Веб -сайтты браузерде https:// Raspberry_IP: 8080 арқылы ашыңыз (Raspberry_IP -ді IP -ге ауыстырыңыз)

Ұсынылған: