Inhaltsverzeichnis:

Süßigkeiten-werfender Roboter mit Arduino, recycelten Teilen und Dlib. - Gunook
Süßigkeiten-werfender Roboter mit Arduino, recycelten Teilen und Dlib. - Gunook

Video: Süßigkeiten-werfender Roboter mit Arduino, recycelten Teilen und Dlib. - Gunook

Video: Süßigkeiten-werfender Roboter mit Arduino, recycelten Teilen und Dlib. - Gunook
Video: Roboter als Retter in Fukushima 2024, November
Anonim
Süßigkeiten-werfender Roboter mit Arduino, recycelten Teilen und Dlib
Süßigkeiten-werfender Roboter mit Arduino, recycelten Teilen und Dlib

Mit ein paar recycelten Teilen, einem Arduino + Motorschild und der Dlib-Computersoftware können Sie einen funktionierenden Süßigkeitenwerfer mit Gesichtserkennung herstellen.

Materialien:

  • Holzrahmen
  • Laptop/Computer (vorzugsweise einer leistungsstärker als ein Raspberry Pi!).
  • Arduino (Bevorzugt Uno oder eines, das zu Ihrem Motorschild passt.)
  • Arduino-Motorschild (ich habe das alte Adafruit-Schild verwendet, wie es hier noch verkauft wird)
  • Jede Standard-Webcam
  • Kleine Unterlegscheibe

Recycelte Teile:

  • Gehäuse (alte Metallbox funktioniert gut.)
  • Schrittmotor, Gleichstrommotor aus zerlegtem alten Drucker.
  • Altes Druckernetzteil
  • Süßigkeitenspender (Großer Joghurtbehälter).

Die Innereien des fertigen Produkts sehen in etwa wie beigefügte Übersicht aus.

Warnung

Stellen Sie sicher, dass Sie das Arduino / Motor-Setup vom Stromnetz trennen, bevor Sie es verkabeln / neu verkabeln. Achten Sie auf die richtige Polarität!

Dies ist ein Projekt auf mittlerer Ebene, das Arduino und Software verwendet, die Sie auf Ihrem Computer installieren oder kompilieren müssen. Die Anweisungen können variieren und wurden auf Ubuntu getestet.

Möglicherweise müssen Sie den Arduino-Code an das von Ihnen verwendete Motorschild anpassen, wenn Sie nicht das alte Adafruit-Motorschild verwenden.

Schritt 1: Motor bohren, anschließen und montieren

Motor bohren, anschließen und montieren
Motor bohren, anschließen und montieren
Motor bohren, anschließen und montieren
Motor bohren, anschließen und montieren

Bohren Sie Löcher in das Gehäuse und befestigen Sie den Schrittmotor, damit sich die Webcam oben bewegen und der Spender unten drehen kann.

Schrittmotoren können sich in kleinen Schritten (4 Drähte) bewegen, im Gegensatz zu DC-Motoren (2 Drähte), die rückwärts / vorwärts laufen, nicht in Schritten.

Der Gleichstrommotor hat 2 Drähte (läuft in beide Richtungen), der optionale Schrittmotor hat 4 in zwei Spulen (Testen Sie mit einem Multimeter-Widerstandsmesser, um zu sehen, wo die Spulen verdrahtet sind, wie hier beschrieben.)

Wenn Sie das alte Adafruit-Schild wie in meinem Beispiel verwenden, sollten Sie den DC-Süßigkeiten-Spinner-Motor an Motor Nr. 3 und den Schrittmotor an die ersten beiden Motoren (Nr. 1, Nr. 2) anschließen, wie in deren Dokumentation beschrieben.

Nach dem Anschließen verdrahten Sie die Motoren mit einem Arduino Motor Shield, das an einem Arduino befestigt ist. Für beste Ergebnisse wird empfohlen, eine zweite Stromversorgung für die Motoren zu haben, die Sie an den DC-Ausgang einer 2 US-Dollar-Wandwarze aus einem Second-Hand-Laden anschließen können.

Schritt 2: Anbringen des Behälters

Anbringen des Behälters
Anbringen des Behälters
Anbringen des Behälters
Anbringen des Behälters
Anbringen des Behälters
Anbringen des Behälters
Anbringen des Behälters
Anbringen des Behälters

Messen Sie die Mitte eines Joghurtbehälters oder eines anderen großen Plastikbehälters aus und bohren Sie einen Griff, der etwas größer als das Ende des Motors ist.

Befestigen Sie den Behälter mit einer kleinen Unterlegscheibe an der Box - Krazy-Klebe ihn auf den Boden des Behälters und auf die Elektromotorspindel.

Lasse den Kleber ein oder zwei Tage trocknen, um ihn vollständig auszuhärten – vielleicht möchtest du einen kleinen Abstandshalter zwischen Kasten und Drehbehälter legen, um sicherzustellen, dass er nicht schief ansetzt.

Schritt 3: Machen Sie ein kleines Loch für Candy Thrower

Machen Sie ein kleines Loch für den Süßigkeitenwerfer
Machen Sie ein kleines Loch für den Süßigkeitenwerfer

Sobald der Spinner richtig angebracht ist, verwenden Sie das Ende eines scharfen Messers, um ein kleines Loch zu umreißen, damit Süßigkeiten aus dem Ende geworfen werden können - dies sollte sich direkt über dem Boden befinden, wo sich die Lippe befindet.

(Für beste Ergebnisse können etwa 30 Bonbons auf das Deckelende des Spenders geladen werden, das der Boden ist.)

Umreißen Sie vorsichtig mit einem scharfen Messer, bis es herausspringt und ein kleines Loch hinterlässt (Sie können das Loch später bei Bedarf erweitern).

Schritt 4: Arduino-Setup

Wenn Sie die Arduino-Software noch nicht installiert haben, erhalten Sie sie von

www.arduino.cc/en/Main/Software

Jede aktuelle Version sollte funktionieren.

Testen Sie den DC / Schrittmotor mit den Beispielen im Beispielcode Ihres Arduino Shield.

Wenn Sie dieses Schild verwenden (bei einigen Händlern noch erhältlich), können Sie meinen Code direkt verwenden:

github.com/programmin1/HowToTrainYourRobot…

Sobald Sie getestet haben und Süßigkeiten ausgeben können, indem Sie im seriellen Arduino-Fenster "d" eingeben, ist es an der Zeit, dies mit dem Dlib-Erkenner zu verbinden.

Schritt 5: Dlib-Setup

Dlib (https://dlib.net/) bietet eine einfach zu verwendende Open-Source-Bibliothek für die Bilderkennung. Installieren Sie das Python Dlib-Modul mit:

sudo pip installiere Dlib

- oder -

sudo easy_install Dlib

Warten Sie, bis Dlib installiert und kompiliert ist. (Sie benötigen einen Computer mit vorzugsweise ein paar GB RAM, oder Sie müssen lange warten und den Swap-Speicher erweitern). Der Code verwendet auch OpenCV für das Webcam-Modul. Führen Sie also Folgendes aus:

sudo apt-get install python-opencv

Die Installationsschritte können variieren, wenn Sie MacOS oder andere Betriebssysteme verwenden.

Holen Sie sich jetzt die Daten der Gesichtserkennungs-Wahrzeichen von

dlib.net/files/shape_predictor_68_face_land…

Entpacken Sie es (mit Archive Manager / 7zip) und legen Sie es in HOME/Downloads/shape_predictor_68_face_landmarks.dat ab

Schritt 6: Verbinden des Gesichtserkenners mit Ihrem Roboter

Verbinden des Gesichtserkenners mit Ihrem Roboter
Verbinden des Gesichtserkenners mit Ihrem Roboter

Schließen Sie den Arduino-steuernden USB an den Computer an und überprüfen Sie, ob die Datei "/dev/ttyACM0" vorhanden ist (dies ist das Gerät, an das die seriellen Befehle gesendet werden). Wenn es nicht funktioniert und ein anderes ähnlich benanntes Verzeichnis, das in /dev angezeigt wird, wenn Sie es anschließen, ersetzen Sie /dev/ttyACM0 in der Datei faceDetectThreadCorrelationCV2FaceSmile.py im Repository.

Schließen Sie die Webcam an (wenn sich keine integrierte Webcam in dem von Ihnen verwendeten Computer befindet) und führen Sie diese.py-Datei in der Befehlszeile oder mit dem Befehl Ausführen/F5 im Geany-Texteditor aus. Wenn Sie eine zweite/externe Webcam auf einem Laptop verwenden möchten, können Sie "VideoCapture(0)" in "VideoCapture(1)" ändern, um eine zweite Webcam zu verwenden, die Sie auf dem Schrittmotor oben auf der Roboterbox platzieren können.

Wenn alles gut geht, sehen Sie einen Umriss eines Lächelns, wenn sich ein Gesicht vor der Webcam befindet.

Lesen Sie die Übersicht und den Quellcode der.py-Datei, um die mathematische Funktionsweise der Lächeln-Erkennung anhand der Punkte zu sehen, die die Dlib von der Gesichtserkennungsfunktion gibt.:)

Empfohlen: