โปรเจกต์ Smart cane
Project ของฉันช่วยผู้พิการทางสายตาให้เดินได้โดยไม่ชนกำแพงและสิ่งกีดขวาง ซึ่งช่วยให้พวกเขาใช้ชีวิตได้อย่างอิสระ
Project ของฉันช่วยผู้พิการทางสายตาให้เดินได้โดยไม่ชนกำแพงและสิ่งกีดขวาง ซึ่งช่วยให้พวกเขาใช้ชีวิตได้อย่างอิสระ
Project Supporter Team
โพสต์โดย

โมเดลของฉันทำงานโดยอาศัยการทำงานของ HC-SR04
หลักการทำงานของ HC-SR04

ดังที่แสดงด้านบน HC-SR04 Ultrasonic (US) sensor เป็นโมดูลแบบ 4 pin ซึ่งมีชื่อ pin ได้แก่ Vcc, Trigger, Echo และ Ground ตามลำดับ Sensor รุ่นนี้เป็นที่นิยมอย่างมากในหลายแอปพลิเคชันที่จำเป็นต้องมีการวัดระยะทางหรือตรวจจับวัตถุ ตัวโมดูลมีส่วนที่ยื่นออกมาคล้ายดวงตาสองข้างที่ด้านหน้า ซึ่งทำหน้าที่เป็น Ultrasonic transmitter และ Receiver โดย Sensor ทำงานด้วยสูตรพื้นฐานระดับมัธยมปลายคือ
Ultrasonic transmitter จะส่งคลื่น Ultrasonic ออกไป คลื่นนี้จะเดินทางในอากาศและเมื่อไปกระทบกับวัตถุใด ๆ ก็จะสะท้อนกลับมายัง Sensor ซึ่งคลื่นที่สะท้อนกลับมานี้จะถูกตรวจจับโดยโมดูล Ultrasonic receiver ดังที่แสดงในรูปด้านล่าง
ในการคำนวณหาระยะทางโดยใช้สูตรข้างต้น เราจำเป็นต้องทราบค่าความเร็วและเวลา เนื่องจากเราใช้คลื่น Ultrasonic เราจึงทราบความเร็วสากลของคลื่น US ในสภาวะอุณหภูมิห้องซึ่งคือ 330 m/s วงจรที่ติดตั้งมาในโมดูลจะคำนวณเวลาที่คลื่น US ใช้ในการเดินทางกลับมา และจะสั่งให้ echo pin มีสถานะเป็น High ตามระยะเวลาดังกล่าว ซึ่งวิธีนี้ทำให้เราทราบเวลาที่ใช้ไป จากนั้นก็เพียงแค่คำนวณหาระยะทางโดยใช้ Microcontroller หรือ Microprocessor
ครั้งหนึ่งขณะที่ฉันนั่งอยู่ในห้องแล็บชีววิทยาและกำลังคิดหาโมเดลสำหรับงานประกวด ฉันได้คิดถึงโปรเจกต์นี้เพื่อทำบางสิ่งให้กับผู้คนที่อาจถูกมองว่าแตกต่างจากคนอื่น ซึ่งสิ่งนี้จะช่วยผู้ที่มีความบกพร่องทางร่างกายได้อย่างแน่นอน
Components (อุปกรณ์)
Arduino uno R3
HC-SR04 ultrasonic distance sensor
Jumper wire male to male
Breadboard ขนาดเล็ก
Buzzer
Motor
Battery 9 V
#define trigPin 13
#define echoPin 12
#define motor 7
#define buzzer 6
void setup()
{ pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(motor, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop()
{ long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
if (distance < 70) // ตรวจสอบระยะทาง คุณสามารถเปลี่ยนค่าได้
{
digitalWrite(motor, HIGH); // เมื่อระยะทางต่ำกว่า 100 ซม.
digitalWrite(buzzer, HIGH);
} else
{
digitalWrite(motor, LOW);// เมื่อระยะทางมากกว่า 100 ซม.
digitalWrite(buzzer, LOW);
} delay(501);
}
สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้