Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Schwenk-/Neige-Gesichtsverfolgung mit dem Himbeer-Pi

Mit einigem Aufwand habe ich festgestellt, dass die Steuerung von zwei Servomotoren, um einer Webcam das Schwenken/Neigen zu ermöglichen, während ein Gesicht in Echtzeit mit dem Himbeer-Pi verfolgt wird, nicht so unmöglich ist, wie es auf den ersten Blick erscheinen mag. Mit einigen sorgfältigen Optimierungen und Code-Optimierung konnte ich es dem Pi ermöglichen, mit zwei Servos Schritt zu halten, während die OpenCV-Gesichtserkennung bei 320 × 240 ausgeführt wurde, um nach einem rechten Profil, einem linken Profil und einer Vorderseite zu suchen und die Servos schneller als einmal pro Sekunde einzustellen .

Schritt 1:Erwerben Sie die Hardware.

Benötigte Dinge:

Ein Himbeer-Pi — Modell A wird gut funktionieren, ich habe das Original Modell B, das die gleichen Spezifikationen wie das neue Modell A hat (ohne Netzwerk).
Eine Schwenk-/Neigehalterung
Zwei Servos
Ein GPIO-Ribbin-Kabel
Eine Pi-unterstützte Webcam —  Ich habe einen Logitech C210 verwendet

Vorausgesetzt, Sie haben bereits einen Raspberry Pi und eine Webcam, kostet die zusätzliche Hardware etwa 25 US-Dollar

Schritt 2:Bereiten Sie Ihren Himbeer-Pi vor.

Stellen Sie sicher, dass Sie das offizielle RaspbianOS (die Hardfloat-Version) verwenden und es auf dem neuesten Stand ist.
Möglicherweise möchten Sie Ihren Raspberry Pi übertakten. Ich habe 800mhz gemacht. Je höher Sie gehen, desto schneller wird die Gesichtserkennung sein, aber desto weniger stabil kann Ihr Pi sein.

OpenCV für Python installieren:sudo apt-get install python-opencv
Hol dir den wunderbaren Servoblaster-Servotreiber für den Himbeer-Pi von Richard Hirst:hier

Sie können alle Dateien als Zip-Archiv herunterladen und in einen Ordner irgendwo auf dem Pi entpacken.
Um den Servoblaster-Treiber zu installieren, öffnen Sie ein Terminal und eine CD in das Verzeichnis, in das Sie die Servoblaster-Dateien extrahiert haben
run der Befehl:make install_autostart

Möglicherweise möchten Sie das Servoblaster-Timeout einstellen und nach einer Sekunde keine Signale mehr an das Servo senden, wenn es nicht bewegt wird.
Fügen Sie dazu die folgende Zeile zu /etc/modules hinzu:servoblaster idle_timeout=1000

starte servoblaster mit folgendem Befehl:sudo modprobe servoblaster

Die nächste Aufgabe besteht darin, die Kamera wie erwartet zu funktionieren:

Zunächst einmal vielen Dank an Gmoto, dass er das gefunden und darauf hingewiesen hat, es war das letzte Stück des „Pi“, um alles reibungslos zum Laufen zu bringen; Sie müssen einige Parameter im uvcvideo-Modul anpassen, damit alles gut läuft.
Führen Sie nämlich diese Befehle aus:

rmmod uvcvideo
modprobe uvcvideo nodrop=1 timeout=5000 Macken=0x80

Sie müssen dies bei jedem Neustart ausführen, wenn Sie das Gesichtsverfolgungsprogramm ausführen möchten, oder alternativ die Parameter zu /etc/modules hinzufügen, wie Sie es mit der Servoblaster-Timeout-Optimierung getan haben.

Schritt 3:Stellen Sie Ihr Rig zusammen

Bauen Sie die Schwenk-/Neigehalterungen gemäß den Anweisungen und befestigen Sie die Servos.
Befestigen Sie Ihre Kamera oben an der Halterung (ich habe nur Klebeband verwendet) und stecken Sie sie in Ihren Himbeer-Pi-USB-Anschluss.
Ich war in der Lage, es ohne einen USB-Hub mit Strom zu versorgen, aber Sie möchten möglicherweise einen USB-Hub mit Stromversorgung besorgen und das durchlaufen.

Schritt 4:Anschließen der Servos

Servoblaster betrachtet Servo-0 als alles, was mit GPIO 4 verbunden ist, und Servo-1 ist alles, was mit GPIO-17 verbunden ist.
Servos haben drei Drähte, einer ist rot, was Vin / positiv ist, einer ist braun oder schwarz, was ist Masse/negativ und das andere ist die Steuerung.
Verbinden Sie die Steuerleitung für jedes Servo mit dem Flachbandkabel (und in meinem Fall ein in die Löcher eingeklemmtes Anschlusskabel) mit dem richtigen Pin. Der Code geht davon aus, dass Servo-0 die Links-Rechts-Bewegung steuert und Servo-1 die Auf-Ab-Bewegung der Kamera steuert; also verbinde sie auf diese Weise.

Nun scheint es vernünftig zu sein, dass der Vin für die Servos von den 5V-Pins des GPIO kommt und die Masse für die Servos von den Massepins des GPIO, aber das hat in meinem Fall nicht funktioniert, weil ich ein größeres Servo für die Basis. Das große Servo zog mehr Leistung, als der Pi bereit war, so zu liefern. Ich konnte jedoch mein kleineres Neigungsservo ohne Probleme antreiben. Außerdem scheint Richard Hirst, der den Servoblaster entwickelt hat, zu implizieren, dass er mit dem GPIO 5v mehrere kleine Servos antreiben kann. Ich habe auch erfahren, dass es in meiner Version des Pi einige Sicherungen gibt, die später in Bezug auf diese Stromstifte entfernt wurden. Mein Instinkt sagt mir, dass Sie zwei kleinere Servos von diesen Pins auf einem neueren Pi betreiben könnten. Wenn dies nicht möglich ist, müssen Sie Folgendes tun:

Sie benötigen eine externe Stromquelle, die eine schwere Last von 5 V-6 V verarbeiten kann:Ich habe die in ein Arduino eingebaute verwendet, aber jede 5-Volt-Stromquelle sollte ausreichen; Die Servos sind für bis zu 6V ausgelegt. Der 5-V-Pin an einem Computernetzteil, ein 5V-6V-Wandladegerät, einige Batterien parallel; was auch immer dir gefällt. Sobald Sie Ihre externe Quelle haben, verbinden Sie einfach die positiven und negativen Leitungen von den Servos mit der positiven und negativen Seite Ihrer Stromquelle und verbinden Sie dann die Masse (negativ) von Ihrer externen Stromquelle mit einem Massestift am Himbeer-Pi-GPIO.

Schritt 5:Führen Sie das Programm aus

Ich habe das Python-Skript an diesen Artikel angehängt, es heißt PiFace.py, um es einfach auf CD an seinem Speicherort im Terminal auszuführen und einzugeben:python PiFace.py

Hier sind einige Videos von mir in Aktion.

Für mehr Details:Pan/Tilt Face Tracking mit dem Raspberry Pi


Herstellungsprozess

  1. Temperatur lesen mit DS18B20 | Raspberry Pi 2
  2. Temperaturüberwachung auf dem Raspberry Pi
  3. Temperaturmessung mit RASPBERRY PI
  4. Überwachen der Temperatur mit Raspberry Pi
  5. Integration von Sensordaten mit Raspberry Pi-Mikroprozessor
  6. Linienverfolgungssensor mit RPi
  7. Erkennen von Blitzen mit einem Raspberry Pi
  8. Himbeer-Pi-Ball-Tracking
  9. Raspberry Pi 2 Wasseralarm mit t Schuster plus
  10. Schwenk-/Neige-Gesichtsverfolgung mit dem Himbeer-Pi