Arduino'dan DIY tank savaşı. Arduino'da otonom tank


Önceki materyallerde çeşitli radyo kontrollü oyuncakların yapımına ilişkin videoları inceledik. Bu konuya devam edelim. Bu sefer sizi radyo kontrollü bir tankın üretim sürecini tanımaya davet ediyoruz.

İhtiyacımız olacak:
- bitmiş şasi;
-Arduino Nano'su;
- 3 servo;
- dönen sistem;
- oyuncak tabanca;
- PS2 oyun çubuğu;
- alıcıdan joystick'e;
- pil kutusu;
- Şarj edilebilir pil;
- teller;
- lazer.

Malzemenin sonunda satın alma bağlantısı sağlanan bitmiş şasi, iki motora, iki dişli kutusuna, bir anahtara ve piller için bir bölmeye sahiptir. Fikrin yazarına göre hazır bir şasi satın almak, onu kendiniz yapmaktan daha ucuza mal olacak. Kullanmayı planladığınız piller yazarın durumunda olduğu gibi kasa bölmesine sığmıyorsa motor sürücüsünü oraya gizleyebilirsiniz.

İlk adım kumanda kolu alıcısını kasaya takmaktır. Bunu yapmak için kapağı ondan çıkarın.

Ayrıca kapağı şanzımandan da çıkarıyoruz.

Kapağı vidalarla sabitlemek için kullanılacak kapakta iki delik açıyoruz.

Vidaları tutan somunları, sürüş esnasında sökülüp vites kutusuna düşmesinler diye tutkalla doldurun.

Şimdi motor sürücüsünü takmanız gerekiyor. Yazara göre, özel konektörlü kablolar kullanıldığında bölme tamamen kapanmayacaktır, bu nedenle konektörleri ısırmanız, kabloları sıyırmanız ve doğrudan sürücüdeki çıkışlara lehimlemeniz gerekir.

Sürücüyü kurmadan önce, tank ağzının döner sistemine dikkat etmeniz gerekir. Bunu yapmak için plastik döner sistemi söküp içine iki servo takıyoruz. Birincisi yatay hareketlerden, ikincisi ise dikey hareketlerden sorumlu olacak.

Döner sistemin tekrar bir araya getirilmesi.

Sistemi tank gövdesine kuruyoruz.

Muhafazada 3 ek delik açmanız gerekir. Bunlardan iki tanesi motor kabloları için, geniş delik ise motor sürücü kontrolünde bara için gereklidir.

Tabancanın bir servo sürücüye bağlanması gerekiyor. Bunu yapmak için servo sürücüde ve tabanca gövdesinde bir delik açın ve bunu bir vidayla bağlayın.

Yapmanız gereken bir sonraki şey tabancanın tetiğini servoya bağlamaktır. Bunu yapmak için tetikte ve servo sürücüdeki bağlantı parçasında delikler açın. Elemanları bir tel parçasıyla bağlarız.

Döner sistemin üst kısmında silahın namlusundan da geçmesi gereken iki açık delik açılmalıdır. Bu delikler namluyu döner sisteme takmak için kullanılacaktır.

Arduino Nano kartını programlamaya geçelim.

Geri kalan bileşenleri aşağıdaki şemaya göre birleştiriyoruz.

Şasinin üstüne kanat görevi görecek cetvel parçaları yerleştiriyoruz. Kanatlara pil bölmeleri takıyoruz.

Lazeri namluya sıcak tutkalla yapıştırıyoruz.

Radyo kontrollü tankımız hazır.

2 kilometreye kadar mesafeden kontrol edilebilen, birinci şahıs görüş açısına sahip, radyo kontrollü bir tank inşa edelim! Projem uzaktan kumandalı bir geziciye dayanıyordu, yapımı kolay, programlanması kolay ve hobiciler için harika bir proje!




Bot çok hızlı ve çeviktir, ayrıca iki güçlü motora sahip olduğu gerçeğinden bahsetmiyorum bile! Yarış hangi yüzeyde olursa olsun kesinlikle bir insanı geride bırakacaktır!

Bot, aylarca süren geliştirme sürecine rağmen hala bir prototip.

Peki FPV nedir?
FPV veya Birinci Şahıs Görünümü, Birinci Şahıs Görünümüdür. FPV'yi genellikle konsollarda ve bilgisayarlarda yarış oyunları gibi oyunlar oynarken görüyoruz. FPV ayrıca ordu tarafından gözetleme, savunma veya korunan alanları izlemek için de kullanılıyor. Hobiciler, havadan çekim yapmak ve sadece eğlence için dörtlü helikopterlerde FPV kullanıyor. Bunların hepsi bir quadcopter inşa etmenin maliyeti kadar havalı geliyor, bu yüzden yerde hareket eden daha küçük bir şey yapmaya karar verdik.

Bu nasıl yönetilir?
Bot bir Arduino kartını temel alıyor. Arduino çok çeşitli eklentileri ve modülleri (RC/WiFi/Bluetooth) desteklediğinden iletişim türlerinden herhangi birini seçebilirsiniz. Bu yapı için, botu kontrol eden 2.4Ghz verici ve alıcıyı kullanarak uzun mesafelerde kontrole olanak sağlayacak özel bileşenler kullanacağız.

Son adımda bir demo videosu var.

Adım 1: Araçlar ve Malzemeler






Parçalarımın çoğunu yerel hobi mağazalarından satın alıyorum, geri kalanını internette buluyorum; sadece en iyi fırsatları arayın. Pek çok Tamiya çözümü kullanıyorum ve talimatlarım bu özellik göz önünde bulundurularak yazılmıştır.

Gearbest'ten yedek parça ve malzeme satın aldım - o sırada indirimdeydiler.

İhtiyacımız olacak:

  • Arduino UNO R3 klonu
  • Pololu Dual VNH5019 Motor Kalkanı (2x30A)
  • Babaları sabitle
  • 4 ara parça
  • Vidalar ve somunlar
  • Sinyal iletim modülü (verici) 2,4 Ghz - 13. adımda daha fazlasını okuyun
  • En az iki kanal için alıcı 2,4 Ghz
  • 2 Tamiya Plazma Dash / Hyper Dash 3 motor
  • Tamiya Çift Motorlu Şanzıman Kiti (stok motorlar dahil)
  • 2 Tamiya evrensel tahta
  • Tamiya palet ve tekerlek seti
  • 3 lityum polimer pil 1500mAh
  • Uzaktan yönlendirme ve yakınlaştırma kontrolü desteğine sahip birinci şahıs kamera
  • FPV 5.8Ghz 200mW için verici ve veri alıcısı
  • Bir şişe süper yapıştırıcı
  • Sıcak tutkal

Alet:

  • Çok amaçlı alet
  • Tornavida Seti
  • Dremel

Adım 2: İkiz Şanzımanın Montajı


Şanzımanı ambalajından çıkarmanın zamanı geldi. Sadece talimatları izleyin ve her şey yoluna girecek.

Önemli not: 58:1 dişli oranını kullanın!!!

  • dişlileri kutuyu monte etmeden önce yağlayın, sonra değil
  • metal ara parçaları unutmayın, aksi takdirde kutu gıcırdayacaktır
  • 58:1 dişli formatını kullanın, 204:1'den daha hızlıdır

Adım 3: Motorların iyileştirilmesi

Şanzıman motorlarla birlikte geliyor ama bence çok yavaşlar. Bu nedenle projede Plasma Dash yerine daha fazla enerji tüketen Hyper Dash motorlarını kullanmaya karar verdim.

Ancak Plasma Dash motorları Tamiya'nın 4WD motor serisindeki en hızlı motorlardır. Motorlar pahalıdır, ancak paranızın karşılığında en iyi ürünü alırsınız. Bu karbon kaplı motorlar 3V'de 29.000 rpm'de ve 7V'de 36.000 rpm'de dönüyor.

Motorlar 3V güç kaynakları ile çalışacak şekilde tasarlanmıştır ve voltajı arttırmak performansı arttırsa da servis ömrünü kısaltır. Pololu 2x30 Motor Sürücüsü ve iki adet lityum polimer pil ile Arduino programının maksimum 320/400 hıza ayarlanması gerekiyor, bunun ne anlama geldiğini kod adımında birazdan öğreneceksiniz.

Adım 4: Motor Sürücüleri


Robotiğe çok uzun zamandır ilgim var ve söyleyebilirim. en iyi motor sürücüsünün Pololu Dual VNH5019 olduğunu düşünüyorum. Güç ve verimlilik söz konusu olduğunda bu en iyi seçenektir ancak fiyat hakkında konuştuğumuzda açıkça dostumuz değildir.

Başka bir seçenek de L298 sürücüsünü oluşturmak olacaktır. 1 L298, yüksek akımlı motorlar için en iyi çözüm olan tek motor için tasarlanmıştır. Size böyle bir sürücünün kendi versiyonunu nasıl oluşturacağınızı göstereceğim.

Adım 5: Rayların Birleştirilmesi




Hayal gücünüzü kullanın ve parçaları beğeninize göre yapılandırın.

Adım 6: Ara parçaları vidalayın ve FPV'yi takın



Yine hayal gücünüzü kullanın ve birinci şahıs bakış açısı için destekleri ve kamerayı nasıl konumlandıracağınızı öğrenin. Her şeyi sıcak tutkalla sabitleyin. FPV antenini monte etmek ve takılı ara parçalar için üst kısmı takın ve delikler açın, ardından her şeyi vidalarla sabitleyin.

Adım 7: Üst Güverte


Üst güverteyi oluşturmanın amacı boş alanı artırmaktı çünkü FPV bileşenleri drone'nun alt kısmında çok yer kaplıyor ve Arduino ve motor sürücüsüne yer bırakmıyor.

Adım 8: Arduino ve Motor Sürücüsünü Kurun

Arduino'yu üst güvertedeki yerine vidalayın veya yapıştırın ve ardından motor sürücüsünü üstüne takın.

Adım 9: Alıcı modülünü takın



Rx modülünü Arduino'ya bağlamanın zamanı geldi. Kanal 1 ve 2'yi kullanarak kanal 1'i A0'a ve 2'yi A1'e bağlayın. Alıcıyı Arduino'nun 5V ve GND pinlerine bağlayın.

Adım 10: Motorları ve Pilleri Bağlayın



Kabloları motora lehimleyin ve kanallara göre sürücüye bağlayın. Pille ilgili olarak, JST erkek konnektör ve DINA erkek konnektörleri kullanarak kendi konnektörünüzü oluşturmanız gerekecektir. Sizden ne isteneceğini daha iyi anlamak için lütfen fotoğraflara bakın.

Adım 11: Pil

Pili alın ve takacağınız yeri belirleyin.

Bunun için bir yer bulduğunuzda, pile bağlanmak için bir erkek adaptör oluşturun. 3S 12V Li-po pil FPV kameraya, motora ve Arduino'ya güç verecektir, dolayısıyla motor güç hattı ve FPV hattı için bir konektör oluşturmanız gerekecektir.

Adım 12: Arduino Kodu (C++)

Kod çok basittir, sadece indirin ve her şey VNH motor sürücüsüyle çalışmalıdır (sürücü kütüphanesini indirdiğinizden ve Arduino kütüphaneleri klasörüne koyduğunuzdan emin olun).

Kod Zumobot RC'ye benziyor, sadece motor sürücü kütüphanesini değiştirdim ve bazı şeyleri yapılandırdım.

L298 sürücüsü için standart Zumobot programını kullanın, her şeyi kütüphanede yazıldığı şekilde bağlayın.

#define PWM_L 10 ///sol motor
#PWM_R 9'u tanımlayın
#define DIR_L 8 ///sol motor
#DIR_R 7'yi tanımla

Sadece kodu indirin ve bir sonraki adıma geçin.

Dosyalar

Adım 13: Denetleyici


Piyasada radyo kontrollü oyuncaklar için farklı tipte kontrolörler bulunmaktadır: su, kara, hava için. Ayrıca farklı frekanslarda da çalışırlar: AM, FM, 2,4GHz, ancak günün sonunda hepsi sıradan kontrolörlerdir. Kontrolörün adını tam olarak bilmiyorum ama hava droneları için kullanıldığını ve kara veya sudakilere göre daha fazla kanala sahip olduğunu biliyorum.

Şu anda Turnigy 9XR Verici Modu 2'yi (Modül Yok) kullanıyorum. Gördüğünüz gibi adı modülsüz olduğunu söylüyor, bu da hangi 2,4 GHz iletişim modülünü kuracağınızı seçeceğiniz anlamına geliyor. Piyasada kendine has kullanım, kontrol, mesafe ve diğer çeşitli özelliklere sahip onlarca marka bulunmaktadır. Şimdi JR için Telemetri Modülü ve V8FR-II RX ile FrSky DJT 2.4Ghz Combo Pack kullanıyorum, bu biraz pahalı, ancak sadece teknik özelliklerine ve özelliklerine bakın, o zaman tüm bunların fiyatı o kadar yüksek görünmeyecektir. . Üstelik modül hemen alıcıyla birlikte geliyor!

Ve unutmayın, kontrol cihazınız ve modülleriniz olsa bile, kontrol cihazına uygun pilleriniz olana kadar onu açamayacağınızı unutmayın. Her iki durumda da, size uygun bir kontrol cihazı bulun ve ardından doğru pillere karar verin.

İpucu: Yeni başlayan biriyseniz, yerel hobi mağazalarından yardım isteyin veya amatör radyo meraklısı grupları bulun çünkü bu adım şaka değildir ve önemli miktarda para harcamanız gerekecektir.

Adım 14: Kontrol edin




İlk önce botu açın, ardından verici modülünü açın, ardından alıcı modülü LED'i yanıp sönerek başarılı bağlamayı belirtmelidir.

Yeni Başlayanlar İçin FPV Kılavuzu

Botun üzerine takılan parçaya FPV vericisi ve kamera, elinizde bulunan parçaya ise FPV alıcısı adı veriliyor. Alıcı herhangi bir ekrana (LCD, TV, TFT vb.) bağlanır. Tek yapmanız gereken pilleri içine takmak veya bir güç kaynağına bağlamak. Açın ve gerekirse alıcıdaki kanalı değiştirin. Bundan sonra ekranda botunuzun gördüklerini görmelisiniz.

FPV sinyal aralığı

Proje, 1,5 - 2 km'ye kadar mesafede çalışabilen ucuz bir modül kullandı, ancak bu, cihazın açık alanda kullanılması için geçerlidir; daha güçlü bir sinyal almak istiyorsanız, daha yüksek güçlü bir verici satın alın, örneğin 1000 mW . Lütfen vericimin yalnızca 200 mW güce sahip olduğunu ve bulabildiğim en ucuz verici olduğunu unutmayın.

Son bir adım kaldı; yeni casus tankınızı kamerayla kontrol ederken eğlenmek için!

Robotun ana kısmı radyo kontrollü tankın şasisi ve diğer bileşenlerdir, bunların listesi aşağıda yazılacaktır. Bu tank yazarın platformdaki ilk projesidir arduino ve onu kullandığı için mutluydu. Yazar internetten materyal ve kitap kullandı.

Malzemeler ve araçlar:
- Tank şasisi
-Arduino Uno
- Jumper'lar ve devre tahtası
- Entegre motor sürücüsü SN754410NE
- Geleneksel servo sürücü
- Ultrasonik telemetre
- Bunun için konektörlü 9V pil
- D tipi piller
- Arduino için USB kablosu
- Şasi tabanı
- Tornavidalar
- Bunun için termal tabanca ve yapıştırıcı
- Havya ve lehim

Adım bir. Tank şasisi.
Yazar şasiyi bit pazarından satın alınan eski bir Abrams tankından aldı. Ortaya çıkan tank, şasinin çıkarılabilmesi için söküldü. Aynı tankı kullanmak hiç de gerekli değil; herhangi bir radyo kontrollü tank işe yarayacaktır. Üstelik orijinal motor arzu edilecek çok şey bıraktı, bu yüzden kendiminkini monte etmek zorunda kaldım; montajı bir sonraki adımda yapılacak. Şasiyi hazırlayan yazar, tabanı onlara sıcak tutkalla yapıştırdı. Nereye sabitleneceği önemli değil ama merkeze yapıştırılmasına karar verildi.

İkinci adım. Makinist.
Motoru kontrol etmek için SN754410NE sürücüsü kullanılıyor, yazar mevcut olduğu için onu kullandı, benzerlerini alabilirsiniz.
Sürücüyü Arduino'ya bağlamak aşağıdaki gibidir:

Tüm GND pinleri devre tahtasının GND pinlerine bağlanır.
- Arduino'nun 1 ve 16 ila 9 ve 10 numaralı sürücü pinleri.
- Sürücünün 2 ve 7 numaralı pinleri Arduino'nun 3 ve 4 numaralı pinlerine bağlanır (sol motorun kontrolünden sorumludurlar).
- Sürücü pinleri 10 ve 15, Arduino pinleri 5 ve 6'ya bağlanır (doğru motorun kontrolünden sorumludurlar).
- 3 ve 6 numaralı pinler sol motora, 14 ve 11 numaralı pinler ise sağ motora bağlanır.
- 8 ve 16 numaralı pinler Bredboard üzerindeki güce bağlanmalıdır, güç kaynağı 9V'luk bir pildir.

Adım üç. Bir uzaklık ölçerin takılması.
Ultrasonik sensör şunları sağlar: robot Hareket ederken yolundaki engellerden kaçının. Sensör standart bir servo üzerinde bulunur ve robotun ön kısmına monte edilecektir. Robot 10 cm yakınında bir engel fark ettiği anda servo her iki yönde de dönmeye başlayacak ve böylece bir geçit arayacaktır. Arduino, sensörden gelen bilgileri okur ve hangi tarafın daha fazla hareket için daha uygun olduğuna karar verir.
Öncelikle sensöre bir servo sürücü takılır. Yazar, servo sürücüyü her yönde yalnızca 90 derece dönebilecek şekilde sabitlemiştir, diğer bir deyişle servo sürücünün tam dönüşü 180 derece olacaktır.

Sensörün üç kontağı GND, sinyal ve 5V'dir. 5V güç, Arduino'nun 5V güç kaynağına, GND'den GND'ye ve sinyal Arduino'nun 7 numaralı pinine bağlanır.

Adım dört. Beslenme.
Arduino, 9V'luk bir bataryadan güç alır, uygun konektöre bağlanır. Motorlar, pil tutucusuna takılı dört adet D tipi pille çalıştırılır. Motorlara güç almak için tutucu kablolar, SN754410NE motor sürücüsünün önceden kurulu olduğu karta bağlanır.

Beşinci adım. Robotun montajı.
Önceki tüm adımları tamamladıktan sonra sıra tüm parçaları bir araya getirmeye geldi. Öncelikle Arduino tankın tabanına bağlanır. Bundan sonra robotun ön kısmına sıcak tutkal kullanılarak ultrasonik mesafe bulucu yapıştırılır. Daha sonra yazar pilleri Arduino'nun yanına takar. Piller tankın herhangi bir yerine takılabilir. Tüm bileşenler monte edildikten sonra, tüm kablolar çekildi ve montajın doğru yapıldığından emin olmak için karta güç uygulandı.

Altıncı adım. Program kodu.
Tankın montajını tamamladıktan sonra sıra onun için bir program yazmaya geldi. Program robota bir engelle çarpışmayı önlemek için ne zaman hareket etmesi ve ne zaman durması gerektiğini göstermelidir. Yazardan kod yazarken

Robot, bir RC tankından bir şasi ve aşağıda listesi verilen diğer birkaç bileşenden oluşur. Bu benim ilk projem ve Arduino platformunu beğendim. Bu robotu yaratırken kitaplardan ve internetten materyaller kullandım.

