Sadržaj:
- Korak 1: Potrebne komponente
- Korak 2: Građa tijela
- Korak 3: Ožičenje i kodiranje
- Korak 4: Raspberry Pi i prepoznavanje slike
- Korak 5: LCD i zvučnik
- Korak 6: Završni koraci
Video: NAIN 1.0 - osnovni humanoidni robot koji koristi Arduino: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Nain 1.0 će u osnovi imati 5 odvojivih modula-
1) Ruka - kojom se može upravljati putem servo pogona.
2) Točkovi - kojima se može upravljati pomoću jednosmernih motora.
3) Noga - Nain će se moći prebacivati između kotača ili nogu radi kretanja.
4) Glava - Glavom se može upravljati za različita klimanja.
5) Modul kamere- koji se može povezati za pristup prepoznavanju lica.
Uz ovaj NAIN će moći razgovarati i komunicirati s korisnicima te vam može pokazati vrijeme pomoću ugrađenog sata. Imat će bežično upravljanje putem Wi-Fi /Bluetooth-a.
Korak 1: Potrebne komponente
- Servo motori -4
- Arduino Mega - 1
- Malina Pi - 1
- USB kamera -1
- Zvučnik -1
- DC motori -2
- L293D -1
- Baterija - 1
- Točkovi -2
- Kotačići - 2
Zajedno s ovim trebat će vam aluminijske kvadratne trake kako bi tijelo i vijci i matice pravilno pristajali.
Korak 2: Građa tijela
Struktura karoserije bit će izrađena od lakih aluminijskih kvadratnih šipki koje će joj pomoći pri jednostavnom sastavljanju.
Do sada ih sastavite kao što je prikazano na slici, a također izrežite odgovarajuće prostore za postavljanje servo motora u ruke.
Pričvrstite šesterokutnu drvenu podlogu na dno.
Ispod drvene podloge pričvrstite istosmjerne motore i kotače kao što to činimo u bilo kojem robotu za praćenje linija.
Zanimljivo je da dodate dva kotača- jedan sprijeda, a drugi straga robota.
Korak 3: Ožičenje i kodiranje
Za povezivanje različitih modula pogledajte kodove dodane u ovom dijelu.
Prvo smo testirali svaki modul pomoću samostalnih kodova, a zatim smo ih sve spojili u jedan i kontrolirali kretanje kotača i ruke pomoću bluetooth modula.
Korak 4: Raspberry Pi i prepoznavanje slike
Prepoznavanje slike vrši se pomoću USB kamere i Raspberry Pi.
Za to ćete morati instalirati OTVORENU biblioteku životopisa na svoj Pi.
To možete učiniti odavde-https://github.com/jabelone/OpenCV-for-Pi
Tada ćete morati izvršiti prepoznavanje slike pomoću haar kaskade.
To možete učiniti odavde -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Nakon što sam proučio gornju vezu i slijedio to, napravio sam neke promjene u konačnom kodu koji sam koristio, a koji lijepim ispod -
GENERATOR PODATAKA:
importcv2
cam = cv2. VideoCapture (0)
detektor = cv2. CascadeClassifier ('Klasifikatori/face.xml')
i = 0
pomak = 50
name = raw_input ('unesite svoj ID')
dok je True:
ret, im = cam.read ()
siva = cv2.cvtBoja (im, cv2. COLOR_BGR2GRAY)
lica = detektor.detectMultiScale (sivo, scaleFactor = 1.2, minNeighbors = 5, minSize = (100, 100), zastavice = cv2. CASCADE_SCALE_IMAGE)
za (x, y, w, h) u licima:
i = i+1
cv2.imwrite ("set podataka/lice."+ime+'.'+str (i)+".jpg", sivo [y-pomak: y+h+pomak, x-pomak: x+w+pomak])
cv2.rectangle (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
cv2.imshow ('im', im [y-pomak: y+h+pomak, x-pomak: x+w+pomak])
if cv2.waitKey (100) & 0xFF == ord ('q'):
break
# prekid ako je uzorak veći od 20
elif (i> 20):
break
cam.release ()
cv2.destroyAllWindows ()
To će stvoriti skup vaših fotografija koje će se koristiti za provjeru autentičnosti.
TRENER:
importcv2, os
uvoz numpy kao np
from PIL import Image
prepoznavač = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Klasifikatori/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'set podataka'
def get_images_and_labels (putanja):
image_paths = [os.path.join (path, f) za f u os.listdir (path)]
# slika će sadržavati slike lica
slike =
# naljepnica će sadržavati oznaku dodijeljenu slici
oznake =
za image_path u image_paths:
# Pročitajte sliku i pretvorite je u sive
image_pil = Image.open (image_path).convert ('L')
# Pretvorite format slike u numpy niz
image = np.array (image_pil, 'uint8')
# Dobijte oznaku slike
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", ""))
#nbr = int (''. join (str (ord (c)) za c u nbr))
print br
# Prepoznajte lice na slici
lica = faceCascade.detectMultiScale (slika)
# Ako se lice otkrije, dodajte lice slikama, a oznaku oznakama
za (x, y, w, h) u licima:
images.append (slika [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Dodavanje lica u set za praćenje …", slika [y: y + h, x: x + w])
cv2.waitKey (10)
# vraća listu slika i oznaka
povratne slike, naljepnice
slike, oznake = get_images_and_labels (putanja)
cv2.imshow ('test', slike [0])
cv2.waitKey (1)
prepoznavač.train (slike, np.array (oznake))
prepoznavač.save ('trener/trener.yml')
cv2.destroyAllWindows ()
DETEKTOR
importcv2
uvoz numpy kao np
import os
c = 0
prepoznavač = cv2.face.createLBPHFaceRecognizer ()
prepoznavač.load ('trener/trener.yml')
cascadePath = "Klasifikatori/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
font font = 1
fontcolor = (255, 255, 255)
dok je True:
ret, im = cam.read ()
siva = cv2.cvtBoja (im, cv2. COLOR_BGR2GRAY)
lica = faceCascade.detectMultiScale (sivo, 1.2, 5)
za (x, y, w, h) u licima:
cv2.rectangle (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = prepoznavač.predvidi (sivo [y: y+h, x: x+w])
if (Id <70):
if (Id == 1):
Id = "Shashank"
elif (Id == 2):
ako (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted'"))
drugo:
Id = "Shivam"
drugo:
Id = "Nepoznato"
cv2.putText (im, str (Id), (x, y+h), font fonta, skala slova, boja fonta)
cv2.imshow ('im', im)
if cv2.waitKey (10) & 0xFF == ord ('q'):
break
cam.release ()
cv2.destroyAllWindows ()
Korak 5: LCD i zvučnik
Koristio sam i I2C LED ekran i zvučnik.
LED dioda se kontrolira putem Arduino Mega i njen kôd je dat u konačnom kodu.
Za Speaker, povezan je s Raspberry Pi i koristi eSpeak Utility.
Referencu možete pronaći ovdje-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Korak 6: Završni koraci
Sastavite sve i spremite se za prasak.
Preporučuje se:
Bežični Arduino robot koji koristi bežični modul HC12: 7 koraka
Bežični Arduino robot koji koristi bežični modul HC12: Hej momci, dobrodošli nazad. U svom prethodnom postu objasnio sam šta je to H mostni krug, IC upravljački program motora L293D, integrirani IC upravljački program motora L293D za pogon visokonaponskih upravljačkih programa motora i kako možete dizajnirati i napraviti vlastitu ploču upravljačkog programa motora L293D
Robot s Wi-Fi kontrolom koji koristi Wemos D1 ESP8266, Arduino IDE i Blynk aplikaciju: 11 koraka (sa slikama)
Robot koji kontrolira Wi-Fi pomoću Wemos D1 ESP8266, Arduino IDE-a i Blynk aplikacije: U ovom vodiču pokazat ću vam kako napraviti robotski spremnik s Wi-Fi kontrolom sa pametnog telefona pomoću aplikacije Blynk. U ovom projektu korištena je ESP8266 Wemos D1 ploča, ali se mogu koristiti i drugi modeli ploča (NodeMCU, Firebeetle itd.), A pr
Robot Google pomoćnik koji koristi Arduino: 3 koraka
Robot Google pomoćnik koji koristi Arduino: U prošlom postu sam vam pokazao kako izgraditi Google asistenta u Raspberry Pi i integrirati Google pomoćnika u IFTTT. U ovom vodiču ću vam pokazati kako izgraditi robota kojim se može upravljati pomoću Google pomoćnika. Ne morate brinuti ako
Humanoidni robot zasnovan na Arduinu koji koristi servo motore: 7 koraka (sa slikama)
Humanoidni robot na bazi Arduina koji koristi servo motore: Pozdrav svima, ovo je moj prvi humanoidni robot, izrađen od PVC pjene. Dostupan je u različitim debljinama. Ovdje sam koristio 0,5 mm. Ovaj robot sada može samo hodati kad sam ga uključio. Sada radim na povezivanju Arduina i Mobitela putem Bluetootha
Uređaj za mjerenje UV-indeksa koji govori, koji koristi senzor VEML6075 i mali drugar: 5 koraka
Uređaj za mjerenje UV-indeksa koji govori, pomoću senzora VEML6075 i Malog prijatelja: Dolaze ljeta! Sunce sija! Što je odlično. No, kako ultraljubičasto (UV) zračenje postaje sve intenzivnije, ljudi poput mene dobivaju pjege, male smeđe otočiće koji plivaju u moru crvene, opečene od sunca, kože koja svrbi. Biti u mogućnosti imati informacije u stvarnom vremenu