Teach Pelajaran dengan makmal jarak jauh

Pelajaran Teach

Robot Arduino Visual (3/4): jarak tanpa pelanggaran

Murid menggunakan bacaan penderia jarak dalam kod visual untuk mengelakkan pelanggaran, menguji nilai ambang dan menerangkan perubahan tingkah laku robot.

  • Arduino robot (visual)
  • 55 min
  • Sekolah menengah rendah / menengah atas awal
  • Bahasa Melayu
  • Robotics · Embedded systems
Arduino robot (visual)
Arduino robot (visual) · Butiran makmal

Hasil pembelajaran

  • Membaca penderia jarak sebelum membuat keputusan.

  • Memilih nilai ambang ringkas berdasarkan pemerhatian.

  • Memprogram tindak balas yang selamat terhadap halangan berdekatan.

Pratonton aktiviti pelajar

Kandungan aktiviti

Pratonton sahaja. Dalam sesi kelas, pelajar boleh mengisi jawapan dan menyerahkan hasil kerja mereka kepada guru.

1

Kesan dahulu sebelum membuat keputusan

8 min

*Penderia tidak membuat keputusan sendiri. Program membaca, membandingkan dengan nilai ambang dan memilih tindak balas yang selamat.*

Daripada bacaan kepada tindak balas

Rajah membaca jarak, membandingkan bacaan dengan nilai ambang dan bertindak balas dengan selamat.

Penderia ialah komponen yang mengukur sesuatu dalam persekitaran dan
menghasilkan bacaan, iaitu nombor. Penderia tidak "tahu" perkara yang perlu
dilakukan; program yang membuat keputusan. Pada robot ini, penderia jarak
menghasilkan nombor anggaran daripada 1 hingga 6: 1 = objek sangat jauh
dan 6 = objek sangat dekat. Semakin dekat objek, semakin tinggi bacaannya.
Nilai ambang ialah nombor pemisah antara "selamat" dengan "terlalu dekat".
Program akan:
1. Membaca penderia.
2. Membandingkan bacaan dengan nilai ambang.
3. Memilih tindak balas.
4. Memerhatikan sama ada tindak balas itu selamat.

Jika bacaan jarak meningkat apabila objek semakin dekat, apakah maksud syarat
bacaan >= 3? Mengapakah anda perlu memerhatikan bacaan sebelum memilih nilai
ambang?

2

Ukur sebelum bertindak

20 min

Bersiri atau komunikasi bersiri ialah saluran teks daripada robot ke skrin
anda. Saluran ini membolehkan bacaan penderia dipaparkan sebagai nombor. Jika
makmal anda tidak menunjukkan output bersiri, jangan bimbang: dalam bahagian
seterusnya anda akan menentukur nilai ambang dengan melihat LED robot tanpa
memerlukan nombor.

  1. Buka makmal visual robot dan pilih pilihan robot yang disarankan.

  2. Sediakan komunikasi bersiri.

  3. Dalam gelung utama, tambah Read proximity sensors (baca penderia jarak).

  4. Baca satu nilai dengan penderia tengah yang mengesan di sebelah kirinya. Ini ialah tetapan lalai sesi dan mengukur jarak di bahagian kiri penderia tengah.

  5. Cetak bacaan ke saluran bersiri.

  6. Tunggu 300 hingga 500 ms supaya perubahan mudah dibaca.

  7. Sahkan, muat naik dan perhatikan bacaan apabila robot jauh daripada dan dekat dengan halangan.

Rujukan blok pengukuran dalam bentuk imej dan teks:

Blok untuk mengukur jarak

Rujukan blok yang menunjukkan persediaan bersiri, pembacaan penderia jarak, pencetakan satu nilai jarak dan waktu tunggu sebelum bacaan berikutnya.
Sebelum menggunakan mesej:
[Setup] Serial speed 9600
Dalam gelung utama:
[Read proximity sensors]
[print]
  penderia tengah mengesan di sebelah kiri
  atau
  penderia tengah mengesan di sebelah kanan
[wait] 300 milisaat

Susunan penting: jika anda memeriksa nilai sebelum Read proximity sensors,
program mungkin menggunakan bacaan lama.
Isi jadual semasa menentukur. Gunakan sekurang-kurangnya tiga baris: satu
untuk objek jauh, satu untuk jarak sederhana dan satu untuk objek dekat. Biarkan
baris tambahan kosong. Dalam setiap baris, rekod keadaan, sisi penderia yang
digunakan, nombor atau tindak balas LED yang dilihat, sama ada robot patut
bertindak dan apa-apa catatan yang membantu anda memilih nilai ambang.

Keadaan yang diperhatikan Penderia yang digunakan Bacaan (nombor atau kedudukan LED bertindak) Perlu bertindak? Catatan

Pilih nilai ambang sementara untuk membezakan "selamat" dengan "terlalu dekat".
Berikan alasan menggunakan satu bacaan daripada jadual anda.

3

Program tindak balas yang selamat

18 min

Programkan peraturan ringkas:
- Jika bacaan lebih besar daripada atau sama dengan nilai ambang: motor 0, LED merah menyala, mesej halangan.
- Jika bacaan lebih rendah daripada nilai ambang: bergerak perlahan dengan 125 atau 150, LED biru menyala, mesej lapang.
Jangan cuba mengelakkan setiap halangan. Dalam sesi ini, memadai jika robot
memberi amaran atau berhenti sebelum halangan yang dapat dilihat dalam satu
keadaan ujian.
Rujukan blok tindak balas dalam bentuk imej dan teks:

Blok tindak balas berdasarkan jarak

Rujukan blok yang menunjukkan keputusan nilai ambang jarak dengan tindak balas berhenti dan LED merah, atau pergerakan perlahan dan LED biru.
Dalam gelung utama:
[Read proximity sensors]
jika [penderia tengah mengesan di kiri >= nilai ambang]:
  [Change two motors speed]
    Kiri:  0
    Kanan: 0
  [Set] red [led to] HIGH
  [Set] blue [led to] LOW
  [print] "halangan"
jika tidak:
  [Change two motors speed]
    Kiri:  125
    Kanan: 125
  [Set] blue [led to] HIGH
  [Set] red [led to] LOW
  [print] "lapang"

Jika anda menukar kepada penderia lain, contohnya mengesan di sebelah kanan,
ubah hanya bacaan penderia dan bukan keseluruhan struktur program.
Tentukur dengan LED jika output bersiri tidak kelihatan: program yang sama
membolehkan penentukuran tanpa nombor. Mulakan dengan nilai ambang, contohnya
3. Gerakkan objek mendekati dan menjauhi penderia, kemudian lihat jarak ketika
LED merah menyala. Jika LED menyala terlalu jauh, naikkan nilai ambang. Jika LED
hanya menyala apabila objek hampir menyentuh robot, turunkan nilai ambang. Ulang
sehingga LED merah menyala pada jarak yang anda mahu.

Adakah tindak balas berlaku terlalu awal, terlalu lewat atau tepat pada masanya?
Nyatakan perkara yang akan anda laras: nilai ambang, kelajuan atau masa tunggu.

Huraikan satu batasan penderia atau ujian anda: kedudukan objek, bacaan tidak
stabil, kedudukan robot, masa menunggu giliran atau pandangan kamera.

4

Hantaran bukti

9 min

Program tindak balas jarak

Hantar nilai ambang anda, tangkap layar atau huraian program dan satu pemerhatian
daripada ujian ketika robot bertindak atau sepatutnya bertindak.