Daftar Isi:

Robot Penggerak Tepat SnappyXO: 6 Langkah
Robot Penggerak Tepat SnappyXO: 6 Langkah

Video: Robot Penggerak Tepat SnappyXO: 6 Langkah

Video: Robot Penggerak Tepat SnappyXO: 6 Langkah
Video: ROBOT LENGAN menggunakan 6 buah Motor Servo 2024, November
Anonim
Robot Penggerak Tepat SnappyXO
Robot Penggerak Tepat SnappyXO

Buat robot Arduino Anda lurus untuk jarak tertentu atau putar ke sudut tertentu menggunakan perpustakaan PreciseMovement Arduino.

Robot membutuhkan rolling ball caster atau setara untuk meminimalkan gesekan saat memutar.

www.pololu.com/product/954

Anda dapat memberi tahu robot untuk maju ke jarak tertentu atau memutar ke sudut tertentu. Program menentukan posisinya menggunakan perhitungan mati. Karena perkiraan posisi hanya mengandalkan kecepatan roda, selip akan menyebabkan kesalahan yang cukup besar. Perancang robot harus berhati-hati untuk meminimalkan risiko selip.

Ini telah diuji untuk bekerja dengan robot SnappyXO.

Langkah 1: Lokasi Tutorial Berubah

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

sites.google.com/stonybrook.edu/premo

Langkah 2: Bangun Robot Penggerak Diferensial SnappyXO

Pustaka PreciseMovement yang akan kita gunakan hanya kompatibel dengan robot penggerak diferensial. Anda dapat memilih untuk menggunakan robot penggerak 2 roda lainnya.

Langkah 3: Hubungkan Elektronik

Hubungkan Elektronik
Hubungkan Elektronik

Untuk Encoder Optik SnappyXO standar:

D0 (output encoder) -> Pin Digital Arduino

VCC -> Arduino 5V

GND -> GND

Daya Motor dan Arduino:

Sumber daya motor harus memadai untuk motor yang Anda gunakan. Untuk kit SnappyXO, baterai 4AA digunakan untuk daya motor dan baterai 9V untuk daya Arduino. Pastikan bahwa mereka semua memiliki GND yang sama.

Langkah 4: Instal Perpustakaan Arduino PreciseMovement

Unduh:

github.com/jaean123/PreciseMovement-library/releases

Cara menginstal Perpustakaan Arduino:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Langkah 5: Kode

Kode Arduino:

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

Parameter ini memerlukan penyesuaian. Parameter lain yang diberi label direkomendasikan pada kode dapat disesuaikan untuk kinerja yang lebih baik.

  • Periksa dan setel pin motor di bawah PIN ARDUINO.
  • Atur PANJANG dan RADIUS.

    • PANJANG adalah jarak dari roda kiri ke roda kanan.
    • RADIUS adalah jari-jari roda.
  • Atur PULSES_PER_REV, yang merupakan jumlah pulsa yang dikeluarkan encoder untuk satu putaran roda.

    • Perhatikan ini berbeda dari jumlah pulsa yang dihasilkan encoder untuk satu putaran poros motor kecuali jika encoder terhubung untuk membaca langsung dari poros roda.
    • PULSES_PER_REV = (pulsa per satu putaran poros motor) x (rasio roda gigi)
  • Setel STOP_LENGTH jika Anda melihat robot melakukan overshoot setelah gerakan maju.

    Robot akan berhenti setelah perkiraan posisi berjarak STOP_LENGTH dari target. Jadi, STOP_LENGTH, adalah perkiraan jarak yang dibutuhkan robot untuk berhenti

  • Parameter PID

    KP_FW: Ini adalah komponen proporsional dari gerak maju. Tingkatkan ini sampai robot berjalan lurus. Jika Anda tidak dapat menjalankannya secara langsung dengan menyetel ini, kemungkinan perangkat kerasnya yang salah. (mis. ketidaksejajaran roda, dll)

    KP_TW: Ini adalah komponen proporsional dari PID gerakan memutar. Cukup mulai dari nilai yang rendah dan tingkatkan ini hingga kecepatan putaran, atau kecepatan sudut robot saat memutar, cukup cepat, tetapi tidak menyebabkan overshoot. Untuk melakukan pengamatan, Anda dapat meminta robot bergantian dari 0 hingga 90 dan kembali dengan memasukkan yang berikut ini ke dalam fungsi loop

Tempatkan ini dalam lingkaran untuk menyetel KP_FW:

mover.forward(99999);

Tempatkan ini dalam lingkaran untuk bergantian dari 0 hingga 90 untuk menyetel KP_TW:

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

penundaan(2000);

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

penundaan(2000);

Perhatikan bahwa untuk benar-benar memutar kecepatan sudut pada TARGET_TWIST_OMEGA, KI_TW juga perlu disetel karena pengontrol proporsional tidak akan pernah mencapai target yang tepat. Namun, tidak perlu memutar pada kecepatan sudut yang tepat itu. Kecepatan sudut hanya perlu cukup lambat.

Langkah 6: Cara Kerjanya

Jika Anda penasaran dengan cara kerjanya, baca terus.

Gerakan maju dijaga tetap lurus menggunakan algoritme pengejaran murni pada jalur garis lurus. Selengkapnya tentang Pursuit Murni:

Kontroler PID putaran mencoba untuk menjaga kecepatan sudut putaran pada TARGET_TWIST_OMEGA. Perhatikan bahwa kecepatan sudut ini adalah kecepatan sudut seluruh robot bukan roda. Hanya satu pengontrol PID yang digunakan dan outputnya adalah kecepatan tulis PWM dari motor kiri dan kanan. Perhitungan mati dilakukan untuk menghitung sudut. Setelah sudut mencapai ambang kesalahan, robot berhenti.

Direkomendasikan: