Koneksi Kompetisi: Titik Balik - C++
Kemampuan Robot
Permainan Turning Point dalam Kompetisi Robotika VEX 2018-2019 mengharuskan pemain untuk mengaktifkan/menonaktifkan bendera di antara elemen permainan lainnya. Terdapat total sembilan bendera: tiga bendera bawah yang dapat diaktifkan/dinonaktifkan oleh robot, dan enam bendera atas yang hanya dapat diaktifkan/dinonaktifkan dengan memukulnya menggunakan potongan bola permainan kompetisi. Tim-tim peserta kompetisi perlu menemukan cara untuk mengenai bendera yang lebih tinggi menggunakan peluncur bola. Jika Anda bisa membayangkan, memprogram robot untuk mengenai bendera menggunakan bidak permainan bola dengan cara mengukur mungkin tidak selalu akurat. Jika robot melakukan satu kesalahan belok selama periode otonom, ada kemungkinan tidak satu pun bendera yang akan terbentur karena perhitungannya akan salah. Demikian pula, untuk tantangan Keterampilan Mengemudi, mungkin akan sulit bagi tim untuk secara manual menyejajarkan robot agar dapat meluncurkan bola dengan benar. Dengan demikian, tim yang terampil akan memprogram robot menggunakan Sensor Penglihatan untuk mendeteksi bendera dan kemudian menyelaraskan robot dengan benar agar dapat melakukan tembakan yang akurat.
Perluas Pembelajaran Anda
Untuk memperluas aktivitas ini, mintalah siswa Anda untuk mendesain dan membuat garis besar proyek yang akan membuat robot bergerak menuju objek kuning yang terdeteksi yang berpotensi dapat mereka gunakan untuk permainan kompetisi ini!
siswa Anda untuk melakukan hal berikut:
-
Buka proyek contoh Clawbot (Drivetrain, 2-motor, Tanpa Gyro).

- Gunakan proyek contoh Mendeteksi Objek (Visi) sebagai referensi saat memprogram Sensor Visi (Google Doc / .v5cpp).
-
Tambahkan Sensor Penglihatan ke konfigurasi Clawbot (Drivetrain, 2-motor, Tanpa Gyro) dan kemudian konfigurasikan Sensor Penglihatan untuk mendeteksi objek merah dan biru. Klikdi siniuntuk informasi selengkapnya.

- Programkan Clawbot untuk bergerak menuju objek yang terdeteksi. Clawbot bahkan dapat diprogram untuk mengangkat lengannya seolah-olah hendak mengibarkan bendera!
- Unduh dan jalankan (dalamC++) proyek tersebut untuk mengamati apakah Sensor Penglihatan dapat mendeteksi objek berwarna kuning seperti bola kuning dalam permainan VRC Turning Point. Jika sensor penglihatan dapat mendeteksi objek, apakah robot bergerak berdasarkan objek yang terdeteksi tersebut? Untuk bantuan, lihat video tutorial Mengunduh dan Menjalankan Proyek.
- Jika waktu memungkinkan, siapkan lapangan permainan yang mirip dengan lapangan Turning Point. Latih penggunaan Sensor Penglihatan agar robot dapat bergerak dan mencetak poin!
Lihat contoh solusi di bawah ini:
// Sertakan Pustaka V5
#include "vex.h"
// Mempermudah penggunaan Pustaka VEX
using namespace vex;
event checkRed = event();
event checkBlue = event();
void hasRedCallback() {
Brain.Screen.setFont(mono40);
Brain.Screen.clearLine(1);
Brain.Screen.setCursor(1, 1);
Vision5.takeSnapshot(Vision5__REDBOX);
if (Vision5.objectCount > 0) {
ArmMotor.spinFor(forward, 300, degrees);
ClawMotor.spinFor(forward, 100, degrees);
Drivetrain.driveFor(forward, 12, inches);
ArmMotor.spinFor(reverse, 300, degrees);
ClawMotor.spinFor(reverse, 100, degrees);
}
else {
Brain.Screen.print("Tidak Ada Objek Merah")
}
}
void hasBlueCallback() {
Brain.Screen.setFont(mono40);
Brain.Screen.clearLine(3);
Brain.Screen.setCursor(3, 1);
Vision5.takeSnapshot(Vision5__BLUEBOX);
if (Vision5.objectCount > 0) {
ArmMotor.spinFor(forward, 90, degrees);
ClawMotor.spinFor(forward, 90, degrees);
Drivetrain.driveFor(forward, 12, inches);
ArmMotor.spinFor(reverse, 90, degrees);
ClawMotor.spinFor(reverse, 90, degrees);
}
else {
Brain.Screen.print("Tidak Ada Objek Biru")
}
}
int main() {
// Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS!
vexcodeInit();
// mendaftarkan event handler
checkRed(hasRedCallback);
checkBlue(hasBlueCallback);
// terus berjalan untuk memeriksa data sensor baru
while (true) {
checkRed.broadcastAndWait();
checkBlue.broadcastAndWait();
wait(0.2, seconds);
}
}