Inhaltsverzeichnis:
- Schritt 1: Benötigte Komponenten
- Schritt 2: Körperstruktur
- Schritt 3: Verdrahtung und Codierung
- Schritt 4: Raspberry Pi und Bilderkennung
- Schritt 5: LCD und Lautsprecher
- Schritt 6: Letzte Schritte
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Nain 1.0 wird grundsätzlich 5 abnehmbare Module haben-
1) Arm – der über Servos gesteuert werden kann.
2) Räder – die mit Gleichstrommotoren gesteuert werden können.
3) Bein – Nain kann zwischen Rädern oder Beinen wechseln, um sich zu bewegen.
4) Kopf – Der Kopf kann für verschiedene Nicken gesteuert werden.
5) Kameramodul - das für den Zugriff auf die Gesichtserkennung angeschlossen werden kann.
Zusammen mit diesem wird NAIN in der Lage sein, mit Benutzern zu sprechen und zu interagieren und kann Ihnen die Zeit durch seine eingebaute Uhr anzeigen. Es wird eine drahtlose Steuerung über Wi-Fi / Bluetooth haben.
Schritt 1: Benötigte Komponenten
- Servomotoren -4
- Arduino Mega - 1
- Himbeer-Pi - 1
- USB-Kamera -1
- Lautsprecher -1
- Gleichstrommotoren -2
- L293D -1
- Akkupack - 1
- Räder -2
- Lenkrollen - 2
Zusammen mit diesen benötigen Sie quadratische Aluminiumstreifen, um den Körper und Schrauben und Muttern richtig zu machen.
Schritt 2: Körperstruktur
Die Karosseriestruktur besteht aus leichten Vierkantstangen aus Aluminium, die den Zusammenbau erleichtern.
Montieren Sie sie jetzt wie in der Abbildung gezeigt und schneiden Sie auch die entsprechenden Freiräume für die Servomotoren aus, die in den Armen befestigt werden sollen.
Unten einen sechseckigen Holzsockel anbringen.
Unter der Holzbasis befestigen Sie Gleichstrommotoren und Räder wie bei jedem Linienfolger-Roboter.
Interessanterweise fügen Sie zwei Lenkrollen hinzu – eines vorne und das andere hinten am Roboter.
Schritt 3: Verdrahtung und Codierung
Um die verschiedenen Module zu verdrahten, beziehen Sie sich auf die Codes in diesem Teil.
Zuerst haben wir jedes Modul mit eigenständigen Codes getestet und dann alle in einem kombiniert und die Bewegung von Rädern und Armen mit einem Bluetooth-Modul gesteuert.
Schritt 4: Raspberry Pi und Bilderkennung
Die Bilderkennung erfolgt mit einer USB-Kamera und Raspberry Pi.
Dazu müssen Sie die OPEN CV-Bibliothek auf Ihrem Pi installieren.
Sie können das von hier aus tun -
Dann müssen Sie eine Bilderkennung mit Haarkaskade durchführen.
Sie können das von hier aus tun -
Nachdem ich den obigen Link gelesen und befolgt habe, habe ich einige Änderungen am endgültigen Code vorgenommen, den ich verwendet habe und den ich unten einfüge -
DATENSATZ-GENERATOR:
importcv2
cam = cv2. VideoCapture(0)
Detector=cv2. CascadeClassifier('Classifiers/face.xml')
i=0
Offset=50
name=raw_input('Geben Sie Ihre ID ein')
während Wahr:
ret, im =cam.read()
grau=cv2.cvtColor(im, cv2. COLOR_BGR2GRAY)
face=detector.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5, minSize=(100, 100), flags=cv2. CASCADE_SCALE_IMAGE)
for(x, y, w, h) in Flächen:
i=i+1
cv2.imwrite("dataSet/face."+name +'.'+ str(i) + ".jpg", grau[y-offset:y+h+offset, x-offset:x+w+offset])
cv2.rechteck(im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
cv2.imshow('im', im[y-Offset:y+h+Offset, x-Offset:x+w+Offset])
if cv2.waitKey(100) & 0xFF == ord('q'):
brechen
# Pause, wenn die Probennummer mehr als 20. beträgt
elif (i>20):
brechen
cam.release()
cv2.destroyAllWindows()
Es wird ein Datensatz Ihrer Fotos erstellt, der zur Authentifizierung verwendet wird.
TRAINER:
importcv2, os
numpy als np importieren
aus PIL-Import Bild
Recognizer = cv2.face.createLBPHFaceRecognizer()
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier(cascadePath);
Pfad = 'Datensatz'
def get_images_and_labels(Pfad):
image_paths = [os.path.join(path, f) für f in os.listdir(path)]
# Bilder enthalten Gesichtsbilder
Bilder =
# Labels enthält das Label, das dem Bild zugewiesen ist
Etiketten =
für image_path in image_paths:
# Lesen Sie das Bild und konvertieren Sie es in Graustufen
image_pil = Image.open(image_path).convert('L')
# Konvertieren Sie das Bildformat in ein numpy-Array
image = np.array(image_pil, 'uint8')
# Holen Sie sich das Label des Bildes
nbr = int(os.path.split(image_path)[-1].split(".")[1].replace("face-", ""))
#nbr=int(''.join(str(ord(c)) für c in nbr))
Drucknr
# Gesicht im Bild erkennen
Gesichter = faceCascade.detectMultiScale(Bild)
# Wenn ein Gesicht erkannt wird, hängen Sie das Gesicht an Bilder und das Label an Labels an
für (x, y, w, h) in Flächen:
images.append(image[y: y + h, x: x + w])
label.append(nbr)
cv2.imshow("Flächen zum Trainingssatz hinzufügen…", image[y: y + h, x: x + w])
cv2.waitKey(10)
# die Bilderliste und die Etikettenliste zurückgeben
Bilder, Etiketten zurückgeben
Bilder, Etiketten = get_images_and_labels(Pfad)
cv2.imshow('test', images[0])
cv2.waitKey(1)
cognizer.train(images, np.array(labels))
cognizer.save('trainer/trainer.yml')
cv2.destroyAllWindows()
DETEKTOR
importcv2
numpy als np importieren
Importieren von OS
c=0
Recognizer = cv2.face.createLBPHFaceRecognizer()
cognizer.load('trainer/trainer.yml')
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier(cascadePath);
cam = cv2. VideoCapture(0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
Schriftskala = 1
Schriftfarbe = (255, 255, 255)
während Wahr:
ret, im =cam.read()
grau=cv2.cvtColor(im, cv2. COLOR_BGR2GRAY)
faces=faceCascade.detectMultiScale(grau, 1.2, 5)
for(x, y, w, h) in Flächen:
cv2.rechteck(im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
ID = erkennung.vorhersagen(grau[y:y+h, x:x+w])
if(Id<70):
if(Id==1):
Id="Shashank"
elif(Id==2):
wenn(c==0):
Id="Shivam"
c=c+1
os.system("espeak 'Willkommen Shivam-Zugriff gewährt'")
anders:
Id="Shivam"
anders:
Id="Unbekannt"
cv2.putText(im, str(Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow('im', im)
if cv2.waitKey(10) & 0xFF==ord('q'):
brechen
cam.release()
cv2.destroyAllWindows()
Schritt 5: LCD und Lautsprecher
Ich habe auch ein I2C-LED-Display und einen Lautsprecher verwendet.
Die LED wird über Arduino Mega gesteuert und ihr Code ist im endgültigen Code angegeben.
Für Speaker ist es mit dem Raspberry Pi verbunden und verwendet das eSpeak Utility.
Sie finden die Referenz hier -
Schritt 6: Letzte Schritte
Montieren Sie alles und machen Sie sich bereit für den Knall.
Empfohlen:
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Löten - Grundlegende Lötanleitung: 5 Schritte
Löten - Grundlegende Lötanleitung: Beim Löten werden zwei Metalle mit einem Lötkolben unter Verwendung eines Lötmittels verbunden, um eine zuverlässige elektrische Verbindung zu bilden. Dies ist eine grundlegende Lötanleitung für Anfänger zum Handlöten mit einem Lötkolben. Ich hoffe, es wird
Grundlegende Fotobearbeitung: 10 Schritte (mit Bildern)
Grundlegende Fotobearbeitung: In diesem anweisbaren gehe ich darüber nach, wie ich meine Fotos für meine instructables und für die Produkte in meinem Etsy-Shop bearbeite. Ich verbringe nicht viel Zeit damit, aber ich mache IMMER ein wenig an meinem Telefon oder Computer. Es gibt einige schnelle und einfache
[Arduino-Roboter] Wie erstelle ich einen Motion-Capture-Roboter - Daumen Roboter - Servomotor - Quellcode: 26 Schritte (mit Bildern)
[Arduino-Roboter] Wie erstelle ich einen Motion-Capture-Roboter | Daumen Roboter | Servomotor | Quellcode: Thumbs Robot. Verwendet ein Potentiometer des Servomotors MG90S. Es macht sehr viel Spaß und ist einfach! Der Code ist sehr einfach. Es sind nur etwa 30 Zeilen. Es sieht aus wie ein Motion-Capture.Bitte hinterlassen Sie Fragen oder Feedback![Anleitung] Quellcode https://github.c
Einfache grundlegende LED-Schaltung (Verwendung von LEDs): 4 Schritte
Einfache grundlegende LED-Schaltung (Verwendung von LEDs): Diese Anleitung führt zur Verwendung von LEDs und zur Herstellung einfacher grundlegender LED-Schaltungen, deren Strombegrenzungswiderstand für den Betrieb von LEDs mit 3V, 6V, 9V & 12V. Eine LED ist ein wichtiger Bestandteil in der Elektronik, sie wird für mehrere Indi