Ayak bakımı

Arduino'dan DIY tank savaşı. Radyo kontrollü bir tank nasıl yapılır: uzaktan kumanda ve kamera ile casusluk yapın. Onu hareket ettirmeliyim

Arduino'dan DIY tank savaşı.  Radyo kontrollü bir tank nasıl yapılır: uzaktan kumanda ve kamera ile casusluk yapın.  Onu hareket ettirmeliyim


Ö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ı gerekir. 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.

Bizim radyo kontrollü tank hazır.

Bu gönderi, bunun benden başka biri için ilginç olup olmadığını görmek için ilk test olacak. onun içinde anlatacağım Genel yapı, teknolojiler ve kullanılan cihazlar.

Güncelleme: video eklendi.


Öncelikle dikkat çekmek için kısa bir video. Ses tankın hoparlöründen geliyor.

Her şeyin başladığı yer

Uzun zaman önce paletli bir şasi üzerinde uzaktan yönlendirilebilen bir robot yapma hayalim vardı. Asıl sorun doğrudan iletişimin olmamasıydı. paletli şasi. Sonunda, sökmek için radyo kontrollü bir tank almaya karar vermiştim, ancak şanslıydım; mağazada, çöplerin arasında elektronikleri yanmış bir Snow Leopard (Pershing) - ABD M26 tankı buldum, ancak tamamen servis edilebilir mekanik parça. Bu tam olarak ihtiyaç duyulan şeydi.

Şasiye ek olarak fırçalı motorlar için iki adet voltaj regülatörü, iki servodan oluşan kamera tripodu, mjpeg donanım destekli web kamerası ve harici WiFi kartı TP-LINK TL-WN7200ND satın alındı. Kısa bir süre sonra, cihazlar listesine taşınabilir bir hoparlör, Creative SoundBlaster Play USB ses hoparlörü ve basit bir mikrofonun yanı sıra tüm bunları Raspberry Pi olan kontrol modülüne bağlamak için birkaç USB hub eklendi. Tankın tareti sökülmüştü; tüm standart mekanikler geri bildirim olmadan geleneksel motorlar üzerine inşa edildiğinden onu yönlendirmek çok elverişsizdi.

Hemen rezervasyon yaptırayım ki, fotoğraflar üretim sürecinde değil, tank neredeyse hazır olduğunda çekilmiştir.

Güç ve Kablolama


Pil bölmesine sığabilecek en büyük Li-Po pili doldurdum. Genellikle model arabalarda kullanılan, sert kutu içerisinde iki hücreli 3300 mAh pil olduğu ortaya çıktı. Lehim yapamayacak kadar tembeldim, bu yüzden tüm anahtarlamalar için 2,54 adımlı standart bir devre tahtası kullandım. Daha sonra üst kapakta ikinci bir tane ve onları birbirine bağlayan bir kablo belirdi. İki motorun her biri için, bonus olarak yaklaşık 5,6 voltluk stabilize güç sağlayan kendi voltaj regülatörüm vardı. Raspberry ve Wi-Fi kartına bir regülatörden güç sağlanıyordu, ikincinin gücü ise servolara ve çevre birimleriyle birlikte bir USB hub'a gidiyordu.

Onu hareket ettirmeliyim

Bir şekilde başlatılması gerekiyordu. Ahududu tesadüfen seçilmedi. Birincisi, normal tam teşekküllü bir Linux kurmanıza izin verir ve ikincisi, diğer şeylerin yanı sıra servolar ve hız kontrolörleri için bir darbe sinyali üretebilen bir dizi GPIO ayağına sahiptir. ServoBlaster yardımcı programını kullanarak böyle bir sinyal oluşturabilirsiniz. Başlattıktan sonra, içine 0=150 gibi bir şey yazabileceğiniz bir /dev/servoblaster dosyası oluşturur; burada 0, kanal numarasıdır ve 150, onlarca mikrosaniye cinsinden darbe uzunluğudur, yani 150, 1,5 milisaniyedir (çoğu servoların değer aralığı 700-2300 ms'dir).
Böylece regülatörleri GPIO pinleri 7 ve 11'e bağlarız ve servoblaster'ı şu komutla başlatırız:

# servod --min=70 --max=230 --p1pins=7.11
Şimdi /dev/servoblaster'a 0=230 ve 1=230 satırlarını yazarsanız tank ileri doğru koşacaktır.

Muhtemelen ilk defa yeterli. Yazıyı beğenirseniz ilerleyen yazılarda yavaş yavaş detayları yazacağım. Ve son olarak birkaç fotoğraf daha ve yeni çekilmiş bir video. Doğru, kalite pek iyi değildi, bu yüzden estetikçilerden şimdiden özür dilerim.

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 Arduino platformundaki ilk projesi ve onu kullanmaktan memnun kaldı. 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 arzulanan çok şey bıraktı, bu yüzden kendiminkini monte etmek zorunda kaldım, montajı Sonraki adım. Ş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.
- Bredboard üzerindeki güce 8 ve 16 numaralı pinler bağlanmalıdır, güç kaynağı 9V'luk bir pildir.

Adım üç. Bir uzaklık ölçerin takılması.
Ultrasonik sensör, robotun hareket ederken yolundaki engellerden kaçınmasını sağlar. 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

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 quadcopter'in yapım maliyeti kadar harika görünüyor, 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 desteklediğinden beri çok çeşitli eklentiler ve modüller (RC/WiFi/Bluetooth), 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ı internetten buluyorum - sadece en iyi fiyat. 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 alacaksınız en iyi ürün bu para için. 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 yapılandırılması gerekmektedir. azami hız 320/400, bunun ne anlama geldiğini yakında kod adımında öğreneceksiniz.

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


Robotiğe çok uzun zamandır ilgim var ve söyleyebilirim. Ne en iyi sürücü motorlar Pololu Dual VNH5019'dur. Güç ve verimlilik söz konusu olduğunda, bu en iyi seçenek, ancak fiyat hakkında konuştuğumuzda açıkça dostumuz değil.

Başka bir seçenek de L298 sürücüsünü oluşturmak olacaktır. 1 L298, tek motor için tasarlanmıştır; bu, motorlar için en iyi çözümdür. yüksek güç akım. 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ı arttırmaktı. boş alan FPV bileşenleri drone'nun alt kısmında çok yer kapladığından Arduino ve motor sürücüsüne yer kalmaz.

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 var farklı şekiller radyo kontrollü oyuncaklar için kontrolörler: su, toprak, 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.

Açık şu an Turnigy 9XR Verici Modu 2 (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 ö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, kumandanız ve modülleriniz olsa bile, kumandanıza uygun pilleriniz olana kadar onu açamayacaksınız. 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 botunuzun gördüklerini ekranda görmelisiniz.

FPV sinyal aralığı

Proje, 1,5 - 2 km'ye kadar mesafede çalışabilen ucuz bir modül kullandı, ancak bu, cihazın kullanımı için geçerlidir. boş alan bir sinyal almak istiyorsanız daha fazla güç, daha sonra örneğin 1000 mW gibi daha yüksek güçlü bir verici satın alın. 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!