Lompat ke isi utama

Ikon Kotak Alat Guru Kotak Alat Guru - Tujuan Kegiatan Ini

Kegiatan ini akan memperkenalkan siswa pada penggunaan pernyataan while dan if then agar robot dapat melaju maju kecuali layar ditekan.

  • Kegiatan ini akan memperkenalkan siswa kepada kondisi dan instruksi yang membuat robot bergerak maju kecuali layar ditekan.

  • Untuk informasi lebih lanjut tentang jika maka dan jika maka yang lain atau pernyataan lain yang digunakan dalam aktivitas ini, kunjungi informasi bantuan dalam VEXcode V5. Untuk informasi lebih lanjut tentang alat bantuan bawaan ini, lihat artikel berikut tentang bantuan di C++ .

Ikon Kotak Alat Guru Kotak Peralatan Guru

Untuk saran mengenai strategi pengajaran untuk bagian ini, tinjau kolom Pengiriman dari Panduan Kecepatan Yang Harus Dilakukan atau Tidak Dilakukan! (Google Doc / .docx / .pdf)

Clawbot siap mengambil keputusan!

Eksplorasi ini akan memberi Anda alat untuk dapat mulai membuat beberapa proyek keren yang menggunakan pernyataan if then else .

  • Perintah VEXcode V5 C++ yang akan digunakan dalam eksplorasi ini: 
    • Drivetrain.drive(maju);
    • Brain.Screen.pressing()
    • Sistem penggerak.berhenti();
    • jika (kondisi){}
    • tunggusampai();
    • sementara (kondisi){}  
    • tunggu(1, detik);

Anda dapat menggunakan informasi Bantuan di dalam VEXcode V5 untuk mempelajari instruksi C++.

VEXcode V5 dengan perintah yang diketik di ruang kerja di sebelah kiri, dan informasi Bantuan terbuka di sebelah kanan. Bantuan menunjukkan definisi perintah dan informasi tentang cara penggunaannya.

Pastikan Anda memiliki perangkat keras yang diperlukan, buku catatan teknik, dan VEXcode V5 yang siap.

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

Templat Clawbot (Drivetrain 2-motor, Tanpa Gyro)

Ikon Tips Guru Tips Guru

Jika ini adalah pertama kalinya siswa menggunakan VEXcode V5, mereka dapat merujuk Tutorial kapan saja selama eksplorasi ini. Tutorial ada di bilah alat.

Toolbar VEXcode V5 dengan ikon Tutorial disorot dalam kotak merah. Dari sebelah kiri, Toolbar memperlihatkan ikon V5, ikon bola dunia, File, lalu Tutorial. Di sebelah kanan terdapat ikon dan fungsi tambahan.

Langkah 1: Mari kita mulai dengan pemahaman pernyataan kondisional 

Sebelum Anda memulai pemrograman dengan kondisi, bacalah Artikel Pustaka VEX yang menjelaskan Pernyataan If Then Else . Artikelnya dapat ditemukan di sini.

Tangkapan layar dari Pustaka VEX, menunjukkan artikel berjudul Menggunakan pernyataan if-else dalam VEXcode V5.Untuk daftar operator yang digunakan dalam pernyataan If Then Else , baca Artikel Pustaka VEX yang menjelaskan Boolean. Artikel ini dapat ditemukan di sini.Tangkapan layar dari Pustaka VEX, menunjukkan artikel berjudul Menggunakan Boolean di VEXcode V5.

Langkah 2: Mari mulai pemrograman dengan pernyataan kondisional.

  • Buka proyek contoh templat Clawbot (Drivetrain 2-motor, Tanpa Gyro).

    Contoh pemilihan proyek dalam VEXcode V5 dengan kotak merah di sekitar filter Templat di bagian atas dan proyek motor drivetrain 2 Clawbot tanpa gyro, yang menunjukkan templat mana yang akan dibuka.

     

  • Bangun proyek di bawah ini.
// Mulai kode proyek
int main() {
  // Inisialisasi Konfigurasi Robot. JANGAN DIHAPUS!
  vexcodeInit();

  sementara (benar) {
    Drivetrain.drive(maju);
    jika (Brain.Screen.menekan()) {
      Drivetrain.berhenti();
      tungguSampai(!Brain.Screen.menekan());
    }    
  }  
}  

Lakukan hal berikut di buku catatan teknik Anda:

  • Jelaskan apa saja yang dilakukan proyek Clawbot. Anda perlu menjelaskan lebih dari sekadar fakta bahwa hal itu menciptakan tombol berhenti. Jelaskan instruksi mana yang membuat Clawbot melakukan apa.
  • Tulis ringkasan satu kalimat yang menggambarkan apa yang dilakukan proyek tersebut.
  • Uji untuk melihat apakah prediksi Anda tentang apa yang dilakukan proyek Clawbot itu benar.

Kotak dialog Nama Proyek di Toolbar VEXcode V5 bertuliskan Membuat Tombol Berhenti dan menunjukkan bahwa slot 1 dipilih.

  • Simpan dan unduh proyek sebagai CreatingAStopButton ke Slot 1 di Clawbot, lalu jalankan.
  • Untuk bantuan mengunduh proyek, lihat tutorial di VEXcode V5 yang menjelaskan cara Mengunduh dan Menjalankan Proyek (C++).
  • Periksa penjelasan Anda tentang proyek dan tambahkan catatan untuk memperbaikinya bila diperlukan.

Ikon Kotak Alat Guru Kotak Alat Guru - Jawaban

Proyek ini membuat robot terus melaju ke depan tetapi berhenti jika layar ditekan. Hal ini dilakukan dengan menggunakan pernyataan selamanya untuk menggerakkan dan memeriksa secara terus-menerus. Jika layar ditekan (BENAR), maka Clawbot berhenti mengemudi.Proyek Membuat Tombol Berhenti ditunjukkan dengan perintah yang diberi label tujuannya. Perintah if dilingkari merah dan diberi label Memeriksa apakah kondisinya Benar - layar ditekan. Perintah Drivetrain dot stop diberi label Menjalankan blok jika benar. Perintah tunggu hingga diberi label mengontrol kecepatan pemrosesan.

Siswa tidak diharapkan memahami mengapa instruksi waitUntil () digunakan. Jelaskan bahwa instruksi waitUntil () diperlukan karena kecepatan aliran program robot. Jika tidak ada, motor Clawbot akan berperilaku seolah-olah pengguna menekan layar berulang kali saat mengulang proyek. Sebaliknya, instruksi waitUntil() menghentikan aliran program dan tidak membuat proyek memulai putaran selamanya lagi hingga pengguna berhenti menekan layar.

Baris pseudocode bisa sesederhana: Terus maju hingga layar ditekan.

Buku catatan teknik siswa dapat dikelola dan diberi skor secara individu (Google Doc / .docx / .pdf) atau sebagai tim  (Google Doc / .docx / .pdf). Tautan sebelumnya menyediakan rubrik yang berbeda untuk setiap pendekatan. Setiap kali rubrik disertakan dalam perencanaan pendidikan, praktik yang baik adalah menjelaskan rubrik tersebut atau setidaknya memberikan salinannya kepada siswa sebelum kegiatan dimulai.

Langkah 3: Memahami pernyataan wait until() 

Perhatikan bahwa jika layar Brain ditekan, aliran proyek bergerak cepat dan proyek akan berpindah ke instruksi berikutnya, yaitu instruksi Drivetrain.stop() .

Jadi, proyek tersebut memerlukan instruksi waitUntil() yang memberi tahu robot untuk tetap berhenti hingga layar Brain dilepaskan. Jika tidak, pernyataan selamanya akan menyebabkan proyek dimulai lagi.

tungguSampai(!Brain.Screen.pressing());

Instruksi waitUntil() diperlukan karena kecepatan aliran proyek. Jika tidak ada, proyek akan berpindah ke instruksi berikutnya sebelum robot sempat merespons.

Langkah 4: Ubah proyek.

Langkah kita selanjutnya adalah mengubah pernyataan if then menjadi pernyataan if then else.

Kotak dialog nama proyek di Toolbar VEXcode V5 bertuliskan Stop atau Drive dan memperlihatkan bahwa slot 1 dipilih.

  • Mulailah dengan menyimpan CreatingAStopButton sebagai proyek baru, StopOrDrive.
  • Jika Anda memerlukan bantuan untuk menyimpan proyek, klik di sini untuk C++.
  • Kemudian buat proyek StopOrDrive yang ditunjukkan di bawah ini.
// Mulai kode proyek
int main() {
  // Inisialisasi Konfigurasi Robot. JANGAN DIHAPUS!
  vexcodeInit();

  sementara (benar) {
    Drivetrain.drive(maju);
    jika (Brain.Screen.pressing()) {
      Drivetrain.stop();
      tungguSampai(!Brain.Screen.pressing());
    } 
    yang lain {
      Drivetrain.drive(maju);
    }   
  }  
}  
  • Unduh StopOrDrive ke Slot 2 di Clawbot Anda.

Pemilihan slot di Toolbar VEXcode V5 terbuka dan slot 2 dipilih dan disorot dengan kotak merah. Nama proyeknya adalah Stop atau Drive.

  • Untuk bantuan mengunduh proyek, lihat tutorial di VEXcode V5 yang menjelaskan cara Mengunduh dan Menjalankan Proyek (C++).
  • Uji Membuat Tombol Berhenti (Slot 1) lalu uji StopOrDrive (Slot 2) dan bandingkan untuk melihat apakah ada perbedaan dalam perilaku robot. Catat setiap perbedaan di buku catatan teknik Anda

Ikon Kotak Alat Guru Kotak Alat Guru - Jawaban

Mengenai perilaku robot, seharusnya ada bukan perbedaan antara proyek CreatingAStopButton dan StopOrDrive .

Jika siswa memerlukan bantuan lebih lanjut untuk memahami Pernyataan If-Else, klik di sini.

Kedua proyek tersebut membuat Clawbot berperilaku dengan cara yang sama. Satu-satunya perbedaan adalah penggunaan pernyataan if then else dalam proyek StopOrDrive .

Menggunakan pernyataan if then else akan memungkinkan Anda menambahkan tombol tambahan ke layar dalam aktivitas mendatang.

Ikon Perluas Pembelajaran Anda Perluas Pembelajaran Anda

Saat Lab STEM ini berlangsung, siswa akan mengembangkan proyek yang memungkinkan layar Clawbot berfungsi sebagai antarmuka pengguna. Sebagai persiapannya, tantang siswa untuk mencari cara menggambar persegi panjang berwarna di layar yang berfungsi seperti tombol. Karena menekan bagian mana saja pada layar merupakan kondisi saat ini, tombol tersebut seharusnya memenuhi seluruh layar. Siswa harus meminta proyek menyiarkan kejadian untuk menggambar tombol saat dimulai.
Arahkan siswa untuk terlebih dahulu mempelajari bagaimana layar otak diatur dalam sistem koordinat. Mereka perlu memahami hal ini untuk menetapkan parameter dalam instruksi yang akan mereka gunakan. Koordinat yang digunakan sesuai dengan jumlah piksel, bukan jumlah kolom atau baris. Berikut tata letak layarnya:

Kisi piksel layar V5 Brain menunjukkan 12 baris bernomor di sepanjang sisi kiri, dengan baris atas diberi label Baris 1 dan baris bawah diberi label Baris 12. Di bagian atas terdapat 48 kolom bernomor, dengan Kolom 1 diberi label di paling kiri dan Kolom 48 diberi label di paling kanan. Total ukuran pikselnya adalah lebar 480 piksel dan tinggi 240 piksel.

Siswa harus merencanakan, menguji, dan menyempurnakan perubahan pada proyek sambil mendokumentasikannya dalam buku catatan teknik mereka. Untuk rubrik buku catatan teknik individual, klik salah satu tautan berikut (Google Doc / .docx / .pdf), atau klik salah satu tautan berikut untuk buku catatan tim (Google Doc / .docx / .pdf).

Berikut adalah contoh solusinya:

// Mulai kode proyek
event draw = event();

void drawButton() {
  Brain.Screen.setFillColor(red);
  Brain.Screen.drawRectangle(0, 0, 480, 240);
  wait(1, seconds);
}

int main() {
  // Menginisialisasi Konfigurasi Robot. JANGAN DIHAPUS!
  vexcodeInit();

  draw(drawButton);

  while (true) {
    draw.broadcast();
    Drivetrain.drive(maju);
    if (Brain.Screen.pressing()) {
      waitUntil(!Brain.Screen.pressing());
    } 
    else {
      Drivetrain.drive(maju);
    }   
  }  
}  

Seperti yang Anda lihat, tombol digambar untuk memenuhi seluruh layar dimulai dari titik asal (0, 0) dan mengisi semua 480 piksel horizontal (sumbu x) dan 240 piksel vertikal (sumbu y).