Langsung ke konten utama

Pengontrol: Eksplorasi Penggerak Tank - Python

Ikon Kotak Peralatan Guru Kotak Peralatan Guru - Tujuan Bagian Ini

Dengan menggunakan contoh proyek Kontrol Tangki, siswa dapat mengendalikan Clawbot menggunakan Pengontrol. Siswa perlu menyesuaikan parameter dalam instruksi left_motor.set_velocity(), right_motor.set_velocity(), left_motor.spin(), right_motor.spin(), left_motor_speed = controller_1.axis3.position(), dan right_motor_speed = controller_1.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 bagian bantuan Pythondi VEXcode V5.

Berikut ini adalah garis besar kegiatan yang akan dilakukan siswa dalam aktivitas ini:

  1. Jelajahi proyek contoh Kontrol Tangki.
  2. Pahami penggunaan struktur while True infinite loop.
  3. Selesaikan tantangan Robo-Slalom!

Ikon Tips Guru Tips untuk Guru

Jika ini adalah kali pertama siswa menggunakan VEXcode V5, mereka dapat mengaksesartikeldi Perpustakaan 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

Benda-benda di kelas yang akan digunakan sebagai rintangan

Aktivitas ini akan memberi Anda alat untuk memprogram Controller Anda. 

  • Instruksi Python VEXcode V5 yang akan digunakan dalam eksplorasi ini:
    • motor_kiri.atur_kecepatan()
    • motor_kanan.atur_kecepatan()
    • motor_kiri.putar()
    • motor_kanan.putar()
    • pengontrol_1.sumbu2.posisi()
    • pengontrol_1.sumbu3.posisi()
    • selama Benar: 
    • tunggu(5, DETIK)

Untuk informasi lebih lanjut mengenai instruksi apa pun, kunjungi bagian bantuan Python di VEXcode V5. 

VEXcode V5 ditampilkan dengan Toolbox terbuka di paling kiri, dan Bantuan untuk perintah Drive terbuka di paling kanan. Bantuan tersebut menampilkan definisi perintah dan informasi tentang cara penggunaannya.

Langkah 1: Mari kita mulai memprogram Controller.

  • Pilih File dan Buka Contoh.
  • Toolbar VEXcode V5 dengan menu File terbuka dan Open Examples disorot dalam kotak merah. Open Examples adalah item menu keempat di bawah New Blocks Project, New Text Project, dan Open.
  • Gulir melalui berbagai proyek Contoh. Pilih proyek contoh Tank Control.

Contoh proyek di VEXcode V5 dengan kotak merah di sekitar filter Sensing di bagian atas dan ikon contoh proyek Tank Control di kanan bawah.

  • Buka proyek contoh Kontrol Tangki. Proyek contoh ini mengkonfigurasi sistem penggerak dan pengontrol. Kode tersebut akan terlihat seperti cuplikan berikut:
# Impor pustaka
dari vex import *

# Mulai kode proyek
# Loop Pengontrol Utama untuk mengatur motor ke posisi sumbu pengontrol
while True:
    left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
    right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
    left_motor.spin(FORWARD)
    right_motor.spin(FORWARD)
    wait(5, MSEC)

Lakukan hal berikut di buku catatan teknik Anda:

  1. Prediksikan apa yang akan dilakukan Clawbot dalam proyek tersebut. Jelaskan lebih dari sekadar fakta bahwa proyek tersebut menggunakan Controller.
  2. Bagaimana joystick menggerakkan robot? Apa yang sedang dilakukan Clawbot?

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.
  • Beri nama proyek tersebut TankControl. Simpan, unduh, dan jalankan proyek Python TankControl.

Kotak dialog nama proyek di VEXcode V5 menampilkan Tank Control, dan menunjukkan bahwa slot 1 telah dipilih.

  • Untuk informasi bantuan lebih lanjut, tonton video tutorial di VEXcode V5 yang menjelaskan cara Mengunduh dan Menjalankan proyek.

Toolbar di VEXcode V5 dengan kotak merah di sekitar ikon Tutorial. Toolbar menampilkan, dari kiri ke kanan, logo V5, ikon globe, File, lalu 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 .

Jika siswa memerlukan bantuan lebih lanjut untuk memahami perulangan tak terbatas while True , klik di sini.

Apa manfaat menggunakan struktur perulangan tak terbatas while True?

Berikut adalah proyek kami tanpa struktur perulangan tak terbatas while True:

# Impor pustaka
dari vex import *

# Mulai kode proyek
# Loop Pengontrol Utama untuk mengatur motor ke posisi sumbu pengontrol

left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(FORWARD)
right_motor.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.

# Impor pustaka
dari vex import *

# Mulai kode proyek
# Loop Pengontrol Utama untuk mengatur motor ke posisi sumbu pengontrol
while True:
    left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
    right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
    left_motor.spin(FORWARD)
    right_motor.spin(FORWARD)
    wait(5, MSEC)

Taklukkan 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.

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 terbatas while True memungkinkan Anda untuk terus menggunakan Controller untuk menggerakkan Clawbot?

A: Tanpa while True loop tak terbatas, Clawbot hanya akan melakukan perilaku yang ditentukan oleh instruksi dalam proyek sekali saja. 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 memungkinkan Anda menggunakan Controller untuk menggerakkan Clawbot tanpa batas, atau sampai baterai habis.