Мазмуну:
- 1 -кадам: Компоненттер керек
- 2 -кадам: Дененин түзүлүшү
- 3 -кадам: Кабелдөө жана коддоо
- 4 -кадам: Raspberry Pi жана Image Recognition
- 5 -кадам: ЖК жана Динамик
- 6 -кадам: Акыркы кадамдар
Video: NAIN 1.0 - Arduino колдонуучу негизги гуманоид робот: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Nain 1.0 негизинен 5 ажыратылуучу модулга ээ болот-
1) Кол - сервоприёмниктер аркылуу башкарууга болот.
2) Дөңгөлөктөр - буларды туруктуу кыймылдаткычтар менен башкарса болот.
3) Бут - Наин кыймыл үчүн дөңгөлөктөрдү же буттарды алмаштыра алат.
4) Баш - Анын башын ар кандай баш ийкөө үчүн башкарса болот.
5) Камера модулу- бул жүздү таануу мүмкүнчүлүгүнө кире алат.
Бул менен бирге NAIN колдонуучулар менен сүйлөшө алат жана өз ара аракеттене алат жана сизге анын курулган сааты менен убакытты көрсөтө алат. Бул Wi-Fi /Bluetooth аркылуу зымсыз башкарууга ээ болот.
1 -кадам: Компоненттер керек
- Servo Motors -4
- Ардуино Мега - 1
- Raspberry Pi - 1
- Usb Камера -1
- Баяндамачы -1
- DC Motors -2
- L293D -1
- Батарея пакети - 1
- Дөңгөлөктөр -2
- Кастор дөңгөлөктөрү - 2
Муну менен бирге денени жасоо үчүн алюминийдин төрт бурчтуу тилкелери жана аларга туура келиши үчүн буроо жана гайкалар керек болот.
2 -кадам: Дененин түзүлүшү
Дененин түзүлүшү жеңил алюминийден жасалган төрт бурчтуу таякчалардан жасалат, бул аны оңой чогултууга жардам берет.
Азырынча аларды сүрөттө көрсөтүлгөндөй чогултуп, ошондой эле серво моторлорунун колго тагылышы үчүн ылайыктуу жерлерди кесип алыңыз.
Түбүнө алты бурчтуу жыгач базаны тиркеңиз.
Жыгач базанын астына, биз каалаган роботту ээрчигендей, DC моторлорун жана дөңгөлөктөрдү тиркеп коюңуз.
Кызыгы, эки кастор дөңгөлөгүн кошуңуз- бири роботтун алдыңкы, экинчиси.
3 -кадам: Кабелдөө жана коддоо
Ар кандай модулдарды туташтыруу үчүн бул бөлүктө тиркелген коддорго кайрылыңыз.
Биринчиден, биз ар бир модулду өз алдынча коддор менен сынап көрдүк, андан кийин алардын бардыгын бириктирдик жана bluetooth модулу аркылуу дөңгөлөктөр менен куралдардын кыймылын көзөмөлдөп турдук.
4 -кадам: Raspberry Pi жана Image Recognition
Сүрөттү таануу USB камерасы жана Raspberry Pi аркылуу жүзөгө ашырылат.
Ал үчүн сиз Пиңизге АЧЫК резюме китепканасын орнотушуңуз керек болот.
Сиз муну бул жерден кыла аласыз-https://github.com/jabelone/OpenCV-for-Pi
Андан кийин сиз haar каскады аркылуу сүрөт таанууну аткарышыңыз керек болот.
Сиз муну бул жерден жасай аласыз -https://thecodacus.com/category/opencv/#. WvsNC4iFPDc
Жогорудагы шилтемени изилдеп чыккандан кийин, мен акыркы кодго кээ бир өзгөртүүлөрдү киргиздим, мен төмөндө чаптап жатам -
DATASET ГЕНЕРАТОРУ:
importcv2
cam = cv2. VideoCapture (0)
детектор = cv2. CascadeClassifier ('Классификаторлор/face.xml')
i = 0
ордун басуу = 50
аты = raw_input ('id'иңизди киргизиңиз')
чын болсо:
ret, im = cam.read ()
боз = cv2.cvtColor (им, cv2. COLOR_BGR2GRAY)
жүздөр = detector.detectMultiScale (боз, масштабдуу фактор = 1.2, мини кошуналар = 5, minSize = (100, 100), желектер = cv2. CASCADE_SCALE_IMAGE)
(x, y, w, h) үчүн жүздөрдө:
i = i+1
cv2.imwrite ("dataSet/face."+name+'.'+str (i)+".jpg", grey [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'):
тыныгуу
үлгү саны 20дан көп болсо # тыныгуу
элиф (i> 20):
тыныгуу
cam.release ()
cv2.destroyAllWindows ()
Бул аутентификация үчүн колдонула турган сүрөттөрүңүздүн маалыматын түзөт.
ТРЕНЕР:
importcv2, os
np катары numpy импорттоо
PIL импорттоо сүрөтүнөн
таануучу = cv2.face.createLBPHFaceRecognizer ()
cascadePath = "Классификаторлор/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
path = 'dataSet'
def get_images_and_labels (жол):
image_paths = [os.path.join (path, f) for f in os.listdir (path)]
# сүрөттөрдө жүздүн сүрөттөрү камтылган
сүрөттөр =
# энбелгилерде сүрөткө дайындалган энбелги камтылган
энбелгилер =
image_paths ичинде image_path үчүн:
# Сүрөттү окуп, боз шкалага айлантыңыз
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)) in c in 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 (этикеткалар))
tanınүүчү.куткаруу ('тренер/тренер.yml')
cv2.destroyAllWindows ()
ДЕТЕКТОР
importcv2
np катары numpy импорттоо
импорт os
c = 0
таануучу = cv2.face.createLBPHFaceRecognizer ()
tanınүүчү.жүктөө ('trainer/trainer.yml')
cascadePath = "Классификаторлор/face.xml"
faceCascade = cv2. CascadeClassifier (cascadePath);
cam = cv2. VideoCapture (0)
fontface = cv2. FONT_HERSHEY_SIMPLEX
fontscale = 1
fontcolor = (255, 255, 255)
чын болсо:
ret, im = cam.read ()
боз = cv2.cvtColor (им, cv2. COLOR_BGR2GRAY)
жүздөр = 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"
элиф (Id == 2):
эгер (c == 0):
Id = "Шивам"
c = c+1
os.system ("espiak 'Welcome Shivam Access Granted")
башка:
Id = "Шивам"
башка:
Id = "Белгисиз"
cv2.putText (im, str (Id), (x, y+h), шрифт, фонт масштабы, шрифт түсү)
cv2.imshow ('im', im)
эгер cv2.waitKey (10) & 0xFF == ord ('q'):
тыныгуу
cam.release ()
cv2.destroyAllWindows ()
5 -кадам: ЖК жана Динамик
Мен дагы I2C LED дисплейин жана динамикти колдондум.
LED Arduino Mega аркылуу башкарылат жана анын коду акыркы коддо берилет.
Динамик үчүн ал Raspberry Pi менен байланышкан жана eSpeak Utility колдонот.
Сиз анын шилтемесин бул жерден таба аласыз-https://www.dexterindustries.com/howto/make-your-raspberry-pi-speak/
6 -кадам: Акыркы кадамдар
Баарын чогултуп, жарылууга даярдан.
Сунушталууда:
Ылайыктуу гуманоид роботун жасоо: 11 кадам
Ылайыктуу Гуманоид Роботун Жасоо: Жаңыртуу & Барак: 17.01.2021 Баш, бет, ж.б. - вебкамера кошулдуTendons & Булчуңдар - PTFE толуктоолоруNerv & Тери - өткөргүч резина жыйынтыктары " Сүрөттөгү бул эмне? &Quot; Бул робот дененин бир бөлүгү - тактап айтканда спи прототипи
Funbot - Негизги моторлоштурулган робот: 7 кадам
Funbot - Негизги моторлоштурулган робот: Саламатсыздарбы, бүгүн мен сизге FunBotту кантип куруу керектигин көрсөтөм - айланасында асылып, үлгүлөрдү тартып, айланып, дөңгөлөк ботко айлана ала турган супер жеңил моторлуу робот. Бул тетиктер, реле жана микро контроллерлер менен кеңейтилет, бирок бул күйгүзүлгөн
Сөөктөр гуманоид робот: 11 кадам (сүрөттөр менен)
СҮЙҮКТӨР Гуманоид Робот: Баарыңыздарды Хэллоуин майрамыңыздар менен !!! Бул жылдарды Хэллоуин майрамын белгилөө үчүн бул учурга ылайыктуу робот куруу эң сонун идея болмок деп ойлодум. Бийлеп жаткан адам скелети !!! Мен өзүмдүн гуманоид роботумду ойлоп тапкым келди, демек, бул
Кантип: 17 DOF гуманоид робот: 7 кадам (Сүрөттөр менен)
Кантип: 17 DOF гуманоид роботу: DIY робот комплекттерин чогултуу менин сүйүктүү хоббилеримдин бири. Сиз кичинекей полиэтилен баштыктарга салынган компоненттерге толгон кутудан баштайсыз жана монтаждалган структура жана бир нече запастык болттор менен аяктайт
ASPIR: Full-Size 3D-Басылган Гуманоид Робот: 80 Кадам (Сүрөттөр менен)
ASPIR: Толук өлчөмдөгү 3D-Басылган Гуманоид Робот: Автономдуу Колдоо жана Позитивдүү Илхам Роботу (ASPIR)-бул толук көлөмдүү, 4,3 фут ачык булакта 3D принти менен басылган гуманоид роботу, аны эч ким жетишерлик диск жана чечкиндүүлүк менен кура алат. Бул этаптуу 80 этаптуу инструкцияны 10 э-ге бөлдүм