Pengontrol: Eksplorasi Penggerak Tangki - C++
Kotak Alat Guru
-
Tujuan Kegiatan Ini
Menggunakan contoh proyek Kontrol Tank memungkinkan siswa untuk 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 mengendalikan kecepatan untuk setiap motor Clawbot dan memungkinkan Controller untuk mengendalikan fungsi motor.
Untuk informasi lebih lanjut tentang instruksi apa pun, kunjungi bantuan di bagianC++di VEXcode V5.
Berikut ini adalah garis besar apa yang akan dilakukan siswa dalam kegiatan ini:
-
Jelajahi contoh proyek Kontrol Tangki.
-
Pahami penggunaan strukturwhile Trueinfinite loop.
-
Selesaikan tantangan Robo-Slalom!
Tips Guru
Jika ini adalah pertama kalinya siswa menggunakan VEXcode V5, mereka dapat mengakses banyakartikelbermanfaat di Basis Pengetahuan VEX.
| Kuantitas | Bahan-bahan yang Dibutuhkan |
|---|---|
| 1 |
Kit Pemula Kelas VEX V5 (dengan firmware terbaru) |
| 1 |
VEXcode V5 (versi terbaru, Windows, macOS) |
| 1 |
Buku Catatan Teknik |
| 1 |
Contoh proyek Kontrol Tangki |
| 2 atau lebih |
Barang-barang kelas yang akan digunakan sebagai rintangan |
Tips Guru
-
Menggunakan Pelengkapan Otomatis
Pelengkapan otomatis adalah fitur dalam VEXcode V5 yang memprediksi sisa perintah yang sedang Anda ketik. Saat siswa mengerjakan VEXcode V5, dorong mereka untuk menggunakan fitur Pelengkapan Otomatis untuk membantu sintaksis. ArtikelPelengkapan Otomatismembahas cara menggunakan fitur Pelengkapan Otomatis.

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

Lakukan hal berikut di buku catatan teknik Anda:
Prediksikan apa yang akan dilakukan Clawbot dalam proyek ini. Jelaskan lebih dari sekadar fakta bahwa proyek tersebut memanfaatkan Pengendali.
Bagaimana joystick menggerakkan robot? Apa yang dilakukan Clawbot?int main() { // Menginisialisasi Konfigurasi Robot. JANGAN DIHAPUS! vexcodeInit(); // Mulai kode proyek. // Loop Pengendali Utama untuk menyetel motor ke posisi sumbu pengendali while (true) { LeftMotor.setVelocity(Controller1.Axis3.position(), persen); RightMotor.setVelocity(Controller1.Axis2.position(), persen); LeftMotor.spin(maju); RightMotor.spin(maju); wait(5, msec); } return 0; }
Kotak Alat Guru
-
Jawaban
- Proyek ini akan memanfaatkan struktur perulangan tak terhingga sementara True untuk terus memeriksa di mana posisi Joystick kiri dan kanan. Saat Joystick kiri (atau kanan) didorong ke atas, kecepatannya diatur sejauh mana Joystick didorong ke depan.
- Dengan demikian, semakin jauh Joystick didorong ke depan, semakin cepat kecepatan akan diatur dan semakin cepat pula motor akan bergerak. Ide yang sama 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 padaC++atau lihat tutorial di VEXcode V5 yang menjelaskan cara Mengunduh dan Menjalankan Proyek.

- Periksa penjelasan Anda tentang proyek di buku catatan teknik Anda dan tambahkan catatan untuk memperbaikinya bila diperlukan.
Langkah 2: Pengontrol: Kontrol Tangki
Kotak Alat Guru
-
Struktur Loop Tak Terbatas while True
Langkah ini membahas pentingnya struktur perulangan tak terhingga sementara Benar . Anda harus meninjau informasi tersebut sebagai sebuah kelas. Anda dapat memodelkan perilaku dengan Clawbot dan Controller Anda, atau jika waktu memungkinkan, mintalah siswa menjalankan program tanpa struktur loop tak terbatas while True .
Apa manfaat menggunakan struktur perulangan tak terhingga while True?
Berikut adalah proyek kami tanpa struktur perulangan tak terhingga while True:
int main() {
// Menginisialisasi Konfigurasi Robot. JANGAN DIHAPUS!
vexcodeInit();
// Mulai kode proyek.
// Loop Pengendali Utama untuk menyetel motor ke posisi sumbu pengendali
LeftMotor.setVelocity(Controller1.Axis3.position(), persen);
RightMotor.setVelocity(Controller1.Axis2.position(), persen);
LeftMotor.spin(maju);
RightMotor.spin(maju);
}Menurut Anda apa yang akan terjadi jika program ini dijalankan? Diskusikan sebagai kelompok. Tuliskan prediksi Anda di buku catatan teknik.
Kotak Alat Guru
-
Memahami Struktur
Tanpa loop tak terhingga sementara Benar , nilai kecepatan untuk setiap motor ditetapkan segera setelah proyek dijalankan, dan nilai itu 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 pada 0, bahkan jika Anda menggerakkan Joystick.
Dengan cara yang sama, katakanlah Anda menggerakkan Joystick kiri ke atas sejauh yang memungkinkan 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 itu bahkan jika Anda menggerakkan Joystick ke bawah sepanjang sumbu 3. Hal ini karena Clawbot menerima instruksi awal dari Controller segera setelah proyek dijalankan; namun, tanpa Loop, nilai awal tersebut tidak dapat diperbarui.
Perulangan tak terhingga while True memberi tahu Clawbot untuk terus memperbarui kecepatan dan berjalan selama durasi proyek. Dengan kata lain, loop tak terhingga sementara Benar , dalam proyek ini, memungkinkan Anda mengubah kecepatan setiap motor dengan menggerakkan Joystick sepanjang sumbu 2 atau 3, dan Clawbot akan merespons sesuai kebutuhan hingga Anda menghentikan proyek atau mematikan Clawbot.
Langkah 3: Jelajahi Lintasan Slalom!
Kotak Alat Guru
-
Menyiapkan Aktivitas
Aturlah siswa ke dalam kelompok-kelompok kecil yang beranggotakan 2 atau 4 siswa. Satu siswa harus ditunjuk sebagai Pengemudi - orang yang akan menggunakan Pengendali untuk mengendalikan Clawbot.
Mintalah siswa menyelesaikan slalom ini dengan menggunakan Controller untuk menggerakkan Clawbot di sepanjang bagian luar setiap “bendera”. Lintasan Clawbot harus mencegahnya menyentuh bendera apa pun dan memungkinkannya melewati garis finis. Bendera dapat berupa bahan/objek kelas apa pun yang Anda miliki (penghapus, gulungan selotip, kotak tisu) dan dapat dipasang sebelum mengoperasikan Clawbot.
Jika waktu memungkinkan, mintalah siswa berganti peran untuk memberi kesempatan kepada siswa lain mengendarai Clawbot. Anda bahkan dapat mengubahnya menjadi kompetisi dalam kelompok atau antar kelompok dengan melihat seberapa cepat setiap pengemudi dapat menavigasi slalom.

Slalom adalah lintasan yang harus dilalui peserta dengan melewati bendera atau penanda yang ditentukan. Ski slalom adalah olahraga musim dingin yang populer dan termasuk dalam Olimpiade Musim Dingin.
Sekarang setelah Controllerdipasangkan dengandan proyek++diunduh, Anda siap untuk menggerakkan Clawbot menggunakan Controller!
- Kumpulkan empat benda kelas yang akan Anda gunakan sebagai bendera dalam slalom Anda dari guru.
- Berkolaborasilah untuk menetapkan bendera agar Pengemudi dapat menavigasi Clawbot, sesuai dengan diagram slalom.
- Unduh proyek Contoh Kontrol Tangki. Jika ada pertanyaan tentang cara mengunduh proyek, lihat tutorial Unduh dan Jalankan Proyek.
Langkah 4: Robo-Slalom

Gunakan Controller untuk menggerakkan Clawbot Anda di sepanjang bagian luar setiap “bendera”. Lintasan 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.
- Hitung berapa lama waktu yang dibutuhkan Clawbot untuk menyelesaikan lintasannya. Dokumentasikan waktu pada buku catatan teknik.
- Seberapa cepat Anda bisa membawa Clawbot melewati lintasan Slalom?
Memotivasi Diskusi
-
Merefleksikan Kegiatan
T:Apakah Clawbot merespons Pengendali seperti yang Anda harapkan?
J:Jawaban akan bervariasi; namun, tujuan pertanyaan ini adalah untuk meningkatkan pemikiran kognitif. 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:Walaupun jawabannya mungkin berbeda-beda, jawaban yang umum adalah bahwa kedua Joystick harus bergerak secara 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 menggunakan Controller secara terus-menerus untuk menggerakkan Clawbot?
A:Tanpa loop tak terbataswhile True, Clawbot hanya akan melakukan perilaku seperti yang ditentukan oleh instruksi dalam proyek satu kali. Perulangan tak terhinggawhile Truememberi tahu Clawbot untuk terus memperbarui kecepatan dan berjalan selama durasi proyek. Dengan kata lain, perulangan tak terbatassementara Benarmemungkinkan Anda menggunakan Pengendali untuk menggerakkan Clawbot tanpa batas, atau hingga baterainya habis.