Mündəricat:

Xbox Controller tərəfindən Üz İzləmə və İdarəetmə ilə Yalançı Robot - Arduino: 9 Addım (Şəkillərlə)
Xbox Controller tərəfindən Üz İzləmə və İdarəetmə ilə Yalançı Robot - Arduino: 9 Addım (Şəkillərlə)

Video: Xbox Controller tərəfindən Üz İzləmə və İdarəetmə ilə Yalançı Robot - Arduino: 9 Addım (Şəkillərlə)

Video: Xbox Controller tərəfindən Üz İzləmə və İdarəetmə ilə Yalançı Robot - Arduino: 9 Addım (Şəkillərlə)
Video: REAL RACING 3 LEAD FOOT EDITION 2024, Noyabr
Anonim
Image
Image
OpenCV və C ++ qurmaq və konfiqurasiya etmək
OpenCV və C ++ qurmaq və konfiqurasiya etmək

Dilənçi bir robot hazırlayacağıq. Bu robot yoldan keçən insanları qıcıqlandırmağa və ya diqqəti cəlb etməyə çalışacaq. Üzlərini aşkar edəcək və onlara lazer vurmağa çalışacaq. Robota bir sikkə versəniz, o mahnı oxuyacaq və rəqs edəcək. Açıq CV -ni işə salmaq üçün robotun arduino, canlı kamera və kompüterə ehtiyacı olacaq. Robot PC -yə qoşulduqda xBox nəzarətçi tərəfindən də idarə oluna biləcək.

Addım 1: Materiallar

Elektron Avadanlıq

  • Arduino NANO və ya UNO
  • USB 2.0 Kamera
  • Jumper kabelləri (kişi və qadın)
  • 2 x Servo - Ümumi (Sub -Mikro Ölçü)
  • 2 x LED - RGB KATOD 5 mm
  • 2 x 5 mW lazerlər
  • 1 x Qırmızı LED 5 mm
  • 1 x Çörək paneli
  • 4 x 220Ω müqavimət
  • 1 x 1KΩ rezistor
  • 1 x protoboard
  • 1 x Sonar sensoru 4 sancaq
  • Xbox nəzarətçisi

Avadanlıq analoqu

  • Taxta qutu (15 x 15 x 7 sm)
  • Yapışqan
  • Elektrik lenti

Proqram təminatı

  • Arduino IDE
  • Vizual studiya 2017
  • 3Ds Max (və ya hər hansı digər 3d modelləşdirmə proqramı)
  • Preform 2.14.0 və ya daha sonra
  • OpenCV 3.4.0 və ya daha sonra

Alətlər

  • Lehim avadanlığı
  • Gördü və qazdı
  • Tel kəsici

Addım 2: OpenCV və C ++ qurmaq və konfiqurasiya etmək

OpenCV və C ++ qurmaq və konfiqurasiya etmək
OpenCV və C ++ qurmaq və konfiqurasiya etmək

Addım 2.1: Proqramı əldə edin

Visual studio 2017: Visual studio Comunity 2017openCV 3.4.0 Win paketini yükləyin: Rəsmi yükləmə səhifəsinə keçin

Addım 2.2: OpenCV2.2.1 -in quraşdırılması: Zip faylını Windows (: C) sürücünüzə çıxarın.2.2.2: Qabaqcıl sistem parametrlərinizə gedin. Bunu win10 axtarış funksiyanızda tapa bilərsiniz.2.2.3: Yeni Ətraf mühit dəyişənləri qurmalıyıq. "Yol" ətraf mühitini tapın və redaktə edin.2.2.4: İndi "bin xəritəsi" nin yerini Path mühitində yeni bir dəyişənə əlavə etməliyik. C sürücünüzə openCV yükləsəniz, yol belə gedə bilər: C: / opencv / build / x64 / vc14 / bin Yolu yapışdırın və bu proses zamanı açmış ola biləcəyiniz bütün pəncərələrdə "OK" düyməsini basın.

Addım 2.3: C ++ vizual studiyasını konfiqurasiya etmək 2.3.1: Yeni bir vizual C ++ layihəsi hazırlayın. Bunu boş bir win32 Konsol Tətbiqi layihəsi halına gətirin.2.3.2: Mənbə faylları sekmesinde sağ klikləyin və yeni bir C ++ faylını (.cpp) əlavə edin və "main.cpp" adlandırın. 2.3.3: Layihəni sağ vurun. Solution explorer -də adını seçin və Properties seçin.2.3.4: Əlavə bir Dizinlər əlavə etməliyik. Bu, ümumiyyətlə C/C ++ sekmesinde tapıla bilər. Aşağıdakı yolu kopyalayın: C: / opencv / build / include və "AID" in arxasına yapışdırın və Apply düyməsini basın.2.3.5: Eyni pəncərədə "Bağlayıcı" sekmesini seçin. Ümumiyyətlə, başqa bir əlavə kitabxana direktorluğu yaratmalıyıq. Aşağıdakı yolu "AID" C: / opencv / build / x64 / vc14 / lib arxasına yapışdırın və yenidən tətbiq et düyməsini basın.2.3.6: Eyni Bağlayıcı sekmesinin altında "Giriş" sekmesini seçin. Və "Əlavə Əlaqələr> redaktə et" düyməsini basın və aşağıdakı faylı opencv_world320d.lib və xinput.lib (Nəzarətçi üçün) yapışdırın və yenidən tətbiq düyməsini basın. Pəncərəni bağlayın İndi C ++ faylınız işləməyə hazırdır.

Addım 3: Arduino qurmaq

Arduino qurmaq
Arduino qurmaq
Arduino qurmaq
Arduino qurmaq
Arduino qurmaq
Arduino qurmaq
Arduino qurmaq
Arduino qurmaq

Servoların qarşılanması: Servoların ~ 160 ° dönmə qabiliyyətinə malikdirlər Normal işləmələri üçün 4, 8 və 6, 0 Volt arasında olmalıdırlar. Servoda 3 sancaq var: torpaq, 4, 8 - 6, 0 volt pin və məlumat pin. Layihəmiz üçün DigitalPin 9 və 10 üzərindəki servolar üçün məlumat pinlərini təyin edəcəyik.

RGB ledləri ilə tanışlıq: RGB ledlərində 4 pin var: qırmızı, yaşıl, mavi və yer pin. Arduino -da yerdən qənaət etmək üçün 2 RGB LED -i birləşdirə bilərik. Beləliklə, yalnız 3 sancaqdan istifadə edəcəyik. RGB pinlərini şəkildəki kimi bir protoboardda bağlaya və lehimləyə bilərik. Qırmızı pin => DigitalPin 3 (PWM) Yaşıl pin => DigitalPin 4 Mavi pin => DigitalPin 7

Piezo buzzer ilə tanışlıq: Kiçik robotumuz səs -küy salacaq. Bunu etmək üçün ona səs verməliyik! Onu həqiqətən yüksək səslə seçməyi seçə bilərik. Ya da onu bir az daha pis etmək üçün piezo səs siqnalının önünə 220Ω rezistor qoya bilərik. Piezo buzzerini çörək taxtasında buraxırıq. Məlumat pinini (+) DigitalPin 2 -yə və torpaq pinini çörək lövhəsində yerə bağlayırıq.

Sonarla tanışlıq: Robotun 10 metr uzaqlıqdakı insanı nişan almasına mane olmaq üçün. Robota insanları nişan ala biləcəyi bir məsafə verə bilərik. Bunu sonar sensoru ilə edirik. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => torpaq

Sikkə detektoru ilə görüş: Bir sikkə detektoru hazırlayacağıq. Sikkə detektoru, dövrənin qapalı və ya pozulduğunu aşkarlayaraq işləyəcək. Demək olar ki, bir keçid kimi işləyəcək. Amma diqqətli olmalıyıq. Bunu səhv etsək, bizə bir arduino başa gələcək. Birincisi: AnalogPin A0 -ı 5 voltlu bir kabelə qoşun. Ancaq arasına 1KΩ rezistor qoyduğunuzdan əmin olun. İkincisi: Bir teli yerə bağlayın. Kabelləri və rezistoru dərhal RGB ledləri ilə eyni protoboya taxa bilərik. İndi 2 teldən bir -birinə toxunsaq arduino qapalı bir dövrə algılar. Bu, bir sikkə olduğu anlamına gəlir! Doom lazerləri ilə tanış olmaq üçün robotun atəşə ehtiyacı var! Bir az yer saxlamaq üçün 2 lazeri birlikdə lehimlədim, kamera çərçivəsinə mükəmməl uyğunlaşacaqlar. Onları DigitalPin 11 -ə və yerə bağlayın. Kiçik adamı yandırın!

İsteğe bağlı hiylə. Biz sikkələrin altına qırmızı LED qoya bilərik. Qaranlıq olduqda bu əyləncəli kiçik bir hiylə olacaq. DigitalPin 8 -ə bir tel bağlayın və partlamaması üçün LED ilə telin arasına 220Ω rezistor qoyun. LED -in qısa pinini yerə bağlayın.

Addım 4: C ++ kodu

Addım 4.1: main.cpp kodunun qurulması4.1.1: "main.cpp" yükləyin və kodu öz main.cpp.4.1.2 -ə kopyalayın: 14 -cü sətirdə "com" sözünü arduinonun istifadə etdiyi com olaraq dəyişdirin. "\. / COM (bunu dəyişdir)" 4.1.3: 21 və 22 -ci sətirlərdə "haarcascade_frontalface_alt.xml" və "haarcascade_eye_tree_eyeglasses.xml" fayllarının doğru yolunu C sürücüsündə quraşdırılmışsa, bu fayllar burada yerləşə bilər: "C: / opencv / build / etc / haarcascades \" İkiqat arxa xətləri saxlayın və ya yalnız birinin olduğu yerdə əlavə edin.

Addım 4.2: tserial.h və Tserial.cpp əlavə edin Bu 2 fayl arduino ilə PC arasındakı əlaqəni təmin edəcək. 4.2.1: tserial.h və Tserial.cpp yükləyin. kataloq Həll araşdırıcısında layihəni sağ vurun və əlavə et> mövcud elementi seçin. Açılan pəncərədə əlavə olunacaq iki faylı seçin.

Addım 4.2: CXBOXController.h və CXBOXController.h əlavə edin. Bu fayllar layihənin nəzarətçi hissəsini öz üzərinə götürəcək. Açılan pəncərədə əlavə olunacaq iki faylı seçin. C ++ faylları qurulur.

Addım 5: Arduino Kodu

Addım 5.1: NewPing kitabxanası5.1.1: ArduinoCode.ino'yu yükləyin və arduino IDE.5.1.2 -də açın: "Eskiz> Kütüphaneyi daxil et> Libariarları idarə et" bölməsinə keçin. 5.1.3: "NewPing" üçün filtr qutusunda axtarın və bu kitabxananı quraşdırın.

Addım 5.2: Pitch kitabxanası 5.2.1: pitches.txt faylını yükləyin və pitches.txt məzmununu kopyalayın. pitches.txt faylını yeni sekmeye daxil edin və "pitches.h" olaraq qeyd edin. Arduino kodu quruldu

Addım 6: 3D Çap və Çapı Təmizləmək

3D çap və çapın təkmilləşdirilməsi
3D çap və çapın təkmilləşdirilməsi
3D çap və çapın təkmilləşdirilməsi
3D çap və çapın təkmilləşdirilməsi

Addım 6.1: 3D faylını çap edin printfile.form açın və hər şeyin yaxşı olub olmadığını yoxlayın. Hər şey qaydasındadırsa, çap işini printerə göndərin. Bir şey görünürsə və ya modeli dəyişdirmək istəyirsinizsə. Redaktə etməyiniz üçün 3Ds Max fayllarını və OBJ sənədlərini daxil etdim.

Addım 6.2: Modeli zərifləşdirin 6.2.1: Çap edildikdən sonra hər hansı bir çap resedu çıxarmaq üçün 2 modeli təxminən 70% spirtə batırın. modeli sərtləşdirin. Və ya modeli sərtləşdirmək üçün UV lampadan istifadə edə bilərsiniz. Modelin yapışqan olması səbəbindən bunu etmək lazımdır.

6.2.3: Dəstək çərçivəsini çıxarın. Bu tel kəsici ilə edilə bilər. Və ya plastikləri kəsə biləcək hər hansı bir alət.6.2.4: 3D çapın bəzi hissələri hələ də yumşaq ola bilər. Model çox UV işığında olsa belə, yumşaq ola bilən hissələr, dəstək çərçivələrinə yaxın olan hissələrdir. Modelin sərtləşməsi üçün daha çox UV işığına qoyun. Servoları çərçivəyə daxil etməyə çalışa bilərsiniz. Uyğun deyilsə, materialı zımparalamaq üçün Dremel istifadə edə bilərsiniz. uyğunlaşdırmaq.

Addım 7: Qutunun qurulması

Qutunun qurulması
Qutunun qurulması
Qutunun qurulması
Qutunun qurulması

Addım 7.1: Deliklərin açılması Sözügedən qutunun bir planını daxil etdim. Plan miqyaslı deyil, lakin bütün ölçülər doğrudur.7.1.1: Bütün delikləri doğru yerlərdə qeyd edərək başlayın. Daha böyük deliklər Dremel ilə ölçülərə qədər düzəldilə bilər. 7.1.3: Kvadrat deliklər də qazıla bilər. Lakin onları kvadrat etmək üçün Dremel -i kiçik bir faylla yerləşdirə bilərsiniz və iti künclərdən düzəldə bilərsiniz. 7.1.5: Taxta parçalarına diqqət yetirin. Onlardan qurtulmaq üçün qum kağızından istifadə edin.

Addım 7.2: Boyama 7.2.1: Qapağı zımpara etməklə başlayın. Yapışmaq üçün boyaya ehtiyacımız var.7.2.2: Bir parça götürün və qutunu təmizləmək üçün üzərinə bir az turpentin qoyun.7.2.3: İndi qutunu istədiyiniz rəngə boyaya bilərsiniz.

Addım 8: Bitirmə

Bitirmə
Bitirmə
Bitirmə
Bitirmə
Bitirmə
Bitirmə

Addım 8.1: Sikkə detektoru 8.1.1: Sikkə detektoru üçün bəzi metal aşındırıcıları yapışdırın..3: Bir sikkə ilə əlaqəni yoxlayın. Qapalı dövrə yoxdursa, telləri kənara daha çox lehimləyin. Addım 8.2: Protoboard və RGB ledləri 8.2.1: Protoboardı yuxarı sağ küncdə yerləşdirin və yapışdırın! 8.2.2: RGB ledlərini tellərlə bağlayın 8.2.3: Arduino -ya qoşun. 8.3.28.3.2: Bəzi kişi və dişi telləri yarıya bölün və sensoru arduino -ya bağlamaq üçün istifadə edə biləcəyimiz tək bir kabel etmək üçün dişi və kişi tellərini birlikdə lehimləyin.

Adım 8.4: Lazerlər və kamera8.4.1: Kiçik çərçivəni kameraya yapışdırın. Dik olduğundan əmin olun. 8.4.2: Lazerləri də çərçivəyə daxil edin. Onları yapışdırın ki, düşmən oğurlamasın!

Adım 8.5: Servolar və 3D çap 8.5.1: Servanı qapağın çuxuruna yapışdırın 8.5.2: arduino faylını arduinoya yükləyin (bu servoları düzgün vəziyyətdə saxlayır) 8.5.3: Servo ilə birlikdə kiçik yuvarlaq yayla. Bunu qapağın üzərindəki servoya qoyun.8.5.4: Böyük 3D çapını servoya və yaylağa qoyun və vida ilə sıx bir şəkildə vidalayın.8.5.5: ikinci servonu kiçik 3D çapa qoyun və yapışdırın. 8.5.6: Kameranı yerinə qoyun və hər şey hazırdır!

Addım 9: Proqramı başladın

Robotu işə salmaq üçün Visual studiyada C ++ Faylını açın. "Debug rejimində" olduğunuzdan əmin olun arduino faylını arduinoya yükləyin. Yüklədikdən sonra vizual studiyada oyuna basın. Və robot atəş açacaq və dünyanın bütün pullarını toplayacaq !!!

Tövsiyə: