Tantangan Automed - C++
Tantangan Otomatis
Dalam tantangan ini, Anda perlu memprogram robot Anda untuk menavigasi rumah sakit sambil mengantarkan obat-obatan kepada pasien di beberapa ruangan yang berbeda.
Tips untuk Guru
Tingkatkan keterlibatan dengan membuat latar belakang cerita tentang rumah sakit! Jenis rumah sakit apa ini dan jenis pasien apa yang dilayani oleh rumah sakit ini?
Aturan Tantangan
-
Robot harus memulai dan mengakhiri perjalanan di Zona Awal.
-
Seluruh robot harus berada di dalam Apotek, Lift, dan Ruang Pasien dan menunggu selama waktu berikut untuk menyelesaikan tindakan:
-
Apotek: Tunggu setidaknya 5 detik sebelum mengambil obat.
-
Lift: Tunggu setidaknya 5 detik untuk mencapai lantai berikutnya.
-
Ruang Pasien: Tunggu setidaknya 3 detik sebelum meletakkan obat.
-
-
Robot tersebut tidak boleh bersentuhan dengan atau melewati dinding apa pun.
-
Robot tersebut harus mengunjungi Apotek terlebih dahulu untuk mengambil obat-obatan untuk Kamar Pasien.
-
Robot tersebut harus mengunjungi setiap Kamar Pasien (tanpa urutan tertentu) untuk mengantarkan obat.
-
Selamat bersenang-senang!
Solusi Kotak Peralatan Guru
-
Rubrik pemrograman untuk mengevaluasi siswa dapat ditemukan di sini (Google / .docx / .pdf ).
Lihat contoh solusi VEXcode V5 C++ di bawah ini:
int main() {
// Menginisialisasi Konfigurasi Robot. JANGAN DILEPAS!
vexcodeInit();
// Mulai kode proyek
// Pergi ke apotek
Drivetrain.driveFor(maju, 900, mm);
Drivetrain.turnFor(kiri, 90, derajat);
Drivetrain.driveFor(maju, 1350, mm);
Drivetrain.turnFor(kanan, 90, derajat);
Drivetrain.driveFor(maju, 600, mm);
wait(6, detik);
// Pergi ke ruangan 1
Drivetrain.driveFor(mundur, 600, mm);
Drivetrain.turnFor(kanan, 90, derajat);
Drivetrain.driveFor(maju, 600, mm);
Drivetrain.turnFor(kiri, 90, derajat);
Drivetrain.driveFor(maju, 600, mm);
wait(5, detik);
// Pergi ke lift
Drivetrain.driveFor(reverse, 600, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
wait(6, seconds);
// Pergi ke ruangan 2
Drivetrain.driveFor(reverse, 800, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 1000, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 800, mm);
wait(5, seconds);
// Pergi ke ruangan 3
Drivetrain.driveFor(reverse, 800, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 800, mm);
wait(5, seconds);
// Pergi ke lift
Drivetrain.driveFor(reverse, 800, mm);
Drivetrain.turnFor(left, 90, degrees);
Drivetrain.driveFor(forward, 600, mm);
Drivetrain.turnFor(right, 90, degrees);
Drivetrain.driveFor(forward, 800, mm);
wait(6, seconds);
// Kembali ke zona awal
Drivetrain.driveFor(forward, 1500, mm);
}