Inhaltsverzeichnis:
- Schritt 1: Stückliste
- Schritt 2: Spezifikationen der Hauptkomponenten
- Schritt 3: VERKABELUNG
- Schritt 4: VORBEREITUNG HIMBEERE O.S
- Schritt 5: SO STEUERN SIE UNSEREN WIFI-TANK MIT NODE.JS UND WEBSOCKET.IO
- Schritt 6: VIDEO-STREAMING-FÄHIGKEIT HINZUFÜGEN
- Schritt 7: TANKPROGRAMM
- Schritt 8: CONTROL INTERFACE UND STREAMING SERVER STARTEN
Video: Raspberry Tank mit Webinterface und Videostreaming - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Wir werden sehen, wie ich einen kleinen WiFi-Tank realisiert habe, der Web-Fernsteuerung und Video-Streaming ermöglicht.
Dies ist als Tutorial gedacht, das grundlegende Kenntnisse der Elektronik- und Softwareprogrammierung erfordert. Aus diesem Grund habe ich mich für ein Tankchassis-Kit entschieden (anstatt es mit 3D-Drucker zu drucken, kann ein späteres Upgrade sein) und insgesamt 6 Komponenten inklusive Batterien. Auf der Softwareseite kann man den Installationsprozess Schritt für Schritt verfolgen und die Programmierung wird auf ein Minimum reduziert, ein Grundwissen über Raspberry-Dinge kann helfen.
Ich habe 12 Stunden Arbeit von 0 bis zum betriebsbereiten Tank geschätzt. Gesamtkosten von 70€ für alle Komponenten.
Schritt 1: Stückliste
1 - DIY RC Roboter Chassis Tank - 32 (€)
www.banggood.com/DIY-RC-Robot-Chassis-Tan…
1 - Dual Channel L298N DC-Motortreiberplatine - 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-Karte - 5, 50 (€)
www.gearbest.com/memory-cards/pp_337819.h…
1 - Raspberry Pi 5MP Kameramodul Webcam für Model Zero - 8 (€)
www.gearbest.com/raspberry-pi/pp_612249.h…
1 - Powerbank 5V
1 - 9V Batterie
Gemischtes Breadboard-Kabel Dupont-Anschluss
Maus, Tastatur, Monitor oder TV für Raspberry-Setup (optional, um die Ersteinrichtung zu vereinfachen)
Schritt 2: Spezifikationen der Hauptkomponenten
Motor
JGA25-370 DC-Getriebemotor
Dieser Motor verfügt über eine D-förmige Abtriebswelle.
Spezifikationen
· Betriebsspannung: zwischen 6 V und 18 V
· Nennspannung: 12 V
· Freilaufdrehzahl bei 12 V: 399 U/min
· Freilaufstrom bei 12 V: 50 mA
· Blockierstrom bei 12V: 1200 mA
· Stillstandsdrehmoment bei 12V: 2,2 kg.cm
· Übersetzungsverhältnis: 1:21
· Reduziergröße: 19 mm
· Gewicht: 84 g
Zweikanalige L298N DC-Motortreiberplatine
Dual-H-Brücken-Motortreiber, kann zwei Gleichstrommotoren oder einen 4-Draht-Zweiphasen-Schrittmotor antreiben. Eingebauter TSD zum Schutz vor Motorstillstand.
Spezifikationen
· Modulversorgungsspannung: DC 2V-10V
· Signaleingangsspannung: DC 1,8-7V
· Einzelarbeitsstrom: 1,5A
· Spitzenstrom bis 2,5A
· Niedriger Standby-Strom (weniger als 0,1uA)
· Eingebauter gemeinsamer Stromkreis, die Eingangsklemme ist frei, der Motor funktioniert nicht
· Größe: 24,7 x 21 x 7 mm
Schritt 3: VERKABELUNG
Dies wird die letzte Verkabelung sein, aber WARTEN Sie, bevor wir einige installieren müssen
Software und es ist eine gute Idee, es mit einfacherer Verkabelung zu testen, wenn Sie fertig sind, kommen Sie hierher zurück.
Wir brauchen zwei verschiedene Stromquellen, eine für den Motor und eine für den Raspberry.
Der Motortreiber Dual Channel L298N DC Motor Driver Board (max. Eingangsspannung DC 2V-10V) wird mit der 9V Batterie betrieben und Raspberry Pi verwendet den Standard 5V USB Akku.
Der GND-Pin des Motortreibers wird mit dem Minus der Batterie und dem Raspberry Pi (GND) verbunden. Die GPIO-Pins des Raspberry Pi sind als Tabelle mit dem Motortreiber verbunden.
Schritt 4: VORBEREITUNG HIMBEERE O. S
Dies ist eine Standardinstallation für das Raspbian-Betriebssystem, die Sie finden können
viele detaillierte Tutorials, die das Internet durchsuchen, im Wesentlichen sind die Schritte:
1. Laden Sie iso RASPBIAN STRETCH MIT DESKTOP von https://www.raspberrypi.org/downloads/raspbian/ herunter
2. Formatieren Sie eine 16 GB SD-Karte, ich habe den SD-Formatierer verwendet
3. Brennen Sie die. IMG-Datei, ich habe Win32DiskImager verwendet
Jetzt ist Ihre Himbeere startbereit, schließen Sie sie an eine USB-Stromquelle (5V, 2A) an und bereiten Sie sich auf das erste Boot-Setup vor. Sie können dies auf zwei Arten tun, mit externen Geräten wie Maus, Tastatur und Monitor oder mit Ihrem PC und einer Remote-Verbindung zum Raspberry. Dazu gibt es viele Tutorials, eines ist:
Schritt 5: SO STEUERN SIE UNSEREN WIFI-TANK MIT NODE. JS UND WEBSOCKET. IO
Jetzt haben wir eine frische Installation unseres Raspberry-Mikro-PCs, die bereit ist, unseren Job auszuführen, also … was verwenden wir, um Befehle an den Tank zu erteilen?
Python ist eine sehr einfach zu verwendende Sprache, die häufig zum Ausführen von Rapsberry-Projekten verwendet wird und auch zur Interaktion mit Rapsberry-Ein- und Ausgabepins (GPIO) verwendet werden kann
Mein Ziel war es jedoch, mein Tank-WLAN von jedem Gerät (PC, Mobiltelefon, Tablet…) mit einem gängigen Webbrowser zu verbinden und auch Videos davon zu streamen. Vergiss also erstmal Python und lass uns mit NODE. JS und SOCKET. IO fortfahren.
NODE.js
Node.js (https://github.com/nodejs/node/wiki) ist ein Open-Source-Server-Framework basierend auf der Sprache js. Da ich Raspberry Pi Zero (ARMv6-CPU) verwende, können wir den automatischen Installationsprozess (für ARMv7-CPUs vorgesehen) nicht verwenden und müssen dies manuell tun:
Laden Sie Nodejs lokal herunter (ich habe Version 7.7.2 für ARMv6 verwendet, überprüfen Sie andere Versionen hier
pi@raspberry:~ $ wget
nodejs.org/dist/v7.7.2/node-v7.7.2-linux-…
Wenn Sie fertig sind, extrahieren Sie die komprimierte Datei:
pi@raspberry:~ $ tar -xzf node-v7.7.2-linux-armv6l.tar.gz
Kopieren und installieren Sie die Dateien nach /user/local
pi@raspberry:~ $ sudo cp -R node-v7.7.2-linux-armv6l/* /usr/local/
Fügen Sie den Ort, an dem wir nodejs installieren, zum Pfad hinzu, bearbeiten Sie die Datei „.profile“:
pi@raspberry:~ $ nano ~/.profile
Fügen Sie die folgende Zeile am Ende der Datei hinzu, speichern und beenden
PFAD=$PFAD:/usr/local/bin
Entfernen Sie die heruntergeladene Datei:.
pi@raspberry:~ $ rm ~/node-v7.7.2-linux-armv6l.tar.gz
pi@raspberry:~ $ rm -r ~/node-v7.7.2-linux-armv6l
Geben Sie die folgenden Befehle ein, um die Installation von nodejs zu überprüfen:
pi@raspberry:~ $ node -v
pi@raspberry:~ $ npm -v
Als Antwort sollten Sie v7.7.2 und v4.1.2 lesen.
Wenn alles gut gelaufen ist, erstellen Sie einen neuen Ordner zum Hosten Ihrer nodejs-Dateien:
pi@raspberry:~ $ mkdir nodehome
In neuen Ordner verschieben:
pi@raspberry:~ $ cd nodehome
Installieren Sie ein zusätzliches Modul, das erforderlich ist, um GPIO auf die einfachste Weise zu verwalten, EIN und AUS:
pi@raspberry:~ $ npm install onoff
Jetzt ist es an der Zeit unser erstes Projekt „Blink.js“zu testen, das Ergebnis wird … eine blinkende LED sein
pi@raspberry:~ $ nano blink.js
Füge folgenden Code ein, speichere und beende:
var Gpio = require('onoff'). Gpio; //Einschließen einAus
var LED = neues Gpio(3, 'out'); // GPIO verwenden 3
var blinkInterval = setInterval (blinkLED, 250);
// LED blinken alle 250ms
Funktion blinkLED () {// Funktion zum Starten des Blinkens
wenn
(LED.readSync() === 0) {//Überprüfe den Pin-Zustand, wenn der Zustand 0 (oder aus) ist
LED.writeSync(1);
// Pin-Zustand auf 1 setzen (LED einschalten)
} anders {
LED.writeSync(0);
// Pin-Zustand auf 0 setzen (LED ausschalten)
}
}
Funktion endBlink() {//Funktion zum Aufhören des Blinkens
clearInterval (blinkInterval); // Blinkintervalle stoppen
LED.writeSync(0); // LED ausschalten
LED.unexport(); // GPIO aufheben, um Ressourcen freizugeben
}
setTimeout(endBlink, 5000); // hört nach 5 Sekunden auf zu blinken
Verdrahten Sie eine LED, einen Widerstand (200 Ohm) wie im Schema gezeigt und führen Sie das Projekt aus:
pi@raspberry:~ $ node blink.js
Knoten ist bereit.
BUCHSE. IO
WebSocket ist ein Computer-Kommunikationsprotokoll, das auf einer TCP-Verbindung basiert und einem Programmierer ermöglicht, einen Server und einen Client zu erstellen. Der Client verbindet sich mit dem Server und sendet und empfängt Nachrichten an und von dem Server. Die WebSocket-Implementierung für Node.js heißt Socket.io (https://socket.io/).
Socket.io installieren:
pi@raspberry:~ $ npm install socket.io --save
Bewegen Sie sich in das zuvor erstellte Nodejs-Home:
pi@raspberry:~ $ cd nodehome
Und erstellen Sie einen neuen Ordner „public“:
pi@raspberry:~ $ mkdir öffentlich
Erstellen Sie einen neuen Beispiel-Webserver, nennen Sie ihn "webserver.js".
pi@raspberry:~ $ nano webserver.js
Füge folgenden Code ein, speichere und beende:
var http = require('http').createServer(handler); // http-Server erfordern und Server mit Funktionshandler () erstellen
var fs = erfordern('fs'); //Dateisystemmodul erforderlich
http.hören(8080); // Port 8080 anhören
Funktionshandler (req, res) { //Server erstellen
fs.readFile(_dirname + '/public/index.html', function(err, data) { //read
Datei index.html im öffentlichen Ordner
wenn (fehler) {
res.writeHead(404, {'Inhaltstyp': 'text/html'}); // 404 bei Fehler anzeigen
return res.end( 404 Not
Gefunden );
}
res.writeHead(200, {'Inhaltstyp': 'text/html'}); // HTML schreiben
res.write (Daten); // Daten schreiben
aus index.html
Rückgabe res.end();
});
}
Dieser Webserver wird Ihren Raspberry Port 8080 abhören und Dateien für jeden Webclient bereitstellen, der ihn verbindet. Jetzt müssen wir etwas erstellen, das wir hosten und unseren Kunden zur Verfügung stellen können: Verschieben Sie in den Ordner „public“: pi@raspberry:~ $ cd public
Neue HTML-Datei „index.html“erstellen:
pi@raspberry:~ $ nano index.html
Code aus angehängter "HelloWorld.txt" einfügen, speichern und beenden.
Verschieben Sie in den nodejs-Ordner "nodehome":
pi@raspberry:~ $ cd nodehome
HTTP-Webserver starten:
pi@raspberry:~ $ node webserver.js
Öffnen Sie die Website in einem Browser mit https://Raspberry_IP:8080/ (ersetzen Sie Raspberry_IP durch Ihre IP)
Schritt 6: VIDEO-STREAMING-FÄHIGKEIT HINZUFÜGEN
Es gibt verschiedene Möglichkeiten, Videostreaming auf einem Raspberry zu implementieren, am einfachsten
Wie ich bis jetzt festgestellt habe, dass die Leistung so toll ist und in ein Webinterface integriert werden kann, basiert auf dem Projekt von Miguel Mota:
miguelmota.com/blog/raspberry-pi-camera-bo…
Danke Miguel! Von seinem Blog sind dies die Schritte:
Installieren Sie die Komponenten libjpeg8 und cmake:
pi@raspberry:~ $ sudo apt-get install libjpeg8
pi@raspberry:~ $ sudo apt-get install libjpeg8-dev
pi@raspberry:~ $ sudo apt-get install cmake
Download mjpg-streamer mit raspicam-Plugin:
pi@raspberry:~ $ git clone
github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer
Ändere die Richtung:
pi@raspberry:~ $ cd ~/mjpg-streamer/mjpg-streamer-experimental
Kompilieren:
pi@raspberry:~ $ alles sauber machen
Alten mjpg-streamer ersetzen:
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
Erstellen Sie eine neue Datei „start_stream.sh“, kopieren Sie sie und fügen Sie sie aus der angehängten Datei „start_stream.txt“ein.
Ausführbar machen (Shell-Skripte erstellen):
pi@raspberry:~ $ chmod +x start_stream.sh
Streaming-Server starten:
pi@raspberry:~ $./start_stream.sh
Öffnen Sie die Website in einem Browser mit https://Raspberry_IP:9000 (ersetzen Sie Raspberry_IP durch Ihre IP)
Schritt 7: TANKPROGRAMM
Alles ist fertig, jetzt müssen wir unsere Webseite zur Steuerung des Panzers (index.html) und unseren Webserver zum Abhören unserer Befehle (webserver.js) erstellen. Ersetzen Sie also einfach die bisher angezeigten Dateien (nur Beispiele zum Testen des Systems) durch die angehängte webserver.txt und index.txt.
Schritt 8: CONTROL INTERFACE UND STREAMING SERVER STARTEN
Um die Dienste zu starten, öffnen Sie zwei Terminalfenster und führen Sie diese Befehle aus:
Knoten nodehome/webserver.js
./nodehome/start_stream.sh
Öffnen Sie die Website in einem Browser mit https://Raspberry_IP:8080 (ersetzen Sie Raspberry_IP durch Ihre IP)
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
Live 4G/5G HD-Videostreaming von DJI Drone mit niedriger Latenzzeit [3-Schritte]
4G/5G HD-Live-Videostreaming von DJI-Drohne mit geringer Latenz [3 Schritte]: Die folgende Anleitung hilft Ihnen, Live-Videostreams in HD-Qualität von fast jeder DJI-Drohne zu erhalten. Mit Hilfe der FlytOS Mobile App und der FlytNow Web Application können Sie Videos von der Drohne streamen
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50