Inhaltsverzeichnis:

Raspberry Pi Cam Tank V1.0 - Gunook
Raspberry Pi Cam Tank V1.0 - Gunook

Video: Raspberry Pi Cam Tank V1.0 - Gunook

Video: Raspberry Pi Cam Tank V1.0 - Gunook
Video: Raspberry Pi Cam Tank 2024, Juli
Anonim
Image
Image
Raspberry Pi Cam Tank V1.0
Raspberry Pi Cam Tank V1.0

Ich liebe Panzer seit meiner Kindheit. Mein eigenes Panzerspielzeug zu bauen ist immer einer meiner Träume. Aber aufgrund des Mangels an Wissen und Fähigkeiten. Traum ist nur ein Traum.

Nach mehrjährigem Studium der Ingenieurwissenschaften und des Industriedesigns. Ich habe Fähigkeiten und Kenntnisse erworben. Und dank der günstigeren Hobby-3D-Drucker. Endlich kann ich meinen Schritt machen.

Welche Eigenschaften soll dieser Panzer haben?

  • Ferngesteuert
  • Gefederte Laufräder (wie der echte Panzer!)
  • Hat einen drehbaren Turm und eine kippbare BB-Kanone kann 6-mm-Kugeln verschießen
  • Kann Videos auf den Controller streamen, sodass Sie ihn weit entfernt steuern können

Am Anfang hatte ich geplant, Arduino als Controller zu verwenden, aber nach einigen Recherchen fand ich heraus, dass es keine praktische Möglichkeit gibt, Videos selbst zu streamen. Raspberry Pi scheint jedoch ein guter Kandidat für das Streaming von Videos zu sein. Und Sie können es über Frau von Ihrem Telefon aus steuern!

Lass uns anfangen.

Schritt 1: Benötigte Teile

Zur Steuerung

Raspberry Pi-Version B

Angetriebener USB-Hub (Belkin F4u040)

USB-Webcam (Logitech C270)

WLAN-Dongle (Edimax)

Überbrückungskabel von Buchse auf Stecker

Zum Autofahren

Zwei drehmomentstarke Servos oder Motoren (für zwei Antriebsräder)

Eine 1/8 Stahlstange für Radwellen (im Heimdepot gekauft und günstig)

Zehn Gleitlager (bestellt bei Mcmaster)

Einige Federn zur Federung (bei Harbour Freight ein Federsortiment gekauft, günstig)

Für Turm

Ein automatisches BB-Waffenspielzeug

Ein Mini-DC-Motor mit hohem Drehmoment

Ein Mikro-Servo zum Auf- und Abkippen

Einige 1/4 Stahlstangen als Waffenachse

Andere Sachen

Ich habe die meisten Teile dieses Tanks in 3D gedruckt, wenn Sie einfachen Zugang zu einem Laserschneider haben, würde das auch funktionieren.

Ich habe PLA-Filament zum Drucken verwendet, weil es einfacher zu handhaben ist (keine Wickelprobleme bei ABS). Aber später wirklich schwer zu schleifen, zu schneiden, zu bohren.

Sie denken vielleicht, dass der 3D-Druck gut für kundenspezifische Teile ist und Sie sehr komplizierte Teile in einem Stück drucken können. Das ist wahr. Ich denke jedoch, dass dieser Weg für einen Bastler nicht praktikabel und wirtschaftlich ist. Gründe sind:

Ihr Hobbydrucker wird nicht so genau sein.

Sie machen Fehler bei Messungen und Berechnungen (Toleranz, Ausrichtung usw.).

Wie auch immer, es besteht eine ziemlich hohe Wahrscheinlichkeit, dass Ihre Drucke nicht funktionieren oder auf Ihre erste Aufnahme passen. Für einen kleinen Teil ist es in Ordnung, Sie können einfach das Modell ändern und dann erneut drucken. Aber für einen größeren und komplizierteren Teil ist es frustrierend, nach stundenlangem Drucken zu wissen, dass etwas nicht stimmt. Es ist Zeit- und Materialverschwendung. Also hier ist mein Ansatz:

Für alles, was symmetrisch ist, nur die Hälfte ausdrucken, ausprobieren, wenn alles gut funktioniert, alles ausdrucken.

Modellieren des Teils, während Sie über den 3D-Druck nachdenken. Könnte es eine ebene Oberfläche geben, um das Druckerbett zu befestigen? Könnte es in kleinere Teile geteilt werden, um viel Stützstruktur zu vermeiden?

Für Teile mit vielen Funktionen (die mit vielen anderen Teilen interagieren), teilen Sie das Modell in Module auf. Wenn also eine Funktion fehlgeschlagen ist, müssen Sie nicht den gesamten Teil erneut drucken. Passen Sie einfach das Modul an und drucken Sie es erneut aus. Ich verwende Schrauben und Muttern, um sie zu verbinden.

Seien Sie ein guter Freund mit Handwerkzeugen, Handsäge, X-acto, Bohrmaschine, Heißklebepistole. Wenn Sie einen Druckfehler beheben können, korrigieren Sie ihn.

Dies erklärt, warum mein Tank so viele Teile hat. Ich bin immer noch dabei, diese Teile zu optimieren und sobald ich eine gute Kombination gefunden habe, kann ich sie zusammen als ein Stück drucken. Dann wäre das mein Cam Tank v2.0.

Schritt 2: Das Fahrsystem

Image
Image
Das Fahrsystem
Das Fahrsystem
Das Fahrsystem
Das Fahrsystem

Suspension

Zuerst habe ich einen Prototyp ohne Federung gebaut, nur Achsen über die Unterwanne mit Lagern und Rädern. Aber an den Komfort des Betreibers denkend (ich werde ihn fahren, während ich das Streaming-Video anschaue!), entschied ich mich, eine Federung hinzuzufügen, um es kühler zu machen.

Alles was ich habe sind einige Schraubenfedern, keine Hydraulik, keine Blattfeder. Ich habe zuerst einen Torsionsstabmechanismus mit PLA experimentiert. (Bei einigen Panzern ist eine Drehstabfederung üblich). Es stellte sich heraus, dass die gedruckte PLA-Leiste nach ein paar Drehungen weich werden und schließlich brechen würde. ABS könnte für diesen Zweck besser sein, aber ich habe es nie versucht. Also, nach weiteren Recherchen, habe ich Christie Suspension Design gefunden, hier ist ein kurzes Video, das zeigt, wie es funktioniert.

Allerdings hat die Christie-Aufhängung so viele Kleinteile, und ich habe dann kein Vertrauen in meinen Drucker. Also habe ich so eine Aufhängung gemacht.

(Bild)

Diese Konfiguration nimmt zu viel Innenraum ein. Also drehe ich den inneren Arm um 90 Grad. Beachten Sie, dass das erste und letzte Rad kürzer geworden sind

Spanner hinten

Ich dachte, wenn der Panzer über einige Hindernisse fährt, könnten sich die Laufräder nach oben bewegen und die Spur verliert an Spannung. Also habe ich einen Spannmechanismus am Hinterrad hinzugefügt. Im Grunde sind es zwei Federn, die die ganze Zeit auf die echte Achse drücken und eine gewisse Kraft darauf ausüben, um die Ketten zu straffen.

Antriebsräder und Ketten

Ich habe diese Raupenketten und Antriebsräder in Solidworks entworfen. Ich habe nicht viel Ahnung von Maschinenbau und kann daher keine Zahnradberechnung durchführen. Also habe ich Teile in Solidworks simuliert, um zu sehen, ob es funktioniert, bevor ich auf die Schaltfläche Drucken klicke. Jede Spur ist mit einem 3 mm Ersatzfilament verbunden. Mit etwas Schleifen geht das ganz gut. Aber das Streckendesign hat einen Fehler, die Oberfläche, die den Boden berührt, ist zu glatt, um schwer zu greifen. Wenn ich es verkehrt herum drucke, könnte ich etwas Profil hinzufügen, aber es kostet aufgrund des Zahns viel Stützmaterial. Zukünftige Lösungen: 1: Den Zahn separat drucken und dann zusammenkleben. 2. Tragen Sie etwas Gummibeschichtungs-Sprühfarbe auf.

Dann habe ich das Gehäuse für Servos gedruckt und sichergestellt, dass das Antriebsrad mit Schrauben am Servoarm befestigt werden kann.

Schritt 3: Waffensystem

Image
Image
Waffensystem
Waffensystem
Waffensystem
Waffensystem

Dieser Teil ist für mich der spannendste. Sie können ein Kamera-Panzerspielzeug kaufen. Aber ich habe kein Spielzeug gefunden, das Kamera und eine Waffe kombiniert.

Ich habe dieses automatische Airsoft-Spielzeug für 9,99 $ im Angebot gekauft. (Es kostet jetzt ungefähr 20 Dollar und ich könnte später etwas billigeres versuchen) Und reißen Sie es ab, um den Mechanismus zu verstehen. Ich kann den Körper total schneiden und an meinen Tank kleben. Aber ich mag den hässlich aussehenden halben Körper nicht. Also habe ich etwas gemessen und den mechanischen Teil umgebaut. Aus diesen Stücken habe ich eine Lektion aus dem 3D-Druck gelernt: Sie werden immer Fehler machen. Es braucht 5 Drucke, um jedes Teil passend zu machen, und viel Schneiden, Schleifen und Heißkleben, damit es perfekt funktioniert.

Nachdem sich jedes Teil der Spielzeugpistole in meinem nachgebildeten Körper richtig bewegt hatte, druckte ich vier weitere Teile, um den Körper festzuklemmen. Und fügte das Kippgetriebe, den BB-Kugeltrichter und die Kameraunterstützung hinzu. Diese Teile sind alle mit dem Pistolenkörper verschraubt. Schließlich können sie zu mindestens zwei Teilen kombiniert werden. Aber ich glaube, ich bin noch nicht bereit.

Auf der Turmbasis habe ich ein Mikroservo zum Neigen und einen Mikro-DC-Motor zum Drehen hinzugefügt.

Dann habe ich angefangen, die Waffe zu testen, 4 AA-Batterien anzuschließen und sie schießt gut. Ich habe mich sehr gefreut, dass es gut funktioniert. Aber am nächsten Tag fand ich ein Problem.

Hier ist das Video von meinem Waffentest. Der Turm wurde an einen 3V-Adapter angeschlossen.

Schritt 4: Einrichten des Pi

Dies ist der wichtigste Teil, das Herz unseres Tanks – Himbeer-Pi!

Wenn Sie Raspberry Pi noch nicht gespielt haben. Ich empfehle, mit diesem Buch zu beginnen: Erste Schritte mit Himbeer-Pi von MAKE. Sie erhalten die Grundlagen und ein umfassendes Verständnis von Pi.

Holen Sie sich das neueste Raspbian-Betriebssystem.

Das nächste Tool, das ich sehr empfehle, ist der Remote Desktop. Hier ist das Tutorial von Adam Riley. Nach der Einrichtung können Sie den Pi-Desktop auf Ihrem PC anzeigen (nicht auf Mac getestet). Um den Pi "nackt" zu betreiben, braucht man also weder Display noch Maus und Tastatur. Einige meiner Freunde verwenden die ssh-Befehlszeile. Aber ich bevorzuge den Desktop.

Aufgrund früherer Recherchen wusste ich, dass Raspberry Pi in der Lage ist, Videos zu streamen. Also fing ich an, mit verschiedenen Apps auf dem Pi herumzuspielen. Viele der Apps haben entweder eine lange Verzögerung (Sekunden) oder eine niedrige Bildrate. Nachdem ich ein paar Wochen durch Online-Videos und Tutorials gewandert war, fand ich zum Glück die Lösung. Ein Video auf Youtube über webiopi hat mir viel Hoffnung gegeben. Weitere Recherchen ließen mich glauben, dass dies der richtige Weg ist.

Webiopi ist ein Framework, das die Verbindung zwischen Pi und anderen Internetgeräten wirklich einfach gemacht hat. Es steuert alle Pi GPIOS und startet dann einen Server, der benutzerdefiniertes HTML enthält. Sie können von anderen Geräten (Computer, Smartphone usw.) auf dieses HTML zugreifen und in einer WLAN-Entfernung auf eine Schaltfläche im Browser klicken, ein GPIO wird ausgelöst.

Das Video hat mich voller Hoffnung gemacht, basiert auf einem Webiopi-Tutorial - Cambot-Projekt. Es ist im MagPi-Magzine #9[html][pdf] und #10[html][pdf] enthalten. Danke Eric PTAK!

Wenn Sie dem Tutorial Schritt für Schritt folgen, können Sie einen Cambot mit zwei Rädern machen! So funktioniert es: Verbinden Sie zwei Motoren mit einer H-Brücke und steuern Sie dann die H-Brücke mit 6 GPIO-Pins, um Richtung und Geschwindigkeit zu steuern. Zur Steuerung der GPIOs wird Webiopi verwendet. Und MJPG-Streamer wird zum Streamen von Videos verwendet.

Wenn Sie neu bei Pi oder Linux sind, wie ich es vor Monaten war, haben Sie möglicherweise ein kleines Problem, nachdem Sie alle Schritte ausgeführt haben. Sie können den Python-Code für Webiopi und das Streaming-Video separat ausführen, wissen aber nicht, wie Sie sie zusammen ausführen sollen? Es hat eine Weile gedauert, bis ich wusste, dass Sie nach einem Befehl ein & hinzufügen können (& ist bei Google wirklich schwer zu suchen, BTW), das bedeutet, dass dieser Befehl im Hintergrund ausgeführt werden soll. Also werde ich dies jedes Mal tun:

sudo python cambot.py&

sudo./stream.sh

Ich glaube, Sie erstellen eine Bash-Datei mit dem obigen Befehl in einer Datei und führen sie einmal aus. Ich habe es noch nicht versucht.

Also habe ich dieses grundlegende Setup mit zwei DC-Motoren ausprobiert, es läuft, aber der Motor, den ich habe, ist nicht stark genug. Führt mich zu einer anderen Option: kontinuierliche Servos.

Dann kommt eine neue Frage: Unterstützt webiopi PWM-gesteuerte Servos?

Die Antwort ist ja, aber nicht von selbst: RPIO wird benötigt, um Software-PWM zu generieren

RPIO-Installation (Ich habe kein Glück bei der ersten apt-get-Installationsmethode. Die Github-Methode funktioniert bei mir hervorragend)

Beispielcode und andere Diskussionen

Jetzt ist Ihr Bot mit zwei Servos aufgerüstet! Überlegen Sie, was Sie mit den zusätzlichen Armen machen können!

Ich habe den obigen Beispielcode so geändert, dass er zu meinem Tank passt. Dafür brauchst du kein Informatikstudium. Sie sind gut, solange Sie den Beispielcode verstehen und wissen, was zu kopieren und wo zu ändern ist.

Schritt 5: Elektronische Verbindung

Elektronische Verbindung
Elektronische Verbindung
Elektronische Verbindung
Elektronische Verbindung
Elektronische Verbindung
Elektronische Verbindung

Die Powerbank, die ich gekauft habe, Anker Astro Pro, hat zwei USB-Anschlüsse und einen 9-V-Anschluss (Hauptgrund, warum ich diesen gekauft habe). Ich habe versucht, den Pi, den WLAN-Dongle und die Webcam mit einem USB-Anschluss zu versorgen. Startet nicht. Also habe ich den anderen USB-Port für einen USB-Hub mit eigener Stromversorgung verwendet.

Dann dachte ich, vielleicht könnte ich die Servos mit dem USB-Hub-Port mit Strom versorgen. Es funktioniert, aber die WLAN-Verbindung ist sehr, sehr instabil.

Um dieses Problem zu lösen, habe ich 4 AA-Batterien mitgebracht, um das 6-V-Servo mit Strom zu versorgen. Ich habe das USB-Kabel gestreift, um das Erdungskabel (schwarz) freizulegen und mit der Masse des AA-Batteriesatzes zu verbinden.

3 Servos, rot an 6V, schwarz an Masse und Signalpin mit GPIO-Pins verbunden.

Wie geplant sollten der Turmdrehmotor und der Geschützmotor auch mit 6V mit einer H-Brückensteuerung betrieben werden. Aber wenn ich alles angeschlossen habe, schießt die Waffe nicht! Es scheint, dass der Motor versucht, sich zu drehen, aber die Zahnräder nicht antreiben können. Die Ausgangsspannung stimmt, aber es scheint, dass nicht genug Strom zum Fahren vorhanden ist. Ich habe auch MOSFET ohne Glück ausprobiert.

Diesen Teil muss ich aus Zeitgründen aufgeben. Und deshalb muss ich im Pistolentest den Pistolenmotor manuell mit dem Adapter verbinden. Noch viel zu lernen in der Elektronik. Im schlimmsten Fall könnte ich die Waffe immer mit einem Servo-Zieh- und -Freigabeauslöser steuern.

Schritt 6: Schnittstelle

Image
Image
Schnittstelle
Schnittstelle
Schnittstelle
Schnittstelle

Ich habe auch die Schnittstellen der Cambot- und Rasprover-Beispielcodes geändert. Da ich vorhatte, ein Smartphone als Controller zu verwenden, habe ich das Layout für mein Telefon optimiert (galaxy note3).

Die meisten Layouts und Stile können in der index.html bearbeitet werden. Der Standard-Button-Stil (dunkelgrau mit schwarzem Rand) ist jedoch in der webiopi.css unter /usr/share/webiopi/htdocs definiert. Ich habe das Terminal verwendet, um sudo nano auszuführen, um es zu ändern.

Der Videostream befindet sich in der Mitte des Bildschirms, die Fahrsteuerung auf der linken Seite und die Waffensteuerung auf der rechten Seite. Ich habe die Fahrsteuerung als zwei Sätze von Aufwärts (vorwärts), Stopp und Abwärts (Rückwärts) entworfen, um eine feinere Kontrolle zu erzielen, aber im Video kann man sehen, dass es manchmal umständlich ist.

Schritt 7: Zukunftsplan

Wie Sie sehen, ist dieses Projekt noch nicht abgeschlossen. Dank des Himbeer-Pi-Wettbewerbs habe ich letzte Woche viel aufgedreht und nur versucht, ihn vor der Deadline fertig zu stellen. Es dreht sich ziemlich gut, bis ich feststellte, dass die Waffe nicht schießt …

Es muss noch viel verbessert werden, aber ich hoffe, Sie können etwas aus meiner Erfahrung lernen.

Kurzfristiger Plan:

Lass die Waffe funktionieren!!!

Größerer Behälter für mehr BB

Der Panzer muss die Welt erkunden – raus aus dem Heim-WLAN!

Richten Sie einen Ad-hoc-Knoten auf dem Pi ein, damit sich das Telefon überall damit verbinden kann

Führen Sie den Tankbefehl beim Start aus

Fügen Sie eine Schaltfläche zum Herunterfahren hinzu, um Pi sicher auszuschalten.

Langfristigen Plan:

Besseres Fahrsystem für Stabilität und Grip

Entwerfe jetzt meine eigene Platine anstelle eines Steckbretts

Videoaufnahme aus der ersten Person

Noch eine Waffe? Machen wir es zu einem Schlachtschiff!

Sensoren für Selbstpatrouillen hinzufügen?

Computer Vision für Auto-Targeting!

Kontrolliere den Tank weit weg: Ich werde alles zu Hause sehen!

Schritt 8: Danke fürs Lesen

Danke, dass Sie mein schlechtes Englisch gelesen haben (es ist nicht meine Muttersprache). Ich hoffe, Sie hatten etwas Spaß oder haben hier etwas gelernt. Dies wird ein fortlaufendes Projekt sein. Wenn Sie also über Fachwissen in einem beliebigen Bereich verfügen, bin ich für Ihren Rat dankbar.

Wenn Sie Fragen haben, hinterlassen Sie bitte einen Kommentar, ich werde mein Bestes geben, um sie zu beantworten.

Lassen Sie mich in naher Zukunft ein Update - The Cam Tank2.0 - machen.

Hier ist endlich ein Video, das das Kampfszenario zeigt. Es ist ziemlich amüsant.

Viel Spaß und bis zum nächsten Mal!

Empfohlen: