İçindekiler:
- 1. Adım: Eğitim Konumu Değiştirildi
- 2. Adım: SnappyXO Diferansiyel Tahrik Robotunu Oluşturun
- Adım 3: Elektroniği Bağlayın
- Adım 4: PreciseMovement Arduino Kütüphanesini Kurun
- Adım 5: Kod
- Adım 6: Nasıl Çalışır?
Video: SnappyXO Hassas Hareket Ettirici Robot: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Arduino robotunuzu PreciseMovement Arduino kitaplığını kullanarak belirli bir mesafe için düz veya belirli bir açıya döndürün.
Robot, dönerken sürtünmeyi en aza indirmek için dönen bilyeli bir tekere veya eşdeğerine ihtiyaç duyar.
www.pololu.com/product/954
Robota belirli bir mesafeye kadar ilerlemesini veya belirli bir açıya dönmesini söyleyebilirsiniz. Program, ölü hesaplaşmayı kullanarak konumunu belirler. Konum tahminleri yalnızca tekerlek hızına dayandığından, kayma önemli hatalara neden olacaktır. Robotun tasarımcısı, kayma riskini en aza indirmek için dikkatli olmalıdır.
Bu, SnappyXO robotu ile çalışmak üzere test edilmiştir.
1. Adım: Eğitim Konumu Değiştirildi
Eğitim aşağıdaki sayfaya taşınmıştır. Bu öğretici artık korunmuyor.
sites.google.com/stonybrook.edu/premo
2. Adım: SnappyXO Diferansiyel Tahrik Robotunu Oluşturun
Kullanacağımız PreciseMovement kütüphanesi sadece diferansiyel tahrikli robotlarla uyumludur. Diğer 2 tekerlekten çekişli robotları kullanmayı seçebilirsiniz.
Adım 3: Elektroniği Bağlayın
Standart SnappyXO Optik Kodlayıcı için:
D0 (enkoder çıkışı) -> Arduino Dijital Pin
VCC -> Arduino 5V
GND -> GND
Motor ve Arduino Gücü:
Motor güç kaynağı, kullandığınız motorlar için yeterli olmalıdır. SnappyXO kiti için motor gücü için 4AA pil ve Arduino gücü için 9V pil kullanılmaktadır. Hepsinin ortak bir GND'ye sahip olduğundan emin olun.
Adım 4: PreciseMovement Arduino Kütüphanesini Kurun
İndirmek:
github.com/jaean123/PreciseMovement-library/releases
Arduino Kütüphanesi nasıl kurulur:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Adım 5: Kod
Arduino Kodu:
create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/önizleme
Bu parametreler ayar gerektirir. Kodda önerilen diğer parametreler daha iyi performans için ayarlanabilir.
- ARDUINO PINS altındaki motor pinlerini kontrol edin ve ayarlayın.
-
UZUNLUK ve YARIÇAP'ı ayarlayın.
- UZUNLUK, sol tekerlekten sağ tekerleğe olan mesafedir.
- RADIUS, tekerleğin yarıçapıdır.
-
Bir tekerlek dönüşü için enkoder çıkışlarının pals sayısı olan PULSES_PER_REV'i ayarlayın.
- Bunun, enkoderler doğrudan tekerlek milinden okumak üzere bağlanmadığı sürece, bir motor mili devri için enkoder çıkışlarının sayısından farklı olduğuna dikkat edin.
- PULSES_PER_REV = (motor milinin bir devri başına darbeler) x (dişli oranı)
-
İleri hareketten sonra robotun aşırı atış yaptığını görürseniz STOP_LENGTH ayarlayın.
Robot, tahmini konum hedeften STOP_LENGTH uzakta olduğunda duracaktır. Böylece STOP_LENGTH, robotun durması için gereken yaklaşık mesafedir
-
PID parametreleri
KP_FW: Bu, ileri hareketin orantılı bileşenidir. Robot düz gidene kadar bunu artırın. Bunu ayarlayarak düz gitmesini sağlayamazsanız, donanım büyük olasılıkla hatalıdır. (örn. tekerlek yanlış hizalaması, vb.)
KP_TW: Bu, büküm hareketi PID'sinin orantılı bileşenidir. Basitçe düşük bir değerden başlayın ve büküm hızı veya robotun büküm sırasındaki açısal hızı yeterince hızlı olana kadar bunu artırın, ancak aşmaya neden olmaz. Gözlem yapmak için, döngü fonksiyonuna aşağıdakileri ekleyerek robotun 0'dan 90'a ve geriye doğru değişmesini sağlayabilirsiniz
KP_FW'yi ayarlamak için bunu döngüye yerleştirin:
mover.forward(99999);
KP_TW'yi ayarlamak için 0'dan 90'a geçiş yapmak için bunu döngüye yerleştirin:
mover.twist(90); // 90 CW'yi çevir
gecikme(2000);
mover.twist(-90) // CCW 90'ı çevir
gecikme(2000);
TARGET_TWIST_OMEGA'da açısal hızı fiilen döndürmek için KI_TW'nin de ayarlanması gerektiğine dikkat edin, çünkü orantısal bir kontrolör asla tam hedefe yerleşmeyecektir. Ancak, tam olarak bu açısal hızda bükülmek gerekli değildir. Açısal hızın yeterince yavaş olması gerekir.
Adım 6: Nasıl Çalışır?
Nasıl çalıştığını merak ediyorsanız okumaya devam edin.
İleriye doğru hareket, düz bir çizgi yolunda saf takip algoritması kullanılarak düz tutulur. Pure Pursuit hakkında daha fazla bilgi:
Büküm PID denetleyicisi, büküm açısal hızını TARGET_TWIST_OMEGA'da tutmaya çalışır. Bu açısal hızın tekerleklerin değil tüm robotun açısal hızı olduğuna dikkat edin. Yalnızca bir PID denetleyicisi kullanılır ve çıkış hem sol hem de sağ motorların PWM yazma hızıdır. Açıyı hesaplamak için ölü hesap yapılır. Açı hata eşiğine ulaştığında robot durur.
Önerilen:
Arduino Nano ile Waveshare E-ink Ekran Hassas Voltmetre (0-90v DC): 3 Adım
Arduino Nano ile Waveshare E-mürekkep Ekran Hassas Voltmetre (0-90v DC) E-Kağıt Ekranında volt DC. Bu talimat, önceki iki projeyi birleştirir: - Ardui
Arduino Hassas ve Doğru Volt Metre (0-90V DC): 3 Adım
Arduino Hassas ve Doğru Volt Ölçer (0-90V DC): Bu talimatta, bir Arduino Nano kullanarak yüksek voltajları DC (0-90v) göreceli hassasiyet ve doğrulukla ölçmek için bir voltmetre oluşturdum. Aldığım test ölçümleri yeterince doğruydu, çoğunlukla ölçülen gerçek voltajın 0,3v'si içinde
Arduino Nano - MPL3115A2 Hassas Altimetre Sensör Eğitimi: 4 Adım
Arduino Nano - MPL3115A2 Hassas Altimetre Sensörü Eğitimi: MPL3115A2, doğru Basınç/İrtifa ve Sıcaklık verileri sağlamak için I2C arayüzüne sahip bir MEMS basınç sensörü kullanır. Sensör çıkışları, yüksek çözünürlüklü 24 bit ADC ile sayısallaştırılır. Dahili işleme, ücretlendirme görevlerini aşağıdakilerden kaldırır
Arduino: Hassas Robot: 6 Adım
Arduino: Hassas Robot: Merhaba.Arduino ve diğer birkaç parça ile nasıl robot yapabileceğinizi göstermek istiyorum. Peki neye ihtiyacımız var? Arduino. Leonardo'm var ama önemli değil H köprüsü TB6612FNG veya diğer Robot Şasi, örneğin DAGU DG012-SV
Hareket Kontrollü Çıkış - Hareket Algılayıcı Işıktan: 6 Adım
Hareket Kontrollü Çıkış - Hareket Algılama Işığından: Bloktaki en korkunç eve giden bir şeker mi şaka mı olduğunuzu hayal edin. Tüm hortlakları, hayaletleri ve mezarlıkları geçtikten sonra nihayet son yola ulaşırsınız. Şekeri önünüzde bir kasede görebilirsiniz! Ama sonra aniden bir gho