Съдържание:
- Стъпка 1: Спецификация
- Стъпка 2: Спецификации на основните компоненти
- Стъпка 3: СВЪРЗВАНЕ
- Стъпка 4: ПОДГОТОВКА НА МАЛИНА O.S
- Стъпка 5: КАК ДА КОНТРОЛИРАМЕ НАШИЯ WIFI TANK С NODE.JS И WEBSOCKET.IO
- Стъпка 6: ДОБАВЯНЕ НА ВИДЕО СТРЕЙМИРАНЕ
- Стъпка 7: ПРОГРАМА НА ТАНКА
- Стъпка 8: ЗАПОЧНЕТЕ КОНТРОЛИРАНЕ НА ИНТЕРФЕЙС И ПОТОЧЕН СЕРВЕР
![Малинов резервоар с уеб интерфейс и видео стрийминг: 8 стъпки (със снимки) Малинов резервоар с уеб интерфейс и видео стрийминг: 8 стъпки (със снимки)](https://i.howwhatproduce.com/images/002/image-5623-26-j.webp)
Видео: Малинов резервоар с уеб интерфейс и видео стрийминг: 8 стъпки (със снимки)
![Видео: Малинов резервоар с уеб интерфейс и видео стрийминг: 8 стъпки (със снимки) Видео: Малинов резервоар с уеб интерфейс и видео стрийминг: 8 стъпки (със снимки)](https://i.ytimg.com/vi/UDkDgKVTYWI/hqdefault.jpg)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
![Малинов резервоар с уеб интерфейс и видео стрийминг Малинов резервоар с уеб интерфейс и видео стрийминг](https://i.howwhatproduce.com/images/002/image-5623-27-j.webp)
Ще видим как съм реализирал малък WiFi резервоар, способен за дистанционно уеб управление и видео стрийминг.
Това е предназначено да бъде урок, който изисква основни познания по електронно и софтуерно програмиране. Поради тази причина избрах комплект шаси Tank (вместо да го отпечатвам с 3D принтер, може да бъде по -късен ъпгрейд) и общо 6 компонента, включително батерии. От страна на софтуера можете да следвате стъпка по стъпка процеса на инсталиране и програмирането е сведено до минимум, основните познания за нещата от малината могат да ви помогнат.
Изчислих 12 часа работа от 0 до готов за работа резервоар. Обща цена от 70 € за всички компоненти.
Стъпка 1: Спецификация
![BOM BOM](https://i.howwhatproduce.com/images/002/image-5623-28-j.webp)
![BOM BOM](https://i.howwhatproduce.com/images/002/image-5623-29-j.webp)
![BOM BOM](https://i.howwhatproduce.com/images/002/image-5623-30-j.webp)
![BOM BOM](https://i.howwhatproduce.com/images/002/image-5623-31-j.webp)
1 - Резервоар за шаси за роботи 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 GB SD карта - 5, 50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Raspberry Pi 5MP камера модул уеб камера за модел Zero - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Power Bank 5V
1 - 9v батерия
Смесен кабелен кабел Dupont конектор
Мишка, клавиатура, монитор или телевизор за настройка на Raspberry (по избор, само за да улесните първата настройка)
Стъпка 2: Спецификации на основните компоненти
Мотор
JGA25-370 DC мотор-редуктор
Този двигател разполага с D-образен изходен вал.
Спецификации
· Работно напрежение: между 6 V и 18 V
· Номинално напрежение: 12 V
· Скорост на свободно движение при 12 V: 399 оборота в минута
· Свободен ток при 12 V: 50 mA
· Ток на застой при 12V: 1200 mA
· Въртящ момент при застой при 12V: 2,2 кг.см
· Предавателно отношение: 1:21
· Редуктор размер: 19 мм
· Тегло: 84 g
Двуканална платка за двигател с постоянен ток на L298N DC
Двоен двигател с H-мост, може да задвижва два DC двигателя или 4-жични двуфазни стъпкови двигатели. Вграден TSD, за защита от спиране на двигателя.
Спецификации
· Захранващо напрежение на модула: DC 2V-10V
· Входно напрежение на сигнала: DC 1.8-7V
· Единичен работен ток: 1.5A
· Пиков ток до 2.5A
· Нисък ток в режим на готовност (по -малко от 0,1uA)
· Вградена обща проводима верига, входният терминал е свободен, двигателят не работи неизправно
· Размер: 24.7 x 21 x 7 мм
Стъпка 3: СВЪРЗВАНЕ
![ЕЛЕКТРИЧЕСКИ ИНСТАЛАЦИИ ЕЛЕКТРИЧЕСКИ ИНСТАЛАЦИИ](https://i.howwhatproduce.com/images/002/image-5623-32-j.webp)
![ЕЛЕКТРИЧЕСКИ ИНСТАЛАЦИИ ЕЛЕКТРИЧЕСКИ ИНСТАЛАЦИИ](https://i.howwhatproduce.com/images/002/image-5623-33-j.webp)
Това ще бъде последното окабеляване, но ПОЧАКАЙТЕ, преди да се наложи да инсталираме някои
софтуер и е добра идея да го тествате с по -опростено окабеляване, когато сте готови, върнете се тук.
Нуждаем се от два различни източника на енергия, един за двигателя и един за малината.
Двуканалната платка за двигател с двуканален двигател L298N DC (максимално входно напрежение DC 2V-10V) се захранва от 9V батерия, а Raspberry Pi използва стандартния 5V USB акумулатор.
GND щифтът на драйвера на двигателя ще бъде свързан към минуса на батерията и Raspberry Pi (GND). GPIO щифтовете на Raspberry Pi са свързани към драйвера на двигателя като таблица.
Стъпка 4: ПОДГОТОВКА НА МАЛИНА O. S
Това е стандартна инсталация за операционна система Raspbian, можете да намерите
много подробни уроци за търсене в мрежата, основно стъпките са:
1. Изтеглете iso RASPBIAN STRETCH WITH DESKTOP от
2. Форматирайте 16 GB SD карта, използвал съм SD Formatter
3. Запишете. IMG файл, използвах Win32DiskImager
Сега вашата малинка е готова за зареждане, свържете я към USB източник на захранване (5V, 2A) и се подгответе за първата настройка на зареждане. Можете да го направите по два начина, като използвате външни устройства като мишка, клавиатура и монитор или използвате вашия компютър и отдалечена връзка с Raspberry. Има много уроци по този въпрос, един от тях е:
Стъпка 5: КАК ДА КОНТРОЛИРАМЕ НАШИЯ WIFI TANK С NODE. JS И WEBSOCKET. IO
![КАК ДА КОНТРОЛИРАМЕ НАШИЯ WIFI TANK С NODE. JS И WEBSOCKET. IO КАК ДА КОНТРОЛИРАМЕ НАШИЯ WIFI TANK С NODE. JS И WEBSOCKET. IO](https://i.howwhatproduce.com/images/002/image-5623-34-j.webp)
Сега имаме нова инсталация на нашия 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 CPU) и трябва да го направим ръчно:
Изтеглете Nodejs локално (използвах версия 7.7.2 за ARMv6, проверете други версии тук
pi@малинка: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
След като приключите, извлечете компресирания файл:
pi@raspberry: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Копирайте и инсталирайте файловете в /user /local
pi@raspberry: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/
Добавете местоположението, където инсталираме nodejs, към пътя, редактирайте файла „.profile“:
pi@малинка: ~ $ nano ~/.профил
Добавете следния ред в края на файла, запишете и излезте
PATH = $ PATH:/usr/local/bin
Премахнете изтегления файл:.
pi@raspberry: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@raspberry: ~ $ 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@raspberry: ~ $ cd nodehome
Инсталирайте допълнителен модул, необходим за управление на GPIO по най -основния начин, ВКЛЮЧЕНО и ИЗКЛЮЧЕНО:
pi@raspberry: ~ $ npm инсталирайте onoff
Сега е време да тестваме първия ни проект „Blink.js“, резултатът ще бъде … мигащ светодиод
pi@малинка: ~ $ nano blink.js
Поставете следния код, запишете и излезте:
var Gpio = require ('onoff'). Gpio; // включва onoff
var LED = нов Gpio (3, 'out'); // използвайте GPIO 3
var blinkInterval = setInterval (blinkLED, 250);
// мига светодиод на всеки 250ms
функция blinkLED () {// функция, за да започне да мига
ако
(LED.readSync () === 0) {// проверете състоянието на извода, ако състоянието е 0 (или изключено)
LED.writeSync (1);
// задайте състояние на щифт на 1 (включете светодиода)
} else {
LED.writeSync (0);
// задайте състояние на пина на 0 (изключете светодиода)
}
}
функция endBlink () {// функция за спиране на мигането
clearInterval (blinkInterval); // Спиране на интервалите на мигане
LED.writeSync (0); // Изключете LED
LED.unexport (); // Деекспортирайте GPIO в безплатни ресурси
}
setTimeout (endBlink, 5000); // спира да мига след 5 секунди
Свържете LED, резистор (200ohms), както е показано на схемата, и стартирайте проекта:
pi@малинка: ~ $ node blink.js
Възелът е готов.
SOCKET. IO
WebSocket е компютърен комуникационен протокол, базиран на TCP връзка, той предоставя програмист за създаване на сървър и клиент. Клиентът се свързва със сървъра и излъчва и получава съобщения до и от сървъра. Реализацията на WebSocket за Node.js се нарича Socket.io (https://socket.io/).
Инсталирайте socket.io:
pi@raspberry: ~ $ npm инсталирайте socket.io --save
Преместете се в nodejs home, създаден преди това:
pi@raspberry: ~ $ cd nodehome
И създайте нова папка „обществена“:
pi@малинка: ~ $ mkdir обществено
Създайте нов примерен уеб сървър, наречете го „webserver.js“
pi@raspberry: ~ $ nano webserver.js
Поставете следния код, запишете и излезте:
var http = require ('http'). createServer (манипулатор); // изискват http сървър и създават сървър с манипулатор на функции ()
var fs = require ('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
Създайте нов html файл „index.html“:
pi@малинка: ~ $ nano index.html
Поставете код от прикачения "HelloWorld.txt", запишете и излезте.
Преместване в папката nodejs „nodehome“:
pi@raspberry: ~ $ cd nodehome
Стартирайте HTTP уеб сървър:
pi@raspberry: ~ $ node webserver.js
Отворете уебсайта в браузър, използвайки https:// Raspberry_IP: 8080/(заменете Raspberry_IP с вашия IP)
Стъпка 6: ДОБАВЯНЕ НА ВИДЕО СТРЕЙМИРАНЕ
Има различни начини за реализиране на видео стрийминг на Raspberry, най -лесният
по начина, по който открих досега, че като отлична производителност и може да бъде интегрирана в уеб интерфейс, се основава на проекта от Мигел Мота:
miguelmota.com/blog/raspberry-pi-camera-bo…
Благодаря Мигел! От блога му това са стъпките:
Инсталирайте компоненти libjpeg8 и cmake:
pi@raspberry: ~ $ sudo apt-get install libjpeg8
pi@raspberry: ~ $ sudo apt-get install libjpeg8-dev
pi@raspberry: ~ $ sudo apt-get install cmake
Изтеглете mjpg-streamer с raspicam плъгин:
pi@малинка: ~ $ git клонинг
github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer
Промяна на директорията:
pi@малинка: ~ $ cd ~/mjpg-streamer/mjpg-streamer-експериментален
Компилиране:
pi@малинка: ~ $ почисти всички
Заменете стария mjpg-стример:
pi@raspberry: ~ $ sudo rm -rf /opt /-j.webp
pi@raspberry: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-експериментален
/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: ЗАПОЧНЕТЕ КОНТРОЛИРАНЕ НА ИНТЕРФЕЙС И ПОТОЧЕН СЕРВЕР
![СТАРТ СЕРВЕР ЗА ИНТЕРФЕЙС И СТРИМИНГ СТАРТ СЕРВЕР ЗА ИНТЕРФЕЙС И СТРИМИНГ](https://i.howwhatproduce.com/images/002/image-5623-35-j.webp)
За да стартирате услугите, отворете два терминални прозореца и изпълнете следните команди:
възел nodehome/webserver.js
./nodehome/start_stream.sh
Отворете уебсайта в браузър, използвайки https:// Raspberry_IP: 8080 (заменете Raspberry_IP с вашия IP)
Препоръчано:
Изградете вашия Интернет контролиран робот за видео стрийминг с Arduino и Raspberry Pi: 15 стъпки (със снимки)
![Изградете вашия Интернет контролиран робот за видео стрийминг с Arduino и Raspberry Pi: 15 стъпки (със снимки) Изградете вашия Интернет контролиран робот за видео стрийминг с Arduino и Raspberry Pi: 15 стъпки (със снимки)](https://i.howwhatproduce.com/images/001/image-1387-9-j.webp)
Изградете вашия Интернет контролиран робот за видео стрийминг с Arduino и Raspberry Pi: Аз съм @RedPhantom (известен още като LiquidCrystalDisplay / Itay), 14-годишен ученик от Израел, който учи в прогимназията за разширени науки и математика Max Shein. Правя този проект, от който всеки да се учи и споделя! Може да имате
Малинов процесор PI Vision (SpartaCam): 8 стъпки (със снимки)
![Малинов процесор PI Vision (SpartaCam): 8 стъпки (със снимки) Малинов процесор PI Vision (SpartaCam): 8 стъпки (със снимки)](https://i.howwhatproduce.com/images/005/image-14326-j.webp)
Raspberry PI Vision Processor (SpartaCam): Малинова PI система за обработка на зрението за вашия ПЪРВИ робот за състезания по роботика. За FIRST От Уикипедия, безплатната енциклопедия https://en.wikipedia.org/wiki/FIRST_Robotics_Compe … ПЪРВОТО състезание по роботика (FRC) е международно високо
Аудио излъчване и видео стрийминг с помощта на Raspberry Pi 3 .: 6 стъпки
![Аудио излъчване и видео стрийминг с помощта на Raspberry Pi 3 .: 6 стъпки Аудио излъчване и видео стрийминг с помощта на Raspberry Pi 3 .: 6 стъпки](https://i.howwhatproduce.com/images/001/image-739-143-j.webp)
Аудио излъчване и видео стрийминг с помощта на Raspberry Pi 3 .: Основната помощна програма на този проект е излъчването на аудио към Raspberry Pi 3 от всяко устройство, свързано към общата WiFi мрежа и получаване на видео от Raspberry Pi 3 към всяко устройство, свързано към обща WiFi мрежа
Робот за стрийминг на видео с Raspberry Pi Wifi: 8 стъпки (със снимки)
![Робот за стрийминг на видео с Raspberry Pi Wifi: 8 стъпки (със снимки) Робот за стрийминг на видео с Raspberry Pi Wifi: 8 стъпки (със снимки)](https://i.howwhatproduce.com/images/001/image-2635-49-j.webp)
Raspberry Pi Wifi контролиран робот за видео стрийминг: Някога мислили ли сте да създадете готин робот с камера върху него? Е, попаднали сте на правилното място, ще ви покажа стъпка по стъпка как да създадете този робот. С това можете да отидете на лов за призраци през нощта, като контролирате и виждате видео емисията на вашия
Управление на RC автомобил чрез уеб интерфейс: 6 стъпки (със снимки)
![Управление на RC автомобил чрез уеб интерфейс: 6 стъпки (със снимки) Управление на RC автомобил чрез уеб интерфейс: 6 стъпки (със снимки)](https://i.howwhatproduce.com/images/001/image-1007-89-j.webp)
Управление на RC кола чрез уеб интерфейс: Здравейте приятели, В тази инструкция ще ви науча да правите RC кола чрез уеб интерфейс. Ще го контролираме безжично чрез собствен сървър. Използвайки метода, който ще ви покажа, няма да е необходимо да използваме RC приемник. За да хоствате мрежата