Sisällysluettelo:

Vadelma -säiliö web -käyttöliittymällä ja videon suoratoistolla: 8 vaihetta (kuvilla)
Vadelma -säiliö web -käyttöliittymällä ja videon suoratoistolla: 8 vaihetta (kuvilla)

Video: Vadelma -säiliö web -käyttöliittymällä ja videon suoratoistolla: 8 vaihetta (kuvilla)

Video: Vadelma -säiliö web -käyttöliittymällä ja videon suoratoistolla: 8 vaihetta (kuvilla)
Video: Lonely (short version) 2024, Marraskuu
Anonim
Vadelma -säiliö web -käyttöliittymällä ja videon suoratoistolla
Vadelma -säiliö web -käyttöliittymällä ja videon suoratoistolla

Katsomme, kuinka olen ymmärtänyt pienen WiFi -säiliön, joka pystyy etäohjaamaan web -ohjausta ja videon suoratoistoa.

Tämä on tarkoitettu opetusohjelmaksi, joka vaatii perustiedot elektronisesta ja ohjelmistojen ohjelmoinnista. Tästä syystä olen valinnut säiliön kotelosarjan (sen sijaan, että tulostan sen 3D -tulostimella, se voi olla myöhempi päivitys) ja yhteensä 6 komponenttia, mukaan lukien paristot. Ohjelmistopuolella voit seurata askel askeleelta asennusprosessia ja ohjelmointi pidetään minimissä, perustiedot Raspberry -asioista voivat auttaa.

Olen arvioinut 12 tunnin työskentelyn nollasta käyttövalmiiseen säiliöön. Kaikkien komponenttien kokonaishinta 70 €.

Vaihe 1: BOM

BOM
BOM
BOM
BOM
BOM
BOM
BOM
BOM

1 - DIY RC Robot Chassis Tank - 32 (€)

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

1 - Dual Channel L298N DC Motor Driver Driver Board - 1, 39 (€)

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

1 - Raspberry Pi Zero W Starter Kit - 26 (€)

amzn.eu/1ugAaMP

1-16 Gt SD -kortti - 5,50 (€)

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

1 - Raspberry Pi 5MP Camera Module Webcam for Model Zero - 8 (€)

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

1 - Virtapankki 5V

1-9v akku

Sekaleipälevyn kaapelin Dupont -liitin

Hiiri, näppäimistö, näyttö tai TV vadelma -asetuksia varten (valinnainen, vain helpottaaksesi ensimmäistä asennusta)

Vaihe 2: Pääkomponenttien tiedot

Moottori

JGA25-370 DC-vaihdemoottori

Tässä moottorissa on D-muotoinen lähtöakseli.

Tekniset tiedot

· Käyttöjännite: 6 V - 18 V

· Nimellisjännite: 12 V

· Vapaa ajonopeus 12 V: 399 rpm

· Vapaa virta 12 V: 50 mA

· Katkaisuvirta 12 V: 1200 mA

· Jäännösmomentti 12 V: 2,2 kg.cm

· Välityssuhde: 1:21

· Supistimen koko: 19 mm

· Paino: 84 g

Kaksikanavainen L298N DC -moottorin ohjainkortti

Kaksi H-sillan moottorinohjainta, voi käyttää kahta tasavirtamoottoria tai 4-johtimista kaksivaiheista askelmoottoria. Sisäänrakennettu TSD suojaa moottorin jumittumiselta.

Tekniset tiedot

· Moduulin syöttöjännite: DC 2V-10V

· Signaalin tulojännite: DC 1,8-7V

· Yksittäinen työvirta: 1,5 A.

· Huippuvirta enintään 2,5A

· Alhainen valmiustilavirta (alle 0,1 uA)

· Sisäänrakennettu yhteinen johtopiiri, tuloliitin tyhjä, moottori ei toimi

· Koko: 24,7 x 21 x 7 mm

Vaihe 3: KYTKENTÄ

JOHDOTUS
JOHDOTUS
JOHDOTUS
JOHDOTUS

Tämä on viimeinen johdotus, mutta odota, ennen kuin joudumme asentamaan joitain

ohjelmisto, ja on hyvä idea testata sitä yksinkertaisemmalla johdotuksella, kun se on valmis, palaa tänne.

Tarvitsemme kaksi erilaista virtalähdettä, toisen moottorille ja toisen Vadelmalle.

Moottorinohjaimen kaksikanavainen L298N DC-moottorin ohjainkortti (maks. Tulojännite DC 2V-10V) saa virtansa 9 V: n paristolla ja Raspberry Pi käyttää 5 V: n vakio-USB-akkua.

Moottorin ohjaimen GND -nasta liitetään akku miinus ja Raspberry Pi (GND). Raspberry Pi: n GPIO -nastat on kytketty moottorin ohjaimeen taulukon mukaisesti.

Vaihe 4: KUNNAN VALMISTAMINEN O. S

Tämä on Raspbian -käyttöjärjestelmän vakioasennus, löydät

paljon yksityiskohtaisia opetusohjelmia hakuja verkosta, periaatteessa vaiheet ovat:

1. Lataa iso RASPBIAN STRETCH WITH DESKTOP osoitteesta

2. Alusta 16 Gt: n SD -kortti, olen käyttänyt SD -muotoilua

3. Polta. IMG -tiedosto, olen käyttänyt Win32DiskImageria

Nyt vadelma on valmis käynnistymään, liitä se USB -virtalähteeseen (5 V, 2 A) ja valmistaudu ensimmäiseen käynnistykseen. Voit tehdä sen kahdella tavalla käyttämällä ulkoisia laitteita, kuten hiirtä, näppäimistöä ja näyttöä tai käyttämällä tietokonettasi ja etäyhteyttä Raspberryyn. Tästä on paljon opetusohjelmia, yksi on:

Vaihe 5: WIFI -SÄILYTIMEMME NODE. JS: N JA WEBSOCKETIN KANSSA

WIFI -SÄILYTIMEMME NODE. JS JA WEBSOCKET. IO
WIFI -SÄILYTIMEMME NODE. JS JA WEBSOCKET. IO

Nyt meillä on uusi Raspberry -mikro -PC -asennus valmiina suorittamaan työmme, joten… mitä käytämme antamaan komentoja säiliölle?

Python on erittäin helppokäyttöinen kieli, jota käytetään yleisesti Rapsberry -projektin hiekan suorittamiseen, ja sitä voidaan helposti käyttää myös vuorovaikutuksessa Rapsberry -tulo- ja tulostusnapojen (GPIO) kanssa

Tavoitteeni oli kuitenkin yhdistää tankin wi-fi mistä tahansa laitteesta (tietokone, matkapuhelin, tabletti …) käyttäen yleistä verkkoselainta ja myös suoratoistaa videota siitä. Joten, unohda Python toistaiseksi ja siirry eteenpäin NODE. JS: n ja SOCKET. IO: n kautta.

NODE.js

