Isi kandungan:

SnappyXO Precise Mover Robot: 6 Langkah
SnappyXO Precise Mover Robot: 6 Langkah

Video: SnappyXO Precise Mover Robot: 6 Langkah

Video: SnappyXO Precise Mover Robot: 6 Langkah
Video: Tricycle Drive SnappyXO Robot 2024, November
Anonim
Robot SnappyXO Precise Mover
Robot SnappyXO Precise Mover

Jadikan robot Arduino anda lurus untuk jarak yang ditentukan atau putar ke sudut yang ditentukan menggunakan perpustakaan PreciseMovement Arduino.

Robot itu memerlukan roller ball caster atau setara untuk mengurangkan geseran semasa berpusing.

www.pololu.com/product/954

Anda boleh memberitahu robot untuk maju ke jarak yang ditentukan atau berpusing ke sudut yang ditentukan. Program ini menentukan kedudukannya dengan menggunakan perhitungan mati. Oleh kerana anggaran kedudukan hanya bergantung pada halaju roda, gelinciran akan menyebabkan kesalahan yang besar. Pereka robot harus berhati-hati untuk mengurangkan risiko tergelincir.

Ini telah diuji untuk bekerja dengan robot SnappyXO.

Langkah 1: Lokasi Tutorial Berubah

Tutorial telah dipindahkan ke halaman di bawah. Tutorial ini tidak lagi dikekalkan.

sites.google.com/stonybrook.edu/premo

Langkah 2: Bina Robot Pemacu Pembezaan SnappyXO

Perpustakaan PreciseMovement yang akan kita gunakan hanya serasi dengan robot pemacu pembezaan. Anda boleh memilih untuk menggunakan robot pemacu roda dua yang lain.

Langkah 3: Sambungkan Elektronik

Sambungkan Elektronik
Sambungkan Elektronik

Untuk Encoder Optik SnappyXO standard:

D0 (output pengekod) -> Pin Digital Arduino

VCC -> Arduino 5V

GND -> GND

Kuasa Motor dan Arduino:

Sumber kuasa motor harus mencukupi untuk motor yang anda gunakan. Untuk kit SnappyXO, bateri 4AA digunakan untuk kuasa motor dan bateri 9V untuk kuasa Arduino. Pastikan bahawa mereka semua mempunyai GND yang sama.

Langkah 4: Pasang Perpustakaan PreciseMovement Arduino

Muat turun:

github.com/jaean123/PreciseMovement-library/releases

Cara memasang Perpustakaan Arduino:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Langkah 5: Kod

Kod Arduino:

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

Parameter ini memerlukan penyesuaian. Parameter lain yang dilabel yang disarankan pada kod dapat disesuaikan untuk prestasi yang lebih baik.

  • Periksa dan tetapkan pin motor di bawah PIN ARDUINO.
  • Tetapkan PANJANG dan RADIUS.

    • PANJANG adalah jarak dari roda kiri ke roda kanan.
    • RADIUS ialah jejari roda.
  • Tetapkan PULSES_PER_REV, yang merupakan bilangan denyutan output pengekod untuk revolusi satu roda.

    • Perhatikan ini berbeza dengan bilangan denyutan output pengekod untuk satu putaran poros motor melainkan pengekod disambungkan untuk dibaca terus dari batang roda.
    • PULSES_PER_REV = (nadi per satu putaran aci motor) x (nisbah gear)
  • Tetapkan STOP_LENGTH jika anda melihat bahawa robot melakukan overload setelah pergerakan ke depan.

    Robot akan berhenti sebaik sahaja kedudukan anggaran STOP_LENGTH jauh dari sasaran. Oleh itu, STOP_LENGTH, adalah jarak anggaran yang diperlukan untuk robot berhenti

  • Parameter PID

    KP_FW: Ini adalah komponen berkadar gerakan maju. Tingkatkan ini sehingga robot berjalan lurus. Sekiranya anda tidak dapat melakukannya dengan lurus dengan menala ini, maka perkakasan mungkin salah. (mis. penyelarasan roda, dll)

    KP_TW: Ini adalah komponen berkadar PID gerakan memutar. Cukup mulakan dari nilai yang rendah dan tingkatkan ini sehingga kelajuan putaran, atau kelajuan sudut robot semasa berpusing, cukup cepat, tetapi tidak menyebabkan keterlaluan. Untuk membuat pemerhatian, anda boleh membuat robot bergantian dari 0 hingga 90 dan ke belakang dengan memasukkan yang berikut dalam fungsi gelung

Letakkan ini dalam pusingan untuk menyesuaikan KP_FW:

penggerak.forward (99999);

Letakkan ini dalam keadaan bergantian dari 0 hingga 90 untuk menyesuaikan KP_TW:

penggerak.twist (90); // Putar 90 CW

kelewatan (2000);

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

kelewatan (2000);

Perhatikan bahawa untuk benar-benar memutar kelajuan sudut pada TARGET_TWIST_OMEGA, KI_TW juga perlu ditala kerana pengawal berkadar tidak akan pernah mencapai sasaran yang tepat. Walau bagaimanapun, tidak perlu memutar pada halaju sudut tepat. Kelajuan sudut hanya perlu cukup perlahan.

Langkah 6: Bagaimana Ia Berfungsi

Sekiranya anda ingin tahu tentang cara kerjanya, baca terus.

Pergerakan ke depan terus lurus menggunakan algoritma pengejaran murni pada jalur garis lurus. Lebih lanjut mengenai Pure Pursuit:

Pengawal twist PID cuba mengekalkan kelajuan sudut putar pada TARGET_TWIST_OMEGA. Perhatikan bahawa halaju sudut adalah halaju sudut keseluruhan robot bukan roda. Hanya satu pengawal PID yang digunakan dan outputnya adalah kelajuan tulis PWM kedua-dua motor kiri dan kanan. Pengiraan mati dilakukan untuk mengira sudut. Setelah sudut mencapai ambang ralat, robot berhenti.

Disyorkan: