Inhaltsverzeichnis:

Bettelroboter mit Gesichtsverfolgung und -steuerung durch Xbox-Controller - Arduino - Gunook
Bettelroboter mit Gesichtsverfolgung und -steuerung durch Xbox-Controller - Arduino - Gunook

Video: Bettelroboter mit Gesichtsverfolgung und -steuerung durch Xbox-Controller - Arduino - Gunook

Video: Bettelroboter mit Gesichtsverfolgung und -steuerung durch Xbox-Controller - Arduino - Gunook
Video: Домашний 3D сканер | Kinect 2 | Часть 1 2024, November
Anonim
Image
Image
Installieren und Konfigurieren von OpenCV und C++
Installieren und Konfigurieren von OpenCV und C++

Wir werden einen Bettelroboter bauen. Dieser Roboter wird versuchen, vorbeikommende Personen zu irritieren oder auf sich aufmerksam zu machen. Es wird ihre Gesichter erkennen und versuchen, Laser auf sie zu schießen. Wenn Sie dem Roboter eine Münze geben, wird er ein Lied singen und tanzen. Der Roboter benötigt ein Arduino, einen Live-Feed einer Kamera und einen Computer, auf dem openCV ausgeführt werden kann. Der Roboter kann auch von einem xBox-Controller gesteuert werden, wenn er an den PC angeschlossen ist.

Schritt 1: Die Materialien

Hardware-Elektronik

  • Arduino NANO oder UNO
  • USB 2.0-Kamera
  • Starthilfekabel (männlich und weiblich)
  • 2 x Servo - Generisch (Sub-Mikrogröße)
  • 2 x LED - RGB KATHODE 5mm
  • 2 x 5mW Laser
  • 1 x rote LED 5mm
  • 1 x Steckbrett
  • 4 x 220Ω Widerstand
  • 1 x 1KΩ Widerstand
  • 1 x Protoboard
  • 1 x Sonarsensor 4 Pins
  • Xbox-Controller

Hardware analog

  • Holzkiste (15 x 15 x 7 cm)
  • Kleber
  • Isolierband

Software

  • Arduino-IDE
  • Bildstudio 2017
  • 3Ds Max (oder jede andere 3D-Modellierungssoftware)
  • Vorform 2.14.0 oder höher
  • OpenCV 3.4.0 oder höher

Werkzeuge

  • Lötausrüstung
  • Sägen und bohren
  • Kabelschneider

Schritt 2: OpenCV und C++ installieren und konfigurieren

Installieren und Konfigurieren von OpenCV und C++
Installieren und Konfigurieren von OpenCV und C++

Schritt 2.1: Beziehen der Software

Visual Studio 2017: Visual Studio Comunity 2017openCV 3.4.0 Win Pack herunterladen: Zur offiziellen Downloadseite gehen

Schritt 2.2: OpenCV installieren2.2.1: Entpacken Sie die ZIP-Datei auf Ihr Windows(:C)-Laufwerk.2.2.2: Gehen Sie zu Ihren erweiterten Systemeinstellungen. Dies finden Sie in Ihrer win10-Suchfunktion..2.2.3: Wir müssen neue Umgebungsvariablen einrichten. Suchen Sie die Umgebung "Pfad" und drücken Sie auf Bearbeiten.2.2.4: Jetzt müssen wir den Ort der "Bin Map" zu einer neuen Variablen in der Umgebung Pfad hinzufügen. Wenn Sie openCV auf Ihrem Laufwerk C installiert haben, kann der Pfad wie folgt aussehen: C:\opencv\build\x64\vc14\bin Fügen Sie den Pfad ein und drücken Sie "OK" in allen Fenstern, die Sie während dieses Vorgangs geöffnet haben.

Schritt 2.3: Visual Studio konfigurieren C++2.3.1: Erstellen Sie ein neues Visual C++-Projekt. Machen Sie daraus ein leeres win32-Konsolenanwendungsprojekt.2.3.2: Klicken Sie auf der Registerkarte Quelldateien mit der rechten Maustaste und fügen Sie eine neue C++-Datei (.cpp) hinzu und nennen Sie sie "main.cpp".2.3.3: Klicken Sie mit der rechten Maustaste auf das Projekt- Name im Lösungs-Explorer und wählen Sie Eigenschaften.2.3.4: Wir müssen ein zusätzliches Include-Verzeichnisse hinzufügen. Diese finden Sie im Allgemeinen unter der Registerkarte C/C++. Kopieren Sie den folgenden Pfad: C:\opencv\build\include und fügen Sie ihn hinter "AID" ein und klicken Sie auf Apply.2.3.5: Im selben Fenster müssen wir Wählen Sie die Registerkarte "Linker". Unter allgemein müssen wir weitere zusätzliche Bibliotheksverzeichnisse erstellen. Fügen Sie den folgenden Pfad hinter dem "AID" C:\opencv\build\x64\vc14\lib ein und drücken Sie erneut Übernehmen.2.3.6: Wählen Sie im selben Linker-Reiter den Reiter "Input". Und drücken Sie "Additional Dependencies > Edit" und fügen Sie die folgende Datei opencv_world320d.lib und xinput.lib (für den Controller) ein und drücken Sie erneut Apply. Schließen Sie das Fenster. Jetzt ist Ihre C++-Datei bereit, mit der Sie arbeiten können.

Schritt 3: Einrichten des Arduino

Einrichten des Arduino
Einrichten des Arduino
Einrichten des Arduino
Einrichten des Arduino
Einrichten des Arduino
Einrichten des Arduino
Einrichten des Arduino
Einrichten des Arduino

Treffen der Servos: Die Servos sind in der Lage, sich um ~160° zu drehen. Sie müssen zwischen 4, 8 und 6, 0 Volt haben, um normal zu funktionieren. Das Servo hat 3 Pins: Masse, 4, 8 - 6, 0 Volt Pin und ein Data Stift. Für unser Projekt werden wir die Datenpins für die Servos auf DigitalPin 9 und 10 setzen.

Treffen der RGB-LEDs: Die RGB-LEDs haben 4 Pins. Rot, grün, blau und Massestift. Um etwas Platz auf dem Arduino zu sparen, können wir die 2 RGB-LEDs miteinander verbinden. Wir werden also nur 3 Pins verwenden. Wir können die RGB-LEDs wie im Bild auf einem Protoboard anschließen und verlöten. Roter Pin => DigitalPin 3 (PWM) Grüner Pin => DigitalPin 4 Blauer Pin => DigitalPin 7

Begegnung mit dem Piezo-Summer: Unser kleiner Roboter wird ein Geräusch machen. Dazu müssen wir ihm eine Stimme geben! Wir können ihn wirklich laut machen. Oder wir können einen 220-Ω-Widerstand vor den Piezo-Summer legen, um ihn etwas weniger anstößig zu machen. Wir lassen den Piezo-Summer auf dem Steckbrett. Es ist also kein Löten erforderlich. Wir verbinden den Datenstift (+) mit DigitalPin 2 und den Massestift mit Masse auf dem Steckbrett.

Treffen mit dem Sonar: Um zu verhindern, dass der Roboter versucht, auf eine Person zu zielen, die sich 10 Meter entfernt befindet. Wir können dem Roboter einen Entfernungsbereich geben, von dem aus er auf Menschen zielen kann. Wir machen dies mit einem Sonarsensor. VCC => 5 VoltTrig => DigitalPin 6Echo => DigitalPin 5GND => Masse

Treffen mit dem Münzdetektor: Wir werden einen Münzdetektor herstellen. Der Münzdetektor erkennt, ob der Stromkreis geschlossen oder unterbrochen ist. Es wird fast wie ein Schalter funktionieren. Aber wir müssen vorsichtig sein. Wenn wir dies falsch machen, kostet es uns ein Arduino. Erstens: Verbinden Sie AnalogPin A0 mit einem 5-Volt-Kabel. Aber stellen Sie sicher, dass Sie einen 1KΩ-Widerstand dazwischen legen. Zweitens: Verbinden Sie einen Draht mit Masse. Wir können die Drähte und den Widerstand sofort auf das gleiche Protoboard wie die RGB-LEDs löten. Wenn wir nun die 2 Drähte zusammen berühren, erkennt das Arduino einen geschlossenen Stromkreis. Dies bedeutet, dass es eine Münze gibt! Treffen Sie die Laser des Untergangs. Der Roboter braucht seine Waffen, um zu feuern! Um Platz zu sparen, habe ich die 2 Laser zusammengelötet. Sie passen perfekt in den Rahmen der Kamera. Schließen Sie sie an DigitalPin 11 und an Masse an. Feuern Sie den kleinen Kerl ab!

Optionales Gimmick. Wir können eine rote LED unter dem Münzschlitz platzieren. Dies wird ein lustiges kleines Gimmick sein, wenn es dunkel ist. Schließen Sie ein Kabel an DigitalPin 8 an und legen Sie einen 220Ω-Widerstand zwischen die LED und das Kabel, um zu verhindern, dass es explodiert. Verbinden Sie den kurzen Pin der LED mit Masse.

Schritt 4: Der C++-Code

Schritt 4.1: Einrichten des main.cpp-Codes4.1.1: Laden Sie "main.cpp" herunter und kopieren Sie den Code in Ihre eigene main.cpp.4.1.2: Ändern Sie in Zeile 14 das "com" in das von arduino verwendete Com. "\.\COM(change this)"4.1.3: Setzen Sie in Zeile 21 und 22 den richtigen Pfad zu den Dateien "haarcascade_frontalface_alt.xml" und "haarcascade_eye_tree_eyeglasses.xml"Wenn openCV auf Laufwerk C installiert ist, diese Dateien finden Sie hier: "C:\opencv\build\etc\haarcascades\" Behalten Sie die doppelten Backslashes bei oder fügen Sie einen hinzu, wo nur einer vorhanden ist.

Schritt 4.2: tserial.h und Tserial.cpp hinzufügenDiese 2 Dateien kümmern sich um die Kommunikation zwischen dem Arduino und dem PC.4.2.1: Laden Sie tserial.h und Tserial.cpp herunter.4.2.2: Platzieren Sie diese 2 Dateien im Projekt Verzeichnis. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt und wählen Sie Hinzufügen > vorhandenes Element. Wählen Sie im Popup-Fenster die beiden hinzuzufügenden Dateien aus.

Schritt 4.2: CXBOXController.h und CXBOXController.h hinzufügen Diese Dateien übernehmen den Controller-Teil des Projekts.4.2.1: Klicken Sie im Solution Explorer mit der rechten Maustaste auf das Projekt und wählen Sie Hinzufügen > vorhandenes Element. Wählen Sie im Popup-Fenster die beiden hinzuzufügenden Dateien aus. Die C++-Dateien werden eingerichtet.

Schritt 5: Der Arduino-Code

Schritt 5.1: NewPing-Bibliothek5.1.1: Laden Sie die ArduinoCode.ino herunter und öffnen Sie sie in der arduino IDE.5.1.2: Gehen Sie zu "Skizze > Bibliothek einschließen > Bibliotheken verwalten".5.1.3: Suchen Sie in der Filterbox nach "NewPing" und installieren Sie diese Bibliothek.

Schritt 5.2: Pitches library5.2.1: Laden Sie pitches.txt herunter und kopieren Sie den Inhalt von pitches.txt.5.2.2: Drücken Sie in der Arduino IDE STRG+Shift+N, um einen neuen Tab zu öffnen.5.2.3: Fügen Sie den Code aus der pitches.txt in die neue Registerkarte und speichern Sie sie als "pitches.h". Der Arduino-Code wurde eingerichtet

Schritt 6: 3D-Druck und Verfeinerung des Drucks

3D-Druck und Verfeinerung des Drucks
3D-Druck und Verfeinerung des Drucks
3D-Druck und Verfeinerung des Drucks
3D-Druck und Verfeinerung des Drucks

Schritt 6.1: Drucken Sie die 3D-Datei Öffnen Sie die printfile.form und prüfen Sie, ob alles in Ordnung ist. Wenn alles in Ordnung zu sein scheint, senden Sie den Druckauftrag an den Drucker. Wenn etwas nicht stimmt oder Sie das Modell ändern möchten. Ich habe die 3Ds Max-Dateien und OBJ-Dateien für Sie zum Bearbeiten eingefügt.

Schritt 6.2: Verfeinern des Modells6.2.1: Nach dem Drucken die 2 Modelle in etwa 70% Alkohol einweichen, um alle Druckrückstände zu entfernen.6.2.2: Nach dem Drucken das Modell einige Stunden in die Sonne legen, um das UV-Licht einwirken zu lassen das Modell härten. Oder Sie härten das Modell mit einer UV-Lampe aus. Dies muss durchgeführt werden, da das Modell klebrig wird.

6.2.3: Entfernen Sie das Stützgerüst. Dies kann mit einem Drahtschneider erfolgen. Oder jedes andere Werkzeug, das Kunststoffe schneiden kann.6.2.4: Einige Teile des 3D-Drucks können noch weich sein. Auch wenn das Modell viel UV-Licht ausgesetzt war. Die Teile, die weich sein können, sind die Teile, die sich in der Nähe der Stützrahmen befanden. Legen Sie das Modell zum Aushärten in mehr UV-Licht. 6.2.5: Mit einem "Dremel" können Sie alle kleinen Unebenheiten des Rahmens abschleifen. Sie können versuchen, die Servos in den Rahmen einzubauen. Wenn sie nicht passen, können Sie den Dremel verwenden, um Material wegzuschleifen. mach es passend.

Schritt 7: Aufbau der Box

Bau der Box
Bau der Box
Bau der Box
Bau der Box

Schritt 7.1: Löcher machenIch habe eine Blaupause der betreffenden Box beigefügt. Der Bauplan ist nicht maßstabsgetreu, aber alle Größen sind korrekt.7.1.1: Beginnen Sie mit dem Markieren aller Löcher an den richtigen Stellen.7.1.2: Bohren Sie alle Löcher. Die größeren Löcher können mit einem Dremel auf Maß gefertigt werden.7.1.3: Die quadratischen Löcher können auch gebohrt werden. Aber um sie quadratisch zu machen, können Sie den Dremel mit einer kleinen Feile ausstatten und scharfe Ecken ausfeilen.7.1.4: Versuchen Sie, alle Komponenten zu montieren. wenn sie passen, können Sie loslegen! 7.1.5: Achten Sie auf Holzsplitter. Verwenden Sie Sandpapier, um sie loszuwerden.

Schritt 7.2: Lackieren7.2.1: Beginnen Sie mit dem Schleifen des Deckels. Wir brauchen die Farbe, um zu kleben.7.2.2: Nehmen Sie ein Tuch und geben Sie ein wenig Terpentin darauf, um die Schachtel zu reinigen.7.2.3: Jetzt können Sie die Schachtel in jeder gewünschten Farbe sprühen.

Schritt 8: Fertigstellen

Beenden
Beenden
Beenden
Beenden
Beenden
Beenden

Jetzt müssen wir alles an Ort und Stelle setzen und es tun lassen. Schritt 8.1: Der Münzdetektor8.1.1: Kleben Sie einige Metallklammern für den Münzdetektor.8.1.2: Löten Sie jeden Draht vom Stecker an eine Klammer.8.1.3: Testen Sie die Verbindung mit einer Münze. Wenn kein geschlossener Stromkreis vorhanden ist, löten Sie die Drähte mehr an den Rand. Schritt 8.2: Das Protoboard und die RGB-LEDs8.2.1: Legen Sie das Protoboard in die obere rechte Ecke und kleben Sie es fest! 8.2.2: Verbinden Sie die RGB-LEDs mit den Drähten vom Protoboard!8.2.3: Verbinden Sie alle Drähte vom Protoboard mit dem Arduino. Schritt 8.3: Der Sonarsensor8.3.1: Platzieren Sie den Sensor in den Löchern, die wir dafür gemacht haben. Wenn Sie männliche zu weibliche Überbrückungsdrähte haben, können Sie überspringen 8.3.28.3.2: Schneiden Sie einige männliche und weibliche Drähte in zwei Hälften und löten Sie die weiblichen und männlichen Drähte zusammen, um ein einzelnes Kabel zu erstellen, mit dem wir den Sensor an das Arduino anschließen können.8.3.3: Verbinden Sie den Sensor mit dem Arduino

Schritt 8.4: Laser und Kamera 8.4.1: Kleben Sie den kleinen Rahmen auf die Kamera. Stellen Sie sicher, dass es aufrecht steht.8.4.2: Setzen Sie die Laser ebenfalls in den Rahmen ein. Klebe sie fest, damit der Feind sie nicht stiehlt!

Schritt 8.5: Die Servos und 3D-Druck8.5.1: Kleben Sie das Servo in das Loch des Deckels.8.5.2: Laden Sie die Arduino-Datei auf das Arduino hoch (dadurch stehen die Servos in der richtigen Position)8.5.3: Mit dem Servo kam a kleines rundes Plateau. Legen Sie diese auf das Servo im Deckel.8.5.4: Legen Sie den großen 3D-Druck auf das Servo und Plateau und schrauben Sie diese mit einer Schraube fest.8.5.5: Legen Sie das zweite Servo auf den kleinen 3D-Druck und kleben Sie diese zusammen. 8.5.6: Setzen Sie die Kamera ein und alles ist einsatzbereit!

Schritt 9: Starten Sie das Programm

Um den Roboter zu starten, öffnen Sie die C++-Datei in Visual Studio. Stellen Sie sicher, dass Sie sich im "Debug-Modus" befinden Laden Sie die Arduino-Datei in das Arduino hoch. Sobald das hochgeladen ist, drücken Sie im Visual Studio auf Play. Und der Roboter feuert und sammelt alle Münzen der Welt ein!!!

Empfohlen: