สารบัญ:

ระบบกำหนดตำแหน่งตาม Ultrasonics: 4 ขั้นตอน (พร้อมรูปภาพ)
ระบบกำหนดตำแหน่งตาม Ultrasonics: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบกำหนดตำแหน่งตาม Ultrasonics: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: ระบบกำหนดตำแหน่งตาม Ultrasonics: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Ep.05: การวัดมุมและระยะทางด้วย GPS 2024, พฤศจิกายน
Anonim
ระบบกำหนดตำแหน่งตาม Ultrasonics
ระบบกำหนดตำแหน่งตาม Ultrasonics

เรดาร์อัลตราโซนิกทุกรุ่นที่ฉันพบสำหรับอุปกรณ์ Arduino (Arduino - Radar/Ultrasonic Detector, Arduino Ultrasonic Radar Project) เป็นเรดาร์ที่ดีมาก แต่ทั้งหมดนั้น "ตาบอด" ฉันหมายถึงเรดาร์ตรวจจับบางสิ่งบางอย่าง แต่สิ่งที่ตรวจจับได้?

ดังนั้นฉันจึงเสนอตัวเองให้พัฒนาระบบที่สามารถตรวจจับวัตถุและระบุวัตถุได้ กล่าวอีกนัยหนึ่งคือระบบกำหนดตำแหน่งโดยไม่ต้องใช้อุปกรณ์ GPS แต่เป็นเครื่องตรวจจับอัลตราโซนิก

นี่คือผลลัพธ์ที่ฉันหวังว่าคุณจะชอบ

ขั้นตอนที่ 1: มันทำงานอย่างไร

มันทำงานอย่างไร?
มันทำงานอย่างไร?

ระบบกำหนดตำแหน่งถูกสร้างขึ้นโดยสถานีเซ็นเซอร์สามแห่งที่มีเครื่องตรวจจับอัลตราโซนิกและ id_node 1, 2 และ 3 ก่อรูปสี่เหลี่ยมผืนผ้าหรือสี่เหลี่ยมจัตุรัสที่กวาดมุม 90º และระยะห่างระหว่างสถานีเหล่านี้เรียกว่าดังแสดงในภาพที่ 1

const ระยะลอยตัวระหว่าง 1 และ 2 = 60.0;

ระยะทางลอยตัว const ระหว่าง 2 และ 3 = 75.0;

เซ็นเซอร์เหล่านี้วัดระยะทางและมุมของวัตถุอื่นๆ ด้วย id_node มากกว่า 3 ซึ่งมีตัวตรวจจับอัลตราโซนิกที่กวาดมุม 170°

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

เพื่อหลีกเลี่ยงการรบกวน สถานีหลักจะซิงโครไนซ์เครื่องตรวจจับอัลตราโซนิกทั้งหมดในลักษณะที่เครื่องตรวจจับอัลตราโซนิกเพียงตัวเดียวทำการวัดในแต่ละช่วงเวลา

หลังจากนั้น และใช้การสื่อสารแบบอนุกรม สถานีหลักจะส่งข้อมูล (มุม ระยะทาง id_object) ไปยังร่างการประมวลผลเพื่อวางแผนผลลัพธ์

ขั้นตอนที่ 2: วิธีกำหนดค่าสถานีเซ็นเซอร์สามสถานีและวัตถุ

วิธีกำหนดค่าสามสถานีเซ็นเซอร์และวัตถุ
วิธีกำหนดค่าสามสถานีเซ็นเซอร์และวัตถุ
วิธีกำหนดค่าสามสถานีเซ็นเซอร์และวัตถุ
วิธีกำหนดค่าสามสถานีเซ็นเซอร์และวัตถุ

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

ดังนั้นคุณต้องอัปเดตระยะการตรวจจับสูงสุด ("valid_max_distance ") ที่อนุญาตและระยะต่ำสุด ("valid_min_distance ") (เซนติเมตร) เพื่อปรับปรุงการตรวจจับและจำกัดโซนการตรวจจับ:

int valid_max_distance = 80;

int valid_min_distance = 1;

id node ของสถานีเซ็นเซอร์เหล่านี้ (“this_node” ในโค้ดด้านล่าง) คือ 1, 2 และ 3 และ id node ของสถานีมาสเตอร์คือ 0

const uint16_t this_node = 01; // ที่อยู่ของโหนดของเราในรูปแบบ Octal (Node01, Node02, Node03)

const uint16_t other_node = 00; //ที่อยู่ของโหนดหลัก (Node00) ในรูปแบบเลขฐานแปด

แต่ละสถานีเซ็นเซอร์กวาดและมุม100º ("max_angle" ในโค้ดด้านล่าง)

#define min_angle 0

#define max_angle 100

เหนือสิ่งอื่นใด ฟังก์ชันเดียวของวัตถุคือการตรวจจับวัตถุ และส่งรายการระยะทาง มุม และวัตถุที่วัดได้ไปยังสถานีหลัก id ของหนึ่งอ็อบเจ็กต์ ("this_node" ในโค้ดด้านล่าง) ต้องมากกว่า 3

แต่ละวัตถุกวาดและมุม170º และดังกล่าวข้างต้น เป็นไปได้ที่จะปรับปรุงระยะการตรวจจับสูงสุดและต่ำสุด

const uint16_t this_node = 04; // ที่อยู่ของโหนดของเราในรูปแบบ Octal (Node04, Node05, …)

const uint16_t other_node = 00; // ที่อยู่ของโหนดหลัก (Node00) ในรูปแบบ Octal int valid_max_distance = 80; int valid_min_distance = 1; #define min_angle 0 #define max_angle 170

ขั้นตอนที่ 3: วิธีกำหนดค่าสถานีมาสเตอร์

วิธีกำหนดค่าสถานีมาสเตอร์
วิธีกำหนดค่าสถานีมาสเตอร์
วิธีกำหนดค่าสถานีมาสเตอร์
วิธีกำหนดค่าสถานีมาสเตอร์
วิธีกำหนดค่าสถานีมาสเตอร์
วิธีกำหนดค่าสถานีมาสเตอร์

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

ก่อนอื่นคุณต้องอัปเดตระยะทาง (เซนติเมตร) ระหว่างเซ็นเซอร์ 1 และ 2 และระยะห่างระหว่าง 2 ถึง 3

const ระยะลอยตัวระหว่าง 1 และ 2 = 60.0;

const ระยะลอยตัวระหว่าง 2 และ 3 = 70.0;

แบบร่างคำนวณตำแหน่งของวัตถุด้วยวิธีต่อไปนี้:

  • สำหรับการส่งสัญญาณทั้งหมดของวัตถุ (id_node มากกว่า 3) ให้มองหาระยะทางที่เท่ากันในการส่งแต่ละครั้งของเซ็นเซอร์อัลตราโซนิก (id_node 1, 2 หรือ 3)
  • จุดเหล่านี้ทั้งหมดเป็นรายชื่อ "ผู้สมัคร" (ระยะทาง มุม id_node) ที่จะเป็นตำแหน่งของวัตถุหนึ่งชิ้น ("process_pointobject_with_pointssensor" ในแบบร่าง)
  • สำหรับ “ผู้สมัคร” แต่ละคนในรายการก่อนหน้า ฟังก์ชัน “candidate_selected_between_sensor2and3” จะคำนวณจากมุมมองของเซ็นเซอร์อัลตราโซนิก 2 และ 3 ซึ่งตรงกับเงื่อนไขตรีโกณมิติต่อไปนี้ (ดูรูปที่ 2 และ 3)

float distancefroms2 = บาป (เรเดียน (มุม)) * ระยะทาง;

float distancefroms3 = cos(เรเดียน(angle_candidate)) * distance_candidate; // เงื่อนไขตรีโกณมิติ 1 abs(distancefroms2 + distancefroms3 - distancebetween2and3) <= float(max_diference_distance)

ดังที่กล่าวมาแล้ว สำหรับ "ผู้สมัคร" แต่ละรายการในรายการก่อนหน้า ฟังก์ชัน "candidate_selected_between_sensor1and2" จะคำนวณจากมุมมองของเซ็นเซอร์อัลตราโซนิก 1 และ 2 ซึ่งตรงกับความสัมพันธ์ตรีโกณมิติต่อไปนี้ (ดูรูปที่ 2 และ 3)

float distancefroms1 = sin(เรเดียน(มุม)) * ระยะทาง;float distancefroms2 = cos(เรเดียน(angle_candidate)) * distance_candidate; // เงื่อนไขตรีโกณมิติ 2 abs(distancefroms1 + distancefroms2 - distancebetween1and2) <= float(max_diference_distance)

เฉพาะตัวเลือก (ระยะทาง มุม id_node) ที่ตรงกับเงื่อนไขตรีโกณมิติ 1 และ 2 เท่านั้นที่จะระบุวัตถุที่ตรวจพบโดยสถานีเซ็นเซอร์ 1, 2 และ 3

หลังจากนั้นผลลัพธ์จะถูกส่งโดยสถานีหลักไปยังร่างการประมวลผลเพื่อลงจุด

ขั้นตอนที่ 4: รายการวัสดุ

Image
Image

รายการวัสดุที่จำเป็นสำหรับสถานีเซ็นเซอร์หนึ่งสถานีหรือหนึ่งวัตถุมีดังต่อไปนี้:

  • นาโนบอร์ด
  • เซ็นเซอร์อัลตราโซนิก
  • ไมโครเซอร์โวมอเตอร์
  • โมดูลไร้สาย NRF24L01
  • อะแดปเตอร์ NRF24L01

และรายการวัสดุสำหรับสถานีหลักมีดังต่อไปนี้:

  • นาโนบอร์ด
  • โมดูลไร้สาย NRF24L01
  • อะแดปเตอร์ NRF24L01

แนะนำ: