Obsah:

Malinový tank s webovým rozhraním a streamovaním videa: 8 krokov (s obrázkami)
Malinový tank s webovým rozhraním a streamovaním videa: 8 krokov (s obrázkami)

Video: Malinový tank s webovým rozhraním a streamovaním videa: 8 krokov (s obrázkami)

Video: Malinový tank s webovým rozhraním a streamovaním videa: 8 krokov (s obrázkami)
Video: Вот это постанова ► 6 Прохождение Silent Hill Origins (PS2) 2024, November
Anonim
Malinový tank s webovým rozhraním a streamovaním videa
Malinový tank s webovým rozhraním a streamovaním videa

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

BOM
BOM
BOM
BOM
BOM
BOM
BOM
BOM

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ÁŽ

ELEKTRICKÉ VEDENIE
ELEKTRICKÉ VEDENIE
ELEKTRICKÉ VEDENIE
ELEKTRICKÉ VEDENIE

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

AKO OVLÁDAŤ NAŠU WIFI NÁDRŽIU S NODE. JS A WEBSOCKET. IO
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

ZAČNITE OVLÁDAŤ ROZHRANIE A SIEŤOVÝ SERVER
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: