Inhaltsverzeichnis:

Raspberry SPy Roboter - Gunook
Raspberry SPy Roboter - Gunook

Video: Raspberry SPy Roboter - Gunook

Video: Raspberry SPy Roboter - Gunook
Video: Raspberry Spy Robot 2024, November
Anonim
Image
Image
Raspberry Spy-Roboter
Raspberry Spy-Roboter

Dieses Projekt ermöglicht es Ihnen, einen Roboter über eine Webseite zu fahren und einen Livestream anzuzeigen. Es kann verwendet werden, um Haustiere auszuspionieren, sicherzustellen, dass nichts in Ihrem Ofen brennt, und sogar zum Beobachten von Vögeln! DFRobot lieferte den Raspberry Pi 3 und das Raspberry Pi Kameramodul.

Schritt 1: Die Roboterelektronik

Die Roboterelektronik
Die Roboterelektronik

Ich begann mit dem Zusammenbau des 2WD MiniQ Chassis-Kits von DFRobot. Ich schob die Räder auf die Motorwellen, steckte sie dann in Halterungen und befestigte sie am Chassis. Schließlich fügte ich die Metallstützen hinzu. Nun war es an der Zeit, das Mainboard zu bauen. Der L293d-Motortreiber wurde zusammen mit Drähten zu den GPIO-Pins des Raspberry Pi gelötet. Als nächstes lötete ich einen Stecker für den Akku, da dieser die Hauptstromversorgung liefert. Nachdem die Stromquelle hinzugefügt wurde, installierte ich einen 5V-Regler.

Schritt 2: Einrichten des Pi

Einrichten des Pi
Einrichten des Pi

DFRobot hat sich bei mir gemeldet und ihr Raspberry Pi 3 und ihr Raspberry Pi Kameramodul geschickt. Nachdem ich die Boxen geöffnet hatte, machte ich mich gleich an die Arbeit, indem ich die SD-Karte einrichtete. Zuerst ging ich auf die Raspberry Pi Downloads Seite und lud die neueste Version von Raspbian herunter. Ich habe dann die Datei entpackt und in ein geeignetes Verzeichnis gelegt. Sie können eine.img-Datei nicht einfach auf eine SD-Karte kopieren / einfügen, Sie müssen sie auf die Karte "brennen". Sie können ein Brennprogramm wie Etcher.io herunterladen, um das Betriebssystem-Image einfach zu übertragen. Nachdem die.img-Datei auf meiner SD-Karte war, steckte ich sie in den Raspberry Pi und gab ihm Strom. Nach etwa 50 Sekunden habe ich das Kabel abgezogen und die SD-Karte entfernt. Als nächstes legte ich die SD-Karte wieder in meinen PC und ging in das "Boot"-Verzeichnis. Ich habe Notepad geöffnet und als leere Datei namens "ssh" ohne Erweiterung gespeichert. Ich habe auch eine Datei namens "wpa_supplicant.conf" hinzugefügt und diesen Text eingefügt:

Netzwerk = { ssid = psk = }

Dann habe ich die Karte gespeichert, ausgeworfen und wieder in den Raspberry Pi 3 gesteckt. Dies sollte nun die Verwendung von SSH und die Verbindung mit WiFi ermöglichen.

Schritt 3: Bereiten Sie die Kamera vor

Vorbereitung der Kamera
Vorbereitung der Kamera

Standardmäßig ist die Kamera auf dem Pi deaktiviert, daher müssen Sie den Terminaltyp sudo raspi-config öffnen, um das Menü aufzurufen. Gehen Sie zu "Schnittstellenoptionen" und aktivieren Sie dann die Kamera. Wählen Sie nun einfach „Fertig stellen“und stecken Sie das Flachbandkabel des Kameramoduls in den richtigen Bereich des Pi.

Schritt 4: Software installieren

Es gibt mehrere verschiedene Softwares, die Videos streamen können, wie z. B. vlc und Motion, aber ich habe mich aufgrund seiner geringen Latenz und einfachen Installation für den mjpeg-streamer entschieden. Führen Sie gemäß den Anweisungen auf der Website einen Git-Clone https://github.com/jacksonliam/mjpg-streamer.git in einen Ordner aus und geben Sie dann sudo apt-get install cmake libjpeg8-dev ein, um die benötigten Bibliotheken zu installieren. Wechseln Sie Ihr Verzeichnis in den heruntergeladenen Ordner und geben Sie dann make gefolgt von sudo make install ein, um die Software zu kompilieren. Geben Sie abschließend export LD_LIBRARY_PATH= ein. und zum Ausführen geben Sie./mjpg_streamer -o "output_http.so -w./www" -i "input_raspicam.so" ein. Sie können auf den Stream zugreifen, indem Sie zu https://:8080/stream.html gehen, um den Stream anzuzeigen.

