Groove Machine Challenge - Python
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.
- Beyin ekranındaki Durdur butonuna basılarak projenin çalışması durdurulana 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
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 getirilmesiyle oluşturulmuştur.
# Kütüphane
vex'ten içe aktarır *
# Proje kodunu başlat
while True:
arm_motor.spin_for(İLERİ, 300, DERECE)
arm_motor.set_stopping(FREN)
for repeat_count in range(3):
drivetrain.turn_for(SAĞ, 90, DERECE)
for repeat_claw in range(2):
claw_motor.spin_for(GERİ, 90, DERECE)
claw_motor.spin_for(İLERİ, 90, DERECE)
wait(5, MSEC)
drivetrain.turn_for(SOL, 90, DERECE)
for repeat_claw in range(2):
claw_motor.spin_for(GERİ, 90, DERECE)
pençe_motoru.döndürme_için(İLERİ, 90, DERECE)
bekle(5, MSAN)
bekle(5, MSAN)
aralıktaki tekrarlama_sayısı için:
arm_motoru.döndürme_için(İLERİ, 300, DERECE)
arm_motoru.durdurmayı_ayarla(FREN)
drivetrain.döndürme_için(SAĞ, 90, DERECE)
aralıktaki tekrarlama_sayısı için:
drivetrain.döndürme_için(SOL, 10, DERECE)
bekle(5, MSAN)
arm_motoru.döndürme_için(GERİ, 300, DERECE)
bekle(5, MSAN)
arm_motoru.hız_ayarla(80, YÜZDE)
drivetrain.dönüş_hızı_ayarla(65, YÜZDE)
aralıktaki repeat_count için (2):
arm_motor.spin_for(İLERİ, 300, DERECE)
aralıktaki repeat_turn için (3):
drivetrain.turn_for(SOL, 90, DERECE)
drivetrain.turn_for(SAĞ, 90, DERECE)
wait(5, MSEC)
arm_motor.spin_for(GERİ, 300, DERECE)
wait(5, MSEC)