5.1 KiB
Mengesan Kedekatan - Wio Terminal
Dalam bahagian pelajaran ini, anda akan menambah sensor kedekatan pada Wio Terminal anda, dan membaca jarak daripadanya.
Perkakasan
Wio Terminal memerlukan sensor kedekatan.
Sensor yang akan anda gunakan ialah Grove Time of Flight distance sensor. Sensor ini menggunakan modul pengukuran laser untuk mengesan jarak. Sensor ini mempunyai julat dari 10mm hingga 2000mm (1cm - 2m), dan akan melaporkan nilai dalam julat tersebut dengan tepat, dengan jarak melebihi 1000mm dilaporkan sebagai 8109mm.
Pencari jarak laser terletak di bahagian belakang sensor, bertentangan dengan soket Grove.
Ini adalah soket I²C.
Sambungkan sensor time of flight
Sensor Grove time of flight boleh disambungkan ke Wio Terminal.
Tugasan - sambungkan sensor time of flight
Sambungkan sensor time of flight.
-
Masukkan satu hujung kabel Grove ke dalam soket pada sensor time of flight. Ia hanya boleh dimasukkan dalam satu arah sahaja.
-
Dengan Wio Terminal tidak disambungkan ke komputer atau sumber kuasa lain, sambungkan hujung lain kabel Grove ke soket Grove di sebelah kiri Wio Terminal apabila anda melihat skrin. Ini adalah soket yang paling dekat dengan butang kuasa. Ini adalah soket gabungan digital dan I²C.
- Anda kini boleh menyambungkan Wio Terminal ke komputer anda.
Programkan sensor time of flight
Wio Terminal kini boleh diprogramkan untuk menggunakan sensor time of flight yang disambungkan.
Tugasan - programkan sensor time of flight
-
Cipta projek Wio Terminal baharu menggunakan PlatformIO. Namakan projek ini
distance-sensor
. Tambahkan kod dalam fungsisetup
untuk mengkonfigurasi port serial. -
Tambahkan kebergantungan perpustakaan untuk perpustakaan Seeed Grove time of flight distance sensor ke dalam fail
platformio.ini
projek:lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
-
Dalam
main.cpp
, tambahkan yang berikut di bawah arahan include sedia ada untuk mengisytiharkan satu instance kelasSeeed_vl53l0x
untuk berinteraksi dengan sensor time of flight:#include "Seeed_vl53l0x.h" Seeed_vl53l0x VL53L0X;
-
Tambahkan yang berikut ke bahagian bawah fungsi
setup
untuk memulakan sensor:VL53L0X.VL53L0X_common_init(); VL53L0X.VL53L0X_high_accuracy_ranging_init();
-
Dalam fungsi
loop
, baca nilai daripada sensor:VL53L0X_RangingMeasurementData_t RangingMeasurementData; memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t)); VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
Kod ini memulakan struktur data untuk membaca data, kemudian menghantarnya ke kaedah
PerformSingleRangingMeasurement
di mana ia akan diisi dengan ukuran jarak. -
Di bawah ini, tulis ukuran jarak, kemudian tunggu selama 1 saat:
Serial.print("Distance = "); Serial.print(RangingMeasurementData.RangeMilliMeter); Serial.println(" mm"); delay(1000);
-
Bina, muat naik dan jalankan kod ini. Anda akan dapat melihat ukuran jarak menggunakan monitor serial. Letakkan objek berhampiran sensor dan anda akan melihat ukuran jarak:
Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
Pencari jarak terletak di bahagian belakang sensor, jadi pastikan anda menggunakan sisi yang betul semasa mengukur jarak.
💁 Anda boleh menemui kod ini dalam folder code-proximity/wio-terminal.
😀 Program sensor kedekatan anda berjaya!
Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat yang kritikal, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.