Obsah:
- Krok 1: kusovník
- Krok 2: Špecifikácie hlavných komponentov
- Krok 3: KABELÁŽ
- Krok 4: PRÍPRAVA RASPBERRY O.S
- Krok 5: AKO OVLÁDAŤ NAŠU WIFI NÁDRŽIU S NODE.JS A WEBSOCKET.IO
- Krok 6: PRIDÁVANIE SCHOPNOSTI VIDEO STREAMOVAŤ
- Krok 7: PROGRAM NÁDRŽE
- Krok 8: ZAČNITE OVLÁDAŤ ROZHRANIE A SIEŤOVÝ SERVER
Video: Malinový tank s webovým rozhraním a streamovaním videa: 8 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Uvidíme, ako som realizoval malý WiFi tank, ktorý je schopný diaľkového ovládania webu a streamovania videa.
Má ísť o návod, ktorý vyžaduje základné znalosti elektronického a softvérového programovania. Z tohto dôvodu som si vybral súpravu podvozku Tank (namiesto tlače pomocou 3D tlačiarne, môže ísť o neskoršiu aktualizáciu) a celkovo 6 komponentov vrátane batérií. Po softvérovej stránke môžete postup inštalácie krok za krokom a programovanie obmedziť na minimum. Pomôcť vám môžu základné znalosti o veciach Raspberry.
Odhadoval som 12 hodín práce od 0 do nádrže pripravenej na prevádzku. Celkové náklady na všetky komponenty 70 €.
Krok 1: kusovník
1 - DIY RC robotická podvozková nádrž - 32 (€)
www.banggood.com/DIY-RC-Robot-Chassis-Tan…
1 - Dvojkanálová doska ovládača jednosmerného motora L298N - 1, 39 (€)
www.banggood.com/Dual-Channel-L298N-DC-Mo…
1 - Štartovacia 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 s modulom kamery Raspberry Pi 5MP pre model Zero - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Power Bank 5V
1 - 9v batéria
Dupontný konektor zmiešaného kábla na doske
Myš, klávesnica, monitor alebo televízor pre nastavenie Raspberry (voliteľné, len na uľahčenie prvého nastavenia)
Krok 2: Špecifikácie hlavných komponentov
Motor
Prevodový motor JGA25-370 DC
Tento motor je vybavený výstupným hriadeľom v tvare D.
technické údaje
· Prevádzkové napätie: medzi 6 V a 18 V
· Menovité napätie: 12 V
· Voľnobežné otáčky pri 12 V: 399 ot / min
· Voľne bežiaci prúd pri 12 V: 50 mA
· Pádový prúd pri 12V: 1200 mA
· Krútiaci moment pri 12 V: 2,2 kg.cm
· Prevodový pomer: 1:21
· Veľkosť reduktora: 19 mm
· Hmotnosť: 84 g
Dvojkanálová doska ovládača jednosmerného motora L298N DC
Dvojitý budič motora mostíka H môže poháňať dva jednosmerné motory alebo 4-vodičové dvojfázové krokové motory. Vstavaná TSD na ochranu pred zastavením motora.
technické údaje
· Napájacie napätie modulu: DC 2V-10V
· Vstupné napätie signálu: DC 1,8-7V
· Jeden pracovný prúd: 1,5A
· Špičkový prúd až 2,5A
· Nízky pohotovostný prúd (menej ako 0,1uA)
· Vstavaný obvod spoločného vedenia, vstupný terminál je prázdny, motor nepracuje správne
· Veľkosť: 24,7 x 21 x 7 mm
Krok 3: KABELÁŽ
Toto bude konečné zapojenie, ale počkajte, kým ho budeme musieť nainštalovať
softvéru a je dobré ho vyskúšať pomocou jednoduchšieho zapojenia, keď sa k nemu vrátite.
Potrebujeme dva rôzne zdroje energie, jeden pre motor a druhý pre malinu.
Motorový ovládač Dual Channel L298N DC Motor Driver Board (max. Vstupné napätie DC 2V-10V) je napájaný pomocou 9V batérie a Raspberry Pi používa štandardný 5V USB akumulátor.
Kolík GND ovládača motora bude pripojený k batérii mínus a k Raspberry Pi (GND). GPIO piny Raspberry Pi sú pripojené k ovládaču motora ako tabuľka.
Krok 4: PRÍPRAVA RASPBERRY O. S
Toto je štandardná inštalácia pre operačný systém Raspbian, nájdete
veľa podrobných návodov na prehľadávanie webu, v zásade tieto kroky sú:
1. Stiahnite si iso RASPBIAN STRETCH S DESKTOP z
2. Naformátujte 16 GB kartu SD, použil som formátovač SD
3. Napálte súbor. IMG, použil som Win32DiskImager
Teraz je vaša malina pripravená na spustenie, pripojte ju k zdroju napájania USB (5 V, 2 A) a pripravte sa na prvé spustenie. Môžete to urobiť dvoma spôsobmi, pomocou externých zariadení, ako je myš, klávesnica a monitor, alebo pomocou počítača a vzdialeného pripojenia k Raspberry. Existuje veľa návodov na to, jeden je:
Krok 5: AKO OVLÁDAŤ NAŠU WIFI NÁDRŽIU S NODE. JS A WEBSOCKET. IO
Teraz máme novú inštaláciu nášho Raspberry micro PC pripravenú vykonávať svoju prácu, takže … čo používame na vydávanie príkazov do nádrže?
Python je veľmi ľahko použiteľný jazyk, ktorý sa bežne používa na spustenie projektu Rapsberry, piesok je možné ľahko použiť aj na interakciu so vstupnými a výstupnými kolíkmi Rapsberry (GPIO)
Ale mojim cieľom bolo pripojiť moju tankovú wi-fi z akéhokoľvek zariadenia (PC, mobilný telefón, tablet …) pomocou spoločného webového prehliadača a tiež z neho streamovať video. Na Python nateraz zabudnite a poďme ďalej na NODE. JS a SOCKET. IO.
NODE.js
Node.js (https://github.com/nodejs/node/wiki) je open source rámcová práca na serveri založená na jazyku js. Pretože používam Raspberry Pi Zero (procesor ARMv6), nemôžeme použiť proces automatickej inštalácie (určený pre procesor ARMv7) a musíme to urobiť ručne:
Stiahnite si Nodejs lokálne (Použil som verziu 7.7.2 pre ARMv6, ďalšie verzie nájdete tu
pi@malina: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Po dokončení rozbaľte komprimovaný súbor:
pi@raspberry: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Skopírujte a nainštalujte súbory do /user /local
pi@raspberry: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/
Pridajte do cesty umiestnenie, kam inštalujeme nodejs, upravte súbor „.profile“:
pi@malina: ~ $ nano ~/.profile
Na koniec súboru pridajte nasledujúci riadok, uložte ho a ukončite
PATH = $ PATH:/usr/local/bin
Odstráňte stiahnutý súbor:.
pi@raspberry: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@raspberry: ~ $ rm -r ~/node-v7.7.2-linux-armv6l
Na kontrolu inštalácie nodejs zadajte nasledujúce príkazy:
pi@malina: ~ $ node -v
pi@malina: ~ $ npm -v
Ako odpoveď by ste si mali prečítať v7.7.2 a v4.1.2.
Ak všetko prebehlo dobre, vytvorte nový priečinok na hostovanie svojich súborov nodejs:
pi@malina: ~ $ mkdir nodehome
Presunúť do nového priečinka:
pi@raspberry: ~ $ cd nodehome
Nainštalujte ďalší modul potrebný na správu GPIO najzákladnejším spôsobom, ZAPNUTÉ a VYPNUTÉ:
pi@raspberry: ~ $ npm install onoff
Teraz je načase otestovať náš prvý projekt „Blink.js“, výsledkom bude … blikajúca dióda LED
pi@malina: ~ $ nano blink.js
Prilepte nasledujúci kód, uložte a ukončite:
var Gpio = require ('onoff'). Gpio; // zahrni vyp
var LED = nové Gpio (3, 'out'); // použite GPIO 3
var blinkInterval = setInterval (blinkLED, 250);
// blikanie LED každých 250 ms
funkcia blinkLED () {// funkcia, ktorá začne blikať
keby
(LED.readSync () === 0) {// skontrolujte stav kolíka, ak je stav 0 (alebo vypnutý)
LED.writeSync (1);
// nastavte stav kolíka na 1 (zapnite LED)
} else {
LED.writeSync (0);
// nastavenie stavu pinu na 0 (vypnutie LED)
}
}
funkcia endBlink () {// funkcia prestane blikať
clearInterval (blinkInterval); // Zastavte intervaly žmurkania
LED.writeSync (0); // Vypnite LED
LED.unexport (); // Neexportujte GPIO do voľných zdrojov
}
setTimeout (endBlink, 5 000); // prestane blikať po 5 sekundách
Pripojte LED, odpor (200 ohmov) podľa schémy a spustite projekt:
pi@raspberry: ~ $ node blink.js
Uzol je pripravený.
SOCKET. IO
WebSocket je počítačový komunikačný protokol založený na pripojení TCP a poskytuje programátorovi vytvorenie servera a klienta. Klient sa pripája k serveru a odosiela a prijíma správy zo servera a zo servera. Implementácia WebSocket pre Node.js sa nazýva Socket.io (https://socket.io/).
Nainštalujte socket.io:
pi@raspberry: ~ $ npm install socket.io -uložte
Presunúť sa do domu nodejs, vytvorený pôvodne:
pi@raspberry: ~ $ cd nodehome
A vytvorte nový priečinok „verejný“:
pi@raspberry: ~ $ mkdir public
Vytvorte nový ukážkový webový server, nazývajte ho „webserver.js“
pi@raspberry: ~ $ nano webserver.js
Prilepte nasledujúci kód, uložte a ukončite:
var http = require ('http'). createServer (handler); // vyžadujú server http a vytvorte server pomocou obsluhy funkcií ()
var fs = require ('fs'); // vyžadujú modul systému súborov
http.listen (8080); // počúvajte port 8080
obsluha funkcií (požiadavka, res) {// vytvorenie servera
fs.readFile (_ dirname + '/public/index.html', function (err, data) {// read
súbor index.html vo verejnom priečinku
if (err) {
res.writeHead (404, {'Content-Type': 'text/html'}); // zobrazí 404 pri chybe
vrátiť res.end („404 Nie
Nájdené );
}
res.writeHead (200, {'Content-Type': 'text/html'}); // napíšte HTML
res.write (údaje); // zapis dát
z index.html
vrátiť res.end ();
});
}
Tento webový server bude počúvať váš port 8080 Raspberry a poskytne súbor každému webovému klientovi, ktorý ho pripojí. Teraz musíme vytvoriť niečo, čo budeme hosťovať a poskytovať našim klientom: Presuňte sa do „verejného“priečinka: pi@raspberry: ~ $ cd public
Vytvorte nový html súbor „index.html“:
pi@malina: ~ $ nano index.html
Vložte kód z priloženého súboru „HelloWorld.txt“, uložte ho a ukončite.
Presuňte sa do priečinka nodejs „nodehome“:
pi@raspberry: ~ $ cd nodehome
Spustiť webový server
pi@raspberry: ~ $ node webserver.js
Otvorte webovú stránku v prehliadači pomocou https:// Raspberry_IP: 8080/(nahraďte Raspberry_IP svojou IP)
Krok 6: PRIDÁVANIE SCHOPNOSTI VIDEO STREAMOVAŤ
Existujú rôzne spôsoby, ako implementovať streamovanie videa na Raspberry, najľahšie
Ako som doteraz zistil, že tak veľký výkon, ktorý je možné integrovať do webového rozhrania, vychádza z projektu od Miguela Motu:
miguelmota.com/blog/raspberry-pi-camera-bo…
Ďakujem Miguel! Z jeho blogu sú tieto kroky:
Nainštalujte 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
Stiahnite si mjpg-streamer s doplnkom raspicam:
pi@malina: ~ $ git klon
github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer
Zmeniť adresár:
pi@raspberry: ~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental
Zostaviť:
pi@raspberry: ~ $ make clean all
Vymeniť starý mjpg-streamer:
pi@raspberry: ~ $ sudo rm -rf /opt /mjpg -streamer
pi@raspberry: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental
/opt/mjpg-streamer
pi@raspberry: ~ $ sudo rm -rf ~/mjpg -streamer
Vytvorte nový súbor „start_stream.sh“, skopírujte ho a prilepte z priloženého súboru „start_stream.txt“.
Urobte to spustiteľným (vytvorte skripty shellu):
pi@malina: ~ $ chmod +x start_stream.sh
Spustiť streamovací server:
pi@malina: ~ $./start_stream.sh
Otvorte webovú stránku v prehliadači pomocou https:// Raspberry_IP: 9000 (nahraďte Raspberry_IP svojou IP)
Krok 7: PROGRAM NÁDRŽE
Všetko je pripravené, teraz musíme vytvoriť našu webovú stránku na ovládanie nádrže (index.html) a webový server, aby sme počúvali naše príkazy (webserver.js). Nahraďte teda doteraz zobrazené súbory (len príklady na testovanie systému) priloženým webserver.txt a index.txt.
Krok 8: ZAČNITE OVLÁDAŤ ROZHRANIE A SIEŤOVÝ SERVER
Ak chcete spustiť služby, otvorte dve okná terminálu a spustite tieto príkazy:
uzol nodehome/webserver.js
./nodehome/start_stream.sh
Otvorte webovú stránku v prehliadači pomocou https:// Raspberry_IP: 8080 (nahraďte Raspberry_IP svojou IP)
Odporúča:
ESP32-CAM zostrojenie vlastného robotického auta so streamovaním živého videa: 4 kroky
ESP32-CAM Postavenie vlastného robotického auta so živým streamovaním videa: Cieľom je, aby tu popísané robotické auto bolo čo najlacnejšie. Preto dúfam, že svojimi podrobnými pokynmi a vybranými komponentmi pre lacný model oslovím veľkú cieľovú skupinu. Rád by som vám predstavil môj nápad na robotické auto
Pi Home, malinový virtuálny asistent: 11 krokov (s obrázkami)
Pi Home, virtuálny asistent poháňaný malinou: Domov Google je užitočné mať doma. Je to krásne zariadenie so vstavaným asistentom Google-najmodernejším digitálnym osobným asistentom od spoločnosti Google. Môže prehrávať médiá, ukladať vaše pripomenutia a poznámky, informovať vás o dĺžke dochádzania
Automatizácia ESP8266 s webovým rozhraním a DDNS: 8 krokov
Automatizácia ESP8266 s webovým rozhraním a DDNS: V dnešnom článku si ukážeme automatizáciu, ktorá môže byť bytová, pomocou funkcie DDNS (Dynamic Domain Name System). Pochopíte, ako nakonfigurovať aplikáciu, ktorú umiestnite na ESP8266, na NodeMCU. Tiež uvidíme, ako
Jednoduchá inteligentná lampa za 5 dolárov s webovým rozhraním pre smartfón: 4 kroky
Jednoduchá inteligentná lampa za 5 dolárov s webovým rozhraním pre smartfón: Ahoj! Volám sa Rafael. Toto je môj prvý pokyn! Mojím hlavným motívom vytvorenia tejto žiarovky je pomôcť životom ľudí so zníženou pohyblivosťou. Jedného dňa nebudeme mať vypínače na stenách alebo ťažko dostupné zástrčky, ale skôr naše smartphony na ovládanie
Webové SMART LED animačné hodiny s webovým ovládacím panelom, synchronizácia časového servera: 11 krokov (s obrázkami)
Webové SMART LED animačné hodiny s webovým ovládacím panelom a synchronizáciou časového servera: Príbeh týchto hodín siaha ďaleko do minulosti-viac ako 30 rokov. Môj otec bol priekopníkom tejto myšlienky, keď som mal iba 10 rokov, dlho pred revolúciou LED - vtedy, keď LED diódy dosahovali 1/1 000 jasu svojej súčasnej oslepujúcej brilancie. Skutočný