Cuprins:
- Pasul 1: Componente necesare
- Pasul 2: Structura corpului
- Pasul 3: Cablare și codare
- Pasul 4: Raspberry Pi și recunoașterea imaginii
- Pasul 5: LCD și difuzor
- Pasul 6: pașii finali
Video: NAIN 1.0 - robotul uman de bază folosind Arduino: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Nain 1.0 va avea practic 5 module detașabile-
1) Braț - care poate fi controlat prin servomotoare.
2) Roți - care pot fi controlate cu motoare de curent continuu.
3) Picior - Nain va putea comuta între roți sau picioare pentru mișcare.
4) Cap - Capul său poate fi controlat pentru diverse încuviințări.
5) Modul de cameră - care poate fi interfațat pentru accesul la recunoașterea feței.
Împreună cu acest NAIN va putea vorbi și interacționa cu utilizatorii și vă poate arăta ora prin ceasul său încorporat. Va avea un control wireless folosind Wi-fi / Bluetooth.
Pasul 1: Componente necesare
- Servomotoare -4
- Arduino Mega - 1
- Raspberry Pi - 1
- Cameră USB -1
- Difuzor -1
- DC Motors -2
- L293D -1
- Acumulator - 1
- Roți -2
- Roți cu role - 2
Împreună cu acestea, veți avea nevoie de benzi pătrate din aluminiu pentru a face corpul și șuruburi și piulițe pentru a le potrivi corect.
Pasul 2: Structura corpului
Structura caroseriei va fi realizată din tije pătrate ușoare din aluminiu, care vor ajuta la asamblarea ei cu ușurință.
De acum, asamblați-le așa cum se arată în figură și, de asemenea, tăiați spațiile adecvate pentru ca servomotorele să fie atașate în brațe.
Atașați o bază hexagonală din lemn în partea de jos.
Sub baza de lemn, atașați motoare și roți de curent continuu, așa cum facem în orice robot de linie.
Interesant este că adăugați două roți - una în față și alta în spatele robotului.
Pasul 3: Cablare și codare
Pentru conectarea diferitelor module, consultați codurile atașate în această parte.
În primul rând am testat fiecare modul folosind coduri independente și apoi le-am combinat pe toate într-unul și am controlat mișcarea roților și brațelor folosind un modul bluetooth.
Pasul 4: Raspberry Pi și recunoașterea imaginii
Recunoașterea imaginii se realizează folosind o cameră USB și Raspberry Pi.
Pentru aceasta, va trebui să instalați biblioteca OPEN CV pe Pi.
Puteți face acest lucru de aici -
Apoi, va trebui să efectuați recunoașterea imaginii folosind cascada haar.
Puteți face acest lucru de aici -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
După ce am studiat linkul de mai sus și l-am urmat, am făcut câteva modificări în codul final pe care l-am folosit pe care le lipesc mai jos -
GENERATOR DE DATE:
importcv2
cam = cv2. VideoCapture (0)
detector = cv2. CascadeClassifier ('Classifiers / face.xml')
i = 0
offset = 50
name = raw_input ('introduceți id-ul dvs.')
în timp ce este adevărat:
ret, im = cam.read ()
gri = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
faces = detector.detectMultiScale (gri, scaleFactor = 1.2, minVecini = 5, minSize = (100, 100), steaguri = cv2. CASCADE_SCALE_IMAGE)
pentru (x, y, w, h) în fețe:
i = i + 1
cv2.imwrite ("dataSet / face." + nume + '.' + str (i) + ".jpg", gri [y-offset: y + h + offset, x-offset: x + w + offset])
cv2.rectangle (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])
dacă cv2.waitKey (100) & 0xFF == ord ('q'):
pauză
# pauză dacă numărul eșantionului este mai mare decât 20
elif (i> 20):
pauză
cam.release ()
cv2.destroyAllWindows ()
Se va crea un set de date al fotografiilor care vor fi utilizate pentru autentificare.
ANTRENOR:
importcv2, os
import numpy ca np
din PIL import Image
recognizer = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Clasificatoare / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cale = 'set de date'
def get_images_and_labels (cale):
image_paths = [os.path.join (cale, f) pentru f în os.listdir (cale)]
# imagini va conține imagini de față
imagini =
# etichete va conține eticheta atribuită imaginii
etichete =
pentru image_path în image_paths:
# Citiți imaginea și convertiți-o în tonuri de gri
image_pil = Image.open (image_path).convert ('L')
# Convertiți formatul de imagine în matrice numpy
image = np.array (image_pil, 'uint8')
# Obțineți eticheta imaginii
nbr = int (os.path.split (image_path) [- 1].split (".") [1].replace ("face-", ""))
# nbr = int ( . join (str (ord (c)) pentru c în nbr))
print nbr
# Detectează fața din imagine
faces = faceCascade.detectMultiScale (imagine)
# Dacă fața este detectată, atașați fața la imagini și eticheta la etichete
pentru (x, y, w, h) în fețe:
images.append (imagine [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Adăugarea fețelor la setul de traning …", imagine [y: y + h, x: x + w])
cv2.waitKey (10)
# returnează lista de imagini și lista de etichete
returnează imagini, etichete
imagini, etichete = get_images_and_labels (cale)
cv2.imshow („test”, imagini [0])
cv2.waitKey (1)
recognizer.train (imagini, np.array (etichete))
recognizer.save („trainer / trainer.yml”)
cv2.destroyAllWindows ()
DETECTOR
importcv2
import numpy ca np
import os
c = 0
recognizer = cv2.face.createLBPHFaceRecognizer ()
recognizer.load ('trainer / trainer.yml')
cascadePath = "Clasificatoare / face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
fontcolor = (255, 255, 255)
în timp ce este adevărat:
ret, im = cam.read ()
gri = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale (gri, 1,2, 5)
pentru (x, y, w, h) în fețe:
cv2.rectangle (im, (x-50, y-50), (x + w + 50, y + h + 50), (225, 0, 0), 2)
Id = recognizer.predict (gri [y: y + h, x: x + w])
dacă (Id <70):
if (Id == 1):
Id = „Shashank”
elif (Id == 2):
dacă (c == 0):
Id = „Shivam”
c = c + 1
os.system („speak 'Welcome Shivam Access Granted'”)
altceva:
Id = „Shivam”
altceva:
Id = „Necunoscut”
cv2.putText (im, str (Id), (x, y + h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
dacă cv2.waitKey (10) & 0xFF == ord ('q'):
pauză
cam.release ()
cv2.destroyAllWindows ()
Pasul 5: LCD și difuzor
De asemenea, am folosit un afișaj LED I2C și un difuzor.
LED-ul este controlat prin Arduino Mega și codul său este dat în codul final.
Pentru Speaker, este conectat cu Raspberry Pi și folosește eSpeak Utility.
Puteți găsi referința aici -
Pasul 6: pașii finali
Asamblați totul și pregătiți-vă pentru bang.
Recomandat:
Urmărirea mișcării ochiului uman: 6 pași
Urmărirea mișcării ochiului uman: Acest proiect își propune să capteze mișcarea ochiului uman și își afișează mișcarea pe un set de lumini LED care sunt plasate în formă de ochi. Acest tip de proiect ar putea avea multe utilizări în domeniul roboticii și în special al umanității
Robot uman următor folosind Arduino Uno Sub 20 $: 9 pași
Robot uman urmărind utilizarea Arduino Uno Sub 20 $: așa că am făcut acest robot acum aproximativ un an și mi-a plăcut să te poată urmări oriunde și oriunde. aceasta este cea mai bună alternativă pentru un câine. este încă cu mine până acum. Am, de asemenea, un canal YouTube, unde puteți vedea procesul de realizare a acestuia în vi
BME280, Detector de contact uman: 5 pași
BME280, Human Contact Detector: Bună ziua și bine ați venit la proiectul Human Contact Detector folosind senzorul BME280 de la Sparkfun. Acest proiect va utiliza senzorul de temperatură al BME280 pentru a detecta contactul uman prin schimbarea temperaturii
Cum să faci un robot uman următor cu Arduino: 3 pași
Cum să faci un robot uman următor cu Arduino: umanul urmează robotul și îl urmărește pe om
Tutorial de bază foarte de bază: 6 pași
Tutorial Batch foarte de bază: dacă știți deja elementele esențiale ale lotului, NU este necesar să citiți acest instructable, continuați cu Tutorialul de bază nu atât de simplu. NOTĂ! ghilimele (dacă vedeți t