Schritt 5: Controller

Regler
Regler
Regler
Regler

Dann kam der Teil, wie man einen Raspberry Pi über WLAN steuert, weil Bluetooth zu wenig Reichweite hat. Ich entschied mich für die Verwendung eines Flask-Servers, der auf dem Raspberry PI läuft, und eines ESP8266 ESP12E-Moduls, um Daten an ihn zu senden. Der ESP8266 hat nur einen analogen Eingang, was bedeutet, dass ich den Joystick nicht direkt verwenden konnte, da er zwei analoge Eingänge benötigt. Die beste Option war der ADS1115, ein I2C-Gerät, das analoge Signale mit einer Auflösung von 16 Bit liest. Ich habe einfach SDA an 4 und SCL an 5 angeschlossen, zusammen mit VCC und GND. Die X-Achse des Joysticks ist mit A0 des ADS1115 verbunden, und die Y-Achse ist mit A1 verbunden. ABER, ich habe versehentlich den ADS1115 ausgebrannt, also musste ich auf das nächstbeste zurückgreifen: Knöpfe! Jetzt ist mein Setup ein ESP8266 Sparkfun Thing Dev Board mit 3 Tasten - vorwärts, rechts und links. Jedes Mal, wenn einer gedrückt wird, sendet er Daten, um die Räder in diese Richtung zu drehen.

Schritt 6: Der Code für den Roboter

Der Code für den Roboter
Der Code für den Roboter

Ich habe ein früheres Projekt erstellt, bei dem die GPIO-PWM-Bibliothek des Pi verwendet wurde, um Motoren über Json zu steuern, also habe ich den Code einfach umfunktioniert, um stattdessen Daten über eine Flask-App zu akzeptieren. Flask ist eine Python-Bibliothek, die Ihren Pi im Wesentlichen in einen Webserver verwandelt, der Daten senden und empfangen kann. Durch die Verwendung von PWM können die Motoren im Vergleich zum Panzerantrieb genauer gesteuert werden. Dies bedeutet auch, dass der Roboter mit variablen Geschwindigkeiten anstatt mit einer festen Geschwindigkeit fahren kann. Meine Kolben-App ist so konfiguriert, dass sie die PWM der Motoren ändert, sobald sie Daten von einer GET-Anforderung über http vom ESP12e empfängt. Es verwendet auch die Bibliothek subprocess. Popen, um das Webstreaming-Skript im Hintergrund auszuführen. Ich habe Code an die Projektseite angehängt, so dass nur ein Download erforderlich ist.

Schritt 7: Controller-Code

Der Code war ziemlich einfach, lesen Sie einfach die 3 Pins ab, führen Sie sie durch einige if-Anweisungen, um die Radrichtung zu bestimmen, und senden Sie diese Werte schließlich an den Raspberry Pi. Das ESP8266-Board-Additional für die Arduino-IDE wird mit der HTTPClient-Bibliothek geliefert, die Header verarbeitet und Daten sendet. Der Flask-Server muss Daten über einen POST-Aufruf empfangen, daher startet der Code eine Verbindung mit dem Raspberry Pi-Webserver, fügt dann einen Header zu den Daten hinzu, der angibt, dass es sich um JSON-codiert handelt, und sendet die Daten schließlich in Form eines JSON-Objekts. Ich habe eine Verzögerung von 40 ms hinzugefügt, um zu verhindern, dass der Raspberry Pi mit Daten überlastet wird.

Schritt 8: Ausführen des Raspberry SPy

Ausführen des Raspberry SPy
Ausführen des Raspberry SPy
Ausführen des Raspberry SPy
Ausführen des Raspberry SPy

Sie müssen lediglich sudo python.py eingeben! Sie sollten die Kamera aufleuchten sehen und wenn Sie zur Webadresse des Pi mit dem Port 8080 gehen, sollte der Stream sichtbar sein. Jetzt können Sie den Controller überall im Haus verwenden und auch einen Live-Feed haben.

Empfohlen: