5.2 KiB
Yakınlık Algılama - Wio Terminal
Bu dersin bu bölümünde, Wio Terminal'inize bir yakınlık sensörü ekleyecek ve mesafeyi okuyacaksınız.
Donanım
Wio Terminal bir yakınlık sensörüne ihtiyaç duyar.
Kullanacağınız sensör, bir Grove Time of Flight mesafe sensörü. Bu sensör, mesafeyi algılamak için bir lazer ölçüm modülü kullanır. Sensör, 10mm ile 2000mm (1cm - 2m) arasında bir aralığa sahiptir ve bu aralıktaki değerleri oldukça doğru bir şekilde raporlar. 1000mm'nin üzerindeki mesafeler 8109mm olarak rapor edilir.
Lazer mesafe ölçer, sensörün arka tarafında, Grove soketinin karşı tarafında yer alır.
Bu bir I²C sensörüdür.
Time of Flight Sensörünü Bağlama
Grove Time of Flight sensörü, Wio Terminal'e bağlanabilir.
Görev - Time of Flight Sensörünü Bağlayın
Time of Flight sensörünü bağlayın.
-
Grove kablosunun bir ucunu Time of Flight sensöründeki sokete takın. Kablo yalnızca tek bir yönde takılabilir.
-
Wio Terminal'inizi bilgisayarınızdan veya başka bir güç kaynağından ayırarak, Grove kablosunun diğer ucunu Wio Terminal'in ekranına bakarken sol taraftaki Grove soketine bağlayın. Bu soket, güç düğmesine en yakın olan sokettir. Bu soket, dijital ve I²C kombinasyonlu bir sokettir.
- Artık Wio Terminal'i bilgisayarınıza bağlayabilirsiniz.
Time of Flight Sensörünü Programlama
Wio Terminal artık bağlı Time of Flight sensörünü kullanacak şekilde programlanabilir.
Görev - Time of Flight Sensörünü Programlayın
-
PlatformIO kullanarak yeni bir Wio Terminal projesi oluşturun. Bu projeye
distance-sensor
adını verin.setup
fonksiyonunda seri portu yapılandırmak için kod ekleyin. -
Projenin
platformio.ini
dosyasına Seeed Grove Time of Flight mesafe sensörü kütüphanesi için bir bağımlılık ekleyin:lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
-
main.cpp
dosyasında, mevcut include yönergelerinin altına, Time of Flight sensörüyle etkileşim kurmak içinSeeed_vl53l0x
sınıfının bir örneğini tanımlayın:#include "Seeed_vl53l0x.h" Seeed_vl53l0x VL53L0X;
-
Sensörü başlatmak için
setup
fonksiyonunun sonuna şu kodu ekleyin:VL53L0X.VL53L0X_common_init(); VL53L0X.VL53L0X_high_accuracy_ranging_init();
-
loop
fonksiyonunda, sensörden bir değer okuyun:VL53L0X_RangingMeasurementData_t RangingMeasurementData; memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t)); VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
Bu kod, verileri okumak için bir veri yapısı başlatır ve ardından bu yapıyı
PerformSingleRangingMeasurement
metoduna geçirir. Bu metod, mesafe ölçümünü veri yapısına doldurur. -
Bunun altına, mesafe ölçümünü yazdırın ve ardından 1 saniye bekleyin:
Serial.print("Distance = "); Serial.print(RangingMeasurementData.RangeMilliMeter); Serial.println(" mm"); delay(1000);
-
Bu kodu derleyin, yükleyin ve çalıştırın. Seri monitör ile mesafe ölçümlerini görebileceksiniz. Sensöre yakın nesneler yerleştirin ve mesafe ölçümünü gözlemleyin:
Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
Mesafe ölçer, sensörün arka tarafında yer alır, bu yüzden mesafeyi ölçerken doğru tarafı kullandığınızdan emin olun.
💁 Bu kodu code-proximity/wio-terminal klasöründe bulabilirsiniz.
😀 Yakınlık sensörü programınız başarıyla çalıştı!
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluğu sağlamak için çaba göstersek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.