Мазмуну:
- 1 -кадам: материалдар
- 2 -кадам: OpenCV жана C ++ орнотуу жана конфигурациялоо
- 3 -кадам: Arduino орнотуу
- 4 -кадам: C ++ коду
- 5 -кадам: Arduino коду
- 6 -кадам: 3D басып чыгаруу жана басып чыгарууну тактоо
- 7 -кадам: кутуну куруу
- 8 -кадам: Аяктоо
- 9 -кадам: Программаны баштаңыз
Video: Xbox Controller тарабынан жүздү көзөмөлдөө жана көзөмөлдөө менен кайыр суроочу робот - Arduino: 9 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Биз кайыр суроочу роботту жасайбыз. Бул робот кыжырдантууга же өтүп бараткан адамдардын көңүлүн бурууга аракет кылат. Бул алардын жүздөрүн аныктап, аларга лазер менен атууга аракет кылат. Эгер роботко тыйын берсеңиз, ал ыр ырдайт жана бийлейт. OpenCVди иштетүү үчүн роботко ардуино, камеранын түз берүүсү жана компьютер керек болот. Робот, эгерде ЖКга туташса, xBox контроллери тарабынан башкарыла алат.
1 -кадам: материалдар
Электрондук жабдуу
- Arduino NANO же UNO
- USB 2.0 камерасы
- Өткөргүч кабелдер (эркек жана аял)
- 2 х Servo - Generic (Sub -Micro Size)
- 2 х LED - RGB CATHODE 5мм
- 2 x 5 мВт лазер
- 1 х Кызыл LED 5мм
- 1 х нан тактасы
- 4 x 220Ω каршылыгы
- 1 x 1KΩ каршылыгы
- 1 x protoboard
- 1 x Sonar сенсор 4 казык
- Xbox контроллери
Аппараттык аналог
- Жыгач куту (15 x 15 x 7 см)
- Желим
- Электр лента
Программалык камсыздоо
- Arduino IDE
- Визуалдык студия 2017
- 3Ds Max (же башка 3d моделдөөчү программа)
- 2.14.0 же андан кийинки версиясы
- OpenCV 3.4.0 же андан кийинкиси
Куралдар
- Лайнер жабдуулары
- Көрүп, бургулап
- Зым кескич
2 -кадам: OpenCV жана C ++ орнотуу жана конфигурациялоо
2.1 -кадам: Программаны алуу
Visual studio 2017: Visual studio Comunity 2017openCV 3.4.0 Win пакетин жүктөп алыңыз: Расмий жүктөө барагына өтүңүз
2.2 -кадам: OpenCV2.2.1 орнотуу: ZIP файлын Windows (: C) драйвыңызга чыгарыңыз.2.2.2: Өркүндөтүлгөн тутум жөндөөлөрүңүзгө өтүңүз. Бул win10 издөө функциясынан табууга болот.2.2.3: Биз жаңы Экологиялык өзгөрмөлөрдү орнотушубуз керек. "Path" экологиясын табыңыз жана edit.2.2.4 прессин басыңыз: Эми биз "бин картасынын" жайгашкан жерин Path чөйрөсүндөгү жаңы өзгөрмөгө кошушубуз керек. Эгерде сиз C дискте openCV орноткон болсоңуз, анда жол мындай болушу мүмкүн: C: / opencv / build / x64 / vc14 / bin Жолду чаптаңыз жана бул процессте ачылган бардык терезелерде "OK" баскычын басыңыз.
2.3 -кадам: C ++ визуалдык студиясын конфигурациялоо 2.3.1: Жаңы визуалдык C ++ долбоорун жасаңыз. Аны бош win32 Console Application Project.2.3.2 кылыңыз: Булак файлдары өтмөгүндө, оң баскычын чыкылдатып, жаңы C ++ файлын кошуңуз (.cpp) жана ага "main.cpp" деп ат бериңиз. Чечим изилдөөчүсүнүн атын тандап, Properties.2.3.4 тандаңыз: Биз кошумча Директорияларды кошушубуз керек. Бул C/C ++ өтмөгүнөн тапса болот. Төмөнкү жолду көчүрүңүз: C: / opencv / build / include жана "AID" артына чаптап, Apply.2.3.5 чыкылдатыңыз: Ошол эле терезеде бизге керек "Linker" өтмөгүн тандоо. жалпысынан, биз башка Кошумча Либералдык Директорияларды түзүшүбүз керек. Төмөнкү жолду "AID" C: / opencv / build / x64 / vc14 / lib артына чаптаңыз жана дагы колдонууну басыңыз.2.3.6: Ошол эле Linker өтмөгүнүн астынан "Input" өтмөгүн тандаңыз. Жана "Кошумча көз карандылыктар> түзөтүү" баскычын басып, төмөнкү файлды opencv_world320d.lib жана xinput.lib (контролер үчүн) чаптап, кайра колдонууну басыңыз. Эми C ++ файлыңыз иштөөгө даяр.
3 -кадам: Arduino орнотуу
Серволор менен жолугушуу: Серволор ~ 160 ° айланууга жөндөмдүү, алар кадимкидей иштеши үчүн 4, 8 жана 6, 0 Вольттун ортосунда болушу керек. кадоо. Биздин долбоор үчүн биз DigitalPin 9 жана 10 сервосуна маалымат төөнөгүчтөрүн орнотобуз.
RGB светодиоддору менен жолугушуу: RGB леддеринде 4 казык бар. Кызыл, жашыл, көк жана жерге төөнөгүч. Ардуинодо боштукту сактап калуу үчүн, биз 2 RGB ледин бириктире алабыз. Ошентип, биз 3 пинди гана колдонобуз. Биз RGB светодиоддорун сүрөттөгүдөй протобордго туташтырып жана ширете алабыз. Red pin => DigitalPin 3 (PWM) Green pin => DigitalPin 4Blue pin => DigitalPin 7
Piezo ызылчасы менен жолугушуу: Биздин кичинекей робот кандайдыр бир ызы -чуу чыгарат. Бул үчүн ага үн беришибиз керек! Биз аны чындап үн чыгарууну тандай алабыз. Же биз пьезо сигналынын алдында бир аз ылдыйыраак кылуу үчүн 220Ω каршылыкты койсок болот. Биз Piezo ызылчасын нан тактасына калтырып жатабыз. Ошентип, ширетүүнүн кажети жок. Биз маалымат пинин (+) DigitalPin 2ге жана жерге төөнөгүчтү панельге жерге туташтырабыз.
Сонар менен жолугушуу: Роботту 10 метр алыстыктагы адамды көздөп калбоо үчүн. Биз роботко адамдарга карай багытталган аралыкты бере алабыз. Биз муну sonar сенсорунун жардамы менен жасайбыз. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => жер
Тыйын детектору менен жолугушуу: Биз тыйын детекторун жасамакчыбыз. Тыйын детектору схеманын жабылганын же үзүлгөнүн аныктоо менен иштейт. Бул дээрлик которгуч сыяктуу иштейт. Бирок биз этият болушубуз керек. Эгерде биз муну туура эмес кылсак, анда бизге arduino кымбатка турат. Биринчиден: AnalogPin A0ду 5 вольт кабелине туташтырыңыз. Бирок анын ортосуна 1KΩ каршылыгын коюуну унутпаңыз. Экинчи: жерге зым туташтырыңыз. Биз дароо эле зымдарды жана резисторду RGB leds. Now менен бирдей протоберге кошо алабыз, эгерде биз 2 зымдын артына тийип койсок, ардуино жабык схеманы аныктайт. Бул тыйын бар экенин билдирет! Doom lazer менен жолугушуу. Роботко бул курал керек! Бир аз мейкиндикти үнөмдөө үчүн, мен 2 лазерди чогуу чаптадым. Алар камеранын алкагына эң сонун туура келет. Аларды DigitalPin 11ге жана жерге туташтырыңыз.
Кошумча gimmick. We биз кызыл лоттун астына кое алабыз. Бул караңгы болгондо кызыктуу кичинекей оюн болот. DigitalPin 8ге зым туташтырып, жарылып кетпеши үчүн, LED менен зымдын ортосуна 220Ω каршылыгын коюңуз. LEDдин кыска пинин жерге туташтырыңыз.
4 -кадам: C ++ коду
4.1 -кадам: main.cpp кодун орнотуу4.1.1: "main.cpp" жүктөп алып, кодду өз main.cpp.4.1.2ге көчүрүү: 14 -сапта "com" дегенди arduino колдонгон комго алмаштырыңыз. "\. / COM (муну өзгөртүү)" 4.1.3: 21 жана 22 -саптарда "haarcascade_frontalface_alt.xml" жана "haarcascade_eye_tree_eyeglasses.xml" файлдарынын туура жолун белгилеңиз, эгерде C дискте openCV орнотулган болсо, бул файлдар бул жерде жайгашышы мүмкүн: "C: / opencv / build / etc / haarcascades \" Кош арткы сызыктарды сактаңыз же бирөө бар жерде кошуңуз.
4.2 -кадам: tserial.h жана Tserial.cpp кошуу Бул 2 файл arduino менен PC.4.2.1 ортосундагы байланышка кам көрөт. каталог. Чечим изилдөөчүдө долбоорду оң баскыч менен чыкылдатып, кошуу> болгон нерсени тандаңыз. Калкыма терезеде кошула турган эки файлды тандаңыз.
4.2-кадам: CXBOXController.h жана CXBOXController.h кошуңуз. Бул файлдар долбоордун контролерун алат. Калкып чыгуучу терезеде кошула турган эки файлды тандаңыз. C ++ файлдары орнотулууда.
5 -кадам: Arduino коду
5.1 -кадам: NewPing китепканасы5.1.1: ArduinoCode.ino'yu жүктөп алып, аны arduino IDE.5.1.2де ачыңыз: "Эскиз> Китепкана кошуу> Китепканаларды башкаруу" бөлүмүнө өтүңүз. жана бул китепкананы орнотуңуз.
5.2 -кадам: Китепкана китепканасы5.2.1: pitches.txtти жүктөп, pitches.txt мазмунун көчүрүү pitches.txt файлын жаңы өтмөккө киргизип, "pitches.h" катары сактаңыз. Arduino коду орнотулду
6 -кадам: 3D басып чыгаруу жана басып чыгарууну тактоо
6.1 -кадам: 3D файлын басып чыгаруу printfile.form ачып, баары жакшы экенин текшериңиз. Эгерде баары ойдогудай болсо, printjobду принтерге жөнөтүңүз. Сиз түзөтө турган 3Ds Max файлдарын жана OBJ файлдарын коштум.
6.2-кадам: Модельди өркүндөтүү6.2.1: Басып чыгаргандан кийин, 2 моделди 70% спиртке чылап, ар кандай басып чыгарууну алып салыңыз. моделин катуулатуу. Же моделди катуулатуу үчүн UV-лампаны колдонсоңуз болот. Бул жасалышы керек, анткени модель жабышчаак болот.
6.2.3: Колдоо алкагын алып салуу. Бул зым кескич менен жасалышы мүмкүн. Же пластмассаны кесе турган башка курал.6.2.4: 3D басып чыгаруунун кээ бир бөлүктөрү дагы эле жумшак болушу мүмкүн. Модель UV-light. The бөлүктөрүндө көп болгон күндө да, жумшак болушу мүмкүн болгон бөлүктөр, колдоо алкактарына жакын жерде. Моделди катуулатуу үчүн ультрафиолет нуруна көбүрөөк коюңуз. Серволорду кадрга салууга аракет кылсаңыз болот. Эгерде алар туура келбесе, анда сиз Dremelди колдонуп, материалды кум менен тазалаңыз. ылайыктуу кылуу.
7 -кадам: кутуну куруу
7.1 -кадам: Тешиктерди жасоо Мен суроонун кутусунун планын коштум. Схема масштабга туура келбейт, бирок бардык өлчөмдөр туура.7.1.1: Бардык тешиктерди туура жерлерге белгилөө менен баштаңыз.7.1.2: Бардык тешиктерди бургулаңыз. Чоңураак тешиктер Dremel.7.1.3 менен өлчөмгө чейин жасалышы мүмкүн: Квадрат тешиктерди да бургулоого болот. Бирок аларды төрт бурчтуу кылуу үчүн сиз Dremelди кичинекей файлга салып, курч бурчтарды тартасаңыз болот.7.1.4: Бардык компоненттерди туура келтирүүгө аракет кылыңыз. 7.1.5: Жыгачтын сыныктарына көңүл буруңуз. Алардан арылуу үчүн кум кагазын колдонуңуз.
7.2 -кадам: Сүрөт7.2.1: Капкагын тегиздөө менен баштаңыз. Бизге боёк керек.7.2.2: Чүпүрөктү алып, кутучаны тазалоо үчүн ага бир аз скипидар кийгиз.7.2.3: Эми сиз кутуну каалаган түскө чачсаңыз болот.
8 -кадам: Аяктоо
Эми биз баарын ордуна коюшубуз керек жана 8.1.1 -кадам: Тыйын детектору8.1.1: Тыйын детекторунун кээ бир металл кронштейндерин жабыштыргыла..3: Байланышты тыйын менен текшериңиз. Эгерде жабык схема жок болсо, зымдарды четине чейин эриңиз. 8.2 -кадам: Protoboard жана RGB leds8.2.1: Протоборду жогорку оң бурчка коюп, аны скотч менен байлаңыз! 8.2.3: Бардык зымдарды протодон ардуиного туташтырыңыз. 8.3 -кадам: sonar сенсор8.3.1: сенсорду биз үчүн тешиктерге орнотуңуз 8.3.28.3.2: Кээ бир эркек жана ургаачы зымдарды экиге бөлүп, ургаачы менен эркек зымдарды бириктирип, сенсорду arduino менен туташтыруу үчүн колдоно турган бир кабель кылабыз.
8.4 -кадам: Лазерлер жана камера8.4.1: Камерага кичинекей кадрды чаптаңыз. Анын тик экенин текшериңиз.8.4.2: Лазерлерди кадрга да коюңуз. Душман уурдап кетпеши үчүн, аларды чаптаңыз!
8.5 -кадам: Серверлер жана 3D басып чыгаруу 8.5.1: Сервону капкактын тешигине жабыштыруу8.5.2: arduino файлын arduinoго жүктөө (бул сервопроводдорду туура абалда турат) 8.5.3: Серво менен кичинекей тегерек плато. Муну капкактын ичиндеги сервого коюңуз.8.5.4: Чоң 3D басып чыгарууну серво менен платого коюп, бурама менен тыгыз бурап коюңуз. 8.5.6: Камераны ордуна коюңуз, баары даяр!
9 -кадам: Программаны баштаңыз
Роботту иштетүү үчүн Visual студиясында C ++ файлын ачыңыз. "Мүчүлүштүктөрдү оңдоо режиминде" экениңизди текшериңиз arduino файлын arduinoго жүктөңүз. Бул жүктөлгөндөн кийин визуалдык студияда ойнотууну басыңыз. Ал эми робот дүйнөдөгү бардык тыйындарды атып, чогултат !!!
Сунушталууда:
Жашыруун бөлүм менен жүздү таануу күзгүсү: 15 кадам (сүрөттөр менен)
Беттин таануу күзгүсү жашыруун бөлүм менен: Мен дайыма окуяларда, кинолордо жана ушул сыяктуу нерселерде колдонулган дайыма жаратуучу жашыруун бөлүмдөргө кызыгып келем. Ошентип, мен жашыруун купе сынагын көргөндө, мен бул идеяны өзүм эксперимент кылууну чечтим жана жөнөкөй ачылуучу күзгү жасоону чечтим
Адам-компьютер интерфейси: EMG колдонуп, билек кыймылы тарабынан Gripper (Kirigami тарабынан жасалган) функциясы: 7 кадам
Адам-ЭЭМ Интерфейси: Function a Gripper (Kirigami тарабынан жасалган) Билек Кыймылы EMGди колдонуп: Ошентип, бул менин компьютер-интерфейсиндеги биринчи аракетим болду. python жана arduino аркылуу жана оригами негизделген кармагычты иштетти
Bluetooth LE жана RaspberryPi менен температураны көзөмөлдөө жана жаздыруу: 9 кадам (сүрөттөр менен)
Bluetooth LE жана RaspberryPi менен температураны көзөмөлдөп жана жаздырыңыз: Бул көрсөтмө Blue Lios (BLEHome) жана RaspberryPi 3B Bluetooth LE сенсорунун катасы менен көп түйүндүү температураны көзөмөлдөө тутумун кантип чогултуу жөнүндө. Bluetooth LE стандартынын өнүгүшүнө рахмат. азыр жеткиликтүү
Муздаткычта Raspberry Pi менен жүздү таануунун коопсуздук тутуму: 7 кадам (сүрөттөр менен)
Муздаткычтын Raspberry Pi менен коопсуздук системасы: Интернетте серептөө Мен коопсуздук тутумдарынын баасы 150 доллардан 600 долларга чейин өзгөрөөрүн байкадым, бирок чечимдердин баарын (атүгүл абдан кымбат тургандарын) башка системалар менен бириктирүүгө болбойт. акылдуу куралдар сиздин үйдө! Мисалы, сиз орното албайсыз
Raspberry Pi Zero жана Opencv менен жүздү жана көздү аныктоо: 3 кадам
Raspberry Pi Zero жана Opencv менен жүздү жана көздү аныктоо: Бул көрсөтмөдө мен малина pi жана opencvдин жардамы менен жүздү жана көздү кантип аныктоого болорун көрсөтөм. Бул менин opencv боюнча биринчи көрсөтмөм. Мен малинада ачык резюме орнотуу үчүн көптөгөн окуу куралдарын ээрчип жүрдүм, бирок ар бир жолу кээ бир каталар менен уруп жаттым. Эмнеси болсо да мен