รถที่แซงคุณรักษาระยะห่างด้านข้างเพียงพอหรือไม่?
แนวคิด
จนถึงวันที่ 28 เมษายน 2020 ในเยอรมนี คุณต้องรักษาระยะห่างด้านข้างอย่างน้อย 1.5 เมตร (4.9 ฟุต) ขณะแซงจักรยาน หากคุณละเมิดกฎหมาย คุณจะได้รับค่าปรับ (30 EUR/34 USD)
แต่ตำรวจตรวจสอบระยะห่างด้านข้างระหว่างรถยนต์กับจักรยานได้อย่างไร? ในระหว่างการค้นคว้า ผมพบบทความเกี่ยวกับแผนกตำรวจของเมืองซาลซ์บูร์ก ผมสงสัยว่าอุปกรณ์ดังกล่าวทำงานอย่างไร ผมจึงลองสร้างขึ้นมาเอง
เพิ่มความปลอดภัยให้ผู้ขับขี่จักรยานด้วยการตรวจสอบระยะใกล้แบบเรียลไทม์
ในหลายประเทศ กฎหมายจราจรกำหนดระยะห่างด้านข้างขั้นต่ำ (โดยทั่วไปคือ 1.5 เมตร) เมื่อยานพาหนะยนต์แซงจักรยาน โปรเจกต์นี้จำลองเครื่องมือตรวจสอบระดับมืออาชีพโดยใช้ส่วนประกอบ Arduino ที่หาได้ง่าย ทำให้ผู้ขับขี่จักรยานสามารถวัดและบันทึกระยะใกล้ของยานพาหนะที่แซงได้อย่างเป็นกลาง
การตรวจจับด้วย Ultrasonic ที่แม่นยำในการจราจร
ระบบนี้อาศัย HC-SR04 Ultrasonic Sensor ซึ่งทำงานโดยการส่งคลื่นเสียงความถี่ 40kHz และวัดเวลาที่คลื่นสะท้อนกลับมา
- การคำนวณระยะทาง: ใช้สูตร
Distance = (Time * Speed of Sound) / 2โดย Arduino จะคำนวณระยะห่างระหว่างแฮนด์จักรยานกับวัตถุที่แซง - การปรับ Offset: มีการเพิ่ม Offset -20cm ในโค้ดเพื่อชดเชยตำแหน่งการติดตั้งของเซ็นเซอร์ที่สัมพันธ์กับขอบของจักรยาน
ระบบแจ้งเตือนหลายระดับ
เพื่อให้ผู้ขับขี่จักรยานทราบสถานการณ์ได้ทันทีโดยไม่ต้องละสายตาจากถนน โปรเจกต์นี้ใช้ระบบแสดงผลด้วย LED แบบรหัสสี:
- Green LED (150cm+): รักษาระยะห่างการแซงได้อย่างปลอดภัย
- Yellow LED (100cm - 150cm): คำเตือน - ระยะห่างต่ำกว่าระยะปลอดภัยที่แนะนำ
- Red LED (30cm - 100cm): อันตราย - การละเมิดระยะใกล้ที่สำคัญซึ่งอาจนำไปสู่อุบัติเหตุได้
- Blue LED: สถานะระบบหรือตัวบ่งชี้ระยะที่ไม่อยู่ในขอบเขตการวัด ทำให้ผู้ใช้มั่นใจว่าเซ็นเซอร์ทำงานอยู่แม้ว่าจะไม่มีรถอยู่ก็ตาม
ส่วนต่อประสานผู้ใช้และการแสดงผลข้อมูล
ในขณะที่ LED ให้ข้อมูลตอบกลับอย่างรวดเร็ว 16x2 LCD display จะแสดงระยะทางที่แม่นยำเป็นเซนติเมตร สิ่งนี้มีความสำคัญสำหรับการบันทึกข้อมูลหรือการปรับเทียบอุปกรณ์ ระบบทั้งหมดใช้พลังงานจากแบตเตอรี่ 9V มาตรฐาน และบรรจุอยู่ในกล่องหุ้มที่ทนทาน (ในกรณีนี้คือกล่องรองเท้าที่เสริมความแข็งแรง) ซึ่งติดตั้งโดยใช้อุปกรณ์ที่เข้ากันได้กับ GoPro มาตรฐาน เพื่อความต้านทานการสั่นสะเทือนสูงสุด
หลังจากแนวคิด
เนื่องจากกฎหมายเยอรมัน/ยุโรป ผมจะต้องเซ็นเซอร์ป้ายทะเบียนและบุคคลทุกคน ด้วยเหตุนี้ ผมจึงไม่สามารถบันทึกวิดีโอการทำงานจริงได้ แต่มันก็ใช้งานได้ดี
ผมอยากได้กล่องหุ้มที่พิมพ์ด้วย 3D แต่ผมไม่มีเครื่องพิมพ์ 3D ผมเลยใช้กล่องรองเท้าที่แข็งแรงแทน สำหรับการติดตั้งเข้ากับแฮนด์จักรยาน ผมใช้อุปกรณ์ GoPro บางส่วน
ในโค้ด ผมทำงานกับหน่วยเซนติเมตรเท่านั้น
#include <LiquidCrystal.h>
int trigger=7;
int echo=6;
int blue=8;
int green=9;
int yellow=10;
int red=13;
long distance,duration;
LiquidCrystal lcd(12,11,5,4,3,2);
void setup() {
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
lcd.begin(16,2);
pinMode(blue,OUTPUT);
pinMode(green,OUTPUT);
pinMode(yellow,OUTPUT);
pinMode(red,OUTPUT);
}
void loop() {
lcd.clear();
digitalWrite(trigger, LOW);
delay(5);
digitalWrite(trigger, HIGH);
delay(10);
digitalWrite(trigger, LOW);
duration = pulseIn(echo, HIGH);
distance = ((duration/2) * 0.03432) - 20;
lcd.print(distance);
if(distance>400 || distance<30){ //failure or not making sense to measure
digitalWrite(blue,HIGH);
digitalWrite(green,LOW);
digitalWrite(yellow,LOW);
digitalWrite(red,LOW);
}else if(distance<400 && distance>150){ //enough distance
digitalWrite(blue,LOW);
digitalWrite(green,HIGH);
digitalWrite(yellow,LOW);
digitalWrite(red,LOW);
}else if(distance<150 && distance>100){ //too little distance
digitalWrite(blue,LOW);
digitalWrite(green,LOW);
digitalWrite(yellow,HIGH);
digitalWrite(red,LOW);
}else if(distance<100 && distance>30){ //far too little distance
digitalWrite(blue,LOW);
digitalWrite(green,LOW);
digitalWrite(yellow,LOW);
digitalWrite(red,HIGH);
}
delay(100); //repeating fast enough to have a current value but slow enough having enough time to read the value
}
นี่คือรูปภาพบางส่วน:










ผมสามารถปั่นจักรยานได้ตามปกติโดยไม่ได้รับผลกระทบจากอุปกรณ์นี้เลย
ผมเปิดรับฟังความคิดเห็นทั้งหมด (ทั้งเชิงบวก/ลบ...)