Dengan menggunakan Pengendali, Anda dapat lebih mudah mengendalikan dan menggerakkan robot untuk menyelesaikan tugas. Namun, ada keterbatasan dalam menggunakan program Drive, dan bergantung pada rancangan robot atau tugas yang dihadapi, Anda mungkin menginginkan kontrol yang berbeda. Pengkodean Pengendali memungkinkan Anda mengoptimalkan Pengendali agar lebih sesuai dengan robot dan tugas yang sedang dikerjakan. Ada beberapa cara untuk membuat kode Controller dalam VEXcode V5. Masing-masing memiliki kelebihan dan keterbatasan, dan beberapa metode lebih cocok untuk situasi tertentu tergantung pada hasil yang diinginkan.
Artikel ini akan memandu Anda melalui tiga opsi berbeda untuk membuat kode khusus Controller di VEXcode V5. Setiap metode akan dijelaskan dengan kelebihan, keterbatasan, dan contoh kasus penggunaan untuk membantu memandu Anda saat memilih suatu metode. Untuk keperluan artikel ini, semua contoh kode yang ditampilkan dibuat untuk Clawbot. Namun, konsep yang sama dapat diterapkan pada sejumlah build lain yang ditemukan di builds.vex.com, dan build khusus.
Opsi 1: Menetapkan Tombol dalam Konfigurasi Perangkat
Pilihan ini sangat bagus jika Anda menggunakan build standar, seperti Speedbot atau Clawbot, dan ingin segera memulai dan menjalankannya.
Opsi ini memungkinkan Anda menetapkan motor, drivetrain, atau grup motor ke tombol pada Pengontrol dalam Konfigurasi Perangkat. Untuk informasi lebih lanjut tentang cara menetapkan tombol ke Pengontrol dalam Konfigurasi Perangkat, lihat artikel ini.
Ringkasan Opsi 1: Menetapkan Tombol dalam Konfigurasi Perangkat
|
Keuntungan |
Keterbatasan |
Contoh Situasi |
|---|---|---|
|
|
|
Opsi 2: Menggunakan Forever Loop
Jika Anda menggunakan build khusus dan bukan build standar, atau ingin memiliki lebih banyak kustomisasi pada Controller Anda, opsi ini adalah pilihan yang bagus. Menggunakan loop Forever merupakan cara yang bagus untuk membuat kode khusus bagi Controller Anda.
Opsi ini menempatkan semua kondisi untuk Pengontrol, dan tombol-tombol terkaitnya, dalam loop Selamanya. Hal ini memberikan lebih banyak fleksibilitas, terutama dengan desain bangunan khusus, tetapi juga memerlukan beberapa pengalaman pengkodean. Namun, satu pertimbangan saat menggunakan opsi ini adalah panjang dan kompleksitas proyek Anda. Semakin banyak kondisi yang ditambahkan, tumpukan kode akan menjadi semakin panjang. Artinya, beberapa blok harus dieksekusi secara berurutan, dan jika terdapat banyak blok, hal ini dapat memperlambat eksekusi proyek. Eksekusi proyek yang lebih lambat dapat menyebabkan jeda antara menekan tombol Pengontrol dan melihat perilaku robot.
Contoh spesifik yang ditunjukkan di bawah ini adalah salah satu cara Anda dapat menggunakan loop Forever dengan robot desain khusus (seperti robot dengan drivetrain khusus) untuk menggerakkan robot dan memanipulasi cakar dan lengan untuk berinteraksi dengan objek.
Unduh file proyek VEXcode V5 "Opsi 2" >
Penjelasan Kode Opsi 2.
|
Potongan Kode |
Penjelasan |
|---|---|
|
Clawbot digunakan untuk contoh kode ini. Bila tombol pada Pengendali digunakan untuk menaikkan dan menurunkan lengan, begitu tombol dilepaskan, lengan akan jatuh kembali karena gaya gravitasi. Mengatur lengan dan cakar ke "tahan" akan memastikan bahwa lengan dan cakar akan tetap di tempatnya bahkan setelah tombol pada Pengontrol dilepaskan. |
|
|
|
Clawbot digunakan untuk contoh kode ini. Bila tombol pada Pengendali digunakan untuk menaikkan dan menurunkan lengan, begitu tombol dilepaskan, lengan akan jatuh kembali karena gaya gravitasi. Mengatur lengan dan cakar ke "tahan" akan memastikan bahwa lengan dan cakar akan tetap di tempatnya bahkan setelah tombol pada Pengontrol dilepaskan. Loop Forever digunakan untuk terus memeriksa tombol mana yang ditekan pada Pengontrol. Blok [Atur kecepatan motor] digunakan untuk mengatur kecepatan motor ke posisi Pengendali saat ini sepanjang sumbu 2 dan 3. Ini sama saja dengan menyetel mobil ke posisi drive. Itu belum tentu membuat mobil bergerak, hanya mengaturnya. Setiap sumbu joystick mengembalikan nilai antara -100 hingga +100, dan mengembalikan nilai nol saat dipusatkan. Ini berarti bahwa sumbu joystick, ketika ditekan, setara dengan -100% hingga 100%. Semakin jauh ke arah 100 atau -100 sumbu didorong, semakin cepat motor akan berputar. Blok [Spin] kemudian digunakan untuk benar-benar menggerakkan motor. Ini sama saja dengan menekan gas pada mobil setelah arahnya sudah ditetapkan. Hal ini memungkinkan setiap motor dikontrol oleh salah satu dari empat sumbu Pengendali. |
|
Clawbot digunakan untuk contoh kode ini. Bila tombol pada Pengendali digunakan untuk menaikkan dan menurunkan lengan, begitu tombol dilepaskan, lengan akan jatuh kembali karena gaya gravitasi. Mengatur lengan dan cakar ke "tahan" akan memastikan bahwa lengan dan cakar akan tetap di tempatnya bahkan setelah tombol pada Pengontrol dilepaskan. Blok [If then else if then else] digunakan untuk memetakan perilaku tertentu ke tombol yang ditekan atau dilepaskan pada Pengontrol. Pada bagian kode ini, kondisi yang ditetapkan adalah jika tombol Atas atau Bawah ditekan. Jika demikian, perilaku tertentu akan terjadi, seperti mengangkat dan menurunkan lengan. Ada pula bagian lain dari kondisi tersebut, jika tidak ada tombol yang ditekan, lengan diatur untuk berhenti bergerak. Perhatikan bagian kode berikut dalam proyek untuk Claw mengikuti penjelasan yang sama. |
Ringkasan Opsi 2: Menggunakan Forever Loop
|
Keuntungan |
Keterbatasan |
Contoh Situasi |
|---|---|---|
|
|
|
Opsi 3: Menggunakan Acara
Jika Anda menginginkan banyak penyesuaian pada Pengontrol Anda, Menggunakan Peristiwa adalah pilihan terbaik bagi Anda. Menekan satu tombol dapat memicu beberapa perilaku robot, seperti menekan tombol untuk membuka cakar, mengangkat lengan, dan melaju ke depan sejauh jarak tertentu. Mencoba mengodekan beberapa perilaku per tombol dalam loop Forever akan menyebabkan eksekusi proyek melambat drastis – menggunakan Events memungkinkan Anda melakukannya dengan lebih efektif.
Opsi ini menggunakan Peristiwa untuk memecah alur proyek. Ini serupa dengan penggunaan loop Forever, tetapi memungkinkan kode menjadi lebih terorganisasi, sehingga eksekusi tombol memiliki waktu respons yang lebih cepat. Waktu respons yang lebih cepat berarti Anda tidak akan melihat jeda antara menekan tombol Pengontrol dan melihat perilaku robot. Contoh ini menunjukkan perilaku yang sama seperti proyek sebelumnya, tetapi dilakukan dengan menggunakan Events, bukan Forever Loop.
Unduh file proyek VEXcode V5 "Opsi 3" >
Penjelasan Kode Opsi 3.
|
Potongan Kode |
Penjelasan |
|---|---|
|
Clawbot digunakan untuk contoh kode ini. Bila tombol pada Pengendali digunakan untuk menaikkan dan menurunkan lengan, begitu tombol dilepaskan, lengan akan jatuh kembali karena gaya gravitasi. Mengatur lengan dan cakar ke "tahan" akan memastikan bahwa lengan dan cakar akan tetap di tempatnya bahkan setelah tombol pada Pengontrol dilepaskan. |
|
|
|
Clawbot digunakan untuk contoh kode ini. Bila tombol pada Pengendali digunakan untuk menaikkan dan menurunkan lengan, begitu tombol dilepaskan, lengan akan jatuh kembali karena gaya gravitasi. Mengatur lengan dan cakar ke "tahan" akan memastikan bahwa lengan dan cakar akan tetap di tempatnya bahkan setelah tombol pada Pengontrol dilepaskan. {When controller axis} Blok peristiwa digunakan untuk memicu perilaku tertentu ketika salah satu dari empat sumbu pada Pengendali diubah dengan menggunakan joystick. Blok [Atur kecepatan motor] digunakan untuk mengatur kecepatan motor ke posisi Pengendali saat ini sepanjang sumbu A dan D. Ini sama saja dengan menyetel mobil ke posisi drive. Itu belum tentu membuat mobil bergerak, hanya mengaturnya. Setiap sumbu joystick mengembalikan nilai antara -100 hingga +100, dan mengembalikan nilai nol saat dipusatkan. Ini berarti bahwa sumbu joystick, ketika ditekan, setara dengan -100% hingga 100%. Semakin jauh ke arah 100 atau -100 sumbu didorong, semakin cepat motor akan berputar. Blok [Spin] kemudian digunakan untuk benar-benar menggerakkan motor. Ini sama saja dengan menekan gas pada mobil setelah arahnya sudah ditetapkan. Hal ini memungkinkan setiap motor dikontrol oleh salah satu dari empat sumbu Pengendali. |
|
Clawbot digunakan untuk contoh kode ini. Bila tombol pada Pengendali digunakan untuk menaikkan dan menurunkan lengan, begitu tombol dilepaskan, lengan akan jatuh kembali karena gaya gravitasi. Mengatur lengan dan cakar ke "tahan" akan memastikan bahwa lengan dan cakar akan tetap di tempatnya bahkan setelah tombol pada Pengontrol dilepaskan. {When controller axis} Blok peristiwa digunakan untuk memetakan perilaku tertentu ke tombol yang ditekan atau dilepaskan pada Pengontrol. Pada bagian kode ini, kondisi yang ditetapkan adalah jika tombol Atas atau Bawah ditekan. Jika demikian, perilaku tertentu akan terjadi, seperti mengangkat, menurunkan, atau berhenti. Perhatikan bagian terakhir kode dalam proyek untuk Claw mengikuti penjelasan yang sama. |
Ringkasan Opsi 3: Menggunakan Peristiwa
|
Keuntungan |
Keterbatasan |
Contoh Situasi |
|---|---|---|
|
|
|