Tantangan Paket Dash - Python
Tantangan Pengiriman Paket Cepat
Dalam tantangan ini, Anda akan memprogram robot Anda untuk mengambil paket dan membawanya ke dermaga pemuatan secepat mungkin!
Aturan tantangan:
- Robot harus memulai tantangan di Zona Awal.
- Paket-paket (kaleng aluminium) hanya boleh bersentuhan dengan buku-buku, cakar Clawbot, dan Dermaga Pemuatan.
- Jika paket terjatuh di lantai gudang, Anda harus mengatur ulang kolom dan memulai dari awal lagi.
- Waktu untuk setiap percobaan dimulai segera setelah robot bergerak.
- Waktu berhenti begitu paket terakhir dijatuhkan di area bongkar muat.
- Saat mengatur ulang lapangan, semuanya harus dikembalikan ke lokasi persis seperti semula.
- Selamat bersenang-senang!
Tips untuk Guru
- Tingkatkan keterlibatan dengan menciptakan latar belakang atau tujuan untuk gudang tersebut! Gudang jenis apa ini? Jenis paket apa saja yang ditemukan di gudang? Siapa pemilik gudang tersebut?
- Izinkan siswa untuk membuat rute atau strategi berbeda yang memungkinkan mereka mengangkut kaleng dengan lebih efisien.
- Bandingkan tidak hanya waktu penyelesaian untuk menentukan pemenang tantangan ini (jika Anda menyelenggarakannya secara kompetitif) tetapi juga teknik navigasi yang digunakan sehingga siswa dapat mempertimbangkan solusi tim lain.
Solusi Kotak Peralatan Guru
-
Rubrik pemrograman untuk mengevaluasi siswa dapat di.
Berikut ini adalah salah satu solusi yang mungkin untuk tantangan tersebut. Solusi yang dihasilkan dapat bervariasi tergantung pada posisi awal robot dan jalur yang dipilih. Ada beberapa jalur yang dapat mengarah pada pemindahan semua paket.
# Mulai kode proyek
# Jalankan motor cakar dengan aman dan ambil paket pertama
claw_motor.set_timeout(2, seconds)
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.drive_for(FORWARD, 215, MM)
claw_motor.spin_for(FORWARD, 120, DEGREES)
# Berkendara ke Dermaga Pemuatan untuk menurunkan paket pertama
drivetrain.drive_for(REVERSE, 110, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 920, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 2300, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 750, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120, DEGREES)
# Ambil paket kedua
drivetrain.drive_for(REVERSE, 200, MM)
drivetrain.turn_for(LEFT, 170, DEGREES)
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 2300, MM)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(FORWARD, 120, DEGREES)
# Berkendara ke Dermaga Pemuatan untuk menurunkan paket kedua
drivetrain.drive_for(FORWARD, 900, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 960, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120, DEGREES)
# Mengambil paket ketiga
drivetrain.drive_for(REVERSE, 150, MM)
drivetrain.turn_for(LEFT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 490, MM)
arm_motor.spin_for(FORWARD, 315, DEGREES)
claw_motor.spin_for(FORWARD, 120, DEGREES)
# Berkendara ke Dermaga Pemuatan untuk menurunkan paket ketiga
drivetrain.drive_for(REVERSE, 490, MM)
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 150, MM)
arm_motor.spin_for(REVERSE, 315, DEGREES)
claw_motor.spin_for(REVERSE, 120, GELAR)