INHOUDSOPGAWE:
- Stap 1: Komponente benodig
- Stap 2: Liggaamstruktuur
- Stap 3: Bedrading en kodering
- Stap 4: Framboos Pi en beeldherkenning
- Stap 5: LCD en luidspreker
- Stap 6: Laaste stappe
Video: NAIN 1.0 - die basiese humanoïde robot met behulp van Arduino: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Nain 1.0 sal basies 5 afneembare modules hê-
1) Arm - wat via servo's beheer kan word.
2) wiele - wat met gsm -motors bestuur kan word.
3) Been - Nain sal kan wissel tussen wiele of bene vir beweging.
4) Kop - Die kop kan beheer word vir verskillende knik.
5) Kameramodule- wat gekoppel kan word vir toegang tot gesigherkenning.
Saam met hierdie kan NAIN gebruikers praat en interaksie hê en kan u die tyd wys deur die ingeboude klok. Dit sal 'n draadlose beheer hê met behulp van Wi-Fi /Bluetooth.
Stap 1: Komponente benodig
- Servomotors -4
- Arduino Mega - 1
- Framboos Pi - 1
- Usb -kamera -1
- Spreker -1
- DC Motors -2
- L293D -1
- Batterypak - 1
- Wiele -2
- Kasterwiele - 2
U benodig ook vierkantige aluminiumstroke om die liggaam en moere en moere te maak om dit reg te pas.
Stap 2: Liggaamstruktuur
Die liggaamstruktuur sal bestaan uit ligte vierkantige aluminiumstawe, wat u kan help om dit maklik te monteer.
Monteer hulle nou, soos in die figuur getoon, en sny ook die regte spasies uit om die servomotors in die arms vas te sit.
Heg 'n seskantige houtbodem aan die onderkant vas.
Bevestig onder die houtbasis DC -motors en wiele soos ons in 'n lynvolgrobot doen.
Interessant genoeg, voeg twee wiele by- een aan die voorkant en 'n ander aan die agterkant van die robot.
Stap 3: Bedrading en kodering
Raadpleeg die kodes wat in hierdie deel aangeheg is om die verskillende modules aan te sluit.
Eerstens het ons elke module met behulp van selfstandige kodes getoets, en dan het ons almal in een gekombineer en die beweging van wiele en arms beheer met behulp van 'n Bluetooth -module.
Stap 4: Framboos Pi en beeldherkenning
Beeldherkenning word uitgevoer met 'n USB -kamera en Raspberry Pi.
Hiervoor moet u die OPEN CV -biblioteek op u Pi installeer.
U kan dit hier doen-https://github.com/jabelone/OpenCV-for-Pi
Dan moet u beeldherkenning met haar cascade uitvoer.
U kan dit hier doen -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Nadat ek die bogenoemde skakel bestudeer het en daarna gevolg het, het ek 'n paar veranderinge aangebring in die finale kode wat ek gebruik het wat ek hieronder plak -
DATASET GENERATOR:
invoercv2
cam = cv2. VideoCapture (0)
detector = cv2. CascadeClassifier ('Classifiers/face.xml')
ek = 0
verrekening = 50
name = raw_input ('voer u ID in')
terwyl dit waar is:
ret, im = cam.read ()
grys = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
gesigte = detector.detectMultiScale (grys, scaleFactor = 1.2, minBure = 5, minSize = (100, 100), vlae = cv2. CASCADE_SCALE_IMAGE)
vir (x, y, w, h) in gesigte:
ek = i+1
cv2.imwrite ("dataSet/face."+name+'.'+str (i)+".jpg", grys [y-offset: y+h+offset, x-offset: x+w+offset])
cv2. reghoek (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])
as cv2.waitKey (100) & 0xFF == ord ('q'):
breek
# breek as die steekproefnommer meer as 20 is
elif (i> 20):
breek
cam.release ()
cv2.destroyAllWindows ()
Dit sal 'n datastel van u foto's skep wat vir verifikasie gebruik sal word.
AFRIGTER:
importcv2, os
invoer numpy as np
vanaf PIL invoerbeeld
herkener = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (pad):
image_paths = [os.path.join (pad, f) vir f in os.listdir (pad)]
# prente bevat gesigbeelde
beelde =
# etikette bevat die etiket wat aan die prent toegeken is
etikette =
vir image_path in image_paths:
# Lees die prentjie en verander dit in grysskaal
image_pil = Image.open (image_path).convert ('L')
# Skakel die beeldformaat om in 'n numpy -skikking
beeld = np.array (image_pil, 'uint8')
# Kry die etiket van die prent
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", "")))
#nbr = int (''. join (str (ord (c)) vir c in nbr))
druk nbr
# Ontdek die gesig in die prent
gesigte = faceCascade.detectMultiScale (prent)
# As die gesig bespeur word, voeg die gesig by die beelde en die etiket by die etikette
vir (x, y, w, h) in gesigte:
images.append (prent [y: y + h, x: x + w])
etikette.byvoeg (nbr)
cv2.imshow ("Voeg gesigte by traning set …", beeld [y: y + h, x: x + w])
cv2.waitKey (10)
# Stuur die prentelys en etiketlys terug
gee beelde, etikette terug
beelde, etikette = get_images_and_labels (pad)
cv2.imshow ('toets', beelde [0])
cv2.waitKey (1)
herkenner.trein (beelde, np.array (etikette))
identifier.save ('trainer/trainer.yml')
cv2.destroyAllWindows ()
DETEKTOR
invoercv2
invoer numpy as np
invoer os
c = 0
herkener = cv2.face.createLBPHFaceRecognizer ()
identifier.load ('trainer/trainer.yml')
cascadePath = "Classifiers/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
lettertipe = 1
fontcolor = (255, 255, 255)
terwyl dit waar is:
ret, im = cam.read ()
grys = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
gesigte = faceCascade.detectMultiScale (grys, 1.2, 5)
vir (x, y, w, h) in gesigte:
cv2. reghoek (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = herkener.voorspelling (grys [y: y+h, x: x+w])
as (Id <70):
as (Id == 1):
Id = "Shashank"
elif (Id == 2):
as (c == 0):
Id = "Shivam"
c = c+1
os.system ("sê 'Welkom Shivam -toegang toegestaan'")
anders:
Id = "Shivam"
anders:
Id = "Onbekend"
cv2.putText (im, str (Id), (x, y+h), lettertipe, lettertipe, lettertipe kleur
cv2.imshow ('im', im)
as cv2.waitKey (10) & 0xFF == ord ('q'):
breek
cam.release ()
cv2.destroyAllWindows ()
Stap 5: LCD en luidspreker
Ek het ook 'n I2C LED -skerm en 'n luidspreker gebruik.
Die LED word beheer via Arduino Mega en die kode word in die finale kode gegee.
Vir Speaker is dit verbind met die Raspberry Pi en gebruik dit eSpeak Utility.
U kan die verwysing hier vind-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Stap 6: Laaste stappe
Monteer alles en maak gereed vir die knal.
Aanbeveel:
Monitor versnelling met behulp van Raspberry Pi en AIS328DQTR met behulp van Python: 6 stappe
Monitering van versnelling met behulp van Raspberry Pi en AIS328DQTR Gebruik van Python: Versnelling is eindig, volgens ek volgens sommige wette van die fisika.- Terry Riley 'n Jagluiperd gebruik ongelooflike versnelling en vinnige spoedveranderinge wanneer hy jaag. Die vinnigste wesens aan wal gebruik af en toe sy hoogste tempo om prooi te vang. Die
Basiese selfoon met behulp van STM32F407 Discovery Kit en GSM A6 -module: 14 stappe (met foto's)
Basiese selfoon met behulp van STM32F407 Discovery Kit en GSM A6 -module: wou u ooit 'n oulike ingeboude projek skep ?. Indien wel, wat van die bou van een van die gewildste en almal se gunsteling gadgets, naamlik selfoon !!!. In hierdie instruksies sal ek u lei hoe u 'n basiese selfoon kan bou met behulp van die STM
Basiese stophorlosie met behulp van VHDL en Basys3 Board: 9 stappe
Basiese stophorlosie met behulp van VHDL en Basys3 Board: Welkom by die instruksies oor hoe om 'n stophorlosie te bou met basiese VHDL en Basys 3 bord. Ons is opgewonde om ons projek met u te deel! Dit was 'n finale projek vir die kursus CPE 133 (Digital Design) by Cal Poly, SLO in die herfs van 2016. Die projek wat ons bou
Arduino -gebaseerde humanoïde robot met servomotors: 7 stappe (met foto's)
Arduino -gebaseerde humanoïde robot met servomotors: Hallo almal, dit is my eerste humanoïde robot, gemaak van PVC -skuimvel. Dit is beskikbaar in verskillende dikte. Hier het ek 0,5 mm gebruik. Op die oomblik kan hierdie robot net loop toe ek AAN skakel. Nou werk ek daaraan om Arduino en Mobile via Bluetooth aan te sluit
Hoe om van 0 tot 99 te tel met behulp van 8051 mikrobeheerder met 7 segmentweergawe: 5 stappe (met foto's)
Hoe om van 0 tot 99 te tel Met behulp van 8051 mikrobeheerder met 7 -segmentweergawe: Hallo almal, in hierdie tutoriaal gaan ons u vertel hoe om van 0 tot 99 te tel met twee 7 -segment -skerms