INHOUDSOPGAWE:
- Stap 1: BOM
- Stap 2: Spesifikasies van die hoofkomponente
- Stap 3: BEDRADING
- Stap 4: VOORBEREIDING VAN Raspberry O.S
- Stap 5: HOE OM ONS WIFI -TANK TE BEHEER MET NODE.JS EN WEBSOCKET.IO
- Stap 6: TOEVOEGING VAN VIDEO STREAMING -KAPASITEIT
- Stap 7: TANKPROGRAM
- Stap 8: BEGIN BEHEERKoppelvlak en strome -bediener
Video: Framboosbak met webkoppelvlak en videostroom: 8 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
Ons gaan kyk hoe ek 'n klein WiFi -tenk gekry het wat in staat is om webbeheer en videostreaming op afstand te doen.
Dit is 'n handleiding wat basiese kennis van elektroniese en sagteware -programmering vereis. Om hierdie rede het ek 'n tenk -onderstelstel gekies (in plaas daarvan om dit met 'n 3D -drukker te druk, kan dit 'n latere opgradering wees) en 'n totaal van 6 komponente, insluitend batterye. Aan die sagteware kan u die installasieproses en die programmering tot 'n minimum beperk, 'n basiese kennis van framboos -dinge kan help.
Ek het 12 uur se werk geskat van 0 tot tenk om klaar te loop. Totale koste van 70 € vir alle komponente.
Stap 1: BOM
1 - DIY RC Robot Chassis Tank - 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 - Raspberry Pi Zero W Starter Kit - 26 (€)
amzn.eu/1ugAaMP
1 - 16 GB SD -kaart - 5, 50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Raspberry Pi 5MP -kameramodule -webcam vir Model Zero - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Power Bank 5V
1 - 9v battery
Gemengde broodbordkabel Dupont -aansluiting
Muis, sleutelbord, monitor of TV vir framboosopstelling (opsioneel, net om die eerste opstelling makliker te maak)
Stap 2: Spesifikasies van die hoofkomponente
Motor
JGA25-370 DC-ratmotor
Hierdie motor het 'n D-vormige uitsetas.
Spesifikasies
· Bedryfspanning: tussen 6 V en 18 V
· Nominale spanning: 12 V
· Vryloopspoed teen 12 V: 399 rpm
· Vryloopstroom by 12 V: 50 mA
· Stallstroom by 12V: 1200 mA
· Standkoppel by 12V: 2,2 kg.cm
· Ratverhouding: 1:21
· Grootte reduktor: 19 mm
· Gewig: 84 g
Dual Channel L298N DC motorbestuurderbord
Dubbele H-brugmotorbestuurder, kan twee GS-motors of 'n 4-draads tweefasige stapmotor dryf. Ingeboude TSD, om te beskerm teen motorstalletjies.
Spesifikasies
· Module toevoerspanning: DC 2V-10V
· Sein insetspanning: DC 1.8-7V
· Enkel werkstroom: 1.5A
· Piekstroom tot 2,5A
· Lae bystandstroom (minder as 0.1uA)
· Ingeboude algemene geleidingskring, die ingangsklem leeg, die motor funksioneer nie
· Grootte: 24,7 x 21 x 7 mm
Stap 3: BEDRADING
Dit sal die laaste bedrading wees, maar WAG, voordat ons 'n paar moet installeer
sagteware, en dit is 'n goeie idee om dit met eenvoudiger bedrading te toets, as dit gereed is, wat terugkom hierheen.
Ons benodig twee verskillende kragbronne, een vir die motor en een vir die Framboos.
Die motorbestuurder Dual Channel L298N DC-motorbestuurderbord (maksimum ingangsspanning DC 2V-10V) word aangedryf deur die 9V-battery te gebruik en Raspberry Pi gebruik die standaard 5V USB-akkumulator.
Die GND -pen van die motorbestuurder word verbind met die battery minus en Raspberry Pi (GND). Die GPIO -penne van Raspberry Pi word as tafel aan die motorbestuurder gekoppel.
Stap 4: VOORBEREIDING VAN Raspberry O. S
Dit is 'n standaardinstallasie vir die Raspbian -bedryfstelsel
baie gedetailleerde tutoriale op die internet, basies is die stappe:
1. Laai iso RASPBIAN STRETCH MET DESKTOP af van
2. Formateer 'n 16 GB SD -kaart, ek het SD Formatter gebruik
3. Brand. IMG lêer, ek het Win32DiskImager gebruik
Nou is u framboos gereed om op te laai, koppel dit aan 'n USB -kragbron (5V, 2A) en berei u voor vir die eerste opstartopstelling. U kan dit op twee maniere doen, met behulp van eksterne toestelle soos muis, sleutelbord en monitor, of met u rekenaar en 'n afstandverbinding met Framboos. Daar is baie tutoriale hieroor, die een is:
Stap 5: HOE OM ONS WIFI -TANK TE BEHEER MET NODE. JS EN WEBSOCKET. IO
Nou het ons 'n nuwe installasie van ons Framboos -mikro -rekenaar gereed om ons werk uit te voer, so … wat gebruik ons om bevele aan die tenk uit te reik?
Python is 'n baie maklik om te gebruik taal wat algemeen gebruik word om Rapsberry -projek uit te voer, en kan ook maklik gebruik word om met Rapsberry -invoer- en uitvoerpenne (GPIO) te werk
Maar my doel was om my tenk-wi-fi aan te sluit vanaf enige toestel (rekenaar, selfoon, tablet …) met 'n gewone webblaaier en ook video daarvan te stroom. Dus, vergeet Python vir eers, en laat ons aanbeweeg na NODE. JS en SOCKET. IO.
NODE.js
Node.js (https://github.com/nodejs/node/wiki) is 'n open source bediener raamwerk gebaseer op js taal. Aangesien ek Raspberry Pi Zero (ARMv6 CPU) gebruik, kan ons nie die outomatiese installasieproses (bedoel vir ARMv7 CPU) gebruik nie en moet ons dit met die hand doen:
Laai Nodejs plaaslik af (ek het 'n 7.7.2 -weergawe vir ARMv6 gebruik, kyk na ander weergawes hier
pi@framboos: ~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Sodra dit klaar is, pak die saamgeperste lêer uit:
pi@framboos: ~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Kopieer en installeer die lêers in /user /local
pi@framboos: ~ $ sudo cp -R node-v7.7.2-linux-armv6l/*/usr/local/
Voeg die plek waar ons nodejs installeer by die pad, wysig '.profile' lêer:
pi@framboos: ~ $ nano ~/.profiel
Voeg die volgende reël aan die einde van die lêer by, stoor en verlaat
PATH = $ PATH:/usr/local/bin
Verwyder die afgelaaide lêer:.
pi@framboos: ~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@framboos: ~ $ rm -r ~/node-v7.7.2-linux-armv6l
Tik die volgende opdragte om die installering van nodejs na te gaan:
pi@framboos: ~ $ node -v
pi@framboos: ~ $ npm -v
U moet v7.7.2 en v4.1.2 as antwoord lees.
As alles goed verloop, skep 'n nuwe gids om u nodejs -lêers te huisves:
pi@framboos: ~ $ mkdir nodehome
Beweeg na 'n nuwe gids:
pi@framboos: ~ $ cd nodehome
Installeer addisionele module wat nodig is om GPIO op die mees basiese manier te bestuur, AAN en UIT:
pi@framboos: ~ $ npm installeer onoff
Dit is nou tyd om ons eerste projek "Blink.js" te toets, die resultaat is … 'n knipperende LED
pi@framboos: ~ $ nano blink.js
Plak die volgende kode, stoor en verlaat:
var Gpio = require ('onoff'). Gpio; // insluit onoff
var LED = nuwe Gpio (3, 'out'); // gebruik GPIO 3
var blinkInterval = setInterval (blinkLED, 250);
// knipper LED elke 250 ms
funksie blinkLED () {// funksie om te begin knip
as
(LED.readSync () === 0) {// kyk na die speldtoestand, as die toestand 0 is (of af)
LED.writeSync (1);
// stel penstatus in op 1 (skakel LED aan)
} anders {
LED.writeSync (0);
// stel penstatus in op 0 (skakel LED af)
}
}
funksie endBlink () {// funksie om op te hou knip
clearInterval (blinkInterval); // Stop knipperintervalle
LED.writeSync (0); // Skakel LED af
LED.unexport (); // Gee GPIO uit na gratis hulpbronne
}
setTimeout (endBlink, 5000); // hou op met knip na 5 sekondes
Dra 'n LED, 'n weerstand (200 ohm) soos in die skema getoon en voer die projek uit:
pi@framboos: ~ $ node blink.js
Node is gereed.
SOCKET. IO
WebSocket is 'n rekenaarkommunikasieprotokol, gebaseer op TCP -verbinding, en bied 'n programmeerder om 'n bediener en kliënt te skep. Die kliënt maak verbinding met die bediener en stuur en ontvang boodskappe na en van die bediener. WebSocket -implementering vir Node.js heet Socket.io (https://socket.io/).
Installeer socket.io:
pi@framboos: ~ $ npm installeer socket.io --save
Beweeg na nodejs huis toe, wat voorheen geskep is:
pi@framboos: ~ $ cd nodehome
En skep 'n nuwe gids "publiek":
pi@framboos: ~ $ mkdir publiek
Skep 'n nuwe voorbeeldwebbediener, noem dit 'webserver.js'
pi@framboos: ~ $ nano webserver.js
Plak die volgende kode, stoor en verlaat:
var http = require ('http'). createServer (hanteerder); // benodig http -bediener en skep bediener met funksiehanterer ()
var fs = vereis ('fs'); // vereis lêerstelsel module
http.listen (8080); // luister na poort 8080
funksie hanteerder (vereiste, res) {// skep bediener
fs.readFile (_ dirname + '/public/index.html', funksie (fout, data) {// lees
lêer index.html in die openbare gids
as (fout) {
res.writeHead (404, {'Inhoudstipe': 'teks/html'}); // vertoon 404 by fout
stuur res.end ( 404 nie
Gevind );
}
res.writeHead (200, {'Inhoudstipe': 'teks/html'}); // skryf HTML
res.write (data); // data skryf
van index.html
stuur res.end () terug;
});
}
Hierdie webbediener luister na u Framboos -poort 8080 en bied lêers vir elke webkliënt wat dit verbind. Nou moet ons iets skep om aan te bied en aan ons kliënte te bied: Beweeg na die "openbare" gids: pi@raspberry: ~ $ cd public
Skep nuwe html -lêer “index.html”:
pi@framboos: ~ $ nano index.html
Plak kode van aangehegte "HelloWorld.txt", stoor en verlaat.
Beweeg na nodejs -lêergids "nodehome":
pi@framboos: ~ $ cd nodehome
Begin HTTP -webbediener:
pi@framboos: ~ $ node webserver.js
Maak die webwerf oop in 'n blaaier met https:// Raspberry_IP: 8080/(vervang Raspberry_IP met u IP)
Stap 6: TOEVOEGING VAN VIDEO STREAMING -KAPASITEIT
Daar is verskillende maniere om videostroom op 'n framboos die maklikste te implementeer
Soos ek tot dusver gevind het, is dit 'n uitstekende prestasie en kan geïntegreer word in 'n webkoppelvlak op die projek van Miguel Mota:
miguelmota.com/blog/raspberry-pi-camera-bo…
Dankie Miguel! Uit sy blog is dit die volgende stappe:
Installeer komponente libjpeg8 en cmake:
pi@framboos: ~ $ sudo apt-get install libjpeg8
pi@framboos: ~ $ sudo apt-get install libjpeg8-dev
pi@framboos: ~ $ sudo apt-get install cmake
Laai mjpg-streamer af met raspicam-inprop:
pi@framboos: ~ $ git kloon
github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer
Verander gids:
pi@framboos: ~ $ cd ~/mjpg-streamer/mjpg-streamer-eksperimenteel
Stel saam:
pi@framboos: ~ $ maak alles skoon
Vervang ou mjpg-streamer:
pi@framboos: ~ $ sudo rm -rf /opt /-j.webp
pi@framboos: ~ $ sudo mv ~/mjpg-streamer/mjpg-streamer-eksperimenteel
/opt/mjpg-streamer
pi@framboos: ~ $ sudo rm -rf ~/mjpg -streamer
Skep 'n nuwe "start_stream.sh" lêer, kopieer en plak uit die aangehegte "start_stream.txt" lêer.
Maak dit uitvoerbaar (skep dopskripte):
pi@framboos: ~ $ chmod +x start_stream.sh
Begin stroom bediener:
pi@framboos: ~ $./start_stream.sh
Maak die webwerf oop in 'n blaaier met behulp van https:// Raspberry_IP: 9000 (vervang Raspberry_IP met u IP)
Stap 7: TANKPROGRAM
Alles is gereed, nou moet ons ons webwerf skep om die tenk (index.html) en ons webbediener te beheer om na ons opdragte te luister (webserver.js). Vervang dus die lêers wat tot nou toe gesien is (slegs voorbeelde om die stelsel te toets) met die aangehegte webserver.txt en index.txt.
Stap 8: BEGIN BEHEERKoppelvlak en strome -bediener
Om die dienste te begin, maak twee terminale vensters oop en voer hierdie opdragte uit:
node nodehome/webserver.js
./nodehome/start_stream.sh
Maak die webwerf oop in 'n blaaier met behulp van https:// Raspberry_IP: 8080 (vervang Raspberry_IP met u IP)
Aanbeveel:
ESP32-CAM Bou u eie robotmotor met lewendige videostroom: 4 stappe
ESP32-CAM Bou u eie robotmotor met lewendige videostroom: Die idee is om die robotmotor wat hier beskryf word, so goedkoop moontlik te maak. Daarom hoop ek om 'n groot doelgroep te bereik met my gedetailleerde instruksies en die geselekteerde komponente vir 'n goedkoop model. Ek wil u my idee vir 'n robotmotor voorstel
Live 4G/5G HD -videostroom vanaf DJI -drone teen lae vertraging [3 stappe]: 3 stappe
Live 4G/5G HD-videostroom vanaf DJI Drone by lae vertraging [3 stappe]: Die volgende gids sal u help om lewendige videostrome van HD-kwaliteit te kry van byna enige DJI-hommeltuig. Met die hulp van die FlytOS Mobile App en FlytNow Web Application, kan u begin om video vanaf die drone te stroom
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer
Raspberry Pi -webkoppelvlak: 5 stappe
Raspberry Pi -webinterface: Dit is die instruksies vir die installering van die webkoppelvlak wat ek ontwikkel het om die gpio -penne van 'n framboospi te skakel om 'n aktiewe laerelaaibord wat vir arduino bedoel is, te beheer. Dit bedien 'n eenvoudige bladsy waarmee u op 'n skakel na alt kan klik
Klankuitsending en videostroom met behulp van Raspberry Pi 3 .: 6 stappe
Klankuitsending en videostroom met behulp van Raspberry Pi 3 .: Die belangrikste nut van hierdie projek is om audio na Raspberry Pi 3 uit te saai vanaf enige toestel wat met die gemeenskaplike WiFi -netwerk gekoppel is en video van Raspberry Pi 3 na enige toestel wat aan 'n gemeenskaplike WiFi -netwerk gekoppel is, te bekom