Mündəricat:

SnappyXO Precise Mover Robot: 6 addım
SnappyXO Precise Mover Robot: 6 addım

Video: SnappyXO Precise Mover Robot: 6 addım

Video: SnappyXO Precise Mover Robot: 6 addım
Video: Tricycle Drive SnappyXO Robot 2024, Noyabr
Anonim
SnappyXO Precise Mover Robotu
SnappyXO Precise Mover Robotu

PrecisionMovement Arduino kitabxanasından istifadə edərək Arduino robotunuzu müəyyən bir məsafəyə düz getməsini və ya müəyyən bir açı ilə bükülməsini təmin edin.

Bükülmə zamanı sürtünməni minimuma endirmək üçün robotun yuvarlanan bir topa və ya ekvivalentinə ehtiyacı var.

www.pololu.com/product/954

Robota müəyyən bir məsafəyə irəliləməyi və ya müəyyən bir açı ilə bükülməsini söyləyə bilərsiniz. Proqram öz mövqeyini ölü hesablamalar vasitəsi ilə müəyyənləşdirir. Mövqe hesablamaları yalnız təkər sürətinə əsaslandığından sürüşmə əhəmiyyətli səhvlərə səbəb olacaq. Robotun dizayneri sürüşmə riskini minimuma endirmək üçün diqqətli olmalıdır.

Bu SnappyXO robotu ilə işləmək üçün sınaqdan keçirilmişdir.

Addım 1: Dərsliyin yeri dəyişdirildi

Dərslik aşağıdakı səhifəyə köçürüldü. Bu dərslik artıq saxlanılmır.

sites.google.com/stonybrook.edu/premo

Addım 2: SnappyXO Diferensial Sürücü Robotu yaradın

İstifadə edəcəyimiz PreciseMovement kitabxanası yalnız diferensial sürücü robotları ilə uyğundur. Digər 2 təkərli robotlardan istifadə etməyi seçə bilərsiniz.

Addım 3: Elektronikanı qoşun

Elektronikaya qoşun
Elektronikaya qoşun

Standart SnappyXO Optik Kodlayıcı üçün:

D0 (kodlayıcı çıxışı) -> Arduino Rəqəmsal Pin

VCC -> Arduino 5V

GND -> GND

Motor və Arduino Gücü:

Motorun enerji mənbəyi istifadə etdiyiniz mühərriklərə uyğun olmalıdır. SnappyXO dəsti üçün motor gücü üçün 4AA, Arduino gücü üçün 9V batareya istifadə olunur. Hamısının ortaq bir GND olduğuna əmin olun.

Addım 4: PreciseMovement Arduino Kitabxanasını quraşdırın

Yüklə:

github.com/jaean123/PreciseMovement-library/releases

Arduino Kitabxanasını necə quraşdırmaq olar:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Addım 5: Kod

Arduino Kodu:

create.arduino.cc/editor/ whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview

Bu parametrlər tənzimləmə tələb edir. Kodda tövsiyə olunan etiketli digər parametrlər daha yaxşı performans üçün tənzimlənə bilər.

  • Motor pinlərini ARDUINO PINS altında yoxlayın və quraşdırın.
  • LENGTH və RADIUS -u təyin edin.

    • UZUNLUQ, sol təkərdən sağ təkərə olan məsafədir.
    • RADIUS təkərin radiusudur.
  • PULSES_PER_REV -ni təyin edin, bu kodlayıcı bir təkər inqilabı üçün çıxan pulsların sayıdır.

    • Enkoderlərin təkər şaftından oxumaq üçün bağlı olmadığı təqdirdə, bu, bir motor mili inqilabı üçün enkoderin çıxdığı puls sayından fərqlidir.
    • PULSES_PER_REV = (motor milinin bir inqilabı üçün pulslar) x (dişli nisbəti)
  • Robotun irəli hərəkətindən sonra atış etdiyini görürsünüzsə STOP_LENGTH təyin edin.

    Təxmini mövqe hədəfdən STOP_LENGTH uzaqlaşdıqda robot dayanacaq. Beləliklə, STOP_LENGTH, robotun dayanması üçün lazım olan təxmini məsafədir

  • PID parametrləri

    KP_FW: Bu irəli hərəkətin mütənasib komponentidir. Robot düz gedənə qədər bunu artırın. Bunu düzəltməklə düz yola gedə bilmirsinizsə, ehtimal ki, cihaz günahkardır. (məsələn, təkərlərin uyğunsuzluğu və s.)

    KP_TW: Bu, PID bükülmə hərəkətinin mütənasib komponentidir. Sadəcə aşağı bir dəyərdən başlayın və bükülmə sürəti və ya bükülmə zamanı robotun açısal sürəti kifayət qədər sürətli olana qədər artırın, ancaq aşmağa səbəb olmayın. Müşahidələr aparmaq üçün, loop funksiyasına aşağıdakıları daxil edərək robotu 0 -dan 90 -a və geriyə dəyişə bilərsiniz

KP_FW tənzimləmək üçün bunu döngəyə qoyun:

mover.forward (99999);

KP_TW -ni tənzimləmək üçün 0 -dan 90 -a qədər dəyişmək üçün bunu döngəyə qoyun:

mover.twist (90); // Twist 90 CW

gecikmə (2000);

mover.twist (-90) // Twist 90 CCW

gecikmə (2000);

Nəzərə alın ki, TARGET_TWIST_OMEGA -da açısal sürəti əslində bükmək üçün KI_TW -ni də tənzimləmək lazımdır, çünki mütənasib nəzarətçi heç vaxt dəqiq hədəfə çatmayacaq. Bununla birlikdə, bu açı sürətində bükülməyə ehtiyac yoxdur. Bucaq sürətinin kifayət qədər yavaş olması lazımdır.

Addım 6: Necə Çalışır

Bunun necə işlədiyi ilə maraqlanırsınızsa, oxuyun.

İrəli hərəkət düz bir yolda təmiz təqib alqoritmi ilə düz saxlanılır. Saf təqibdə daha çox:

Bükülmə PID nəzarətçisi bükülmə açısal sürətini TARGET_TWIST_OMEGA səviyyəsində saxlamağa çalışır. Qeyd edək ki, bu açısal sürət təkərlərin deyil, bütün robotun bucaq sürətidir. Yalnız bir PID nəzarətçisi istifadə olunur və çıxışı həm sol, həm də sağ mühərriklərin PWM yazma sürətidir. Bucağı hesablamaq üçün ölü hesablamalar aparılır. Bucaq səhv həddinə çatdıqda robot dayanır.

Tövsiyə: