Indholdsfortegnelse:
- Trin 1: Nødvendige komponenter
- Trin 2: Kropsstruktur
- Trin 3: Ledningsføring og kodning
- Trin 4: Hindbær Pi og billedgenkendelse
- Trin 5: LCD og højttaler
- Trin 6: Sidste trin
Video: NAIN 1.0 - den grundlæggende humanoide robot ved hjælp af Arduino: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Nain 1.0 har stort set 5 aftagelige moduler-
1) Arm - som kan styres via servoer.
2) Hjul - som kan styres med jævnstrømsmotorer.
3) Ben - Nain vil være i stand til at skifte mellem hjul eller ben for bevægelse.
4) Hoved - Hovedet kan styres til forskellige nikke.
5) Kameramodul- som kan forbindes til ansigtsgenkendelse.
Sammen med dette vil NAIN være i stand til at tale og interagere med brugere og kan vise dig tiden ved sit indbyggede ur. Det vil have en trådløs kontrol ved hjælp af Wi-fi /Bluetooth.
Trin 1: Nødvendige komponenter
- Servomotorer -4
- Arduino Mega - 1
- Hindbær Pi - 1
- Usb -kamera -1
- Højttaler -1
- DC -motorer -2
- L293D -1
- Batteripakke - 1
- Hjul -2
- Hjul - 2
Sammen med disse skal du bruge firkantede aluminiumsstrimler til at lave kroppen og skruer og møtrikker, så de passer korrekt.
Trin 2: Kropsstruktur
Karosseristrukturen vil være lavet af lette firkantede stænger i aluminium, som hjælper med at samle den let.
Saml dem nu som vist på figuren og skær også de rigtige rum ud for servomotorer, der skal fastgøres i armene.
Fastgør en sekskantet træbund i bunden.
Under træbunden skal du fastgøre DC -motorer og hjul, som vi gør i en hvilken som helst line -follower -robot.
Interessant nok, tilføj to hjul på hjul- et på forsiden og et andet på bagsiden af robotten.
Trin 3: Ledningsføring og kodning
For at tilslutte de forskellige moduler henvises til koderne i denne del.
Først testede vi hvert modul ved hjælp af selvstændige koder, og derefter kombinerede vi dem alle i ét og kontrollerede bevægelsen af hjul og arme ved hjælp af et bluetooth -modul.
Trin 4: Hindbær Pi og billedgenkendelse
Billedgenkendelse udføres ved hjælp af et USB -kamera og Raspberry Pi.
Til det skal du installere OPEN CV -biblioteket på din Pi.
Du kan gøre det herfra-https://github.com/jabelone/OpenCV-for-Pi
Derefter skal du udføre billedgenkendelse ved hjælp af haar cascade.
Du kan gøre det herfra -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Efter at have studeret ovenstående link og fulgt det, har jeg foretaget nogle ændringer i den sidste kode, jeg har brugt, som jeg indsætter nedenfor -
DATASETGENERATOR:
importcv2
cam = cv2. VideoCapture (0)
detektor = cv2. CascadeClassifier ('Classifiers/face.xml')
jeg = 0
forskydning = 50
name = raw_input ('indtast dit id')
mens det er sandt:
ret, im = cam.read ()
grå = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
ansigter = detektor.detectMultiScale (grå, scaleFactor = 1,2, minNeighbors = 5, minSize = (100, 100), flag = cv2. CASCADE_SCALE_IMAGE)
for (x, y, w, h) i ansigter:
i = i+1
cv2.imwrite ("dataSet/face."+name+'.'+str (i)+".jpg", grå [y-offset: y+h+offset, x-offset: x+w+offset])
cv2.rektangel (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])
hvis cv2.waitKey (100) & 0xFF == ord ('q'):
pause
# pause, hvis prøvetallet er mere end 20
elif (i> 20):
pause
cam.release ()
cv2.destroyAllWindows ()
Det vil oprette et datasæt af dine fotos, der skal bruges til godkendelse.
TRÆNER:
importcv2, os
import numpy som np
fra PIL import billede
anerkender = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Klassifikatorer/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (sti):
image_paths = [os.path.join (sti, f) for f i os.listdir (sti)]
# billeder indeholder ansigtsbilleder
billeder =
# labels indeholder den etiket, der er tildelt billedet
etiketter =
til image_path i image_paths:
# Læs billedet, og konverter til gråtoner
image_pil = Image.open (image_path).convert ('L')
# Konverter billedformatet til numpy array
image = np.array (image_pil, 'uint8')
# Få etiketten på billedet
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", "")))
#nbr = int (''. join (str (ord (c)) for c i nbr))
print nbr
# Find ansigtet i billedet
ansigter = faceCascade.detectMultiScale (billede)
# Hvis ansigtet registreres, skal ansigtet føjes til billeder og etiketten til etiketter
for (x, y, w, h) i ansigter:
images.append (billede [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Tilføjelse af ansigter til traningsæt …", billede [y: y + h, x: x + w])
cv2.waitKey (10)
# returner billedlisten og etikettelisten
returnere billeder, etiketter
billeder, etiketter = get_images_and_labels (sti)
cv2.imshow ('test', billeder [0])
cv2.waitKey (1)
anerkender.træning (billeder, np.array (etiketter))
anerkender.save ('trainer/trainer.yml')
cv2.destroyAllWindows ()
DETEKTOR
importcv2
import numpy som np
import os
c = 0
anerkender = cv2.face.createLBPHFaceRecognizer ()
anerkender.load ('trainer/trainer.yml')
cascadePath = "Klassifikatorer/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
skrifttype = 1
skrifttypefarve = (255, 255, 255)
mens det er sandt:
ret, im = cam.read ()
grå = cv2.cvtColor (im, cv2. COLOR_BGR2GRAY)
ansigter = faceCascade.detectMultiScale (grå, 1,2, 5)
for (x, y, w, h) i ansigter:
cv2.rektangel (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = anerkender. Forudsigelse (grå [y: y+h, x: x+w])
hvis (Id <70):
hvis (Id == 1):
Id = "Shashank"
elif (Id == 2):
hvis (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak 'Welcome Shivam Access Granted'")
andet:
Id = "Shivam"
andet:
Id = "Ukendt"
cv2.putText (im, str (Id), (x, y+h), skrifttype, skrifttype, skrifttype
cv2.imshow ('im', im)
hvis cv2.waitKey (10) & 0xFF == ord ('q'):
pause
cam.release ()
cv2.destroyAllWindows ()
Trin 5: LCD og højttaler
Jeg har også brugt et I2C LED Display og en højttaler.
LED'en styres via Arduino Mega, og dens kode er angivet i den endelige kode.
For højttaler er den forbundet med Raspberry Pi og bruger eSpeak Utility.
Du kan finde dens reference her-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Trin 6: Sidste trin
Saml alt og gør dig klar til braget.
Anbefalede:
DIY -- Sådan laver du en edderkoprobot, der kan kontrolleres ved hjælp af smartphone ved hjælp af Arduino Uno: 6 trin
DIY || Sådan laver du en edderkoprobot, der kan styres ved hjælp af smartphone Brug af Arduino Uno: Mens du laver en edderkoprobot, kan man lære så mange ting om robotik. Ligesom at lave robotter er underholdende såvel som udfordrende. I denne video vil vi vise dig, hvordan du laver en Spider -robot, som vi kan betjene ved hjælp af vores smartphone (Androi
Sådan laver du et grundlæggende websted ved hjælp af Notesblok: 4 trin
Sådan laver du et grundlæggende websted ved hjælp af notesblok: Er der nogen, der har spekuleret i "hvordan laver jeg et websted ud af et grundlæggende skriveprogram?" Nå, selvfølgelig, ikke specifikt … Anyway, her viser jeg dig, hvordan du laver en BASIC websted, der kun bruger notesblok
Grundlæggende mobiltelefon ved hjælp af STM32F407 Discovery Kit og GSM A6 -modul: 14 trin (med billeder)
Grundlæggende mobiltelefon ved hjælp af STM32F407 Discovery Kit og GSM A6 -modul: Har du nogensinde ønsket at oprette et fedt integreret projekt ?. Hvis ja, hvad med at bygge en af de mest populære og alles yndlings gadget, dvs. mobiltelefon !!!. I denne Instructable vil jeg guide dig til, hvordan du bygger en grundlæggende mobiltelefon ved hjælp af STM
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter - Rc Helikopter - Rc -fly ved hjælp af Arduino: 5 trin (med billeder)
Trådløs fjernbetjening ved hjælp af 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sender modtager til Quadcopter | Rc Helikopter | Rc -fly ved hjælp af Arduino: At betjene en Rc -bil | Quadcopter | Drone | RC -fly | RC -båd, vi har altid brug for en modtager og sender, antag at vi til RC QUADCOPTER har brug for en 6 -kanals sender og modtager, og den type TX og RX er for dyr, så vi laver en på vores
Grundlæggende stopur ved hjælp af VHDL og Basys3 Board: 9 trin
Grundlæggende stopur ved hjælp af VHDL og Basys3 Board: Velkommen til instruktionsbogen om, hvordan man bygger et stopur ved hjælp af grundlæggende VHDL og Basys 3 board. Vi glæder os til at dele vores projekt med dig! Dette var et afsluttende projekt for kursus CPE 133 (Digital Design) på Cal Poly, SLO i efteråret 2016. Projektet vi byggede