Lompat ke isi utama

Pengontrol: Eksplorasi Penggerak Tangki - Python

Ikon Kotak Alat Guru Kotak Alat Guru - Tujuan Bagian Ini

Menggunakan contoh proyek Kontrol Tank memungkinkan siswa untuk 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 mengendalikan kecepatan untuk setiap motor Clawbot dan memungkinkan Pengendali untuk mengendalikan fungsi motor.

Untuk informasi lebih lanjut tentang instruksi apa pun, kunjungi bagian bantuan Pythondi VEXcode V5.

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

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

Ikon Tips Guru Tips Guru

Jika ini adalah pertama kalinya siswa menggunakan VEXcode V5, mereka dapat mengakses banyakartikelyang bermanfaat di Perpustakaan VEX.

Bahan yang dibutuhkan:
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

Benda-benda di kelas yang dapat digunakan sebagai rintangan

Ikon Tips Guru 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 Python. Anda mungkin memperhatikan fungsi pelengkapan otomatis saat Anda mulai mengetik instruksi. Gunakan tombol “Atas” dan “Bawah” untuk memilih nama yang Anda inginkan, lalu tekan “Tab” atau (Enter/Return) pada keyboard Anda untuk membuat pilihan. Untuk informasi lebih lanjut tentang fitur ini, lihat artikel Python

VEXcode V5 dengan awal perintah Drivetrain diketik di sebelah kiri, dan di sebelah kanan, daftar opsi pelengkapan otomatis yang dapat digulir untuk perintah tersebut ditampilkan.

Aktivitas ini akan memberi Anda alat untuk memprogram Pengontrol Anda. 

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

Untuk informasi lebih lanjut tentang 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 menunjukkan definisi perintah dan informasi tentang cara penggunaannya.

Langkah 1: Mari mulai memprogram Pengendali.

  • Pilih File dan Buka Contoh.
  • Bilah Alat VEXcode V5 dengan menu File terbuka dan Buka Contoh disorot dalam kotak merah. Buka Contoh adalah item menu keempat di bawah Proyek Blok Baru, Proyek Teks Baru, dan Buka.
  • 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 proyek contoh Tank Control di kanan bawah.

  • Buka proyek contoh Kontrol Tangki. Contoh proyek mengonfigurasi drivetrain dan pengontrol. Kodenya akan terlihat seperti potongan kode berikut:
# Pustaka mengimpor
dari vex import *

# Kode awal proyek
# Loop Pengendali Utama untuk menyetel motor ke posisi sumbu pengendali
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 memanfaatkan Pengendali.
  2. Bagaimana joystick menggerakkan robot? Apa yang dilakukan Clawbot?

Ikon Kotak Alat Guru Kotak Alat Guru - Jawaban

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

Kotak dialog nama proyek dalam VEXcode V5 bertuliskan Tank Control, dan memperlihatkan bahwa slot 1 dipilih.

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

Bilah alat di VEXcode V5 dengan kotak merah di sekitar ikon Tutorial. Bilah alat memperlihatkan, dari kiri ke kanan, logo V5, ikon bola dunia, File, lalu Tutorial.

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

Langkah 2: Pengontrol: Kontrol Tangki

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

Jika siswa memerlukan bantuan lebih lanjut dalam memahami loop tak terhingga sementara Benar , klik di sini.

Apa manfaat menggunakan struktur perulangan tak terhingga while True?

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

# Pustaka mengimpor
dari vex import *

# Kode awal proyek
# Loop Pengendali Utama untuk menyetel motor ke posisi sumbu pengendali

left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
left_motor.spin(MAJU)
right_motor.spin(MAJU)


Menurut Anda apa yang akan terjadi jika program ini dijalankan? Diskusikan sebagai kelompok. Tuliskan prediksi Anda di buku catatan teknik.

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

# Pustaka mengimpor
dari vex import *

# Kode awal proyek
# Loop Pengendali Utama untuk menyetel motor ke posisi sumbu pengendali
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)

Jelajahi Lintasan Slalom!

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

Seorang pemain papan seluncur salju berlomba menuruni lereng yang tertutup salju, melewati serangkaian gerbang merah dan biru yang diposisikan dalam pola zig-zag

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 Pengontrol telah dipasangkan dan proyek Python diunduh, Anda siap untuk menggerakkan Clawbot Anda menggunakan Pengontrol!

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

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

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?
     

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

A: Tanpa loop tak terbatas while True , Clawbot hanya akan melakukan perilaku seperti yang ditentukan oleh instruksi dalam proyek satu kali. Perulangan tak terhingga while True memberi tahu Clawbot untuk terus memperbarui kecepatan dan berjalan selama durasi proyek. Dengan kata lain, perulangan tak terbatas sementara Benar memungkinkan Anda menggunakan Pengendali untuk menggerakkan Clawbot tanpa batas, atau hingga baterainya habis.