Satura rādītājs:
- 1. darbība. Nepieciešamās sastāvdaļas
- 2. solis: ķermeņa struktūra
- 3. darbība: elektroinstalācija un kodēšana
- 4. darbība: Raspberry Pi un attēla atpazīšana
- 5. solis: LCD un skaļrunis
- 6. darbība: pēdējie soļi
Video: NAIN 1.0 - pamata humanoīdu robots, izmantojot Arduino: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Nain 1.0 pamatā būs 5 noņemami moduļi-
1) Roka - kuru var vadīt, izmantojot servoservisus.
2) Riteņi - kurus var vadīt ar līdzstrāvas motoriem.
3) Kāja - Nain varēs pārvietoties starp riteņiem vai kājām.
4) Galva - tās galvu var kontrolēt dažādiem nod.
5) Kameras modulis- kuru var saslēgt, lai piekļūtu sejas atpazīšanai.
Kopā ar šo NAIN varēs runāt un mijiedarboties ar lietotājiem, kā arī parādīt laiku pēc iebūvētā pulksteņa. Tam būs bezvadu vadība, izmantojot Wi-Fi /Bluetooth.
1. darbība. Nepieciešamās sastāvdaļas
- Servomotori -4
- Arduino Mega - 1
- Raspberry Pi - 1
- USB kamera -1
- Skaļrunis -1
- Līdzstrāvas motori -2
- L293D -1
- Akumulators - 1
- Riteņi -2
- Ritentiņi - 2
Kopā ar tiem jums būs nepieciešamas kvadrātveida alumīnija sloksnes, lai korpuss un skrūves un uzgriežņi būtu pareizi piemēroti.
2. solis: ķermeņa struktūra
Virsbūves konstrukcija būs izgatavota no viegliem alumīnija kvadrātveida stieņiem, kas palīdzēs to viegli salikt.
Pašlaik salieciet tos, kā parādīts attēlā, kā arī izgrieziet piemērotas vietas, lai servomotori tiktu pievienoti rokām.
Apakšā piestipriniet sešstūra koka pamatni.
Zem koka pamatnes piestipriniet līdzstrāvas motorus un riteņus, kā mēs to darām jebkurā līnijas sekotājrobotā.
Interesanti, ka pievienojiet divus ritentiņus- vienu robota priekšpusē un otru aizmugurē.
3. darbība: elektroinstalācija un kodēšana
Lai savienotu dažādus moduļus, skatiet šajā daļā pievienotos kodus.
Pirmkārt, mēs pārbaudījām katru moduli, izmantojot atsevišķus kodus, un pēc tam mēs tos visus apvienojām vienā un kontrolējām riteņu un ieroču kustību, izmantojot Bluetooth moduli.
4. darbība: Raspberry Pi un attēla atpazīšana
Attēlu atpazīšana tiek veikta, izmantojot USB kameru un Raspberry Pi.
Lai to izdarītu, savā Pi būs jāinstalē OPEN CV bibliotēka.
To var izdarīt šeit-https://github.com/jabelone/OpenCV-for-Pi
Tad jums būs jāveic attēla atpazīšana, izmantojot haar kaskādi.
To var izdarīt šeit -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Pēc iepriekš minētās saites izpētīšanas un pēc tam esmu veicis dažas izmaiņas manā izmantotajā galīgajā kodā, ko ievietoju tālāk -
DATU KOPAS ĢENERATORS:
importcv2
cam = cv2. VideoCapture (0)
detektors = cv2. CascadeClassifier ('Classifiers/face.xml')
i = 0
nobīde = 50
name = raw_input ('ievadiet savu ID')
kamēr taisnība:
ret, im = cam.read ()
pelēks = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
sejas = detektors.detectMultiScale (pelēks, scaleFactor = 1,2, minKaimiņi = 5, minSize = (100, 100), karogi = cv2. CASCADE_SCALE_IMAGE)
(x, y, w, h) sejās:
i = i+1
cv2.imwrite ("dataSet/face."+nosaukums+'.'+str (i)+".jpg", pelēks [y-nobīde: y+h+nobīde, x-nobīde: x+w+nobīde])
cv2. taisnstūris (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
cv2.imshow ('im', im [y-nobīde: y+h+nobīde, x-nobīde: x+w+nobīde])
ja cv2.waitKey (100) & 0xFF == ord ('q'):
pārtraukums
# pārtraukums, ja izlases numurs ir lielāks par 20
elifs (i> 20):
pārtraukums
cam.release ()
cv2.destroyAllWindows ()
Tas izveidos jūsu fotoattēlu datu kopu, kas tiks izmantota autentifikācijai.
TRENERIS:
importcv2, os
importēt numpy kā np
no PIL importa attēla
atpazītājs = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Klasifikatori/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (ceļš):
image_paths = [os.path.join (ceļš, f) f failam os.listdir (ceļš)]
# attēlos būs sejas attēli
attēli =
# uzlīmes saturēs attēlam piešķirto etiķeti
iezīmes =
image_path in image_paths:
# Izlasiet attēlu un pārveidojiet to pelēktoņos
image_pil = Image.open (image_path).convert ('L')
# Konvertējiet attēla formātu par masīvu masīvu
image = np.array (image_pil, 'uint8')
# Iegūstiet attēla etiķeti
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", ""))
#nbr = int ("". pievienoties (str (ord (c)) c c nbr))
drukāt nr
# Atklājiet seju attēlā
sejas = faceCascade.detectMultiScale (attēls)
# Ja tiek konstatēta seja, pievienojiet seju attēliem un etiķeti etiķetēm
(x, y, w, h) sejās:
images.append (attēls [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Seju pievienošana transinga kopai …", attēls [y: y + h, x: x + w])
cv2.waitKey (10)
# atgrieziet attēlu sarakstu un etiķešu sarakstu
atgriezt attēlus, etiķetes
attēli, iezīmes = get_images_and_labels (ceļš)
cv2.imshow ('tests', attēli [0])
cv2.waitKey (1)
atpazīšanas trauks (attēli, np.masīvs (etiķetes))
atpazinējs.save ('trainer/trainer.yml')
cv2.destroyAllWindows ()
Detektors
importcv2
importēt numpy kā np
importēt OS
c = 0
atpazīšanas ierīce = cv2.face.createLBPHFaceRecognizer ()
tunnistajs.load ('trainer/trainer.yml')
cascadePath = "Klasifikatori/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontu skala = 1
fontcolor = (255, 255, 255)
kamēr taisnība:
ret, im = cam.read ()
pelēks = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
sejas = faceCascade.detectMultiScale (pelēks, 1.2, 5)
(x, y, w, h) sejās:
cv2. taisnstūris (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = atpazītājs.prognozēt (pelēks [y: y+h, x: x+w])
ja (Id <70):
ja (Id == 1):
Id = "Shashank"
elif (Id == 2):
ja (c == 0):
Id = "Šivams"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted'")
cits:
Id = "Šivams"
cits:
Id = "Nezināms"
cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow ('esmu', im)
ja cv2.waitKey (10) & 0xFF == ord ('q'):
pārtraukums
cam.release ()
cv2.destroyAllWindows ()
5. solis: LCD un skaļrunis
Esmu izmantojis arī I2C LED displeju un skaļruni.
LED tiek kontrolēts, izmantojot Arduino Mega, un tā kods ir norādīts galīgajā kodā.
Skaļrunim tas ir savienots ar Raspberry Pi un izmanto eSpeak Utility.
Tās atsauci varat atrast šeit-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
6. darbība: pēdējie soļi
Salieciet visu un sagatavojieties sprādzienam.
Ieteicams:
Kā izveidot humanoīdu robotu: 8 soļi
Kā izveidot humanoīdu robotu: Hei puiši! Es ceru, ka jums jau patika mana iepriekšējā pamācāmā " Tiešsaistes laika stacija (NodeMCU) " un jūs esat gatavs jaunam, pēc SMARS modeļa robota, ko mēs savācām pagājušajā reizē, šodienas projekts ir arī par robotu mācīšanos un
Otto DIY humanoīdu robots: 7 soļi (ar attēliem)
Otto DIY humanoīdu robots: Otto divkāju robots tagad ieguva rokas, lai izskatītos līdzīgi kā "Cilvēks" un LED matrica emociju paušanai. 3D drukājiet pats un pēc tam apkopojiet detaļas, lai tās izveidotu pats. Otto ir patiesi Opensource; tas nozīmē, ka aparatūra ir viegli pamanāma, tāpēc
MIA-1 atvērtā koda uzlabotais roku darbs ar humanoīdu robotu!: 4 soļi
MIA-1 atvērtā koda uzlabotais roku darbs ar humanoīdu robotu!: Sveiki, šodien es parādīšu, kā es izveidoju robotu MIA-1, kas ir ne tikai uzlabots un unikāls, bet arī atvērtā koda un kuru var izgatavot bez 3D drukāšanas! Jā, jūs sapratāt, šis robots ir pilnībā izgatavots ar rokām. Un atvērtā koda nozīmē - jūs saņemat
Norādījumi: 17 DOF humanoīdu robots: 7 soļi (ar attēliem)
Norādījumi: 17 DOF Humanoid Robot: DIY robotu komplektu salikšana ir viens no maniem iecienītākajiem hobijiem. Jūs sākat ar kastīti, kas pilna ar komponentiem, kas sakārtoti mazos plastmasas maisiņos, un beidzas ar uzstādītu konstrukciju un vairākām rezerves skrūvēm! Šajā apmācībā es iepazīstinu ar to, kā salikt 17 grādu komplektu
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst