KB-IDE [EP6]: วัดระยะทางด้วยเซ็นเซอร์เสียงสะท้อน Ultrasonic
Using the Ultrasonic sensor with KB-IDE
Ultrasonic คืออะไร ?
ต่อกับ KidBright ได้ไหม ?
แล้วจะเขียนโปรแกรมยังไง ?
วันนี้เรามีคำตอบ !
โมดูลอัลตราโซนิคคืออะไร
โมดูลอัลตราโซนิค (Ultrasonic Sensor) คือโมดูลที่ใช้คลื่นเสียงความถี่ในการส่ง และรับเพื่อระบุตำแหน่งระยะห่างของวัตถุนั้น ๆ โดยตัวส่งจะสร้างคลื่นเสียงออกไป และเมื่อคลื่นกระทบวัตถุ จะถูกสะท้อนมาให้กับตัวรับเพื่อนำไปประมวลผล ซึ่งในการทดลองนี้จะเลือกใช้โมดูล HC-SR04
หลักการทำงานของ Ultrasonic
HC-SR04 มีขา TRIG (ตัวส่ง) และ ECHO (ตัวรับ) เพื่อส่งคลื่นอัลตราโซนิคในการวัดแต่ละครั้ง จะต้องสร้างสัญญาณพัลส์ (Pulse width) ที่มีความกว้างอย่างน้อย 10 ไมโครวินาที (10 microssecond) ป้อนเข้าขา Trig และวัดความกว้างของสัญญาณพัลส์ช่วงที่เป็น High จากขา Echo ประมาณ 150 ไมโครวินาที ถึง 25 มิลลิวินาที (150 microsecond — 25 milliseconds)
การคำนวณระยะทาง
การคำนวณระยะทาง สามารถทำได้โดยการส่งสัญญาณพัลล์จากตารางการส่งข้อมูลด้านบนโดยส่งพัลส์ลอจิก High ความกว้างอย่างน้อย 10 microsecond ออกไปที่ขา TRIG จากนั้นทำการวัดความกว้างของสัญญาณพัลส์ที่สะท้อนกลับมายังจา Echo โดยใช้คำสั่ง pulseIn() จากนั้นนำค่าที่ได้มาคำนวนหาระยะทาง ซึ่งความเร็วเสียงที่อุณหภูมิปกติ จะได้ประมาณ 340 m/s ดังนั้นจึงสามารถหาระยะทางได้จากสมการ
S = Vt หรือ
S = (ระยะเวลาที่วัดได้ / 2) / 29.1
จะได้ระยะทางมีหน่วยเป็นเซนติเมตร (cm : centimeter)
ตัวอย่างการต่อวงจรร่วมกับบอร์ด ESP32 และบอร์ด KidBright
ตัวอย่างการต่อบล็อกในโปรแกรม KB-IDE
ขั้นตอนการทดลอง
- ดาวน์โหลดโปรแกรม KB-IDE ( www.kbide.org )
- เลือกบอร์ด Kidbright (Arduino API)
- เปิดโปรแกรม KB-IDE เลือก Plugin Manager จากนั้นดาวน์โหลด Plugin Ultrasonic
- เลือกหัวข้อ Example & Tutorials ในส่วน Plugin Examples เลือก Ultrasonic จะปรากฏตัวอย่าง OPEN BLOCK และ OPEN CODE กดตัวอย่าง OPEN BLOCK จะปรากฏหน้าต่างดังภาพด้านล่าง
- กดปุ่ม Setup board เลือก COM port จากนั้นกด Compile & Run
- เลือก Serial monitor สังเกตุผลการทำงาน
- มุมด้านขวาของ Serial Monitor สามารถเลือกสลับเป็นการแสดงผลแบบ Text หรือแบบ Graph ได้
- กรณีเลือกแบบกราฟ (Graph) จะแสดงผลลัพท์ที่อ่านได้จากเซ็นเซอร์ เทียบกับระยะเวลาที่ส่งไปแสดงผล ในตัวอย่างโปรแกรมจะแสดงผลทุก ๆ 200 ms หรือ 0.2 วินาที
- ในส่วนด้านซ้าย สามารถปรับแต่งกราฟให้สวยงาม และดูได้ง่ายขึ้น โดยสามารถเปลี่ยนชื่อ สี ขนาดเส้น ความเอียง ความหนาของจุด
- ในส่วนด้านขวา สามารถกดปุ่มเพื่อบันทึกภาพกราฟได้อีกด้วย