Langsung ke konten utama
Portal Guru

Tantangan Automed - C++

Denah lantai untuk Automed Challenge termasuk penamaan area sebagai berikut: Apotek, Ruang 1, Ruang 2, Ruang 3, Mulai, dan Lift. Kamar 2 dan Kamar 3 berada di lantai dua, sedangkan semua kamar lainnya berada di lantai satu. Ukuran ditandai, dengan seluruh denah lantai muat dalam persegi panjang berukuran 2 meter kali 1,8 meter.
Tata letak rumah sakit Automed Challenge dengan dimensi

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.

Ikon Tips Guru 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!

Ikon Kotak Peralatan Guru 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);

}