
İnsanlar bir metre dairenize girdiğinde ışık ve ses uyarısı veren taşınabilir bir mesafe alarmı.
Bu projede kullanılan malzemeler
| Donanım bileşenleri | ||||
| Seeeduino XIAO | × | 1 | ||
| Grove – LED Paketi | × | 1 | ||
| Grove – Buzzer | × | 1 | ||
| Grove – Uçuş Süresi Mesafe Sensörü (VL53L0X) | × | 1 | ||
| Yazılım uygulamaları ve çevrimiçi hizmetler | ||||
| Arduino IDE | ||||
| El aletleri ve üretim makineleri | ||||
| Elektrikli Lehimleme Demiri |
Hikaye
Perşembe günü Sağlık Bakanlığı’ndan yapılan basın açıklamasına göre, Singapur, koronavirüs salgınını kontrol altına almak için uygulanan sosyal mesafe önlemlerine uymayanlara ağır para cezaları ve hapis cezası uygulayacağını duyurdu. “Geçici olmayan” etkileşimlerde bir metre fiziksel mesafeye uymayan kişiler, 10,000 Singapur doları (6,985 $) kadar para cezasına çarptırılabilir veya altı aya kadar hapis cezası alabilir, ya da her iki ceza ile de karşılaşabilirler.
Böyle etkileşimler, kamu alanında başka bir oturan bireyden kasıtlı olarak bir metreden daha az mesafede oturan, yere sabitlenmemiş koltuklardaki insanları içerir. Kamu alanlarında sırada bekleyen ve bir sonraki kişiden bir metreden daha az mesafede olan kişiler de kurallara göre cezalandırılacaktır.
Bu kritik dönemde başkalarından mesafe korumak gereklidir. Ancak, bunu her saniye akılda tutmak veya başkalarıyla çok yakın olan dikkatsiz insanları uyarmak o kadar da kolay değil. Bu sorunu çözmek için, insanların bir metre dairenize girdiğinde ışık ve ses uyarısı verebilen bu küçük cep mesafe alarmını yaptım.
Adım 1: Donanım Bağlantısı
Boyutu çok büyük olamayacak küçük bir giyilebilir ürün olduğu için, ana kart olarak Seeeduino XIAO’yu kullanmayı tercih ettim. Seeeduino XIAO, Seeedstudio’nun yeni çıkardığı üründür ve sahip olabileceğim en küçük karttır.
Donanım bağlantısı aşağıdaki gibi bulunabilir.
P.S.: Bunu 1:1 oranında çizdim ve Seeeduino XIAO gerçekten çok küçük!!!
Bu arada, “Xiao” Çince’de “Küçük” anlamına gelir(小).

Adım 2: Lehimleme
Xiao gerçekten çok küçük ve sevimli olsa da, lehimleme kısmı sabır gerektiriyor. Xiao’nun breakout kartının yakında çıkacağı söyleniyor, bu nedenle umarım hem Xiao’nun küçük boyutunun hem de lehimleme yapmadan kolay Grove bağlantısının tadını çıkarabiliriz.
Lehimleme becerim mükemmel olmaktan uzak. Sonuç olarak görebilirsiniz.

1 / 2
Adım 3: Kodu Yükle ve Test Et
- Öncelikle VL53L0X Kütüphanesini Github’dan indirmeniz gerekiyor.
- Grove-Ranging-sensor-VL53L0X-master.zip dosyasını Arduino kütüphane klasörüne çıkarın.
- Demo’yu yükleyin. Kodu nasıl yükleyeceğinizi bilmiyorsanız, Kodu nasıl yükleyeceğinizi kontrol edin.
- Arduino IDE’nin Seri Monitör‘ünü açmak için Araç-> Seri Monitör‘e tıklayın. Ya da Ctrl+Shift+M tuşlarına aynı anda basın. Her şey yolunda giderse, monitörden mesafe sonucunu alacaksınız.

Adım 4: Kabuğu Tasarla ve Lazer Kesimi

Not: Gri çizgi modülün konumunu belirtmek içindir, yalnızca siyah çizgi kesilmelidir.
Elbette, tüm bileşenleri sığdırabildiğiniz sürece kabuğun daha fazla şeklinin tasarımını yapabilirsiniz.

Adım 5: Parçaları Birleştirme


Adım 6: Tamam!
Arduino Kodu
const int Buzzer = 8;// D8
const int LED = 7;//LED D7
#include "Seeed_vl53l0x.h"
Seeed_vl53l0x VL53L0X; //tof IIC D4 D5
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SerialUSB
#else
#define SERIAL Serial
#endif
void setup() {
pinMode(Buzzer, OUTPUT);
pinMode(LED, OUTPUT);
digitalWrite(Buzzer, LOW); // Buzzer'ı aç (HIGH voltaj seviyesidir)
digitalWrite(LED, LOW); // LED'i aç (HIGH voltaj seviyesidir)
VL53L0X_Error Status = VL53L0X_ERROR_NONE;
SERIAL.begin(115200);
Status = VL53L0X.VL53L0X_common_init();
if (VL53L0X_ERROR_NONE != Status) {
SERIAL.println("vl53l0x ölçümüne başlama başarısız oldu!");
VL53L0X.print_pal_error(Status);
while (1);
}
VL53L0X.VL53L0X_long_distance_ranging_init();
if (VL53L0X_ERROR_NONE != Status) {
SERIAL.println("vl53l0x ölçümüne başlama başarısız oldu!");
VL53L0X.print_pal_error(Status);
while (1);
}
}
void loop() {
VL53L0X_RangingMeasurementData_t RangingMeasurementData;
VL53L0X_Error Status = VL53L0X_ERROR_NONE;
memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t));
Status = VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
if (VL53L0X_ERROR_NONE == Status) {
if (RangingMeasurementData.RangeMilliMeter >= 2000) {
SERIAL.println("menzil dışı!!");
digitalWrite(Buzzer, LOW); // Buzzer'ı aç (HIGH voltaj seviyesidir)
digitalWrite(LED, LOW); // LED'i aç (HIGH voltaj seviyesidir)
}
else if (RangingMeasurementData.RangeMilliMeter <= 1000) {
digitalWrite(Buzzer, HIGH); // Buzzer'ı aç (HIGH voltaj seviyesidir)
digitalWrite(LED, HIGH); // LED'i aç (HIGH voltaj seviyesidir)
SERIAL.print("Mesafe:");
SERIAL.print(RangingMeasurementData.RangeMilliMeter);
SERIAL.println(" mm");
}
else {
digitalWrite(Buzzer, LOW); // Buzzer'ı aç (HIGH voltaj seviyesidir)
digitalWrite(LED, LOW); // LED'i aç (HIGH voltaj seviyesidir)
SERIAL.print("Mesafe:");
SERIAL.print(RangingMeasurementData.RangeMilliMeter);
SERIAL.println(" mm");
}
}
else {
SERIAL.print("ölçüm başarısız oldu !! Durum kodu =");
SERIAL.println(Status);
digitalWrite(Buzzer, LOW); // Buzzer'ı aç (HIGH voltaj seviyesidir)
digitalWrite(LED, LOW); // LED'i aç (HIGH voltaj seviyesidir)
}
delay(250);
}
Bu projenin detaylarına ayrıca Hackster.io‘dan ulaşabilirsiniz.
—————————————————————————————————————-
Sanırım aileniz ve arkadaşlarınıza harika çalışmanızı göstermek için sabırsızlanıyorsunuz! Şimdi koşun ve harika fotoğraflar ve videolar çekin! Ayrıca, benzersiz çalışmanızı bizimle paylaşmaktan da çekinmeyin. Bu proje hakkında daha fazla sorunuz varsa veya çalışmanızı benimle paylaşmak isterseniz, lütfen wym627@qq.com adresine bir e-posta gönderin. Ben Shenzhen, Çin’den Makerming. Son olarak, okuduğunuz için teşekkürler, yorumlarınız benim çalışmalarıma en büyük destek.