Node.js (https://github.com/nodejs/node/wiki) on js -kieleen perustuva avoimen lähdekoodin palvelinkehys. Koska käytän Raspberry Pi Zeroa (ARMv6 -suoritin), emme voi käyttää automaattista asennusprosessia (tarkoitettu ARMv7 -suorittimelle) ja meidän on tehtävä se manuaalisesti:

Lataa Nodejs paikallisesti (olen käyttänyt ARMv6: n 7.7.2 -versiota, tarkista muut versiot täältä

pi@vadelma: ~ $ wget

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

Kun olet valmis, purkaa pakattu tiedosto:

pi@vadelma: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz

Kopioi ja asenna tiedostot /user /local

pi@vadelma: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/

Lisää polku paikkaan, johon asennamme nodejs, muokkaa.profile -tiedostoa:

pi@vadelma: ~ $ nano ~/.profiili

Lisää seuraava rivi tiedoston loppuun, tallenna ja poistu

PATH = $ PATH:/usr/local/bin

Poista ladattu tiedosto:.

pi@vadelma: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz

pi@vadelma: ~ $ rm -r ~/node-v7.7.2-linux-armv6l

Kirjoita seuraavat komennot tarkistaaksesi nodejs -asennuksen:

pi@vadelma: ~ $ node -v

pi@vadelma: ~ $ npm -v

Sinun pitäisi lukea v7.7.2 ja v4.1.2 vastauksena.

Jos kaikki meni hyvin, luo uusi kansio nodejs -tiedostojesi isännöimiseksi:

pi@vadelma: ~ $ mkdir nodehome

Siirry uuteen kansioon:

pi@vadelma: ~ $ cd nodehome

Asenna lisämoduuli, jota tarvitaan GPIO: n hallintaan yksinkertaisimmalla tavalla, ON ja OFF:

pi@vadelma: ~ $ npm asentaa päälle

Nyt on aika testata ensimmäinen projektimme “Blink.js”, tuloksena on… vilkkuva LED

pi@vadelma: ~ $ nano blink.js

Liitä seuraava koodi, tallenna ja poistu:

var Gpio = vaatia ('onoff'). // sisällyttää päälle

var LED = uusi Gpio (3, 'out'); // käytä GPIO 3

var blinkInterval = setInterval (blinkLED, 250);

// vilkkuu LED 250 sekunnin välein

toiminto blinkLED () {// toiminto vilkkua

jos

(LED.readSync () === 0) {// tarkista nastan tila, jos tila on 0 (tai pois päältä)

LED.writeSync (1);

// aseta nastan tila 1 (kytke LED päälle)

} muuta {

LED.writeSync (0);

// aseta nastan tilaksi 0 (sammuta LED)

}

}

toiminto endBlink () {// lopettaa vilkkumisen

clearInterval (blinkInterval); // Lopeta välähdysvälit

LED.writeSync (0); // Sammuta LED

LED.unexport (); // Vie GPIO vapaaksi resursseiksi

}

setTimeout (endBlink, 5000); // lopeta vilkkuminen 5 sekunnin kuluttua

Kytke LED, vastus (200 ohmia) kaavion mukaisesti ja suorita projekti:

pi@vadelma: ~ $ solmu blink.js

Solmu on valmis.

SOCKET. IO

WebSocket on TCP -yhteyteen perustuva tietokoneviestintäprotokolla, joka tarjoaa ohjelmoijan palvelimen ja asiakkaan luomiseksi. Asiakas muodostaa yhteyden palvelimeen ja lähettää ja vastaanottaa viestejä palvelimelle ja palvelimelta. Node.js: n WebSocket -toteutuksen nimi on Socket.io (https://socket.io/).

Asenna socket.io:

pi@vadelma: ~ $ npm asenna socket.io --save

Siirry aiemmin luodun nodejs -kodin sisälle:

pi@vadelma: ~ $ cd nodehome

Ja luo uusi kansio "julkinen":

pi@vadelma: ~ $ mkdir public

Luo uusi näyteverkkopalvelin, kutsu sitä "webserver.js"

pi@vadelma: ~ $ nano -verkkopalvelin.js

Liitä seuraava koodi, tallenna ja poistu:

var http = vaatia ('http'). createServer (käsittelijä); // vaaditaan http -palvelin ja luodaan palvelin funktionkäsittelijällä ()

var fs = vaatia ('fs'); // vaativat tiedostojärjestelmämoduulin

http.listen (8080); // kuuntele porttia 8080

funktionkäsittelijä (req, res) {// luo palvelin

fs.readFile (_ dirname + '/public/index.html', function (err, data) {// luku

tiedosto index.html julkisessa kansiossa

jos (virhe) {

res.writeHead (404, {'Content-Type': 'text/html'}); // näytä virhe 404

return res.end ( 404 Ei

Löytyi );

}

res.writeHead (200, {'Content-Type': 'text/html'}); // kirjoittaa HTML

res.write (data); // kirjoittaa dataa

hakemistosta index.html

return res.end ();

});

}

Tämä verkkopalvelin kuuntelee Raspberry -porttiasi 8080 ja tarjoaa tiedostoja mille tahansa sitä yhdistävälle verkkosovellukselle. Nyt meidän on luotava jotain isännöidä ja tarjota asiakkaillemme: Siirry "julkiseen" kansioon: pi@vadelma: ~ $ cd public

Luo uusi html -tiedosto "index.html":

pi@vadelma: ~ $ nano index.html

Liitä koodi liitteenä olevasta "HelloWorld.txt" -tiedostosta, tallenna ja poistu.

Siirry nodejs -kansion "nodehome" sisälle:

pi@vadelma: ~ $ cd nodehome

Käynnistä HTTP -verkkopalvelin:

pi@vadelma: ~ $ node webserver.js

Avaa verkkosivusto selaimella käyttämällä https:// Raspberry_IP: 8080/(korvaa Raspberry_IP IP -osoitteellasi)

Vaihe 6: VIDEOVIRTAUSKAPPALEEN LISÄÄMINEN

Videoiden suoratoisto Raspberrylla on helpoin tapa eri tavoin

Tähän asti olen havainnut, että Miguel Mota -projektin perusta on suuri suorituskyky ja se voidaan integroida verkkokäyttöliittymään:

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

Kiitos Miguel! Hänen blogistaan ovat seuraavat vaiheet:

Asenna komponentit libjpeg8 ja cmake:

pi@vadelma: ~ $ sudo apt-get install libjpeg8

pi@vadelma: ~ $ sudo apt-get install libjpeg8-dev

pi@vadelma: ~ $ sudo apt-get install cmake

Lataa mjpg-streamer raspicam-laajennuksella:

pi@vadelma: ~ $ git -klooni

github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer

Vaihda hakemisto:

pi@vadelma: ~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental

Koota:

pi@vadelma: ~ $ puhdista kaikki

Korvaa vanha mjpg-streamer:

pi@vadelma: ~ $ sudo rm -rf /opt /-j.webp

pi@vadelma: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-experimental

/opt/mjpg-streamer

pi@vadelma: ~ $ sudo rm -rf ~/mjpg -streamer

Luo uusi "start_stream.sh" -tiedosto, kopioi ja liitä liitteenä olevasta "start_stream.txt" -tiedostosta.

Tee siitä suoritettava (luo komentosarjoja):

pi@vadelma: ~ $ chmod +x start_stream.sh

Käynnistä suoratoistopalvelin:

pi@vadelma: ~ $./start_stream.sh

Avaa verkkosivusto selaimella käyttämällä https:// Raspberry_IP: 9000 (korvaa Raspberry_IP IP -osoitteellasi)

Vaihe 7: SÄILIÖ -OHJELMA

Kaikki on valmis, nyt meidän on luotava verkkosivumme säiliön hallintaan (index.html) ja verkkopalvelimemme kuuntelemaan komentojamme (webserver.js). Joten korvaa tähän asti nähneet tiedostot (vain esimerkkejä järjestelmän testaamisesta) liitteenä olevilla webserver.txt- ja index.txt -tiedostoilla.

Vaihe 8: KÄYNNISTÄ OHJAUSLIITTYMÄ JA Suoratoistopalvelin

KÄYNNISTÄ OHJAUSLIITTYMÄ JA Suoratoistopalvelin
KÄYNNISTÄ OHJAUSLIITTYMÄ JA Suoratoistopalvelin

Voit käynnistää palvelut avaamalla kaksi pääteikkunaa ja suorittamalla seuraavat komennot:

solmu nodehome/webserver.js

./nodehome/start_stream.sh

Avaa verkkosivusto selaimella käyttämällä https:// Raspberry_IP: 8080 (korvaa Raspberry_IP IP -osoitteellasi)

Suositeltava: