İçindekiler:

Xbox Controller ile Yüz Takip ve Kontrollü Dilenci Robotu - Arduino: 9 Adım (Resimli)
Xbox Controller ile Yüz Takip ve Kontrollü Dilenci Robotu - Arduino: 9 Adım (Resimli)

Video: Xbox Controller ile Yüz Takip ve Kontrollü Dilenci Robotu - Arduino: 9 Adım (Resimli)

Video: Xbox Controller ile Yüz Takip ve Kontrollü Dilenci Robotu - Arduino: 9 Adım (Resimli)
Video: TİKTOK DİLENCİLERİ PART 1 DAHA NELER DEDİRTEN Video #tiktok #tiktokvideo #tiktokvideo 2024, Kasım
Anonim
Image
Image
OpenCV ve C++ Yükleme ve Yapılandırma
OpenCV ve C++ Yükleme ve Yapılandırma

Bir dilenci robotu yapacağız. Bu robot geçen insanları rahatsız etmeye veya dikkatini çekmeye çalışacaktır. Yüzlerini algılayacak ve onlara lazer ateş etmeye çalışacak. Robota bir jeton verirseniz, bir şarkı söyler ve dans eder. Robotun bir arduinoya, bir kameranın canlı beslemesine ve openCV'yi çalıştırmak için bir bilgisayara ihtiyacı olacak. Robot, PC'ye bağlıysa bir xBox denetleyicisi tarafından da kontrol edilebilecek.

Adım 1: Malzemeler

Donanım Elektronik

  • Arduino NANO veya UNO
  • USB 2.0 Kamera
  • Jumper kabloları (erkek ve dişi)
  • 2 x Servo - Genel (Alt Mikro Boyut)
  • 2 x LED - RGB KATOT 5mm
  • 2 x 5mW Lazerler
  • 1 x Kırmızı LED 5mm
  • 1 x Ekmek Tahtası
  • 4 x 220Ω direnç
  • 1 x 1KΩ direnç
  • 1 x protokol
  • 1 x Sonar sensörü 4 pim
  • Xbox denetleyicisi

Donanım analogu

  • Ahşap kutu (15 x 15 x 7 cm)
  • Zamk
  • Elektrik bandı

Yazılım

  • Arduino IDE'si
  • Görsel stüdyo 2017
  • 3Ds Max (veya diğer herhangi bir 3d modelleme yazılımı)
  • 2.14.0 veya sonraki bir sürümü önceden oluşturun
  • OpenCV 3.4.0 veya üzeri

Aletler

  • Lehim ekipmanı
  • Testere ve matkap
  • Tel makası

Adım 2: OpenCV ve C++ Yükleme ve Yapılandırma

OpenCV ve C++ Yükleme ve Yapılandırma
OpenCV ve C++ Yükleme ve Yapılandırma

Adım 2.1: Yazılımı edinme

Visual studio 2017: Visual studio Comunity 2017openCV 3.4.0'ı indirin Win paketi: Resmi indirme sayfasına gidin

Adım 2.2: OpenCV2.2.1 Kurulumu: Zip dosyasını Windows(:C) sürücünüze çıkartın.2.2.2: Gelişmiş sistem ayarlarınıza gidin. Bu, win10 arama fonksiyonunuzda bulunabilir.2.2.3: Yeni Çevresel değişkenler ayarlamamız gerekiyor. "Yol" ortamını bulun ve edit.2.2.4'e basın: Şimdi "bin haritasının" konumunu Yol ortamındaki yeni bir değişkene eklemeliyiz. OpenCV'yi C sürücünüze kurduysanız, yol şu şekilde olabilir: C:\opencv\build\x64\vc14\bin Yolu yapıştırın ve bu işlem sırasında açmış olabileceğiniz tüm pencerelerde "Tamam" a basın.

Adım 2.3: Visual Studio C++ 2.3.1'i Yapılandırma: Yeni bir görsel C++ projesi yapın. Boş bir win32 Konsol Uygulaması projesi yapın.2.3.2: Kaynak dosyalar sekmesinde, sağ tıklayın ve yeni bir C++ dosyası (.cpp) ekleyin ve "main.cpp" olarak adlandırın.2.3.3: Projeye sağ tıklayın- Çözüm gezgininde adını girin ve Özellikler'i seçin.2.3.4: Ek bir Dahil Etme Dizini eklememiz gerekiyor. Bu, genel olarak C/C++ sekmesi altında bulunabilir. Aşağıdaki yolu kopyalayın: C:\opencv\build\include ve "AID" arkasına yapıştırın ve Apply'a tıklayın.2.3.5: Aynı pencerede "Bağlayıcı" sekmesini seçin. genel olarak başka bir Ek Kitaplık Dizini yapmamız gerekiyor. Aşağıdaki yolu "AID" C:\opencv\build\x64\vc14\lib arkasına yapıştırın ve yeniden uygula'ya basın.2.3.6: Aynı Bağlayıcı sekmesi altında "Giriş" sekmesini seçin. Ve "Ek Bağımlılıklar > düzenle"ye basın ve aşağıdaki opencv_world320d.lib ve xinput.lib(Denetleyici için) dosyasını yapıştırın ve tekrar uygula'ya basın. Pencereyi kapatın. Artık C++ dosyanız çalışmaya hazır.

Adım 3: Arduino'yu Ayarlama

Arduino'yu Kurmak
Arduino'yu Kurmak
Arduino'yu Kurmak
Arduino'yu Kurmak
Arduino'yu Kurmak
Arduino'yu Kurmak
Arduino'yu Kurmak
Arduino'yu Kurmak

Servoların tanışması:Servolar ~160 ° dönebilir. Normal çalışabilmeleri için 4,8 ve 6,0 Volt arasında olmaları gerekir. Servonun 3 pini vardır: toprak, 4,8 - 6,0 volt pin ve data toplu iğne. Projemiz için DigitalPin 9 ve 10'daki servolar için veri pinlerini ayarlayacağız.

RGB ledlerin tanışması:RGB ledler 4 pinlidir. Kırmızı,yeşil,mavi ve topraklama pinidir. Arduino üzerinde biraz yer kazanmak için 2 RGB led'i birbirine bağlayabiliriz. Yani sadece 3 pin kullanacağız. RGB ledleri görseldeki gibi bir protoboard üzerine bağlayıp lehimleyebiliriz. Kırmızı pin => DigitalPin 3(PWM)Green pin => DigitalPin 4Blue pin => DigitalPin 7

Piezo ziliyle tanışma: Küçük robotumuz biraz ses çıkaracak. Bunu yapabilmek için ona bir ses vermeliyiz! Onu gerçekten yüksek sesle yapmayı seçebiliriz. Veya onu biraz daha az rahatsız edici hale getirmek için piezo buzzerın önüne 220Ω direnç koyabiliriz. Piezo buzzerini devre tahtasında bırakıyoruz. Yani lehimlemeye gerek yok. Veri pinini(+) DigitalPin 2'ye, toprak pinini de breadboard üzerinde toprağa bağlıyoruz.

Sonarla Buluşma: Robotun 10 metre uzaktaki kişiye nişan almaya çalışmasını engellemek için. Robota insanlara nişan alabileceği bir mesafe aralığı verebiliriz. Bunu bir sonar sensör ile yapıyoruz. VCC => 5 voltTrig => DigitalPin 6Echo => DigitalPin 5GND => toprak

Madeni para dedektörü ile tanışma: Madeni para dedektörü yapacağız. Madeni para dedektörü, devrenin kapalı veya bozuk olup olmadığını tespit ederek çalışacaktır. Neredeyse bir anahtar gibi çalışacak. Ama dikkatli olmamız gerekiyor. Bunu yanlış yaparsak bize bir arduinoya mal olur. Önce: AnalogPin A0'ı 5 voltluk bir kabloya bağlayın. Ancak arasına 1KΩ direnç koyduğunuzdan emin olun. İkinci: Bir kabloyu toprağa bağlayın. Kabloları ve rezistörü RGB ledler ile aynı protokole hemen lehimleyebiliriz. Şimdi 2 kabloya daha sıkı dokunursak arduino kapalı devre algılayacaktır. Bu, bir madeni para olduğu anlamına gelir! Kıyametin lazerleriyle tanışmak. Robotun ateş etmesi için silahlarına ihtiyacı var! Biraz yer kazanmak için 2 lazeri birbirine lehimledim. Kamera çerçevesine mükemmel bir şekilde uyacaklar. Onları DigitalPin 11'e ve toprağa bağlayın. Ateş edin küçük adam!

