Daftar Isi:
- Langkah 1: Lokasi Tutorial Berubah
- Langkah 2: Bangun Robot Penggerak Diferensial SnappyXO
- Langkah 3: Hubungkan Elektronik
- Langkah 4: Instal Perpustakaan Arduino PreciseMovement
- Langkah 5: Kode
- Langkah 6: Cara Kerjanya
Video: Robot Penggerak Tepat SnappyXO: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
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
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:
Mobil Penggerak Tangki Remote Control: 3 Langkah
Mobil Penggerak Tangki Jarak Jauh: Ini adalah panduan tentang cara membuat mobil penggerak tangki kendali jarak jauh. Set yang akan saya gunakan untuk membuat mobil hari ini adalah kit mobil penggerak tangki sederhana, dengan sensor cahaya untuk mengikuti jalan. Mobil Anda tidak membutuhkan sensor cahaya, tetapi mobil tank drive
Membuat Robot Penggerak Rumput Bodoh Lebih Cerdas: 4 Langkah
Membuat Robot Pemotong Rumput Bodoh Lebih Cerdas: Jadi saya punya robot pemotong rumput yang cantik tapi bodoh (Gambar diambil dari www.harald-nyborg.dk). Robot ini seharusnya memotong rumput saya, tetapi rumput saya terlalu besar dan rumit untuk itu untuk benar-benar masuk ke sudut. Tidak ditampilkan pada gambar saya adalah banyak
Penggerak Perangkat Dari Mode Tidur: 5 Langkah
Penggerak Perangkat Dari Mode Tidur: Karena teknologi telah maju pada tingkat yang sangat tinggi, mayoritas penduduk tidak dapat hidup tanpa kenyamanan perkembangan tersebut. Sebagai orang yang membutuhkan perangkat sehari-hari, proyek Arduino ini akan menghadirkan penggerak perangkat. Ini
Otomasi Industri Berbasis Arduino -- VFD (Penggerak Frekuensi Variabel): 10 Langkah
Otomasi Industri Berbasis Arduino || VFD (Variable Frequency Drives): Dalam instruksi ini, saya akan menunjukkan cara membuat1. Papan Arduino yang dirancang khusus untuk Otomasi Industri 2. Cara mengontrol VFD [Variable Frequency Drives] menggunakan Arduino 3. Cara mendesain motherboard untuk Mesin Winding DigiCone MDF Hal-hal apa yang Anda
Robot De Tracción Diferencial (Penggerak Diferensial): 10 Langkah
Robot De Tracción Diferencial (Penggerak Diferensial): La robótica de enjambre se inspira en insectos que actúan colaborativamente. Es una disciplina basada en conjuntos de robots que se coordinan para realizar tareas grupales. Los robots individuales deben ser capaces de sensar y actuar e