Pengontrol: Eksplorasi Penggerak Tank - C++
Kotak Peralatan Guru
-
Tujuan dari Aktivitas ini
Dengan menggunakan contoh proyek Kontrol Tangki, siswa dapat mengendalikan Clawbot menggunakan Pengontrol. Siswa perlu menyesuaikan parameter dalam instruksiLeftMotor.setVelocity(), RightMotor.setVelocity(), LeftMotor.spin(), RightMotor.spin(), leftMotorSpeed = Controller1.Axis3.position(),danrightMotorSpeed = Controller1.Axis2.position()untuk mengontrol kecepatan masing-masing motor Clawbot dan memungkinkan Controller untuk mengontrol fungsi motor.
Untuk informasi lebih lanjut mengenai instruksi apa pun, kunjungi bantuan di bagianC++di VEXcode V5.
Berikut ini adalah garis besar kegiatan yang akan dilakukan siswa dalam aktivitas ini:
-
Jelajahi proyek contoh Kontrol Tangki.
-
Pahami penggunaan strukturwhile Trueinfinite loop.
-
Selesaikan tantangan Robo-Slalom!
Tips untuk Guru
Jika ini adalah kali pertama siswa menggunakan VEXcode V5, mereka dapat mengaksesartikeldi Basis Pengetahuan VEX.
| Kuantitas | Bahan-bahan yang Dibutuhkan |
|---|---|
| 1 |
VEX V5 Classroom Starter Kit (dengan firmware terbaru) |
| 1 |
VEXcode V5 (versi terbaru, Windows, macOS) |
| 1 |
Buku Catatan Teknik |
| 1 |
Contoh proyek Pengendalian Tangki |
| 2 atau lebih |
Barang-barang di kelas yang akan digunakan sebagai rintangan |
Tips untuk Guru
-
Menggunakan Fitur Pelengkapan Otomatis
Fitur pelengkapan otomatis (autocomplete) di VEXcode V5 memprediksi sisa perintah yang Anda ketik. Saat siswa mengerjakan VEXcode V5, dorong mereka untuk menggunakan fitur Autocomplete untuk membantu sintaks. ArtikelAutocompletemembahas cara menggunakan fitur Autocomplete.

Aktivitas ini akan memberi Anda alat untuk memprogram Controller Anda.
Langkah 1: Mari kita mulai memprogram Controller.
- Buka proyek contoh Tank Control.
-

Lakukan hal berikut di buku catatan teknik Anda:
Prediksi apa yang akan dilakukan Clawbot pada proyek ini. Jelaskan lebih dari sekadar fakta bahwa proyek ini menggunakan Controller.
Bagaimana joystick menggerakkan robot? Apa yang sedang dilakukan Clawbot?int main() { // Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS! vexcodeInit(); // Mulai kode proyek. // Loop Pengontrol Utama untuk mengatur motor ke posisi sumbu pengontrol while (true) { LeftMotor.setVelocity(Controller1.Axis3.position(), percent); RightMotor.setVelocity(Controller1.Axis2.position(), percent); LeftMotor.spin(forward); RightMotor.spin(forward); wait(5, msec); } return 0; }
Jawaban untuk Kotak Peralatan Guru
-
- Proyek ini akan menggunakan struktur perulangan tak terbatas while True untuk terus menerus memeriksa posisi joystick kiri dan kanan. Saat joystick kiri (atau kanan) didorong ke atas, kecepatan diatur untuk menentukan seberapa jauh joystick didorong ke depan.
- Dengan demikian, semakin jauh joystick didorong ke depan, semakin cepat kecepatan yang akan diatur dan semakin cepat motor akan bergerak. Ide yang sama juga berlaku untuk mendorong joystick ke belakang. Semakin jauh joystick didorong ke belakang, semakin cepat motor akan bergerak mundur.
- Simpan, unduh, dan jalankan (C++) proyek contoh Tank Control.
-
Untuk bantuan, lihat bagian Pustaka VEX diC++atau lihat tutorial di VEXcode V5 yang menjelaskan cara Mengunduh dan Menjalankan Proyek.

- Periksa penjelasan Anda tentang proyek tersebut di buku catatan teknik Anda dan tambahkan catatan untuk memperbaikinya jika diperlukan.
Langkah 2: Pengontrol: Kontrol Tangki
Kotak Peralatan Guru
-
Struktur Perulangan while True Tak Terhingga
Langkah ini membahas pentingnya struktur perulangan tak terbatas while True . Anda sebaiknya meninjau informasi tersebut bersama-sama di kelas. Anda dapat memodelkan perilaku tersebut dengan Clawbot dan Controller Anda, atau jika waktu memungkinkan, mintalah siswa untuk menjalankan program tanpa struktur perulangan tak terbatas while True .
Apa manfaat menggunakan struktur perulangan tak terbatas while True?
Berikut adalah proyek kami tanpa struktur perulangan tak terbatas while True:
int main() {
// Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS!
vexcodeInit();
// Mulai kode proyek.
// Loop Pengontrol Utama untuk mengatur motor ke posisi sumbu pengontrol
LeftMotor.setVelocity(Controller1.Axis3.position(), percent);
RightMotor.setVelocity(Controller1.Axis2.position(), percent);
LeftMotor.spin(forward);
RightMotor.spin(forward);
}Menurutmu apa yang akan terjadi jika program ini dijalankan? Diskusikan secara berkelompok. Tuliskan prediksi Anda di buku catatan teknik.
Kotak Peralatan Guru
-
Memahami Struktur
Tanpa loop tak terbatas while True , nilai kecepatan untuk setiap motor diatur segera setelah proyek dijalankan, dan nilai tersebut tetap konstan hingga proyek dihentikan. Dengan kata lain, jika Anda menjalankan proyek tanpa menggerakkan Joystick, karena posisi default Joystick pada porosnya adalah 0, kecepatan kedua motor akan tetap 0, meskipun Anda menggerakkan Joystick.
Demikian pula, katakanlah Anda menggerakkan joystick kiri ke atas sejauh mungkin di sepanjang sumbu 3 dan menahannya di sana. Jika Anda menjalankan proyek di atas, motor kiri akan bergerak dengan kecepatan penuh dan akan tetap pada kecepatan tersebut meskipun Anda menggerakkan joystick ke bawah sepanjang sumbu 3. Hal ini karena Clawbot menerima instruksi awalnya dari Controller segera setelah proyek dijalankan; namun, tanpa Loop, nilai awal tersebut tidak dapat diperbarui.
Perulangan tak terbatas while True memberi tahu Clawbot untuk terus memperbarui kecepatan dan berjalan selama durasi proyek. Dengan kata lain, loop tak terbatas while True dalam proyek ini memungkinkan Anda untuk mengubah kecepatan setiap motor dengan menggerakkan Joystick di sepanjang sumbu 2 atau 3, dan Clawbot akan merespons sesuai dengan perubahan tersebut hingga Anda menghentikan proyek atau mematikan Clawbot.
Langkah 3: Menavigasi Lintasan Slalom!
Kotak Peralatan Guru
-
Menyiapkan Aktivitas
Bagilah siswa menjadi kelompok-kelompok kecil yang terdiri dari 2 atau 4 siswa. Satu siswa harus ditunjuk sebagai Pengemudi - orang yang akan menggunakan Pengontrol untuk mengendalikan Clawbot.
Mintalah siswa untuk menyelesaikan slalom ini dengan menggunakan Controller untuk menggerakkan Clawbot di sepanjang bagian luar setiap "bendera". Jalur yang dilalui Clawbot harus mencegahnya menyentuh bendera apa pun dan memungkinkannya melewati garis finis. Bendera dapat berupa bahan/benda apa pun yang ada di kelas (penghapus, gulungan selotip, kotak tisu) dan dapat dipasang sebelum mengoperasikan Clawbot.
Jika waktu memungkinkan, mintalah siswa untuk berganti peran agar siswa lain memiliki kesempatan untuk mengendalikan Clawbot. Anda bahkan bisa mengubah ini menjadi kompetisi di dalam kelompok atau antar kelompok dengan melihat seberapa cepat setiap pengemudi dapat melewati slalom.

Slalom adalah lintasan yang mengharuskan peserta untuk melewati bendera atau penanda yang telah ditentukan. Ski slalom adalah olahraga musim dingin yang populer dan termasuk dalam Olimpiade Musim Dingin.
Sekarang setelah Controllerdipasangkan dengan Controllerdan proyek C++telah diunduh, Anda siap untuk menggerakkan Clawbot Anda menggunakan Controller!
- Ambil empat benda di kelas yang akan kalian gunakan sebagai bendera dalam lomba slalom dari guru.
- Bekerja sama untuk memasang bendera agar Pengemudi dapat mengarahkan Clawbot di sekitarnya, sesuai dengan diagram slalom.
- Unduh proyek Contoh Kontrol Tangki. Jika ada pertanyaan tentang cara mengunduh proyek, lihat tutorial Mengunduh dan Menjalankan Proyek.
Langkah 4: Robo-Slalom

Gunakan Controller untuk menggerakkan Clawbot Anda di sepanjang bagian luar setiap "bendera." Jalur yang dilalui robot harus mencegahnya menyentuh bendera apa pun, dan memungkinkannya melewati garis finis.
- Jalankan proyek dan gerakkan Clawbot maju dan mundur, serta belok kiri dan kanan menggunakan kedua joystick.
- Catat berapa lama waktu yang dibutuhkan Clawbot untuk menyelesaikan lintasan. Catat waktu-waktu tersebut dalam buku catatan teknik.
- Seberapa cepat kamu bisa membawa Clawbot melewati lintasan Slalom?
Memotivasi Diskusi
-
Refleksi atas Aktivitas
T:Apakah Clawbot merespons Pengontrol seperti yang Anda harapkan?
A:Jawaban akan beragam; namun, tujuan pertanyaan ini adalah untuk mendorong pemikiran kognitif. Para siswa memulai dengan memprediksi perilaku sebelum mengujinya, mendokumentasikan hasilnya, dan melakukan refleksi.
T:Apa tantangan terbesar dalam menggerakkan Clawbot maju atau mundur dalam garis lurus?
A:Meskipun jawabannya mungkin bervariasi, jawaban umum yang perlu dipertimbangkan adalah bahwa kedua joystick harus bergerak sinkron satu sama lain untuk memastikan bahwa motor Clawbot bergerak ke arah yang sama dan dengan kecepatan yang sama.
T:Bagaimana penggunaan loop tak terbataswhile Truememungkinkan Anda untuk terus menggunakan Controller untuk menggerakkan Clawbot?
A:Tanpawhile Trueloop tak terbatas, Clawbot hanya akan melakukan perilaku yang ditentukan oleh instruksi dalam proyek sekali saja. Perulangan tak terbataswhile Truememberi tahu Clawbot untuk terus memperbarui kecepatan dan berjalan selama durasi proyek. Dengan kata lain, loop tak terbataswhile Truememungkinkan Anda menggunakan Controller untuk menggerakkan Clawbot tanpa batas, atau sampai baterai habis.