İsteğe bağlı hile. Madeni para yuvasının altına kırmızı bir LED koyabiliriz. Bu karanlık olduğunda eğlenceli küçük bir numara olacak. DigitalPin 8'e bir kablo bağlayın ve patlamasını önlemek için LED ile kablo arasına 220Ω direnç koyun. LED'in kısa pimini toprağa bağlayın.

Adım 4: C++ Kodu

Adım 4.1: main.cpp kodunun ayarlanması 4.1.1: "main.cpp" dosyasını indirin ve kodu kendi main.cpp.4.1.2'nize kopyalayın: 14. satırda "com"u arduino'nun kullandığı com ile değiştirin. "\.\COM(bunu değiştirin)"4.1.3: 21 ve 22. satırlarda "haarcascade_frontalface_alt.xml" ve "haarcascade_eye_tree_eyeglasses.xml" dosyaları için doğru yolu ayarlayın. bu dosyalar burada bulunabilir: "C:\opencv\build\etc\haarcascades\" Çift ters eğik çizgiyi koruyun veya yalnızca bir tane olduğu yere bir tane ekleyin.

Adım 4.2: tserial.h ve Tserial.cpp ekleyinBu 2 dosya arduino ve PC arasındaki iletişimi halledecektir.4.2.1: tserial.h ve Tserial.cpp.4.2.2'yi indirin: Bu 2 dosyayı projeye yerleştirin dizin. Çözüm gezgininde projeye sağ tıklayın ve ekle > mevcut öğeyi seçin. Açılan pencerede eklenecek iki dosyayı seçin.

Adım 4.2: CXBOXController.h ve CXBOXController.h'yi ekleyinBu dosyalar projenin kontrolör kısmını alacaktır.4.2.1: Çözüm gezgininde projeye sağ tıklayın ve ekle > mevcut öğeyi seçin. Açılır pencerede eklenecek iki dosyayı seçin. C++ dosyaları ayarlandı.

Adım 5: Arduino Kodu

Adım 5.1: NewPing kitaplığı 5.1.1: ArduinoCode.ino'yu indirin ve arduino IDE.5.1.2'de açın: "Sketch > Include libary > Manage libaries"e gidin.5.1.3: Filtre kutusunda "NewPing" öğesini arayın ve bu kütüphaneyi kurun.

Adım 5.2: Pitches kitaplığı 5.2.1: pitches.txt dosyasını indirin ve pitches.txt.5.2.2'nin içeriğini kopyalayın: Arduino IDE'de yeni bir sekme açmak için CTRL+Shift+N tuşlarına basın.5.2.3: pitches.txt dosyasını yeni sekmeye ekleyin ve "pitchs.h" olarak kaydedin. Arduino kodu kuruldu

Adım 6: 3B Baskı ve Baskıyı İyileştirme

3B Baskı ve Baskıyı İyileştirme
3B Baskı ve Baskıyı İyileştirme
3B Baskı ve Baskıyı İyileştirme
3B Baskı ve Baskıyı İyileştirme

Adım 6.1: 3D dosyayı yazdırın printfile.form'u açın ve her şeyin yolunda olup olmadığını kontrol edin. Her şey yolunda görünüyorsa, yazdırma işini yazıcıya gönderin. Bir şey görünüyorsa veya modeli değiştirmek istiyorsanız. Düzenlemeniz için 3Ds Max dosyalarını ve OBJ dosyalarını ekledim.

Adım 6.2: Modeli hassaslaştırın6.2.1: Baskı yapıldıktan sonra, baskı kalıntılarını gidermek için 2 modeli yaklaşık %70 alkole batırın.6.2.2: Baskıdan sonra modeli UV ışığının geçmesi için birkaç saat güneşte bırakın modeli sertleştirin. Veya modeli sertleştirmek için bir UV lambası kullanabilirsiniz. Bunun yapılması gerekiyor çünkü model yapışkan olacak.

6.2.3: Destek çerçevesini kaldırın. Bu bir tel kesici ile yapılabilir. Veya plastikleri kesebilen başka herhangi bir alet.6.2.4: 3D baskının bazı kısımları hala yumuşak olabilir. Model çok fazla UV ışığına maruz kalmış olsa bile. Yumuşak olabilen kısımlar destek çerçevelerine yakın olan kısımlardır. Modeli sertleşmesi için daha fazla UV ışığına maruz bırakın.6.2.5: Bir "dremel" ile çerçevenin yaptığı tüm küçük tümsekleri zımparalayabilirsiniz. Servoları çerçeveye sığdırmayı deneyebilirsiniz. Sığmazlarsa, malzemeyi zımparalamak için Dremel'i kullanabilirsiniz. uygun hale getirin.

Adım 7: Kutuyu İnşa Etme

Kutuyu İnşa Etme
Kutuyu İnşa Etme
Kutuyu İnşa Etme
Kutuyu İnşa Etme

Adım 7.1: Deliklerin açılması Söz konusu kutunun bir planını ekledim. Plan ölçekli değil, ancak tüm boyutlar doğru.7.1.1: Tüm delikleri doğru konumlarda işaretleyerek başlayın.7.1.2: Tüm delikleri delin. Daha büyük delikler bir Dremel ile istenilen boyuta getirilebilir.7.1.3: Kare delikler de delinebilir. Ancak bunları kare yapmak için Dremel'i küçük bir eğe ile yerleştirebilir ve keskin köşeleri törpüleyebilirsiniz.7.1.4: Tüm bileşenleri takmaya çalışın. Eğer uyuyorlarsa, gidebilirsiniz!7.1.5: Tahta kıymıklarına dikkat edin. Onlardan kurtulmak için zımpara kağıdı kullanın.

Adım 7.2: Boyama7.2.1: Kapağı zımparalayarak başlayın. Boyanın yapışması gerekiyor.7.2.2: Kutuyu temizlemek için bir bez alın ve üzerine biraz terebentin koyun.7.2.3: Artık kutuyu istediğiniz renge boyayabilirsiniz.

Adım 8: Bitirme

Bitirmek
Bitirmek
Bitirmek
Bitirmek
Bitirmek
Bitirmek

Şimdi her şeyi yerine koymalı ve işini yapmasına izin vermeliyiz. Adım 8.1: Madeni para dedektörü8.1.1: Madeni para dedektörü için bazı metal destekleri yapıştırın.8.1.2: Konektörden gelen her bir kabloyu bir bağlantı parçasına lehimleyin.8.1.3: Bağlantıyı bozuk para ile test edin. Kapalı devre yoksa kabloları kenara daha fazla lehimleyin. Adım 8.2: Protokol ve RGB ledleri8.2.1: Protokolü sağ üst köşeye yerleştirin ve bantlayın!8.2.2: RGB ledlerini kablolara bağlayın 8.2.3: Protokolden gelen tüm kabloları arduinoya bağlayın. Adım 8.3: Sonar sensörü 8.3.1: Sensörü bunun için yaptığımız deliklere yerleştirin. Eğer erkek-dişi atlama telleriniz varsa atlayabilirsiniz. 8.3.28.3.2: Bazı erkek ve dişi kabloları ikiye bölün ve sensörü arduinoya bağlamak için kullanabileceğimiz tek bir kablo yapmak için dişi ve erkek kabloları birbirine lehimleyin.8.3.3: Sensörü arduinoya bağlayın

Adım 8.4: Lazerler ve kamera8.4.1: Küçük çerçeveyi kameraya yapıştırın. Dik olduğundan emin olun.8.4.2: Lazerleri de çerçeveye yerleştirin. Onları yapıştırın, böylece düşman onları çalmaz!

Adım 8.5: Servolar ve 3D baskı 8.5.1: Servoyu kapağın deliğine yapıştırın8.5.2: Arduino dosyasını arduinoya yükleyin (bu, servoların doğru konumda durmasını sağlar) 8.5.3: Servo ile birlikte bir küçük yuvarlak plato. Bunu kapaktaki servonun üzerine yerleştirin.8.5.4: Büyük 3D baskıyı servo ve plato üzerine koyun ve bir vida ile sıkıca birbirine vidalayın.8.5.5: İkinci servoyu küçük 3D baskının üzerine yerleştirin ve birbirine yapıştırın. 8.5.6: Kamerayı yerine koyun ve her şey hazır!

Adım 9: Programı Başlatın

Robotu başlatmak için Visual Studio'da C++ Dosyasını açın. "Hata ayıklama modunda" olduğunuzdan emin olun"Arduino dosyasını arduino'ya yükleyin. Bu yüklendikten sonra görsel stüdyoda oynat'a basın. Ve robot ateş edecek ve dünyadaki tüm paraları toplayacak!!!

Önerilen: