Langsung ke konten utama

Pengontrol: Eksplorasi Penggerak Tank - C++

Ikon Kotak Peralatan Guru 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!

Ikon Tips Guru Tips untuk Guru

Jika ini adalah kali pertama siswa menggunakan VEXcode V5, mereka dapat mengaksesartikeldi Basis Pengetahuan VEX.

Bahan-bahan yang Dibutuhkan:
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

Aktivitas ini akan memberi Anda alat untuk memprogram Controller Anda.

Langkah 1: Mari kita mulai memprogram Controller.

  • Buka proyek contoh Tank Control.
  • Contoh Ikon Proyek berupa tank yang ditempatkan di atas pengontrol game, dengan label 'Kontrol Tank' di bawahnya.

    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;
    }

 

Ikon Kotak Peralatan Guru Jawaban untuk Kotak Peralatan Guru -

  1. 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. 
  2. 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.

    Toolbar di VEXcode V5 dengan Tutorial, di sebelah kanan, ditandai dengan kotak merah. Dari sebelah kiri, Toolbar menampilkan logo V5, ikon globe, lalu File, Edit, dan Tutorial.

     

  • Periksa penjelasan Anda tentang proyek tersebut di buku catatan teknik Anda dan tambahkan catatan untuk memperbaikinya jika diperlukan.

Langkah 2: Pengontrol: Kontrol Tangki

Ikon Kotak Peralatan Guru 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.

Ikon Kotak Peralatan Guru 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!

Ikon Kotak Peralatan Guru 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.

Langkah 4: Robo-Slalom

Ilustrasi lintasan slalom di atas salju, dengan label 'Mulai' di bagian atas, dan garis 'Selesai' di bagian bawah. Di antaranya, jalur zig-zag putus-putus berkelok-kelok di antara bendera biru dan merah yang berselang-seling.

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?

Ikon Motivasi Diskusi 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.