Langsung ke konten utama

Tantangan Mesin Alur - Python

VEX V5 Clawbot dengan lengan terangkat dan cakar terbuka.
VEX V5 Clawbot dengan Lengan Terangkat dan Cakar Terbuka.

Tantangan Mesin Alur

Dalam tantangan ini, Anda akan dibagi menjadi beberapa tim dan memprogram robot Anda untuk melakukan rutinitas tarian menggunakan pengetahuan Anda tentang perulangan. Guru Anda akan menetapkan batas waktu untuk mengembangkan/menguji tarian dan batas waktu untuk durasi tarian tersebut. Semua orang yang tidak tergabung dalam tim yang bertanding dalam babak eliminasi akan menilai tarian dan memberikan suara untuk tim yang menurut mereka terbaik.

Aturan:

  • Setiap Clawbot akan menari satu per satu di dalam area seluas 1x1 meter.
  • Tarian terus berlanjut hingga tombol Stop di layar Brain ditekan untuk menghentikan proyek agar tidak berjalan.
  • Lengan harus diangkat dan diturunkan.
  • Cakar itu harus membuka dan menutup.
  • Clawbot harus berbelok ke kiri dan ke kanan.
  • Clawbot harus bisa bergerak maju dan mundur.
  • Proyek ini harus segera dihentikan jika Clawbot bertabrakan dengan sesuatu atau terjatuh. Itu adalah tarian yang sia-sia.

Ikon Kotak Peralatan Guru Kotak Peralatan Guru

Penilaian untuk kompetisi ini dapat dilakukan dengan beberapa cara. Salah satu cara untuk meningkatkan keterlibatan adalah dengan meminta siswa merekam video kompetisi menari dan meminta siswa dari kelas lain untuk memilih pemenangnya. Jika itu terlalu ambisius, pertimbangkan untuk menunjuk panel juri yang tidak memihak sebelum memulai tantangan ini, atau melibatkan siswa, guru, atau staf lain.

Solusi di bawah ini hanyalah kombinasi dari ketiga contoh gerakan tari yang dirangkai bersama.

# Impor pustaka
dari vex import *

# Mulai kode proyek
while True:
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    arm_motor.set_stopping(BRAKE)
    
    for repeat_count in range(3):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        
        for repeat_claw in range(2):
            claw_motor.spin_for(REVERSE, 90, DEGREES)
            claw_motor.spin_for(FORWARD, 90, DEGREES)
            wait(5, MSEC)
            
        drivetrain.turn_for(LEFT, 90, DEGREES)
        for repeat_claw in range(2):
            claw_motor.spin_for(REVERSE, 90, DEGREES)
            claw_motor.spin_for(FORWARD, 90, DEGREES)
            wait(5, MSEC)
            
        wait(5, MSEC)

    for repeat_count in range(2):
        arm_motor.spin_for(FORWARD, 300, DEGREES)
        arm_motor.set_stopping(BRAKE)
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        
        for repeat_turn in range(9):
            drivetrain.turn_for(LEFT, 10, DEGREES)
            wait(5, MSEC)
            
        arm_motor.spin_for(REVERSE, 300, DEGREES)
        wait(5, MSEC)

    arm_motor.set_velocity(80, PERCENT)
    drivetrain.set_turn_velocity(65, PERSEN)
    
    untuk repeat_count dalam rentang(2):
        arm_motor.spin_for(MAJU, 300, DERAJAT)
        
        untuk repeat_turn dalam rentang(3):
            drivetrain.turn_for(KIRI, 90, DERAJAT)
            drivetrain.turn_for(KANAN, 90, DERAJAT)
            wait(5, MSEC)
            
        arm_motor.spin_for(MUNDUR, 300, DERAJAT)
        wait(5, MSEC)