İçindekiler:

SnappyXO Hassas Hareket Ettirici Robot: 6 Adım
SnappyXO Hassas Hareket Ettirici Robot: 6 Adım

Video: SnappyXO Hassas Hareket Ettirici Robot: 6 Adım

Video: SnappyXO Hassas Hareket Ettirici Robot: 6 Adım
Video: Стюарт Хамерофф: Пенроуз и фрактальное сознание 2024, Kasım
Anonim
SnappyXO Hassas Hareket Ettirici Robot
SnappyXO Hassas Hareket Ettirici Robot

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

Elektroniği bağlayın
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: