สารบัญ:

Dual Sensor Echo Locator: 7 ขั้นตอน (พร้อมรูปภาพ)
Dual Sensor Echo Locator: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Dual Sensor Echo Locator: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Dual Sensor Echo Locator: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: How To Replace & Calibrate Honda TPS (throttle position sensor) - Code 7 Check Engine Light 2024, กรกฎาคม
Anonim
Image
Image
ตัวระบุตำแหน่งเสียงสะท้อนแบบ Dual Sensor
ตัวระบุตำแหน่งเสียงสะท้อนแบบ Dual Sensor
ตัวระบุตำแหน่งเสียงสะท้อนแบบ Dual Sensor
ตัวระบุตำแหน่งเสียงสะท้อนแบบ Dual Sensor

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

สูตรของนกกระสาช่วยให้คุณคำนวณพื้นที่ของสามเหลี่ยมใด ๆ ที่รู้จักทุกด้าน เมื่อคุณทราบพื้นที่ของสามเหลี่ยมแล้ว คุณจะสามารถคำนวณตำแหน่งของวัตถุชิ้นเดียว (เทียบกับเส้นฐานที่ทราบ) โดยใช้ตรีโกณมิติและพีทาโกรัส

ความแม่นยำเป็นเลิศ พื้นที่การตรวจจับขนาดใหญ่สามารถทำได้โดยใช้เซ็นเซอร์อัลตราโซนิก HC-SR04 หรือ HY-SRF05 ที่มีจำหน่ายทั่วไป

การก่อสร้างนั้นเรียบง่าย … สิ่งที่คุณต้องมีคือมีดคม สว่านสองดอก หัวแร้ง และเลื่อยไม้

รูปภาพ

  • คลิปวิดีโอแสดงเครื่องกำลังทำงาน
  • ภาพที่ 1 แสดง "ตัวระบุตำแหน่งเสียงสะท้อน" ที่ประกอบเข้าด้วยกัน
  • ภาพที่ 2 แสดงหน้าจอทั่วไป วัตถุเป็นจุดสีแดง (กะพริบ)
  • ภาพที่ 3 แสดงการตั้งค่าการทดสอบวิดีโอ จำเป็นต้องวางตำแหน่งเซ็นเซอร์อัลตราโซนิก HY-SRF05 สองตัวที่ต่ำกว่าเส้นฐาน 50 ซม. เพื่อ "ส่องสว่าง" พื้นที่การตรวจจับด้วยเสียงโดยสมบูรณ์

ขั้นตอนที่ 1: แผนภาพการเดินสายไฟ

แผนภาพการเดินสายไฟ
แผนภาพการเดินสายไฟ

ภาพที่ 1 แสดงแผนภาพการเดินสายไฟสำหรับ "ตัวระบุตำแหน่งสะท้อนของเซ็นเซอร์คู่"

เซนเซอร์ B แสดงผลเป็น "แฝง" โดยวางเทปกาวหลายชั้นไว้เหนือทรานสดิวเซอร์ (T) ทรานสดิวเซอร์ เทปนี้บล็อกเสียงอัลตราโซนิกที่อาจถูกปล่อยออกมา

ขั้นตอนที่ 2: รายการชิ้นส่วน

ส่วนรายการ
ส่วนรายการ

ดังแสดงในภาพที่ 1 จำเป็นต้องมีส่วนน้อยมากในการทำโปรเจ็กต์นี้:

ส่วนต่อไปนี้ได้มาจาก https://www.aliexpress.com/:

  • 1 เพียง Arduino Uno R3 พร้อมสาย USB
  • 2 เท่านั้น HY-SRF05 หรือ HC-SR04 ทรานสดิวเซอร์ล้ำเสียง

ได้รับชิ้นส่วนต่อไปนี้ในท้องถิ่น:

  • 1 แถบส่วนหัวของ arduino ตัวผู้เท่านั้น
  • 2 แถบส่วนหัวของ Arduino ตัวเมียเท่านั้น
  • เศษอลูมิเนียม 2 ชิ้นเท่านั้น
  • ไม้เล็กๆ 2 ชิ้นเท่านั้น
  • 2 สกรูขนาดเล็กเท่านั้น
  • เคเบิ้ลไทร์ 3 เส้นเท่านั้น
  • ลวดเคลือบพลาสติกความยาวเพียง 4 เส้น (คละสี) [1]

บันทึก

[1]

ความยาวรวมของลวดแต่ละเส้นควรเท่ากับระยะห่างที่ต้องการระหว่างเซ็นเซอร์บวกกับบัดกรีเล็กน้อย ลวดจะถูกบิดเข้าด้วยกันเพื่อสร้างสายเคเบิล

ขั้นตอนที่ 3: ทฤษฎี

ทฤษฎี
ทฤษฎี
ทฤษฎี
ทฤษฎี
ทฤษฎี
ทฤษฎี

รูปแบบลำแสง

ภาพที่ 1 แสดงรูปแบบลำแสงที่ทับซ้อนกันสำหรับทรานสดิวเซอร์ A และทรานสดิวเซอร์ B

เซ็นเซอร์ A จะได้รับเสียงสะท้อนจากวัตถุใดๆ ใน “พื้นที่สีแดง”

เซ็นเซอร์ B จะได้รับเสียงสะท้อนก็ต่อเมื่อวัตถุอยู่ใน "พื้นที่สีม่วง" นอกพื้นที่นี้ไม่สามารถกำหนดพิกัดของวัตถุได้ [1]

พื้นที่การตรวจจับ "สีม่วง" ขนาดใหญ่เป็นไปได้หากเซ็นเซอร์มีระยะห่างกันมาก

การคำนวณ

โดยอ้างอิงจากภาพที่ 2:

พื้นที่ของสามเหลี่ยมใดๆ อาจคำนวณได้จากสูตร:

พื้นที่=ฐาน*สูง/2 ……………………………………………………………………. (1)

การจัดเรียงสมการ (1) ให้ความสูง (พิกัด Y):

ความสูง=พื้นที่*2/ฐาน ……………………………………………………………………. (2)

จนถึงตอนนี้ดีมาก … แต่เราจะคำนวณพื้นที่ได้อย่างไร?

คำตอบคือให้เว้นระยะห่างระหว่างตัวแปลงสัญญาณอัลตราโซนิกสองตัวในระยะห่างที่ทราบ (เส้นฐาน) และวัดระยะทางที่เซ็นเซอร์แต่ละตัวอยู่ห่างจากวัตถุโดยใช้อัลตราซาวนด์

ภาพที่ 2 แสดงให้เห็นว่าเป็นไปได้อย่างไร

ทรานสดิวเซอร์ A ส่งชีพจรที่กระเด้งออกจากวัตถุในทุกทิศทาง ทั้งทรานสดิวเซอร์ A และทรานสดิวเซอร์ B ได้ยินพัลส์นี้ ไม่มีการส่งพัลส์จากทรานสดิวเซอร์ B … เพียงฟังเท่านั้น

เส้นทางกลับไปยังทรานสดิวเซอร์ A จะแสดงเป็นสีแดง เมื่อหารด้วยสองและคูณความเร็วของเสียงแล้ว เราสามารถคำนวณระยะทาง “d1” จากสูตร: [2]

d1 (ซม.) = เวลา (ไมโครวินาที)/59 ………………………………………………(3)

เส้นทางไปยังตัวแปลงสัญญาณ B จะแสดงเป็นสีน้ำเงิน ถ้าเราลบระยะทาง "d1" จากความยาวเส้นทางนี้ เราจะได้ระยะทาง "d2" สูตรคำนวณ “d2” คือ [3]

d2 (ซม.) = เวลา (ไมโครวินาที/29.5 – d1 …………………………………….. (4)

ตอนนี้เราได้ความยาวของทั้งสามด้านของสามเหลี่ยม ABC แล้ว … ใส่ “Heron”

สูตรนกกระสา

สูตรของนกกระสาใช้สิ่งที่เรียกว่า “กึ่งปริมณฑล” โดยที่คุณเพิ่มแต่ละด้านทั้งสามด้านของสามเหลี่ยมแล้วหารผลลัพธ์ด้วยสอง:

s=(a+b+c)/2 ……………………………………………………………………………. (5)

พื้นที่สามารถคำนวณได้โดยใช้สูตรต่อไปนี้:

พื้นที่=sqrt(s*(s-a)*(s-b)*(s-c)) ………………………………………………………………. (6)

เมื่อเราทราบพื้นที่แล้ว เราก็สามารถคำนวณความสูง (พิกัด Y) จากสมการ (2) ด้านบนได้

พีทาโกรัส

พิกัด X ในตอนนี้สามารถคำนวณได้โดยการวางแนวตั้งฉากจากจุดยอดสามเหลี่ยมไปยังเส้นฐานเพื่อสร้างสามเหลี่ยมมุมฉาก พิกัด X สามารถคำนวณได้โดยใช้พีทาโกรัส:

c1 = sqrt(b2 - h2) …………………………………………………………………….. (7)

หมายเหตุ

[1]

พื้นที่เป้าหมายสามารถ "ส่องสว่าง" ด้วยเสียงโดยการวางตำแหน่งเซ็นเซอร์ไว้ใต้เส้นฐาน

[2]

ค่า 59 สำหรับค่าคงที่ได้มาดังนี้:

ความเร็วของเสียงอยู่ที่ประมาณ 340 เมตร/วินาที ซึ่งเท่ากับ 0.034 ซม./uS (เซนติเมตร/ไมโครเซียน)

ส่วนกลับของ 0.034 ซม./uS คือ 29.412uS/ซม. ซึ่งเมื่อคูณด้วย 2 เพื่อให้ได้เส้นทางกลับ จะเท่ากับ 58.824 หรือ 59 เมื่อปัดเศษ

ค่านี้สามารถปรับขึ้น/ลงได้ตามอุณหภูมิ ความชื้น และความดันของอากาศ

[3]

ค่า 29.5 สำหรับค่าคงที่ได้มาดังนี้:

ไม่มีเส้นทางกลับ ดังนั้นเราจึงใช้ 29.5 ซึ่งเป็นครึ่งหนึ่งของค่าที่ใช้ใน [2] ด้านบน

ขั้นตอนที่ 4: การก่อสร้าง

การก่อสร้าง
การก่อสร้าง
การก่อสร้าง
การก่อสร้าง

ขายึด

ขายึดสองอันทำจากแผ่นอลูมิเนียม 20 เกจโดยใช้วิธีการที่อธิบายไว้ในคำแนะนำของฉัน

ขนาดสำหรับวงเล็บของฉันแสดงในภาพที่ 1

รูสองรูที่มีเครื่องหมาย "เส้นฐาน" ใช้สำหรับติดสายเข้ากับเซ็นเซอร์แต่ละตัว เพียงผูกเชือกที่ระยะห่างที่ต้องการเพื่อให้ติดตั้งง่าย

ซ็อกเก็ตเซนเซอร์

ซ็อกเก็ตเซ็นเซอร์ (ภาพที่ 2) ได้รับการออกแบบมาจากซ็อกเก็ตส่วนหัว Arduino มาตรฐาน

หมุดที่ไม่ต้องการทั้งหมดถูกดึงออกมาและเจาะรู 3 มม. ผ่านพลาสติก

เมื่อทำการบัดกรีการเชื่อมต่อ ระวังอย่าให้สายไฟสั้นเข้ากับโครงอะลูมิเนียม

บรรเทาความเครียด

ท่อหดความร้อนชิ้นเล็ก ๆ ที่ปลายแต่ละด้านของสายเคเบิลช่วยป้องกันไม่ให้สายไฟหลุด

สายรัดถูกนำมาใช้เพื่อป้องกันการเคลื่อนตัวของสายเคเบิลที่ไม่ต้องการ

ขั้นตอนที่ 5: การติดตั้งซอฟต์แวร์

ติดตั้งรหัสต่อไปนี้ตามลำดับนี้:

Arduino IDE

ดาวน์โหลดและติดตั้ง Arduino IDE (สภาพแวดล้อมการพัฒนาแบบบูรณาการ) จาก https://www.arduino.cc/en/main/software หากยังไม่ได้ติดตั้ง

กำลังดำเนินการ 3

ดาวน์โหลดและติดตั้งการประมวลผล 3 จาก

Arduino Sketch

คัดลอกเนื้อหาของไฟล์ที่แนบมา “dual_sensor _echo_locator.ino” ลงใน Arduino “sketch” บันทึกแล้วอัปโหลดไปยัง Arduino Uno R3 ของคุณ

ปิด Ardino IDE แต่ปล่อยให้สาย USB เชื่อมต่ออยู่

ร่างการประมวลผล

คัดลอกเนื้อหาของไฟล์ที่แนบมา “dual_sensor_echo_locator.pde” ลงในการประมวลผล “Sketch”

ตอนนี้คลิกปุ่ม "เรียกใช้" ด้านบนซ้าย … หน้าจอกราฟิกควรปรากฏบนหน้าจอของคุณ

ขั้นตอนที่ 6: การทดสอบ

การทดสอบ
การทดสอบ
การทดสอบ
การทดสอบ

เชื่อมต่อสายเคเบิล Arduino USB เข้ากับพีซีของคุณ

เรียกใช้ “dual_sensor_echo_locator.pde” โดยคลิกปุ่มเรียกใช้ “บนซ้าย” บน Processing 3 IDE ของคุณ (สภาพแวดล้อมการพัฒนาแบบรวม)

ตัวเลขที่คั่นด้วยเครื่องหมายจุลภาคควรเริ่มสตรีมลงหน้าจอของคุณดังแสดงในภาพที่ 1

ข้อความแสดงข้อผิดพลาดเมื่อเริ่มต้น

คุณอาจได้รับข้อความแสดงข้อผิดพลาดเมื่อเริ่มต้น

หากเป็นเช่นนั้นให้เปลี่ยน [0] ในบรรทัดที่ 88 ของรูปภาพ 1 เพื่อให้ตรงกับหมายเลขที่เกี่ยวข้องกับพอร์ต "COM" ของคุณ

อาจมีรายการพอร์ต “COM” หลายพอร์ต ทั้งนี้ขึ้นอยู่กับระบบของคุณ ตัวเลขตัวใดตัวหนึ่งจะทำงาน

ในรูปที่ 1 หมายเลข [0] เชื่อมโยงกับ “COM4” ของฉัน

การจัดตำแหน่งเซ็นเซอร์ของคุณ

เว้นระยะเซ็นเซอร์ของคุณห่างกัน 100 ซม. โดยให้วัตถุอยู่ด้านหน้า 100 ซม.

หมุนเซ็นเซอร์ทั้งสองอย่างช้าๆ ไปทางมุมตรงข้ามแนวทแยงมุมของสี่เหลี่ยมจตุรัสขนาด 1 เมตรในจินตนาการ

ขณะที่คุณหมุนเซ็นเซอร์ คุณจะพบตำแหน่งที่มีจุดสีแดงกะพริบปรากฏขึ้นบนหน้าจอกราฟิก

ข้อมูลเพิ่มเติมจะปรากฏขึ้น (ภาพที่ 2) เมื่อเซ็นเซอร์พบวัตถุของคุณแล้ว:

  • ระยะทาง1
  • ระยะทาง2
  • พื้นฐาน
  • offset
  • กึ่งปริมณฑล
  • พื้นที่
  • X พิกัด
  • พิกัด Y

ขั้นตอนที่ 7: แสดง

แสดง
แสดง

จอแสดงผลถูกเขียนโดยใช้การประมวลผล 3 … แสดงเส้นฐาน 100 ซม.

การเปลี่ยนแปลงพื้นฐาน

มาเปลี่ยนเส้นฐานของเราจาก 100 ซม. เป็น 200 ซม.:

เปลี่ยน “float Baseline = 100;” ในส่วนหัวการประมวลผลเพื่ออ่าน "float Baseline = 200;"

เปลี่ยนป้ายกำกับ “50” และ “100” ในรูทีนการประมวลผล “draw_grid()” เป็น “100” และ “200”

เปลี่ยนออฟเซ็ต

อาจมีการตรวจสอบพื้นที่เป้าหมายที่ใหญ่ขึ้นหากเราวางตำแหน่งเซ็นเซอร์ไว้ใต้เส้นฐาน

ตัวแปร “ออฟเซ็ต” ในส่วนหัวของการประมวลผลจะต้องเปลี่ยนแปลงหากคุณเลือกที่จะทำเช่นนี้

คลิกที่นี่เพื่อดูคำแนะนำอื่น ๆ ของฉัน

แนะนำ: