Obsah:
- Krok 1: Kusovník
- Krok 2: Specifikace hlavních komponent
- Krok 3: ZAPOJENÍ
- Krok 4: PŘÍPRAVA RASPBERRY O.S
- Krok 5: JAK OVLÁDAT NAŠI WIFI NÁDRŽ S NODE.JS A WEBSOCKET.IO
- Krok 6: PŘIDÁNÍ VIDEO STREAMINGU SCHOPNOSTI
- Krok 7: PROGRAM NÁDRŽE
- Krok 8: ZAČNĚTE OVLÁDAT ROZHRANÍ A SÍŤOVÝ SERVER
Video: Malinový tank s webovým rozhraním a streamováním videa: 8 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Uvidíme, jak jsem realizoval malý WiFi Tank, schopný vzdáleného webového ovládání a streamování videa.
Toto má být výukový program, který vyžaduje základní znalosti elektronického a softwarového programování. Z tohoto důvodu jsem vybral soupravu podvozku tanku (místo tisku pomocí 3D tiskárny může být pozdější upgrade) a celkem 6 komponent včetně baterií. Na straně softwaru můžete krok za krokem sledovat proces instalace a programování je omezeno na minimum, základní znalost věcí týkajících se Raspberry může pomoci.
Odhadoval jsem 12 hodin práce od 0 do připraveného tanku. Celkové náklady 70 € na všechny komponenty.
Krok 1: Kusovník
1 - Tank podvozek robota RC - 32 (€)
www.banggood.com/DIY-RC-Robot-Chassis-Tan…
1 - Dual Channel L298N DC Motor Driver Board - 1, 39 (€)
www.banggood.com/Dual-Channel-L298N-DC-Mo…
1 - Startovací sada Raspberry Pi Zero W - 26 (€)
amzn.eu/1ugAaMP
1 - 16 GB SD karta - 5, 50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Webová kamera Raspberry Pi 5MP Camera Module pro model Zero - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Power Bank 5V
1 - 9v baterie
Mixed Breadboard Cable Dupont Connector
Nastavení myši, klávesnice, monitoru nebo televize pro Raspberry (volitelně, jen pro usnadnění prvního nastavení)
Krok 2: Specifikace hlavních komponent
Motor
Převodový motor JGA25-370 DC
Tento motor je vybaven výstupním hřídelem ve tvaru D.
Specifikace
· Provozní napětí: mezi 6 V a 18 V
· Jmenovité napětí: 12 V
· Rychlost volného chodu při 12 V: 399 ot / min
· Volně běžící proud při 12 V: 50 mA
· Pádový proud při 12V: 1200 mA
· Krouticí moment při 12 V: 2,2 kg.cm
· Převodový poměr: 1:21
· Velikost reduktoru: 19 mm
· Hmotnost: 84 g
Dvoukanálová deska ovladače stejnosměrného motoru L298N
Duální ovladač motoru H-můstku, může pohánět dva stejnosměrné motory nebo 4vodičové dvoufázové krokové motory. Vestavěný TSD, chránící před zastavením motoru.
Specifikace
· Napájecí napětí modulu: DC 2V-10V
· Vstupní napětí signálu: DC 1,8-7V
· Jeden pracovní proud: 1,5A
· Špičkový proud až 2,5A
· Nízký pohotovostní proud (méně než 0,1uA)
· Vestavěný obvod společného vedení, vstupní svorka je prázdná, motor nefunguje správně
· Velikost: 24,7 x 21 x 7 mm
Krok 3: ZAPOJENÍ
Toto bude konečné zapojení, ale počkejte, než budeme muset nějaké nainstalovat
softwaru a je dobré to vyzkoušet pomocí jednoduššího zapojení, až se vrátíte sem.
Potřebujeme dva různé zdroje energie, jeden pro motor a jeden pro Raspberry.
Řadič motoru Dual Channel L298N DC Motor Driver Board (max. Vstupní napětí DC 2V-10V) je napájen 9V baterií a Raspberry Pi používá standardní 5V USB akumulátor.
Pin GND ovladače motoru bude připojen k baterii mínus a Raspberry Pi (GND). GPIO piny Raspberry Pi jsou připojeny k ovladači motoru jako tabulka.
Krok 4: PŘÍPRAVA RASPBERRY O. S
Toto je standardní instalace pro operační systém Raspbian, kterou můžete najít
spousta podrobného tutoriálu prohledávání webu, v podstatě kroky jsou:
1. Stáhněte si iso RASPBIAN STRETCH S DESKTOP z
2. Naformátujte 16 GB SD kartu, použil jsem SD Formatter
3. Vypalte soubor. IMG, použil jsem Win32DiskImager
Nyní je vaše malina připravena ke spuštění, připojte ji ke zdroji napájení USB (5 V, 2 A) a připravte se na první spuštění. Můžete to udělat dvěma způsoby, pomocí externích zařízení, jako je myš, klávesnice a monitor, nebo pomocí počítače a vzdáleného připojení k Raspberry. O tom je spousta návodů, jeden je:
Krok 5: JAK OVLÁDAT NAŠI WIFI NÁDRŽ S NODE. JS A WEBSOCKET. IO
Nyní máme novou instalaci našeho Raspberry micro PC připravenou spustit naši práci, takže … co používáme k vydávání příkazů tanku?
Python je velmi snadno použitelný jazyk, který se běžně používá ke spouštění projektu. Písek lze snadno použít také pro interakci se vstupními a výstupními piny Rapsberry (GPIO)
Mým cílem ale bylo připojit moji tankovou wi-fi z jakéhokoli zařízení (PC, mobilní telefon, tablet …) pomocí běžného webového prohlížeče a také z něj streamovat video. Takže prozatím zapomeňte na Python a pojďme se přesunout na NODE. JS a SOCKET. IO.
NODE.js
Node.js (https://github.com/nodejs/node/wiki) je open source serverová rámcová práce založená na jazyce js. Protože používám Raspberry Pi Zero (CPU ARMv6), nemůžeme použít proces automatické instalace (určený pro CPU ARMv7) a musíme to udělat ručně:
Stáhněte si Nodejs místně (Použil jsem verzi 7.7.2 pro ARMv6, další verze zkontrolujte zde
pi@malina: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Po dokončení rozbalte komprimovaný soubor:
pi@raspberry: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Zkopírujte a nainstalujte soubory do /user /local
pi@raspberry: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/
Přidejte do cesty umístění, kam instalujeme nodejs, upravte soubor „.profile“:
pi@malina: ~ $ nano ~/.profile
Přidejte následující řádek na konec souboru, uložte a ukončete
PATH = $ PATH:/usr/local/bin
Odeberte stažený soubor:.
pi@raspberry: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@raspberry: ~ $ rm -r ~/node-v7.7.2-linux-armv6l
Chcete -li zkontrolovat instalaci nodejs, zadejte následující příkazy:
pi@raspberry: ~ $ node -v
pi@malina: ~ $ npm -v
Jako odpověď byste měli přečíst v7.7.2 a v4.1.2.
Pokud vše proběhlo dobře, vytvořte novou složku pro hostování souborů nodejs:
pi@raspberry: ~ $ mkdir nodehome
Přesunout do nové složky:
pi@raspberry: ~ $ cd nodehome
Nainstalujte další modul potřebný pro správu GPIO nejzákladnějším způsobem, ZAPNUTO a VYPNUTO:
pi@raspberry: ~ $ npm install onoff
Nyní je čas vyzkoušet náš první projekt „Blink.js“, výsledkem bude … blikající LED
pi@raspberry: ~ $ nano blink.js
Vložte následující kód, uložte a ukončete:
var Gpio = require ('onoff'). Gpio; // zahrnout vypnuto
var LED = nové Gpio (3, 'out'); // použijte GPIO 3
var blinkInterval = setInterval (blinkLED, 250);
// blikání LED každých 250 ms
funkce blinkLED () {// funkce začne blikat
-li
(LED.readSync () === 0) {// zkontrolujte stav kolíku, pokud je stav 0 (nebo vypnutý)
LED.writeSync (1);
// nastav stav pinu na 1 (zapni LED)
} else {
LED.writeSync (0);
// nastav stav pinu na 0 (vypni LED)
}
}
funkce endBlink () {// funkce přestane blikat
clearInterval (blinkInterval); // Zastavte intervaly mrknutí
LED.writeSync (0); // Vypněte LED
LED.unexport (); // Neexportujte GPIO do bezplatných zdrojů
}
setTimeout (endBlink, 5000); // přestane blikat po 5 sekundách
Zapojte LED, odpor (200 ohmů) podle schématu a spusťte projekt:
pi@raspberry: ~ $ node blink.js
Uzel je připraven.
SOCKET. IO
WebSocket je počítačový komunikační protokol založený na připojení TCP, který poskytuje programátorovi vytvoření serveru a klienta. Klient se připojí k serveru a vysílá a přijímá zprávy na server a ze serveru. Implementace WebSocket pro Node.js se nazývá Socket.io (https://socket.io/).
Nainstalujte socket.io:
pi@raspberry: ~ $ npm install socket.io --save
Přesunout se do domu nodejs, vytvořeného dříve:
pi@raspberry: ~ $ cd nodehome
A vytvořte novou složku „public“:
pi@raspberry: ~ $ mkdir public
Vytvořte nový ukázkový webový server, nazývejte jej „webserver.js“
pi@raspberry: ~ $ nano webserver.js
Vložte následující kód, uložte a ukončete:
var http = require ('http'). createServer (handler); // vyžadují server http a vytvořte server pomocí obsluhy funkcí ()
var fs = require ('fs'); // vyžadují modul souborového systému
http.listen (8080); // poslech portu 8080
obslužná rutina funkcí (požadavek, res) {// vytvoření serveru
fs.readFile (_ dirname + '/public/index.html', funkce (chyba, data) {// čtení
soubor index.html ve veřejné složce
if (err) {
res.writeHead (404, {'Content-Type': 'text/html'}); // zobrazí 404 při chybě
vrátit res.end („404 Ne
Nalezeno );
}
res.writeHead (200, {'Content-Type': 'text/html'}); // napište HTML
res.write (data); // zápis dat
z index.html
vrátit res.end ();
});
}
Tento webový server naslouchá vašemu portu Raspberry 8080 a poskytuje soubor pro jakýkoli webový klient, který jej připojuje. Nyní musíme vytvořit něco, co budeme hostovat a poskytovat našim klientům: Přesunout se do „veřejné“složky: pi@raspberry: ~ $ cd public
Vytvořte nový html soubor „index.html“:
pi@malina: ~ $ nano index.html
Vložte kód z přiloženého souboru „HelloWorld.txt“, uložte a ukončete.
Přesunout se do složky nodejs „nodehome“:
pi@raspberry: ~ $ cd nodehome
Spusťte webový server
pi@raspberry: ~ $ node webserver.js
Otevřete web v prohlížeči pomocí https:// Raspberry_IP: 8080/(nahraďte Raspberry_IP svou IP)
Krok 6: PŘIDÁNÍ VIDEO STREAMINGU SCHOPNOSTI
Existují různé způsoby, jak implementovat streamování videa na Raspberry, nejjednodušší
způsob, jakým jsem až dosud zjistil, že skvělý výkon a integrovatelnost do webového rozhraní je základem projektu Miguel Mota:
miguelmota.com/blog/raspberry-pi-camera-bo…
Díky Migueli! Z jeho blogu jsou to tyto kroky:
Nainstalujte komponenty libjpeg8 a cmake:
pi@raspberry: ~ $ sudo apt-get install libjpeg8
pi@raspberry: ~ $ sudo apt-get install libjpeg8-dev
pi@raspberry: ~ $ sudo apt-get install cmake
Stáhněte si mjpg-streamer s pluginem raspicam:
pi@raspberry: ~ $ git clone
github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer
Změnit adresář:
pi@raspberry: ~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental
Kompilovat:
pi@raspberry: ~ $ make clean all
Vyměnit starý mjpg-streamer:
pi@raspberry: ~ $ sudo rm -rf /opt /-j.webp
pi@raspberry: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental
/opt/mjpg-streamer
pi@raspberry: ~ $ sudo rm -rf ~/mjpg -streamer
Vytvořte nový soubor „start_stream.sh“, zkopírujte a vložte z připojeného souboru „start_stream.txt“.
Udělejte to spustitelným (vytvořte skripty prostředí):
pi@malina: ~ $ chmod +x start_stream.sh
Spustit streamovací server:
pi@malina: ~ $./start_stream.sh
Otevřete web v prohlížeči pomocí https:// Raspberry_IP: 9000 (nahraďte Raspberry_IP svou IP)
Krok 7: PROGRAM NÁDRŽE
Všechno je připraveno, nyní musíme vytvořit naši webovou stránku pro ovládání tanku (index.html) a náš webový server, abychom poslouchali naše příkazy (webserver.js). Nahraďte tedy dosud viděné soubory (pouze příklady k testování systému) připojeným webserver.txt a index.txt.
Krok 8: ZAČNĚTE OVLÁDAT ROZHRANÍ A SÍŤOVÝ SERVER
Chcete -li spustit služby, otevřete dvě okna terminálu a spusťte tyto příkazy:
uzel nodehome/webserver.js
./nodehome/start_stream.sh
Otevřete web v prohlížeči pomocí https:// Raspberry_IP: 8080 (nahraďte Raspberry_IP svou IP)
Doporučuje:
ESP32-CAM, stavba vlastního robota s živým streamováním videa: 4 kroky
ESP32-CAM Postavte si vlastní robotické auto s živým streamováním videa: Cílem je, aby zde popsané robotické auto bylo co nejlevnější. Doufám proto, že se svými podrobnými pokyny a vybranými součástmi levného modelu oslovím velkou cílovou skupinu. Rád bych vám představil svůj nápad na robotické auto
ESP 8266 Nodemcu Ws 2812 Neopixelová LED lampa MOOD ovládaná místním webovým serverem: 6 kroků
ESP 8266 Nodemcu Ws 2812 Neopixelová LED lampa MOOD řízená místním webovým serverem: ESP 8266 Nodemcu Ws 2812 Neopixel LED LED MOOD lampa ovládaná pomocí webového serveru
Automatizace ESP8266 s webovým rozhraním a DDNS: 8 kroků
Automatizace ESP8266 s webovým rozhraním a DDNS: V dnešním článku si ukážeme automatizaci, která může být domácí, pomocí funkce DDNS (Dynamic Domain Name System). Pochopíte, jak nakonfigurovat aplikaci, kterou umístíte na ESP8266, na NodeMCU. Také uvidíme, jak
Snadná inteligentní lampa za 5 $ s webovým rozhraním pro smartphone: 4 kroky
Snadná chytrá lampa za 5 $ s webovým rozhraním pro smartphone: Ahoj! Jmenuji se Rafael. Toto je můj první Instructable! Mým hlavním motivem vytvoření této lampy je pomoci životům lidí znevýhodněných pohybem. Jednoho dne nebudeme mít vypínače na stěnách nebo těžko dostupné zástrčky, ale spíše naše smartphony k ovládání
Webové připojení SMART LED animační hodiny s webovým ovládacím panelem, synchronizace časového serveru: 11 kroků (s obrázky)
Webově propojené SMART LED animační hodiny S webovým ovládacím panelem, synchronizovaný časový server: Příběh těchto hodin sahá daleko do minulosti-více než 30 let. Můj otec byl průkopníkem této myšlenky, když mi bylo pouhých 10 let, dlouho před revolucí LED - tehdy, když LED diody dosahovaly 1/1 000 jasu jejich aktuálního oslepujícího lesku. Pravda