İçindekiler:
- Adım 1: Malzemeler
- Adım 2: OpenCV ve C++ Yükleme ve Yapılandırma
- Adım 3: Arduino'yu Ayarlama
- Adım 4: C++ Kodu
- Adım 5: Arduino Kodu
- Adım 6: 3B Baskı ve Baskıyı İyileştirme
- Adım 7: Kutuyu İnşa Etme
- Adım 8: Bitirme
- Adım 9: Programı Başlatın
Video: Xbox Controller ile Yüz Takip ve Kontrollü Dilenci Robotu - Arduino: 9 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
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
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
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
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
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
Ş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:
Gelişmiş Çizgi Takip Robotu: 22 Adım (Resimli)
Gelişmiş Çizgi Takip Robotu: Bu, benim yaptığım ve bir süredir üzerinde çalıştığım Teensy 3.6 ve QTRX çizgi sensörünü temel alan gelişmiş bir çizgi izleyen robottur. Daha önceki çizgi izleyen robotumdan tasarım ve performansta bazı önemli gelişmeler var. T
Küçük Mağazalar İçin Takip ve Takip: 9 Adım (Resimli)
Küçük Dükkanlar için Takip ve Takip: Kısa mesafeli teslimatlar için e-bisiklet veya e-scooter üzerine monte edilmesi gereken küçük dükkanlar için yapılmış bir sistemdir, örneğin hamur işleri teslim etmek isteyen bir fırın. Track and Trace ne anlama geliyor?Track and Trace ca tarafından kullanılan bir sistemdir
Yüz Takip Tabancası: 4 Adım
Yüz İzleme Tabancası: Bu proje, burada gösterilen lazer tetikli tel tabanca projesinden bir genişletmedir - https://www.instructables.com/id/Building-a-Sentry-Gun-with-Laser-Trip-Wire-System-/ ?ALLSTEPS Tek fark, silahın lazerle değil, lazerle tetiklenecek olmasıdır
POLOLU QTR 8RC-sensor Dizili PID Tabanlı Çizgi Takip Robotu: 6 Adım (Resimli)
POLOLU QTR 8RC-sensör Dizili PID Tabanlı Çizgi Takip Robotu: Merhaba!Bu benim öğreticiler üzerine yazdığım ilk yazı ve bugün sizi yola çıkaracağım ve QTR-8RC kullanarak PID tabanlı çizgi izleyen robotun nasıl oluşturulacağını açıklayacağım. sensör dizisi. Robotun yapımına geçmeden önce anlamamız gereken
Sigfox ile Ölü Adam Uyarılı Bisiklet Takip Sistemi: 7 Adım (Resimli)
Sigfox ile Ölü Adam Uyarılı Bisiklet Takip Sistemi: İzleme ve uyarı gönderme özelliklerine sahip bisiklet sürücüleri için güvenlik sistemi. Kaza durumunda GPS konumu ile bir alarm gönderilir. Bisiklet sürücüleri için güvenlik bir zorunluluktur, yol bisikleti veya dağ bisikleti kazalarında ve mümkün olan en kısa sürede acil durum