Съдържание:
- Стъпка 1: Необходими компоненти
- Стъпка 2: Структура на тялото
- Стъпка 3: Окабеляване и кодиране
- Стъпка 4: Raspberry Pi и разпознаване на изображения
- Стъпка 5: LCD и високоговорител
- Стъпка 6: Последни стъпки
Видео: NAIN 1.0 - основният хуманоиден робот, използващ Arduino: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Nain 1.0 ще има основно 5 отделящи се модула-
1) Ръка - която може да се управлява чрез серво.
2) Колела - които могат да се управляват с DC двигатели.
3) Крак - Nain ще може да превключва между колела или крака за движение.
4) Глава - Нейната глава може да се контролира за различни кимания.
5) Камерен модул- който може да бъде свързан за достъп за разпознаване на лица.
Заедно с този NAIN ще може да говори и взаимодейства с потребителите и може да ви показва часа чрез вградения си часовник. Той ще има безжично управление чрез Wi-Fi /Bluetooth.
Стъпка 1: Необходими компоненти
- Серво мотори -4
- Arduino Mega - 1
- Малина Пи - 1
- USB камера -1
- Говорител -1
- DC двигатели -2
- L293D -1
- Батерия - 1
- Колела -2
- Ролетни колела - 2
Заедно с тях ще ви трябват алуминиеви квадратни ленти, за да направите тялото, и винтовете и гайките, за да ги поставите правилно.
Стъпка 2: Структура на тялото
Структурата на каросерията ще бъде направена от леки алуминиеви квадратни пръти, които ще помогнат за лесното й сглобяване.
Към момента ги сглобете, както е показано на фигурата, а също така изрежете подходящи пространства за закрепване на серво моторите в раменете.
Прикрепете шестоъгълна дървена основа в долната част.
Под дървената основа, прикрепете DC двигатели и колела, както правим във всеки робот за следване на линия.
Интересното е, че добавете две колела- едно отпред и друго отзад на робота.
Стъпка 3: Окабеляване и кодиране
За да свържете различни модули, вижте кодовете, приложени в тази част.
Първо тествахме всеки модул, използвайки самостоятелни кодове, след което ги комбинирахме в едно и контролирахме движението на колелата и оръжията с помощта на Bluetooth модул.
Стъпка 4: Raspberry Pi и разпознаване на изображения
Разпознаването на изображения се извършва с помощта на USB камера и Raspberry Pi.
За целта ще трябва да инсталирате библиотеката OPEN CV на вашия Pi.
Можете да направите това от тук-https://github.com/jabelone/OpenCV-for-Pi
След това ще трябва да извършите разпознаване на изображения с помощта на каскадна хаар.
Можете да направите това от тук -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
След като изучих горната връзка и след това направих някои промени в крайния код, който използвах, който поставям по -долу -
ГЕНЕРАТОР НА ДАННИ:
importcv2
cam = cv2. VideoCapture (0)
детектор = cv2. CascadeClassifier ('Класификатори/face.xml')
i = 0
отместване = 50
name = raw_input ('въведете вашия идентификатор')
докато е вярно:
ret, im = cam.read ()
сиво = cv2.cvtColor (im, cv2. COLOR_BGR2GREY)
лица = detector.detectMultiScale (сиво, scaleFactor = 1.2, minNeighbors = 5, minSize = (100, 100), флагове = cv2. CASCADE_SCALE_IMAGE)
за (x, y, w, h) в лица:
i = i+1
cv2.imwrite ("dataSet/face."+name+'.'+str (i)+".jpg", сиво [y-offset: y+h+offset, x-offset: x+w+offset])
cv2.rectangle (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])
ако cv2.waitKey (100) & 0xFF == ord ('q'):
прекъсване
# break, ако номерът на извадката е повече от 20
elif (i> 20):
прекъсване
cam.release ()
cv2.destroyAllWindows ()
Той ще създаде набор от вашите снимки, които ще се използват за удостоверяване.
ТРЕНЕР:
importcv2, os
внос numpy като np
от PIL импортиране на изображение
разпознавач = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Класификатори/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
пътека = 'набор от данни'
def get_images_and_labels (път):
image_paths = [os.path.join (path, f) for f in os.listdir (path)]
# изображения ще съдържат изображения на лица
изображения =
# етикета ще съдържа етикета, който е присвоен на изображението
етикети =
за image_path в image_paths:
# Прочетете изображението и го преобразувайте в скали на сивото
image_pil = Image.open (image_path).convert ('L')
# Конвертирайте формата на изображението в numpy масив
image = np.array (image_pil, 'uint8')
# Вземете етикета на изображението
nbr = int (os.path.split (image_path) [-1].split (".") [1].replace ("face-", ""))
#nbr = int (''. join (str (ord (c)) за c в nbr))
отпечатайте nbr
# Открийте лицето в изображението
фасони = faceCascade.detectMultiScale (изображение)
# Ако се открие лице, добавете лицето към изображенията, а етикета към етикетите
за (x, y, w, h) в лица:
images.append (изображение [y: y + h, x: x + w])
labels.append (nbr)
cv2.imshow ("Добавяне на лица към набор за обучение …", изображение [y: y + h, x: x + w])
cv2.waitKey (10)
# връща списъка с изображения и списъка с етикети
връщане на изображения, етикети
изображения, етикети = get_images_and_labels (път)
cv2.imshow ('тест', изображения [0])
cv2.waitKey (1)
разпознаващ.влак (изображения, np.array (етикети))
Reconizer.save ('trainer/trainer.yml')
cv2.destroyAllWindows ()
ДЕТЕКТОР
importcv2
внос numpy като np
внос os
c = 0
разпознавач = cv2.face.createLBPHFaceRecognizer ()
Reconizer.load ('trainer/trainer.yml')
cascadePath = "Класификатори/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
шрифт = 1
fontcolor = (255, 255, 255)
докато е вярно:
ret, im = cam.read ()
сиво = cv2.cvtColor (im, cv2. COLOR_BGR2GREY)
фасони = faceCascade.detectMultiScale (сиво, 1.2, 5)
за (x, y, w, h) в лица:
cv2.rectangle (im, (x-50, y-50), (x+w+50, y+h+50), (225, 0, 0), 2)
Id = разпознаващ.предсказване (сив [y: y+h, x: x+w])
ако (Id <70):
ако (Id == 1):
Id = "Shashank"
elif (Id == 2):
ако (c == 0):
Id = "Shivam"
c = c+1
os.system ("espeak" Добре дошли Shivam достъп е предоставен "")
иначе:
Id = "Shivam"
иначе:
Id = "Неизвестно"
cv2.putText (im, str (Id), (x, y+h), шрифт, шрифт, цвят на шрифта)
cv2.imshow ('im', im)
ако cv2.waitKey (10) & 0xFF == ord ('q'):
прекъсване
cam.release ()
cv2.destroyAllWindows ()
Стъпка 5: LCD и високоговорител
Използвал съм и I2C LED дисплей и високоговорител.
Светодиодът се управлява чрез Arduino Mega и неговият код е даден в крайния код.
За Speaker той е свързан с Raspberry Pi и използва помощната програма eSpeak.
Можете да намерите неговата справка тук-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
Стъпка 6: Последни стъпки
Съберете всичко и се пригответе за взрива.
Препоръчано:
Създаване на съвместим хуманоиден робот: 11 стъпки
Създаване на съвместим хуманоиден робот: Актуализиране & Страница: 17.1.2021 Глава, Лице и т.н. - добавена уеб камераTendons & Мускули - добавки с PTFE Нерви & Кожа - резултатите от проводящата гума "Какво е това нещо на снимката?" Това е част от роботизирано тяло - по -специално прототип spi
Как да си направим хуманоиден робот: 8 стъпки
Как да си направим хуманоиден робот: Хей момчета! Надявам се, че вече сте се насладили на предишните ми инструкции " Онлайн метеорологична станция (NodeMCU) " и вие сте готови за нов, след като моделът робот SMARS, който сглобихме миналия път, днешният проект, също е за учене на роботи и
Otto DIY Хуманоиден робот: 7 стъпки (със снимки)
Otto DIY Хуманоиден робот: Ото двуногият робот вече има ръце, които да приличат на „човек“и LED матрица за изразяване на емоции. 3D отпечатайте сами и след това съберете частите, които да изградите сами.Otto е наистина Opensource; това означава, че хардуерът лесно се разпознава, така че
MIA-1 Разширен ръчно изработен хуманоиден робот с отворен код!: 4 стъпки
MIA-1 Advanced Hand made Humanoid Robot!: Здравейте на всички, днес ще покажа как направих робота MIA-1, който е не само усъвършенстван и уникален, но и с отворен код и може да бъде направен без 3D печат !! Да, разбрахте, този робот е изцяло ръчно изработен. А с отворен код означава - получавате
Хуманоиден робот, базиран на Arduino, използващ серво мотори: 7 стъпки (със снимки)
Хуманоиден робот на базата на Arduino, използващ серво мотори: Здравейте всички, Това е първият ми хуманоиден робот, изработен от PVC пяна. Предлага се в различни дебелини. Тук използвах 0,5 мм. В момента този робот може просто да ходи, когато включих. Сега работя по свързването на Arduino и Mobile чрез Bluetooth