Skip to main content

Groove Machine Mücadelesi - C++

VEX V5 Pençe Robotu, kolu yukarıda ve pençesi açık.
VEX V5 Pençe Robotu, Kolu Yukarı ve Pençesi Açık.

Groove Makinesi Mücadelesi

Bu meydan okumada, takımlara ayrılacak ve döngüler hakkındaki bilginizi kullanarak robotunuzu bir dans rutini yapacak şekilde programlayacaksınız. Öğretmeniniz dansı geliştirmek/test etmek için bir zaman sınırı ve dansın uzunluğu için bir zaman sınırı koyacaktır. Yarışan dans yarışmacıları dışındaki herkes dansları değerlendirecek ve en iyi olduğunu düşündükleri takıma oy verecek.

 

Tüzük:

  • Her Pençebot 1x1 metrelik alan içerisinde teker teker dans edecek.
  • Projenin çalışmasını durdurmak için Beyin ekranındaki Durdur butonuna basılana kadar dans devam eder.
  • Kolun kaldırılıp indirilmesi gerekir.
  • Pençe açılıp kapanmalıdır.
  • Pençebot'un sola ve sağa dönmesi gerekiyor.
  • Pençebot'un ileri ve geri hareket etmesi gerekiyor.
  • Clawbot herhangi bir şeye çarparsa veya devrilirse projenin derhal durdurulması gerekiyor. Bu kaybedilen bir danstır.

Öğretmen Araç Kutusu simgesi Öğretmen Araç Kutusu

Bu yarışmada jürilik birkaç şekilde yapılabilir. Katılımı artırmanın bir yolu, öğrencilerin dans yarışmasını videoya kaydetmelerini ve diğer sınıflardaki öğrencilerin kazananı oylamalarını sağlamaktır. Eğer bu çok iddialıysa, bu mücadeleye başlamadan önce tarafsız bir jüri heyeti atamayı veya diğer öğrencileri, öğretmenleri veya personeli dahil etmeyi düşünebilirsiniz.
Aşağıdaki çözüm, üç örnek dans hareketinin bir araya getirilmesinden ibarettir.

// V5 Kütüphanesini ekle
#include "vex.h"

// VEX Kütüphanesinin daha kolay kullanılmasını sağlar
vex ad alanını kullanarak;

int main() {
  // Robot Yapılandırmasını Başlatma. ÇIKARMAYIN!
  vexcodeInit();
  
  while (true) {
    ArmMotor.spinFor(ileri, 300, derece);
    ArmMotor.setStopping(fren);

    repeat(3) {
      Drivetrain.turnFor(sağ, 90, derece);

      repeat(2) {
        ClawMotor.spinFor(ileri, 90, derece);
        ClawMotor.spinFor(geri, 90, derece);
      }

      Drivetrain.turnFor(sol, 90, derece);

      repeat(2) {
        ClawMotor.spinFor(ileri, 90, derece);
        ClawMotor.spinFor(geri, 90, derece);
      }
    }

    repeat(2) {
      ArmMotor.spinFor(ileri, 300, derece);
      ArmMotor.setStopping(fren);
      Drivetrain.turnFor(sağ, 90, derece);

      repeat(9) {
        Drivetrain.turnFor(sol, 10, derece);
        wait(.5, saniye);
      }

      ArmMotor.spinFor(geri, 300, derece);
    }

    ArmMotor.setVelocity(80, yüzde);
    Drivetrain.setTurnVelocity(65, yüzde);

    repeat(2) {
      ArmMotor.spinFor(ileri, 900, derece);

      repeat(3) {
        Drivetrain.turnFor(sol, 90, derece);
        Drivetrain.turnFor(sağ, 90, derece);
      }

      ArmMotor.spinFor(geri, 900, derece);
    }
  }
}