İçindekiler:
- Gereçler
- Adım 1: Parçalar Hakkında Daha Fazla Detay…
- Adım 2: Geliştirme Sırasında Araca Güç Verme
- 3. Adım: Gerçek Kullanım Sırasında Araca Güç Verme
- Adım 4: Gamepad Sürüşü için Yazılım Programlama
- Adım 5: Kamera Ekleme
- Adım 6: Yüz Tanıma - Konumu Belirleyin
- Adım 7: Yüz Pozisyonu - Hareket Eden Robot
Video: Kendi Kendi Kendini Süren Arabanızı Yapın - (Bu Talimat Çalışma Halindedir): 7 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
Merhaba, Uzak USB Gamepad ile Drive Robot'taki diğer Instructable'a bir göz atarsanız, bu proje benzer, ancak daha küçük bir ölçekte. Ayrıca Youtube'daki Robotik, Evde Yetiştirilen Ses Tanıma veya Kendi Kendine Sürüş Araba çalma listelerini takip edebilir veya onlardan biraz yardım veya ilham alabilirsiniz.
Büyük robotla (Wallace 4) başladım, ancak yerel bir Meetup grubuna başladığımdan beri daha küçük ölçekte bir şeye ihtiyacım vardı ve grup bilgisayarla görme ile çok ilgileniyordu.
Bu yüzden, bana bu proje için fikir veren Udemy kursuyla karşılaştım: Kendi Kendi Kendini Süren Arabanı İnşa Et.
Udemy kursuyla ilgileniyorsanız, orayı tekrar kontrol etmeye devam edebilirsiniz; zaman zaman büyük bir indirimle satışa çıkıyor. Not: Bölüm 1 ve Bölüm 2 vardır - iki kursu paket (indirimli) olarak nasıl alacağınız konusunda biraz araştırma yapmanız gerekir.
Bu talimatın amacı iki yönlüdür. İlk olarak, kursun belirli bölümlerine (parçalar ve donanım gibi) bazı ipuçları ve alternatifler vermek. Ve ikincisi, kursu genişletmek için.
Udemy kursunun temel amacı:
küçültülmüş iki şeritli bir yolda kendi kendine gitmek için küçük tekerlekli bir robot araba elde edebilmektir.
Şerit şeritlerini ve yolun sonuna geldiğinde tanıması gerekir.
Bir dur işaretini (ve dur) tanıması gerekir.
Ayrıca KIRMIZI ve YEŞİL bir trafik sinyali.
Ayrıca bir engeli (başka bir araba) tanımalı ve etrafında manevra yapmalıdır.
Bu Eğitilebilir Yazının kursa kattıkları:
Küçük arabayı, bu diğer Eğitilebilir Kitapta olduğu gibi, uzak bir USB Gamepad ile sürün.
Kursun sunduklarına bazı alternatifler verin.
Kursu satın almanız bile gerekmeyebilir:
Bu Eğitilebilir Tablo, başlamak için ihtiyacınız olan tek şey olabilir.
Gereçler
Temel (önerilen) parçalar:
Bir robot şasi
dört motor
Arduino
Ahududu Pi (3, 3B+, 4)
Kamera (USB Web Kamerası veya Picamera modülü)
Pil gücü
Açma/Kapama anahtarları
atlama telleri
stand-off'lar (plastik ve belki metal de)
Parça satın almaya çalışmadan önce lütfen tüm Talimatları ve ayrıca videoları inceleyin.
Bu projeyi yaptıktan sonra, kesin parçaların o kadar kritik olmadığını anladım.
Adım 1: Parçalar Hakkında Daha Fazla Detay…
İlgili video, parçalar ve bulduğum bazı sorunlar hakkında bazı ayrıntılara giriyor.
- Farklı şasi / motorlar için etrafa bakın
- Motorların zaten kendilerine lehimlenmiş telleri olmalıdır.
- Bir matkap ve matkap ucuna VEYA daha fazla delikli bir şasiye sahip olmak isteyebilirsiniz.
- Kilonun bir sorun olduğunu unutmayın. Her şey mümkün olduğunca hafif olmalıdır.
- L298 H-Bridge motor sürücüsü harika çalışıyor. NOT: vidalı klemenslerle bir tane alın (fotoğrafa bakın)
- Muhtemelen hem plastik hem de metal zıtlıklar isteyeceksiniz, M3 boyutu muhtemelen en iyi seçimdir.
Plastik ayırıcılar, panoları kasaya monte etmek için iyidir (motor sürücüsü, Arduino, Raspberry, güç pcb, açma/kapama anahtarı vb.).
Metal ayırıcılar, kasayı (güç) monte etmek için ve ayrıca özellikle geliştirme yaparken (programlama, test etme) iyidir. Geliştirme için, metal zıtlıklar ayaklık görevi görebilir. Tıpkı gerçek bir araba üzerinde çalışıyormuşsunuz gibi, arabayı tekerlekler havada olacak ve serbestçe hareket edebilecek şekilde yükseltmek istiyorsunuz. Bu çok önemli! Hata yapacaksın ve arabanın öylece havalanıp çarpmasını istemiyorsun.
Matkap + matkap uçları
Mümkünse matkap kullanımını ve çift taraflı yapışkan bant yerine zıtlıklar kullanmayı gerçekten vurgulamak istiyorum. Bu proje sırasında büyük olasılıkla panolarınızı vb. birkaç kez çıkarıp yeniden konumlandıracaksınız ve bandı kullanmak çok dağınık hale geliyor.
Matkap kullanmak, yeniden konumlandırmayı çok kolaylaştırır (özellikle kasa plastik ise) ve daha profesyonel görünür.
Adım 2: Geliştirme Sırasında Araca Güç Verme
Bence bu projeye başlamanın en hızlı ve en kolay yolu:
- yazılım Arduino eskiz geliştirme için, Arduino'yu bilgisayarınıza USB üzerinden bağlamanız yeterlidir.
- Raspberry Pi yazılımı için en az 3 Amper sağlayabilecek bir 5V USB gücünüz olmalıdır. Ve açma/kapama düğmesi olmalıdır. Bilgisayarınıza bağlı iyi, güçlü bir USB hub'ınız yoksa, muhtemelen Raspberry'ye doğrudan bilgisayarınızdan güç sağlayamazsınız.
- Motorları/tekerlekleri test etmeye hazır olduğunuzda, en kolayı (fotoğrafa bakın) iyi bir güç kaynağı. Ancak bunlar ucuz değil.
Bu bölümdeki amacım, geliştirme sırasında pil gücünü kullanmak istemediğinizi söylemektir, çünkü bu, ilerlemenizi büyük ölçüde yavaşlatacaktır.
Ayrıca, yukarıdaki önerilere benzer bir şey yaparak, araca tam olarak nasıl güç vereceğiniz konusunda (henüz) endişelenmenize gerek yok. Bu kararı projede daha sonra erteleyebilirsiniz.
3. Adım: Gerçek Kullanım Sırasında Araca Güç Verme
Mantığa 5V güç için kursu (veya yaptığım şeyi) izlemeye karar verirseniz, tüm 5V USB güç bankalarının bu proje için iyi olmadığını unutmayın.
Buradaki ana nokta, 5V'a ihtiyacınız var ama en az 3 Ampere ihtiyacınız var! Bunu şu şekilde düşünün - bir dizüstü bilgisayara güç sağlayacak bir güç bankası istiyorsunuz (belki de).
ABD'de yaşıyorsanız, bunu yapmanın en iyi yollarından birinin Best Buy'dan satın almak olduğunu düşünüyorum. Niye ya? İadeler için 14 günlük para iade politikaları nedeniyle.
İşe yarayacak bir tane bulmadan önce aslında üç farklı powerbank denemek zorunda kaldım. Diğerleri Raspberry Pi'nin düşük voltajdan şikayet etmesine neden oluyor.
En ucuz powerbank ile başladım ve işe yarayan bir tane bulana kadar bir sonraki modeli denemeye devam ettim (bu daha pahalı).
Arduino'ya nasıl güç verilir
Udemy kursunda yazar, Arduino'ya doğrudan güç bankasından (kendi yaptığı özel bir pcb aracılığıyla) güç vermeyi seçti ve Arduino'nun GPIO konektöründeki güç pinlerini kullandı.
Ancak, Arduino'ya doğrudan Raspberry Pi'den USB kablosuyla güç vermeyi seçtim.
Hangisinin daha iyi olduğuna karar vermen gerekecek.
Motorlara/motor sürücüsüne nasıl güç verilir
Udemy kursunda yazar, motorlara/sürücüye doğrudan 5V güç bankasından güç vermeyi seçti. Bu yaklaşımı kullanırsanız iki husus vardır.
- Motorlar ilk dönmeye başladıklarında en fazla akımı çekerler. Bu, güç voltajının 5V'nin altına düşmesine(dalmasına) ve Raspberry'nin sıfırlanmasına neden olabilir(olacaktır).
- Motorlara güç sağlamak için yalnızca 5V kullanmak, motorlara mümkün olduğu kadar fazla güç sağlamadığınız ve arabanın daha yavaş hareket edeceği (daha yavaş) anlamına gelir. Motorları (bu güç kaynağıyla) (fotoğrafa bakın) en az 9V'a test ettim. 9V'da iyi çalışıyorlar.
9V (veya daha fazla) ile ilgili gözlemler
Bu Eğitilebilir Tablonun tüm fotoğraflarına ve videolarına bir göz attıysanız, kendi 9V güç kaynağımı oluşturmak için özel bir PCB monte ettiğimi fark etmişsinizdir. Yol boyunca birkaç şey öğrendim.
Şu anda motorlara güç sağlamak için birkaç (3) 9V pil hücresini paralel olarak kullanıyorum. Hem alkalin hem de NiMH şarj edilebilir piller kullandım.
Öğrenme Deneyimi #1: NiMH 9V pillerin doğru şekilde şarj edilmesi uzun zaman alır (birkaç saat).
Olası Çözüm: Çok pilli bir NiMH şarj cihazına yatırım yapın. "Akıllı" bir şarj cihazı olmalıdır.
Dezavantajı: Ucuz değiller.
Öğrenme Deneyimi #2: 9V piller aslında birkaç küçük iç hücreden oluşur. Bu hücrelerden biri ölürse, pilin tamamı işe yaramaz. Bu sorunu YAŞAMADIM ama okudum.
Öğrenme Deneyimi #3: Tüm 9V piller aynı voltajda değildir. Bu önemli. Çünkü voltaj ne kadar yüksek olursa, o kadar fazla hız mümkündür. Bazı pil hücreleri (ve şarj cihazları) yalnızca 8,4V'dir. Bazıları daha da az. Bazıları 9.6V.
Öğrenme Deneyimi #4: 9V piller, özellikle NiMH piller hafiftir. İyi bir şey. Bununla birlikte, çoğu yalnızca mA çıkış akımı sağlar. Bu yüzden onları paralel yerleştirmek zorunda kaldım. Kısa süreler için bile yaklaşık 2 Amperlik bir toplam akım kapasitesine ihtiyacınız vardır.
Öğrenme Deneyimi #5: Radyo kontrollü arabalar gibi şeyler için kullanılan 9.6V pil paketleri var. Henüz kullanmadım ama benim yaptığım gibi paralel 9V pillerden daha fazla akım sağladıklarına inanıyorum. Ayrıca, tek üniteyi şarj edebilirsiniz. Paketler farklı boyutlarda gelir. Bir de ağırlık meselesi var. Ve sonra, tüm arabaya güç sağlamak için paketi mi yoksa sadece motorları mı kullanıyorsunuz? Tüm araba için, Raspberry Pi için 5V'luk bir düşürme regülatörüne ihtiyacınız olacak.
L298 H-Bridge, bu amaç için 5V çıkış verme yeteneğine sahip, ancak Raspberry Pi için ne kadar akım üretebileceği ve L298 kartında çok fazla zorlama olup olmayacağı konusunda endişeliyim.
İki ayrı güç kaynağına sahip olmaya karar verirseniz, kilo sorununuz olabilir (çok ağır).
Adım 4: Gamepad Sürüşü için Yazılım Programlama
Sanırım bu bölümün çoğunu Robot Driven Via Remote USB Gamepad Eğitilebilir bölümünde zaten ele aldığımı düşünüyorum, bu yüzden burada tekrar etmeyeceğim.
Bu diğer Eğitilebilir Tablodaki programlama/yazılım bölümleri sadece bir öneridir. Bence insan deneme yanılma yoluyla daha çok şey öğreniyor.
Adım 5: Kamera Ekleme
Udemy kursunda, yazarın kamerayı yükseltmek için bir yol oluşturmak için yuvarlak ahşap dübeller ve bir tutkal tabancası kullandığına inanıyorum.
Şeritleri daha kolay tanıyabilmesi için kamerayı iki şeritli yola bakacak şekilde yükseltmek isteyeceksiniz.
ABD'de yaşadığım yerde, ahşap dübeller çok ucuzdu. Bunları Lowe's veya Home Depot'tan satın alabilirsiniz. Yuvarlak dübeller yerine kare dübeller seçtim.
Ayrıca kamera kulesi için daha sağlam bir taban yapmayı seçtim ve kulenin tamamını arabadan çıkarılabilir hale getirdim, böylece arabada onun için en iyi konumun ne olduğuyla oynayabilir ve deneyler yapabilirim.
Ayrıca kuleyi bir USB web kamerası ile başlayacağımı, ancak muhtemelen daha sonra Picamera modülünü kullanmaya devam edeceğimi düşünerek yaptım.
Balık gözü tipi bir kameraya yatırım yapmak isteyebilirsiniz.
Çok ucuz bir sıcak tutkal tabancası aldım, ancak kulenin tabanını daha iyi güçlendirmek istedim, bu yüzden önceden bazı vida delikleri açtım ve her şeyi daha iyi bir arada tutmak için vidalar ekledim.
Sonra tabanı arabanın şasisine vidaladım.
Daha sonra, işleri hareket ettirmek istersem, tabanı kasadan söküp kasanın yeni yerine yeni delikler açarım ve kuleyi kasaya yeniden cıvatalarım.
Her şeyi test etmenin bir yolu olarak büyük robottan (Wallace Robot 4) "beni takip et" Python ve Node.js kodunu getirdim. "Beni takip et" hakkında çok daha fazla ayrıntı veren youtube'ların listesi için lütfen bu bölümdeki fotoğraflara bakın.
Bahsettiğim gibi, önce bir USB web kamerasını takmak daha kolaydı. Daha sonra Picamera modülünü monte edebilirim.
Adım 6: Yüz Tanıma - Konumu Belirleyin
Bu kısım Udemy kursunun odak noktası değil ama eğlenceli bir alıştırmaydı.
"python opencv yüz tanıma" için biraz web araması yaparsanız, bunun nasıl yapılacağına dair birçok iyi örnek bulacaksınız ve hepsi hemen hemen aynı adımları takip ediyor.
- "haar" yüz dosyasını yükleyin
- kamerayı başlat
- bir çerçeve yakaladığınız bir döngü başlatın
- renkli görüntüyü gri tonlamaya dönüştür
- yüzleri bulması için opencv'ye besleyin
- bir iç döngü başlat (bulunan her yüz için) (benim durumumda, 1'den fazla yüz varsa iptal etmek için kod ekliyorum)
Burada bu amaçla, bir yüz tespit ettiğimizde, yüzü çevreleyen hayali karenin X, Y, W ve H'sini biliyoruz.
Robotun ileri veya geri hareket etmesini istiyorsanız, sadece W'yi göz önünde bulundurmalısınız. W çok büyükse (çok yakın), robotun geri hareket etmesini sağlayın. W çok küçükse (çok uzak), robotun ilerlemesini sağlayın.
Sol/sağ hareketi biraz daha karmaşık ama çılgın değil. Sol ve sağ yüz konumunun nasıl belirleneceğinin ayrıntılarını veren bu bölümdeki resme bir göz atın.
NOT:
Web OpenCV örneklerinden herhangi birini çalıştırırsanız, hepsi opencv'nin "gördüğünün" gerçek görünümünü gösterir, yüzün bir karede anahatları çizilir. Eğer gözlemleyecekseniz, hareket etmeseniz bile o kare sabit(sabit) değildir.
Değişen bu değerler robotun sürekli hareket halinde, ileri veya geri, sola veya sağa gitmesine neden olacaktır.
Bu nedenle, hem ileri/geri hem de sol/sağ için bir çeşit deltaya ihtiyacınız olacak.
Sağa karşı sola alalım:
Sola ve sağa hesapladıktan sonra farkı alın (delta):
delta = abs(sol - sağ)
Mutlak olanı almalısın çünkü hangisinin daha büyük sayı olacağını bilmiyorsun.
Ardından, yalnızca delta minimumdan büyükse hareket etmeye çalışmak için bazı koşullu kodlar eklersiniz.
Aynı şeyi ileri ve geri için de yapardınız.
Adım 7: Yüz Pozisyonu - Hareket Eden Robot
Robotun sola veya sağa, ileri veya geri hareket etmesine ihtiyacınız olduğunu öğrendikten sonra, bunu nasıl yaparsınız?
Bu Eğitilebilirlik devam eden bir çalışma olduğundan, şu anda bu proje için kullanmak üzere kodu büyük robotumdan kopyaladım. Lütfen tüm bunların ayrıntılarını verdiği youtube'daki Robotik çalma listeme göz atın.
Kısacası, kodu katmanlar halinde aldım.
Python yüz tanıma betiği, Node.js sunucusuna http istekleri yapar
Node.js sunucusu, hareket yönleri için http isteklerini dinler, bunları özel seri protokole dönüştürür
Node.js sunucusu ve Arduino arasında özel seri protokol
Robotu hareket ettirmek için gerçek komutları yapan Arduino çizimi
Udemy kursu bunu yukarıdaki gibi yapmaz. Ancak iyi bir ilerleme kaydetmek ve gerçek görüntü tanımaya odaklanmak istediğim için, şimdilik önceki kodumu yeniden kullandım.
Önerilen:
Kendi Kendini Bulan Alevlere Sahip Otonom İtfaiye Robotu: 3 Adım
Kendi Kendini Bulan Alevli Otonom İtfaiye Robotu: EN GÜÇLÜ OTONOM YANGINLA MÜCADELE ROBOT GEN2.0HII..Bu bizim ilk projemiz.Hadi başlayalım.Bu robotun konsepti çok basit. insan hayatını kurtar otomatik düşük maliyetli hızlı yanmaz t
Kendi Kendini Süren Bir Tekne İnşa Etme (ArduPilot Rover): 10 Adım (Resimlerle)
Kendi Kendini Süren Bir Tekne İnşa Etme (ArduPilot Rover): Güzel olan ne biliyor musun? İnsansız kendi kendine giden araçlar. Aslında o kadar havalılar ki biz (üniversite meslektaşlarım ve ben) 2018'de kendimiz bir tane yapmaya başladık. Bu yüzden bu yıl nihayet boş zamanlarımda bitirmek için yola çıktım. Bu Enst
ESP32-CAM Canlı Video Akışı ile Kendi Robot Arabanızı İnşa Etme: 4 Adım
ESP32-CAM Canlı Video Akışı ile Kendi Robot Arabanızı İnşa Etme: Buradaki fikir, burada anlatılan robot arabayı mümkün olduğunca ucuz hale getirmektir. Bu nedenle, ucuz bir model için detaylı talimatlarım ve seçilen bileşenlerle büyük bir hedef kitleye ulaşmayı umuyorum. Sizlere robot araba fikrimi sunmak istiyorum
Kendi Bağlantılı Isıtma Termostatınızı Yapın ve Isıtma ile Tasarruf Yapın: 53 Adım (Resimlerle)
Kendi Bağlantılı Isıtma Termostatınızı Yapın ve Isıtma İle Tasarruf Edin: Amacı Nedir? Evinizi tam istediğiniz gibi ısıtarak konforu artırın Evinizi sadece ihtiyaç duyduğunuzda ısıtarak tasarruf edin ve sera gazı emisyonlarını azaltın Nerede olursanız olun ısıtmanızı kontrol altında tutun Bunu yaptığınız için gurur duyun
Kendi ""Banksy'nin Kendi Kendini Yok Eden Sanat Eseri Çerçevesini" Oluşturun: 4 Adım
Kendi "Banksy'nin Kendi Kendini Yok Eden Sanat Eseri Çerçevesini" İnşa Et: Balon Kız 1.4 milyon dolara ulaştıktan sonra kendi kendini parçaladığında, içimizdeki yapımcılar bunun nasıl yapıldığını analiz etmeye başladılar. Aklımızda ilk 2 fikir vardı: Birincisi şuydu: bıçaklar çerçevenin tabanına sabitlendi ve iki tekerlek