Rekabet Bağlantısı: Dönüm Noktası - C++
Robot Yetenekleri
2018 - 2019 VEX Robotik Yarışması oyunu Turning Point, oyuncuların diğer oyun öğelerinin yanı sıra bayrakları da açmasını gerektiriyordu. Toplamda dokuz bayrak vardı: Robotun çevirebileceği üç alt bayrak ve sadece yarışma top oyunu parçalarıyla vurularak çevrilebilen altı üst bayrak. Yarışma takımlarının top fırlatıcısı kullanarak daha yüksek bayraklara ulaşmanın bir yolunu bulmaları gerekiyordu. Düşünsenize, robotu top oyun taşlarını kullanarak ölçüm yaparak bayraklara vuracak şekilde programlamak her zaman doğru olmayabilir. Robotun otonom periyot içerisinde tek bir yanlış dönüş yapması durumunda, hesaplamalar yanlış olacağından hiçbir bayrağın vurulma ihtimali bulunmaktadır. Benzer şekilde, Sürüş Becerileri yarışmasında, takımların topu düzgün bir şekilde fırlatmak için robotu manuel olarak hizalaması zor olabilir. Böylece yetenekli ekipler, Görüntü Sensörü'nü kullanarak robotu programlayacak ve bayrakları algılayacak, ardından robotu doğru şekilde hizalayarak isabetli atışlar yapabilecek.
Öğrenmenizi Genişletin
Bu etkinliği genişletmek için öğrencilerinizden, robotun bu yarışma oyununda potansiyel olarak kullanabilecekleri sarı nesnelere doğru hareket etmesini sağlayacak bir proje tasarlamalarını ve taslağını çizmelerini isteyin!
Öğrencilerinizden aşağıdakileri yapmalarını isteyin:
-
Clawbot (Aktarma Organları, 2 Motorlu, Jiroskop Yok) örnek projesini açın.

- Görüntü Sensörünü programlarken referans olarak Nesneleri Algılama (Görüntü) örnek projesini kullanın (Google Doc / .v5cpp).
-
Clawbot (Aktarma Organları, 2 Motorlu, Jiroskop Yok) yapılandırmasına Görüntü Sensörünü ekleyin ve ardından Görüntü Sensörünü kırmızı ve mavi nesneleri algılayacak şekilde yapılandırın. Daha fazla bilgi içinburayatıklayın.

- Clawbot'u tespit edilen nesneye doğru hareket edecek şekilde programlayın. Pençebot'un sanki bir bayrağı kaldırıyormuş gibi kolunu kaldırması bile programlanabilir!
- Projeyi indirin ve çalıştırın (C++) ve Vision Sensor'ın VRC Turning Point oyunundaki sarı toplar gibi sarı nesneleri algılayıp algılayamadığını gözlemleyin. Görüntü Sensörü nesneleri algılayabiliyorsa, robot algılanan nesnelere göre hareket ediyor mu? Yardım için Projeyi İndir ve Çalıştır öğretici videosunu izleyin.
- Eğer zamanınız varsa, Turning Point sahasına benzer bir oyun alanı kurun. Robotun puan kazanmak için hareket etmesini sağlamak amacıyla Görüntü Sensörünü kullanma alıştırması yapın!
Aşağıdaki örnek çözümü inceleyin:
// V5 Kütüphanesini ekle
#include "vex.h"
// VEX Kütüphanesinin daha kolay kullanılmasını sağlar
vex ad alanını kullanarak;
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(ters, 300, derece);
ClawMotor.spinFor(ters, 100, derece);
}
else {
Brain.Screen.print("Kırmızı Nesne Yok")
}
}
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(ileri, 90, derece);
ClawMotor.spinFor(ileri, 90, derece);
Drivetrain.driveFor(ileri, 12, inç);
ArmMotor.spinFor(geri, 90, derece);
ClawMotor.spinFor(geri, 90, derece);
}
else {
Brain.Screen.print("Mavi Nesne Yok")
}
}
int main() {
// Robot Yapılandırması Başlatılıyor. ÇIKARMAYIN!
vexcodeInit();
// olay işleyicilerini kaydet
checkRed(hasRedCallback);
checkBlue(hasBlueCallback);
// yeni sensör verilerini kontrol etmek için sürekli çalışır
while (true) {
checkRed.broadcastAndWait();
checkBlue.broadcastAndWait();
wait(0.2, saniye);
}
}