Kazalo:
- Korak: Potrebne komponente
- 2. korak: Struktura telesa
- 3. korak: Ožičenje in kodiranje
- 4. korak: Raspberry Pi in prepoznavanje slik
- 5. korak: LCD in zvočnik
- Korak 6: Zadnji koraki
Video: NAIN 1.0 - osnovni humanoidni robot z uporabo Arduina: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Nain 1.0 bo imel v osnovi 5 snemljivih modulov-
1) Roka - ki jo je mogoče upravljati prek servomotorjev.
2) Kolesa - ki jih je mogoče upravljati z enosmernimi motorji.
3) Noga - Nain bo lahko premikal med kolesi ali nogami za gibanje.
4) Glava - Glavo je mogoče nadzorovati za različne prikimavanja.
5) Modul kamere- ki ga je mogoče povezati za dostop do prepoznavanja obrazov.
Poleg tega bo NAIN lahko govoril in komuniciral z uporabniki ter vam lahko pokazal čas z vgrajeno uro. Imel bo brezžični nadzor prek Wi-Fi /Bluetooth.
Korak: Potrebne komponente
- Servo motorji -4
- Arduino Mega - 1
- Malina Pi - 1
- Usb kamera -1
- Zvočnik -1
- Enosmerni motorji -2
- L293D -1
- Baterija - 1
- Kolesa -2
- Kolesca - 2
Skupaj s temi boste potrebovali aluminijaste kvadratne trakove, da bo ohišje ter vijaki in matice ustrezno nameščeni.
2. korak: Struktura telesa
Karoserijska konstrukcija bo izdelana iz lahkih aluminijastih kvadratnih palic, ki bodo pomagale pri enostavni montaži.
Zdaj jih sestavite, kot je prikazano na sliki, in izrežite tudi ustrezne prostore za pritrditev servo motorjev v roke.
Spodaj pritrdite šesterokotno leseno podlago.
Pod leseno podlago pritrdite enosmerne motorje in kolesa, kot to počnemo pri katerem koli robotu za sledenje linijam.
Zanimivo je, da dodate dva kolesca- eno spredaj in drugo na zadnji strani robota.
3. korak: Ožičenje in kodiranje
Za povezovanje različnih modulov si oglejte kode, priložene v tem delu.
Najprej smo vsak modul preizkusili s samostojnimi kodami, nato pa smo jih združili v enem in s pomočjo modula Bluetooth nadzirali gibanje koles in orožja.
4. korak: Raspberry Pi in prepoznavanje slik
Prepoznavanje slik se izvede s kamero USB in Raspberry Pi.
V ta namen boste morali v svoj Pi namestiti knjižnico OPEN CV.
To lahko storite tukaj-https://github.com/jabelone/OpenCV-for-Pi
Potem boste morali izvesti prepoznavanje slik z uporabo haar kaskade.
To lahko storite tukaj -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Ko sem preučil zgornjo povezavo in sledil temu, sem v končni kodi, ki sem jo uporabil, naredil nekaj sprememb, ki jih prilepim spodaj -
GENERATOR PODATKOV:
importcv2
cam = cv2. VideoCapture (0)
detektor = cv2. CascadeClassifier ('Klasifikatorji/face.xml')
i = 0
odmik = 50
name = raw_input ('vnesite svoj ID')
medtem ko je res:
ret, im = cam.read ()
siva = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
obrazi = detektor.detectMultiScale (siva, scaleFactor = 1.2, minNeighbors = 5, minSize = (100, 100), zastavice = cv2. CASCADE_SCALE_IMAGE)
za (x, y, w, h) v obrazih:
i = i+1
cv2.imwrite ("dataSet/face."+name+'.'+str (i)+".jpg", sivo [y-offset: y+h+offset, x-offset: x+w+offset])
cv2.pravokotnik (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])
če cv2.waitKey (100) & 0xFF == ord ('q'):
prekiniti
# prelom, če je številka vzorca večja od 20
elif (i> 20):
prekiniti
cam.release ()
cv2.destroyAllWindows ()
Ustvaril bo skupino vaših fotografij, ki bodo uporabljene za preverjanje pristnosti.
TRENER:
importcv2, os
uvoz numpy kot np
iz uvozne slike PIL
prepoznavalnik = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Klasifikatorji/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'set podatkov'
def get_images_and_labels (pot):
image_paths = [os.path.join (pot, f) za f v os.listdir (pot)]
# slike bodo vsebovale slike obrazov
slike =
# oznaka bo vsebovala oznako, ki je dodeljena sliki
oznake =
za image_path v image_paths:
# Preberite sliko in jo pretvorite v sivine
image_pil = Image.open (image_path).convert ('L')
# Pretvorite obliko slike v matriko numpy
image = np.array (image_pil, 'uint8')
# Pridobite oznako slike
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", "")))
#nbr = int (''. join (str (ord (c)) za c v nbr))
natisni št
# Zaznajte obraz na sliki
obrazov = faceCascade.detectMultiScale (slika)
# Če zazna obraz, dodajte obraz slikam, oznako pa nalepkam
za (x, y, w, h) v obrazih:
images.append (slika [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Dodajanje obrazov v sklop za treniranje …", slika [y: y + h, x: x + w])
cv2.waitKey (10)
# vrne seznam slik in seznam oznak
povratne slike, nalepke
slike, oznake = get_images_and_labels (pot)
cv2.imshow ('test', slike [0])
cv2.waitKey (1)
prepoznaval.train (slike, np.array (oznake))
prepoznavnik.save ('trener/trener.yml')
cv2.destroyAllWindows ()
DETEKTOR
importcv2
uvoz numpy kot np
uvoz os
c = 0
prepoznavalnik = cv2.face.createLBPHFaceRecognizer ()
prepoznavnik.load ('trener/trener.yml')
cascadePath = "Klasifikatorji/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
pisava = 1
fontcolor = (255, 255, 255)
medtem ko je res:
ret, im = cam.read ()
siva = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
obrazov = faceCascade.detectMultiScale (siva, 1.2, 5)
za (x, y, w, h) v obrazih:
cv2.pravokotnik (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = prepoznavalec.predict (sivo [y: y+h, x: x+w])
če (Id <70):
če (Id == 1):
Id = "Shashank"
elif (Id == 2):
če (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak" Welcome Shivam Access Granted "")
drugače:
Id = "Shivam"
drugače:
Id = "Neznano"
cv2.putText (im, str (Id), (x, y+h), pisava, pisava, barva pisave)
cv2.imshow ('im', im)
če cv2.waitKey (10) & 0xFF == ord ('q'):
prekiniti
cam.release ()
cv2.destroyAllWindows ()
5. korak: LCD in zvočnik
Uporabil sem tudi LED zaslon I2C in zvočnik.
LED se upravlja prek Arduino Mega, njegova koda pa je navedena v končni kodi.
Za Speaker je povezan z Raspberry Pi in uporablja pripomoček eSpeak.
Njegovo referenco najdete tukaj-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Korak 6: Zadnji koraki
Vse sestavite in se pripravite na udar.
Priporočena:
Otto DIY humanoidni robot: 7 korakov (s slikami)
Otto DIY humanoidni robot: Otto dvonožni robot ima zdaj orožje, ki je podobno "človeku" in LED matrika za izražanje čustev. 3D natisnite sami, nato pa sestavite dele, ki jih želite sami zgraditi.Otto je resnično odprt vir; to pomeni, da je strojna oprema zlahka opazna, zato
Programiranje Arduina z uporabo drugega Arduina za prikaz drsnega besedila brez knjižnice: 5 korakov
Programiranje Arduina z uporabo drugega Arduina za prikaz drsnega besedila brez knjižnice: Sony Spresense ali Arduino Uno nista tako draga in ne zahtevata veliko energije. Če pa ima vaš projekt omejeno moč, prostor ali celo proračun, razmislite o uporabi Arduino Pro Mini. Za razliko od Arduino Pro Micro, Arduino Pro Mi
Kako: 17 humanoidni robot DOF: 7 korakov (s slikami)
Kako: 17 humanoidni robot DOF: Sestavljanje kompletov robotov DIY je eden mojih najljubših hobijev. Začnete s škatlo, polno sestavnih delov, razporejenih v majhne plastične vrečke, in končate z nameščeno konstrukcijo in več rezervnimi vijaki! V tej vadnici predstavljam, kako sestaviti komplet s 17 stopinjami
Brezžični daljinski upravljalnik z uporabo 2.4Ghz modula NRF24L01 z Arduinom - Nrf24l01 4 -kanalni / 6 -kanalni sprejemnik oddajnika za Quadcopter - Rc helikopter - Rc ravnina z uporabo Arduina: 5 korakov (s slikami)
Brezžični daljinski upravljalnik z uporabo 2.4Ghz modula NRF24L01 z Arduinom | Nrf24l01 4 -kanalni / 6 -kanalni sprejemnik oddajnika za Quadcopter | Rc helikopter | Rc letalo z uporabo Arduina: za upravljanje avtomobila Rc | Quadcopter | Dron | RC ravnina | RC čoln, vedno potrebujemo sprejemnik in oddajnik, recimo za RC QUADCOPTER potrebujemo 6 -kanalni oddajnik in sprejemnik in ta vrsta TX in RX je predraga, zato jo bomo naredili na svojem
Humanoidni robot na osnovi Arduina z uporabo servo motorjev: 7 korakov (s slikami)
Humanoidni robot na osnovi Arduina z uporabo servo motorjev: Pozdravljeni, to je moj prvi humanoidni robot, izdelan iz PVC pene. Na voljo je v različnih debelinah. Tu sem uporabil 0,5 mm. Ta robot lahko zdaj samo hodi, ko sem vklopil. Zdaj delam na povezovanju Arduina in Mobilea prek Bluetootha