Raspberry Pi วัดระยะทางโดยใช้เซ็นเซอร์อัลตราโซนิค

วันนี้เราจะมาดูวิธีการวัดระยะทางโดยใช้เซ็นเซอร์อัลตราโซนิค HC-SR04 กับ Raspberry Pi

จะวัดระยะทางของวัตถุได้อย่างไร?

หากคุณต้องการวัดระยะห่างระหว่างคุณกับวัตถุที่อยู่ในความสนใจมีวิธีการ ที่สามารถนำความแตกต่างของ แสง , เสียง และRadio  Frequency คุณมีแหล่งที่มาหรือตัวส่งสัญญาณและตัวรับหรือตัวรับ เครื่องส่งสัญญาณส่งรูปแบบและมันก็กระทบวัตถุและสะท้อน ตรวจพบและรับสัญญาณที่สะท้อนจากผู้รับ 

รายละเอียดเกี่ยวกับสื่อแสงเสียงและ RF เซนเซอร์วัดระยะแสงสามารถทำได้โดยใช้เซ็นเซอร์วัดระยะอินฟราเรดและเซ็นเซอร์เลเซอร์ การวัดระยะทางด้วยคลื่นวิทยุทำได้โดยใช้เทคนิคเซ็นเซอร์เรดาร์ เทคนิคการใช้เสียงทำโดยใช้เซ็นเซอร์อินฟราเรดและอัลตราโซนิค ความแตกต่างที่สำคัญในทั้งสามคืออัลตราโซนิกไม่สามารถทำงานบนสุญญากาศ อินฟราเรดไม่สามารถทำงานได้ที่อุณหภูมิสูง วันนี้เราจะมาดูวิธีการวัดระยะทางโดยใช้เซ็นเซอร์อัลตราโซนิค ซ็นเซอร์อัลตราโซนิคเป็นอุปกรณ์ที่ใช้วัดระยะทางของวัตถุด้วยคลื่นเสียงความถี่สูง มันเรียกอีกอย่างว่าทรานสดิวเซอร์

คลื่นเสียง

คลื่นเสียงจะถูกจัดให้อยู่ในย่าน Sound (20 เฮิร์ตซ์ลงไป 0.1 Hz) , เสียงอะคูสติกและอัลตราโซนิกคลื่น ที่นี่อินฟราซาวน์และอัลตร้าโซนิคจะไม่ได้ยินต่อหูของมนุษย์ ช้างสามารถได้ยินเสียงที่น่าสนใจและเราทุกคนรู้ว่าค้างคาวใช้คลื่นอัลตร้าโซนิคเพื่อการเดินเรือ ดูรูปด้านล่าง

โมดูลเซ็นเซอร์อัลตราโซนิคที่เราใช้คือ HC-SR04

Module จะมี มีสี่ขาในโมดูลมีVcc, Gnd, Trigger และก้อง โมดูลนี้จะดำเนินการใน5 โวลต์ที่มีการบริโภคของ15 mAปัจจุบัน สามารถวัดระยะทางได้อย่างมีประสิทธิภาพตั้งแต่2 ซม. ถึง 400 ซม. (4 เมตร) โมดูลการทำงานดังต่อไปนี้ถ้าคุณส่งคลื่นสั้น10us จะทริกเกอร์ที่จะเริ่มต้นตั้งแต่นั้นโมดูลจะส่งคลื่น 8 วงจรของการอัลตราซาวนด์ที่40 เฮิร์ทซ์ นี้รูปแบบ 8 คลื่นกระทบวัตถุและสะท้อนกลับ ตอนนี้เมื่อส่งรูปแบบการระเบิด 8 ครั้งแล้ว Echo pin จะถูกตั้งค่าสูง (เช่น 5 V) และเมื่อสัญญาณสะท้อนกลับมาและกลับมา Echo pin จะถูกตั้งค่าต่ำ (0 V) ช่วงเวลานี้ที่ Echo pin ยังคงอยู่ในระดับสูงคือเวลาที่คลื่นอัลตร้าโซนิคเดินทางและกลับมาใช่ตลอดการเดินทาง

ตอนนี้คุณรู้เวลาที่คลื่นอัลตราโซนิกทำการเดินทางไปรอบ ๆ วัตถุ ตอนนี้เราสามารถหาระยะทางได้ถ้าเรารู้ว่าคลื่นอัลตร้าโซนิคเคลื่อนที่เร็วแค่ไหน คลื่นอัลตร้าโซนิคเป็นคลื่นเสียงและความเร็วของเสียงอยู่ที่ 343 เมตรต่อวินาที หาก  TimeElapsedเป็นเวลาที่ Echo pin สูง จากนั้นสูตรจะมีลักษณะตามที่แสดงด้านล่าง มันถูกหารด้วยสองตั้งแต่มันไปกลับ

distance  = (TimeElapsed * 34300 ) / 2

ตัวกระจายแรงดันหรือแบ่งแรงดัน

ภาพด้านบนเป็นตัวอย่างของตัวแบ่งแรงดัน 
แบ่งแรงดัน  เป็นวงจรที่เรียบง่ายซึ่งจะเปลี่ยนแรงดันไฟฟ้าขนาดใหญ่เป็นหนึ่งที่มีขนาดเล็ก 
แรงดันไฟฟ้าอินพุตนั้นเชื่อมต่อกับตัวต้านทานสองตัวในอนุกรม

ซอฟต์แวร์:

คุณสามารถเข้าสู่ Raspberry Pi ผ่านทางอินเตอร์เฟซอนุกรมหรือ SSH และเรียกใช้สคริปต์ดังต่อไปนี้

import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BCM)
 
GPIO_TRIGGER = 23
GPIO_ECHO = 24
 
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
 
def distance():
    GPIO.output(GPIO_TRIGGER, True)
 
    # set Trigger after 0.01ms to LOW
    time.sleep(0.00001)
    GPIO.output(GPIO_TRIGGER, False)
 
    StartTime = time.time()
    StopTime = time.time()
 
    while GPIO.input(GPIO_ECHO) == 0:
        StartTime = time.time()
 
    # save time of arrival
    while GPIO.input(GPIO_ECHO) == 1:
        StopTime = time.time()
 
    # time difference between start and arrival
    TimeElapsed = StopTime - StartTime
    # multiply with the sonic speed (34300 cm/s)
    # and divide by 2, because there and back
    distance = (TimeElapsed * 34300) / 2
 
    return distance
 
if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print ("Measured Distance = %.1f cm" % dist)
            time.sleep(1)
 
        # Reset by pressing CTRL + C
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

คุณสามารถเข้าสู่ Raspberry Pi ผ่านทางอินเตอร์เฟซอนุกรมหรือ SSH และเรียกใช้สคริปต์ดังต่อไปนี้

$ python distance.py

อาต์พุตสามารถเห็นได้ใน terinal console หรือ putty 

Measured Distance = 302.8 cm
 Measured Distance = 303.1 cm
 Measured Distance = 303.5 cm
 Measured Distance = 303.2 cm
 Measured Distance = 300.9 cm
 Measured Distance = 304.0 cm
 Measured Distance = 302.1 cm
 Measured Distance = 301.9 cm
 Measured Distance = 301.4 cm
 Measured Distance = 303.3 cm
 Measured Distance = 301.9 cm
 Measured Distance = 303.0 cm
Avatar

Author: admin

ผู้สนใจไอทีและเทคโนโลยี อาชีพประจำทำงานด้านตรวจซ่อมเครื่องมือตรวจอากาศ ตรวจซ่อมเครื่องเรดาร์ตรวจอากาศ เครื่องมือตรวจอากาศเพื่อการบิน เครื่องมือตรวจอากาศอัตโนมัติ และงานด้านไฟฟ้าอีเล็กทรอนิกส์ทั่วไป

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *