Robotika · pelajaran 17
Mesin keadaan: sudut, celah dan finis
Lintasan lomba
Ganti preset ke PID dan jalankan di lintasan ini: robot sering lepas dari garis di tikungan S dan sudut-sudut tajam, lalu berputar-putar mencarinya. Lintasan ini punya tiga hal yang tidak ada di oval:
- Sudut 90° kiri dan kanan. Garis tiba-tiba “lari” ke samping lalu hilang dari batang sensor.
- Celah: garis putus 12 cm. Semua sensor melihat putih, padahal robot sudah di jalur yang benar.
- Penanda (kotak kecil di samping garis): di kanan untuk start/finis, di kiri untuk awal dan akhir tikungan. Robot harus berhenti setelah satu putaran.
Ketika semua sensor melihat putih, robot harus memilih: lurus terus (celah) atau berputar (sudut). Jawaban yang benar bergantung pada apa yang terjadi sebelumnya.
Mesin keadaan
Program menyimpan satu variabel keadaan, dan setiap keadaan punya aturannya sendiri:
| keadaan | yang dilakukan | pindah ke |
|---|---|---|
IKUTI | PID biasa | garis hilang: CELAH kalau terakhir di tengah, SUDUT kalau di pinggir |
CELAH | lurus pelan | garis terlihat → IKUTI; sudah 20 cm tanpa garis → SUDUT |
SUDUT | putar di tempat ke arah garis terakhir | garis di tengah → IKUTI |
BERHENTI | motor mati | — |
Jarak di keadaan CELAH diukur dengan encoder, bukan waktu. Hasilnya tetap benar walaupun kecepatan robot berubah.
Penanda yang menipu
Sensor penanda ada di ±55 mm dari tengah. Di sudut 90°, garis yang berbelok melintang di bawah sensor penanda, sehingga terlihat seperti penanda. Karena itu preset hanya menghitung penanda kalau garis rapi di tengah batang sensor dan tidak banyak sensor yang hitam sekaligus.
Buka tab Serial, mode Monitor: program mencetak setiap perpindahan keadaan dan setiap penanda.
Misi
Selesaikan satu putaran lintasan lomba, lalu berhenti dalam 30 cm setelah penanda finis. Setelah berhasil, coba buat lebih cepat: naikkan DASAR dan pelankan robot hanya di tikungan. Penanda kiri memberi tahu kapan tikungan dimulai.
Selanjutnya: Quadcopter: gaya angkat dari empat motor · Semua pelajaran