Turinys:
- 1 žingsnis: reikalingi komponentai
- 2 žingsnis: Kūno struktūra
- 3 žingsnis: laidų prijungimas ir kodavimas
- 4 žingsnis: „Raspberry Pi“ir vaizdo atpažinimas
- 5 žingsnis: LCD ir garsiakalbis
- 6 žingsnis: paskutiniai žingsniai
Video: NAIN 1.0 - pagrindinis humanoidinis robotas naudojant „Arduino“: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
„Nain 1.0“iš esmės turės 5 nuimamus modulius-
1) Rankena - kurią galima valdyti naudojant servoservus.
2) Ratai - kuriuos galima valdyti nuolatinės srovės varikliais.
3) Kojos - Nain galės judėti tarp ratų ar kojų.
4) Galva - jos galvą galima valdyti įvairiems linktelėjimams.
5) Kameros modulis, kurį galima prijungti prie veido atpažinimo prieigos.
Kartu su tuo NAIN galės kalbėti ir bendrauti su vartotojais ir parodyti laiką pagal savo įmontuotą laikrodį. Jame bus belaidis valdymas naudojant „Wi-Fi“/„Bluetooth“.
1 žingsnis: reikalingi komponentai
- Servo varikliai -4
- „Arduino Mega“- 1
- Raspberry Pi - 1
- USB kamera -1
- Pranešėjas -1
- DC varikliai -2
- L293D -1
- Akumuliatorius - 1
- Ratai -2
- Ratukai - 2
Kartu su šiomis medžiagomis jums reikės kvadratinių aliuminio juostelių, kad korpusas, sriegiai ir veržlės būtų tinkamai pritvirtinti.
2 žingsnis: Kūno struktūra
Kėbulo konstrukcija bus pagaminta iš lengvų aliuminio kvadratinių strypų, kurie padės jį lengvai surinkti.
Nuo šiol surinkite juos taip, kaip parodyta paveikslėlyje, taip pat iškirpkite tinkamas vietas servo varikliams, kurie bus pritvirtinti prie rankų.
Apačioje pritvirtinkite šešiakampį medinį pagrindą.
Po mediniu pagrindu pritvirtinkite nuolatinės srovės variklius ir ratus, kaip tai darome bet kuriame linijos sekimo robote.
Įdomu tai, kad pridėkite du ratukus- vieną priekyje, kitą- roboto gale.
3 žingsnis: laidų prijungimas ir kodavimas
Norėdami prijungti įvairius modulius, vadovaukitės šioje dalyje pateiktais kodais.
Pirmiausia mes išbandėme kiekvieną modulį naudodami atskirus kodus, o tada sujungėme juos visus į vieną ir valdėme ratų ir ginklų judėjimą naudodami „Bluetooth“modulį.
4 žingsnis: „Raspberry Pi“ir vaizdo atpažinimas
Vaizdo atpažinimas atliekamas naudojant USB kamerą ir „Raspberry Pi“.
Norėdami tai padaryti, „Pi“turėsite įdiegti OPEN CV biblioteką.
Tai padaryti galite čia-https://github.com/jabelone/OpenCV-for-Pi
Tada turėsite atlikti vaizdo atpažinimą naudodami haar kaskadą.
Tai galite padaryti čia -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Išstudijavęs aukščiau esančią nuorodą ir atlikęs keletą pakeitimų galutiniame naudojamame kode, kurį įklijuoju žemiau -
DUOMENŲ KOMPLEKTAS:
importcv2
cam = cv2. VideoCapture (0)
detektorius = cv2. CascadeClassifier ('Classifiers/face.xml')
i = 0
poslinkis = 50
name = raw_input ('įveskite savo ID')
nors tiesa:
ret, im = cam.read ()
pilka = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
veidai = detektorius.detectMultiScale (pilka, scaleFactor = 1,2, min. Kaimynai = 5, minSize = (100, 100), vėliavos = cv2. CASCADE_SCALE_IMAGE)
(x, y, w, h) veiduose:
i = i+1
cv2.imwrite ("dataSet/face."+vardas+'.'+str (i)+".jpg", pilka [y-ofset: y+h+offset, x-offset: x+w+offset])
cv2. stačiakampis (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])
jei cv2.waitKey (100) & 0xFF == ord ('q'):
pertrauka
# pertrauka, jei mėginio skaičius yra didesnis nei 20
elifas (i> 20):
pertrauka
cam.release ()
cv2.destroyAllWindows ()
Tai sukurs jūsų nuotraukų duomenų rinkinį, kuris bus naudojamas autentifikavimui.
TREENERIS:
importcv2, os
importuoti numpy kaip np
iš PIL importo vaizdo
atpažinimo priemonė = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Klasifikatoriai/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (kelias):
image_paths = [os.path.join (kelias, f) f fone os.listdir (kelias)]
# paveikslėlyje bus veido atvaizdai
vaizdai =
# etikečių bus etiketė, priskirta vaizdui
etiketės =
„image_path“, esantį „image_paths“:
# Perskaitykite vaizdą ir konvertuokite į pilkos spalvos skalę
image_pil = Image.open (image_path).convert ('L')
# Konvertuokite vaizdo formatą į numpy masyvą
image = np.array (image_pil, 'uint8')
# Gaukite vaizdo etiketę
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", ""))
#nbr = int ("". prisijungti (str (ord (c)) c c nbr))
spausdinti Nr
# Aptikite veidą paveikslėlyje
veidai = faceCascade.detectMultiScale (vaizdas)
# Jei aptinkamas veidas, pridėkite veidą prie vaizdų, o etiketę - prie etikečių
(x, y, w, h) veiduose:
images.append (vaizdas [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Veidų pridėjimas prie transingo rinkinio …", vaizdas [y: y + h, x: x + w])
cv2.waitKey (10)
# grąžinkite vaizdų sąrašą ir etikečių sąrašą
grąžinti paveikslėlius, etiketes
vaizdai, etiketės = get_images_and_labels (kelias)
cv2.imshow ('testas', vaizdai [0])
cv2.waitKey (1)
atpažinimo įrenginys (vaizdai, np.masyvas (etiketės))
atpažintuvas.save ('trainer/trainer.yml')
cv2.destroyAllWindows ()
DETEKTORIUS
importcv2
importuoti numpy kaip np
importuoti
c = 0
atpažinimo priemonė = cv2.face.createLBPHFaceRecognizer ()
atpažinimo priemonė.load ('trainer/trainer.yml')
cascadePath = "Klasifikatoriai/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
šriftų skalė = 1
fontcolor = (255, 255, 255)
nors tiesa:
ret, im = cam.read ()
pilka = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
veidai = faceCascade.detectMultiScale (pilka, 1,2, 5)
(x, y, w, h) veiduose:
cv2. stačiakampis (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = atpažinimo priemonė. Numatyti (pilka [y: y+h, x: x+w])
jei (Id <70):
jei (Id == 1):
Id = "Shashank"
elifas (Id == 2):
jei (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted'")
Kitas:
Id = "Shivam"
Kitas:
Id = "Nežinoma"
cv2.putText (im, str (Id), (x, y+h), fontface, fontscale, fontcolor)
cv2.imshow ('im', im)
jei cv2.waitKey (10) & 0xFF == ord ('q'):
pertrauka
cam.release ()
cv2.destroyAllWindows ()
5 žingsnis: LCD ir garsiakalbis
Aš taip pat naudojau I2C LED ekraną ir garsiakalbį.
Šviesos diodas valdomas naudojant „Arduino Mega“ir jo kodas pateikiamas galutiniame kode.
Garsiakalbiui jis prijungtas prie „Raspberry Pi“ir naudoja „eSpeak Utility“.
Jo nuorodą rasite čia-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
6 žingsnis: paskutiniai žingsniai
Surinkite viską ir pasiruoškite sprogimui.
Rekomenduojamas:
Arduino - Labirinto sprendimo robotas („MicroMouse“) Sieninis robotas: 6 žingsniai (su paveikslėliais)
Arduino | Labirinto sprendimų robotas („MicroMouse“) Sienų sekimo robotas: Sveiki, aš esu Izaokas ir tai yra mano pirmasis robotas „Striker v1.0“. Šis robotas buvo sukurtas paprastam labirintui išspręsti. Konkurse turėjome du labirintus ir robotą sugebėjo juos identifikuoti. Dėl bet kokių kitų labirinto pakeitimų gali prireikti pakeisti
MIA-1 atviro kodo pažangus rankų darbo humanoidinis robotas!: 4 žingsniai
MIA-1 atviro kodo pažangus rankų darbo humanoidinis robotas!: Sveiki visi, šiandien parodysiu, kaip sukūriau robotą MIA-1, kuris yra ne tik pažangus ir unikalus, bet ir atviro kodo ir gali būti pagamintas be 3D spausdinimo !! Taip, jūs supratote, šis robotas yra visiškai rankų darbo. O atviro kodo reiškia - jūs gaunate
Balansavimo robotas / 3 ratų robotas / STEM robotas: 8 žingsniai
Balansavimo robotas / 3 ratų robotas / STEM robotas: Mes sukūrėme kombinuotą balansavimo ir 3 ratų robotą, skirtą naudoti mokyklose ir po pamokų. Robotas sukurtas naudojant „Arduino Uno“, pasirinktinį skydą (pateikiama visa konstrukcijos informacija), „Li Ion“akumuliatorių paketą (visa tai atitinka
ASPIR: viso dydžio 3D spausdintas humanoidinis robotas: 80 žingsnių (su nuotraukomis)
ASPIR: viso dydžio 3D spausdintas humanoidinis robotas: autonominis palaikymo ir teigiamo įkvėpimo robotas (ASPIR) yra viso dydžio 4,3 pėdų atvirojo kodo 3D spausdintas humanoidinis robotas, kurį kiekvienas gali sukurti turėdamas pakankamai jėgų ir ryžto. Turinys padalinau šį didžiulį 80 žingsnių „Instructable“į 10 e
Sviesto robotas: „Arduino“robotas su egzistencine krize: 6 žingsniai (su nuotraukomis)
Sviesto robotas: „Arduino“robotas su egzistencine krize: Šis projektas paremtas animaciniu serialu „Rikas ir Mortis“. Viename iš epizodų Rikas sukuria robotą, kurio vienintelis tikslas yra atnešti sviesto. Kaip studentai iš Bruface (Briuselio inžinerijos fakultetas), mes turime užduotį mecha