สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
HC-SR04 Ultrasonic Distance Sensor ใช้โซนาร์อัลตราซาวนด์แบบไม่สัมผัสเพื่อวัดระยะห่างจากวัตถุ ประกอบด้วยตัวส่งสัญญาณสองตัว ตัวรับ และวงจรควบคุม เครื่องส่งจะปล่อยเสียงอัลตราโซนิกความถี่สูง ซึ่งกระเด้งออกจากวัตถุที่เป็นของแข็งที่อยู่ใกล้ๆ และเครื่องรับจะฟังเสียงสะท้อนกลับ เสียงสะท้อนนั้นจะถูกประมวลผลโดยวงจรควบคุมเพื่อคำนวณความแตกต่างของเวลาระหว่างสัญญาณที่ส่งและรับ ในเวลาต่อมาสามารถใช้เวลานี้ร่วมกับคณิตศาสตร์อันชาญฉลาดในการคำนวณระยะห่างระหว่างเซ็นเซอร์กับวัตถุสะท้อนแสงได้!
เสบียง
สิ่งที่คุณต้องการ:
- ราสเบอร์รี่ Pi 2/3/4
- การ์ด Micro SD ที่ใส่ Raspbian
- แหล่งจ่ายไฟ USB 5.1V
- HC-SR04 (ชัดเจน)
- เขียงหั่นขนม
- 4 สายชาย - หญิง
- จอภาพและคีย์บอร์ดสำหรับ Raspberry Pi
ขั้นตอนที่ 1: ตั้งค่า Raspberry Pi
- ใส่การ์ด SD ที่คุณตั้งค่าด้วย Raspbian (ผ่าน NOOBS) ลงในช่องเสียบการ์ด microSD ที่ด้านล่างของ Raspberry Pi
- ค้นหาปลายขั้วต่อ USB ของสายเคเบิลแป้นพิมพ์ของคุณ และเชื่อมต่อแป้นพิมพ์กับพอร์ต USB บน Raspberry Pi (ไม่ว่าคุณจะใช้พอร์ตใด)
- ตรวจสอบให้แน่ใจว่าหน้าจอของคุณเสียบเข้ากับเต้ารับบนผนังและเปิดเครื่องแล้ว ดูพอร์ต HDMI บน Raspberry Pi - สังเกตว่ามีด้านแบนอยู่ด้านบน ใช้สายเคเบิลเชื่อมต่อหน้าจอกับพอร์ต HDMI ของ Raspberry Pi - ใช้อะแดปเตอร์หากจำเป็น
-
เสียบแหล่งจ่ายไฟ USB เข้ากับซ็อกเก็ตและเชื่อมต่อกับพอร์ตพลังงานของ Raspberry Pi
- Raspberry Pi ของคุณจะเริ่มบูท จากนั้นคุณก็พร้อมที่จะไป
ขั้นตอนที่ 2: การตั้งค่าฮาร์ดแวร์
การตั้งค่าเซ็นเซอร์วัดระยะอัลตราโซนิกนั้นค่อนข้างง่าย ไม่จำเป็นต้องมีชิ้นส่วนที่ซับซ้อนอื่น ๆ เพียงแค่เซ็นเซอร์ สายเคเบิล 4 เส้น และ Raspberry Pi มีสี่พินเท่านั้น:
- VCC ถึงพิน 2 (5V)
- TRIG เพื่อตรึง 12 (GPIO 18)
- ECHO เพื่อตรึง 18 (GPIO 24)
- GND ถึงพิน 6 (GND)
ขั้นตอนที่ 3: Python Script
ประการแรกเราควรติดตั้งไลบรารี python gpiozero และเพื่อใช้เราจะสร้างสคริปต์ใหม่
sudo nano distance_sensor.py
ด้วยสิ่งต่อไปนี้:
#รับห้องสมุดที่เราต้องการ
จาก gpiozero นำเข้า DistanceSensor จากเวลานำเข้าการนอนหลับ # เริ่มต้นเซ็นเซอร์อัลตราโซนิกเซ็นเซอร์ = DistanceSensor (ทริกเกอร์ = 18, เสียงสะท้อน = 24) ในขณะที่ True: # รอ 2 วินาทีหลับ (2) # รับระยะทางเป็นเมตรระยะทาง = sensor.distance # แต่เราต้องการ ระยะทางเป็นเซนติเมตร = sensor.distance * 100 # จะได้เลขทศนิยมขนาดใหญ่ ดังนั้นเราจะปัดเป็น 2 ตำแหน่ง distance = รอบ (sensor.distance, 2) # พิมพ์ข้อมูลไปที่การพิมพ์หน้าจอ ("Distance: {} ซม.".รูปแบบ(เซนเซอร์.ระยะทาง))