Lompat ke isi utama

Tantangan Data Visi - Python

Ikon Kotak Alat Guru Kotak Alat Guru - Tujuan Tantangan Data Visi

Tujuan dari Tantangan Data Penglihatan adalah untuk memastikan bahwa siswa memahami data yang dikumpulkan dari snapshot Sensor Penglihatan dan bagaimana nilai pusat X dan Y dihitung. Siswa Anda juga harus menyelesaikan lab ini dengan pemahaman tentang bagaimana data tersebut dapat ditafsirkan (misalnya, nilai pusat X dapat digunakan untuk menentukan di mana objek berada relatif terhadap titik pusat robot), dan praktik terbaik untuk memberi nama objek saat mengonfigurasi.

Cuplikan Sensor Penglihatan dari konfigurasi yang menunjukkan tangan memegang roda gigi kuning. Hamparan persegi berada di atas roda gigi dengan data berikut tercantum di atas: Kotak Kuning, X 90, Y 62, L 102, T 98.

Selesaikan Tantangan Data Visi dengan menjawab pertanyaan dan mengisi data yang hilang di buku catatan teknik Anda.

  1. Instruksi manakah yang digunakan untuk mengambil gambar di atas?
    1. visi_5.ambil_snapshot(REDBOX)
    2. vision_5.take_snapshot(KOTAK KUNING)
  2. Isi nilai-nilai ini:

    Perintah Sensor Penglihatan tercantum di sisi kiri dengan kotak kosong untuk diisi dengan nilainya. Dari atas ke bawah blok-blok tercantum: objek visi 5 bukan tidak ada 0, len objek visi 5, pusat objek terbesar x, pusat objek terbesar y, lebar objek terbesar, dan tinggi objek terbesar.

  3. Apakah YELLOWBOX berada di sebelah kiri atau kanan titik tengah robot?
  4. Apakah YELLOWBOX di atas atau di bawah titik tengah robot?
  5. YELLOWBOX adalahBUKANnama terbaik untuk diberikan pada objek ini jika Anda ingin dengan mudah mengenali tanda warna mana yang mana. Nama manakah yang lebih baik? Mengapa?
    1. YELLOWGEAR
    2. KUBUS KUNING

Ikon Kotak Alat Guru Kotak Alat Guru - Jawaban

Jawaban siswa dapat didiskusikan sebagai kelas dan/atau Anda dapat meninjau buku catatan teknik mereka untuk memastikan bahwa mereka menyelesaikan aktivitas dengan sukses.

  1. vision_5.take_snapshot(KOTAK KUNING)
  2. Data yang telah selesai disesuaikan dengan perintah VEXcode. Jawaban dibaca, secara berurutan, visi 5 objek tidak benar = Benar; visi 5 objek len = 1; pusat objek terbesar x = 141; pusat objek terbesar y = 111; lebar objek terbesar = 102; tinggi objek terbesar = 98.
  3. YELLOWBOX berada sedikit di sebelah kiri titik tengah robot tetapi hanya memiliki perbedaan 16,5 piksel (pusat 157,5 - 141).
  4. YELLOWBOX sedikit lebih rendah dari titik tengah robot tetapi hanya terdapat perbedaan 5,5 piksel (111 - tengah 105,5).
  5. A. YELLOWGEAR

    Ini adalah nama yang lebih baik karena tidak hanya menggambarkan warna objek tetapi juga jenis objek. Itu adalah roda gigi,bukankotak atau kubus.

Ikon Perluas Pembelajaran Anda Perluas Pembelajaran Anda - Gunakan Instruksi Penginderaan dalam Proyek

Sekarang setelah beberapa data yang dilaporkan Sensor Penglihatan lebih dipahami, siswa mungkin ingin menggunakan Petunjuk Penginderaan ini dalam sebuah proyek. Biarkan mereka mengeksplorasi cara melakukannya.

def check_red_callback():
    brain.screen.set_font(FontType.MONO40)
    brain.screen.clear_row(3)
    brain.screen.set_cursor(3, 1)
    vision_5_objects = vision_5.take_snapshot(REDBOX)

    if (vision_5_objects):
        brain.screen.print("Objek Merah Ditemukan")
        brain.screen.next_row()
        brain.screen.print("Jumlah Objek Terdeteksi:", len(vision_5_objects))
        brain.screen.next_row()
        brain.screen.print("Pusat X:", vision_5.objek_terbesar().pusatX)
        brain.screen.next_row()
        brain.screen.print("Pusat Y:", vision_5.objek_terbesar().pusatY)
        brain.screen.next_row()
        brain.screen.print("Lebar:", vision_5.objek_terbesar().width)
        brain.screen.next_row()
        brain.screen.print("Tinggi:", vision_5.objek_terbesar().height)
        brain.screen.next_row()
    
    else:
        brain.screen.print("Tidak Ada Objek Merah")

Siswa yang lebih mahir mungkin menggunakan instruksi ini dalam suatu proyek untuk membuat keputusan.

sementara Benar:
    drivetrain.drive(MAJU)
    vision_5_objects = vision_5.ambil_snapshot(KOTAK_MERAH)
    jika (vision_5_objects) dan (vision_5.objek_terbesar().centerX < 157.5):
        drivetrain.putar_untuk(KIRI, 90, DERAJAT)
    yang lain:
        drivetrain.putar_untuk(KANAN, 90, DERAJAT)
        tunggu(5, MSEC)