Gerekli malzemeler
1. Radyo kontrollü bir tankın şasisi.
2.Arduino Uno.
3. Breadboard ve jumperlar.
4. Entegre motor sürücüsü SN754410NE.
5. Standart servo sürücü.
6. Ultrasonik telemetre.
7. 9V pil ve bunun için konektör.
8. 4 D pil ve onlar için bir konektör.
9. USB A-B kablosu.
10. Taban 6" x 6".

Aletler
1. Tornavida seti.
2. Sıcak tutkal tabancası.
3. Lehim ve havya.

Şasi

Şasisini 10 dolara aldığım bir tanktan aldım. Tabanı her yere takılabilir ama ben ortasına taktım.

Motor sürücüsü SN754410NE

Motorları kontrol etmek için SN754410NE sürücüsünü kullandım. Bende olduğu için kullandım ama siz L293 gibi başka bir tane kullanabilirsiniz.

Şimdi sürücüyü Arduino Uno'ya bağlama hakkında. Tüm GND pinlerini (4,5,12,13) ​​devre tahtasının GND'sine bağlayın. Sürücünün 1 ve 16 numaralı pinlerini Arduino'nun 9 ve 10 numaralı pinlerine bağlayın. Sürücü pinleri 2 ve 7'yi Arduino'nun pinleri 3 ve 4'e bağlayın, bunlar sol motorun kontrol pinleridir. 10 ve 15 numaralı sürücü pinlerini Arduino'nun 5 ve 6 numaralı pinlerine bağlayın, bunlar sağ motorun kontrol pinleridir. 3 ve 6 numaralı kontakları sol motora ve 14 ve 11 numaralı kontakları sağa bağlayın. 8 ve 16 numaralı pinler devre tahtası üzerindeki güce bağlanmalıdır. Güç kaynağı: 9V pil.

Ultrasonik telemetre, robotun hareket ederken engellerden kaçınmasına yardımcı olur. Robotun ön tarafında bulunan standart bir servo üzerinde bulunur. Robot 10 cm ötedeki bir nesneyi tespit ettiğinde servo dönmeye başlar ve bir geçit arar ve ardından Arduino hangi tarafta hareket etmenin en keyifli olduğuna karar verir.
Ona bir konnektör takın. Servoyu her yönde 90 dereceden fazla dönmeyecek şekilde sınırlayın.

Sensörün üç kontağı GND, 5V ve bir sinyali vardır. GND'yi GND'ye, 5V'yi 5V Arduino'ya bağlayın ve sinyali Arduino'nun 7 numaralı pinine bağlayın.

Beslenme

Arduino, uygun konektör aracılığıyla 9V pil ile çalıştırılır. Motorlara güç vermek için 4 adet D boyutlu pil ve uygun konnektör kullandım. Motorlara güç vermek için tutucudan gelen kabloları SN754410NE ile karta bağlayın.

Toplantı

Tüm parçalar hazır olduğunda sıra onları birleştirmeye geliyor. Öncelikle Arduino'yu tabana bağlamamız gerekiyor. Daha sonra sıcak tutkal kullanarak uzaklık ölçeri servo sürücüyle robotun ön kısmına yapıştırıyoruz. Daha sonra pilleri takmanız gerekir. Onları istediğiniz yere yerleştirebilirsiniz ama ben onları Arduino'nun yanına yerleştirdim. Her şey hazır olduğunda Arduino'nun çalıştığından emin olmak için robotu açabilirsiniz.

programı

Yani robotu monte ettikten sonra sıra onun için bir program yazmaya geldi. Birkaç gün geçirdikten sonra yazdım.
Robot, nesneden 10 cm'den daha uzakta olduğu sürece düz bir çizgide hareket edecek, nesneyi fark ettiğinde sensörü döndürerek bir yol aramaya başlayacak. Tarama tamamlandığında program hareket için en uygun tarafı seçer. Robot çıkmaz noktadaysa 180 derece döner.
Programı aşağıdan indirebilirsiniz. Değiştirebilir ve tamamlayabilirsiniz.

Görüntüleme