สารบัญ:

เรดาร์อินฟราเรดพร้อม Arduino: 6 ขั้นตอน
เรดาร์อินฟราเรดพร้อม Arduino: 6 ขั้นตอน

วีดีโอ: เรดาร์อินฟราเรดพร้อม Arduino: 6 ขั้นตอน

วีดีโอ: เรดาร์อินฟราเรดพร้อม Arduino: 6 ขั้นตอน
วีดีโอ: How to Make a Radar with Arduino | Arduino Project | Indian LifeHacker 2024, พฤศจิกายน
Anonim
Image
Image

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

เป้าหมายของฉันคือการสร้างระบบ LIDAR ที่เรียบง่ายและราคาถูก และใช้อุปกรณ์ทำแผนที่

เสบียง

  • Arduino (ฉันใช้ Maple Mini)
  • เซ็นเซอร์วัดระยะที่คมชัด (ฉันใช้ Sharp GP2Y0A02YK0F)
  • ไมโครเซอร์โว (9g)
  • เขียงหั่นขนม, สายไฟ
  • อุปกรณ์เสริม: ตัวต้านทาน 4.7k, ตัวเก็บประจุ 100nF

ขั้นตอนที่ 1: Ultrasonic VS Infrared Sensor

แผนผัง
แผนผัง

ความแตกต่างที่สำคัญระหว่างเซ็นเซอร์ระยะอัลตราโซนิกและอินฟราเรดคือ เซ็นเซอร์อัลตราโซนิกวัดระยะทางในช่วงกว้างขึ้น ดังนั้นจึงไม่สามารถระบุตำแหน่งของสิ่งกีดขวางได้อย่างแม่นยำ หมายความว่ามันวัดระยะทางของวัตถุที่ใกล้ที่สุดซึ่งอยู่ภายในช่วงมุม ~ +-30°

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

ขั้นตอนที่ 2: แผนผัง

แผนผัง
แผนผัง
แผนผัง
แผนผัง

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

  • PA0: อินพุตแบบอะนาล็อกสำหรับเซ็นเซอร์วัดระยะที่คมชัด
  • PA9: เอาต์พุต PWM สำหรับเซอร์โว

ในบางครั้ง Sharp IR Sensor อาจมีสัญญาณรบกวน ดังนั้นคุณต้องใส่ Low Pass Filter แบบธรรมดาลงไป ฉันใช้ตัวต้านทาน 4.7k และตัวเก็บประจุ 100nF เพื่อลดสัญญาณรบกวนบนพินอะนาล็อก นอกจากนั้น ฉันยังกรองค่าที่วัดได้ในโค้ดโดยอ่านหลายครั้งและคำนวณค่าเฉลี่ย

ขั้นตอนที่ 3: ลักษณะเซนเซอร์

ลักษณะเซนเซอร์
ลักษณะเซนเซอร์
ลักษณะเซนเซอร์
ลักษณะเซนเซอร์

น่าเสียดายที่เซ็นเซอร์ระยะอินฟราเรดที่ใช้มีลักษณะไม่เป็นเชิงเส้น หมายความว่าเพื่อให้ได้ระยะทาง ไม่เพียงพอที่จะคูณค่า ADC ที่วัดได้กับค่าคงที่และเพิ่มค่าคงที่อื่นเข้าไป

แม้ว่าแผ่นข้อมูลของเซ็นเซอร์จะให้คุณสมบัตินี้ แต่ฉันชอบที่จะวัดด้วยตัวเองในโครงการเฉพาะ (อาจขึ้นอยู่กับแรงดันไฟฟ้าที่ใช้) สำหรับสิ่งนี้ ฉันสร้างคู่จากค่า ADC ที่วัดได้และระยะทางทุกๆ 10 ซม. (เซ็นเซอร์ของฉันสามารถวัดระยะทางที่ถูกต้องจาก 12 ซม.)

ฉันใช้คู่เหล่านี้ในโค้ดเพื่อให้ได้ระยะทางที่ถูกต้องด้วย Linear Interpolation

คุณจะพบโค้ด Arduino อย่างง่ายที่ท้ายเอกสาร เพื่อวัดค่า ADC ระหว่างการวัดลักษณะเฉพาะ

ขั้นตอนที่ 4: การสื่อสารแบบอนุกรม

การสื่อสารแบบอนุกรม
การสื่อสารแบบอนุกรม

ฉันใช้การสื่อสารแบบอนุกรมเพื่อส่งค่ามุม-ระยะทางที่วัดได้ไปยังพีซี เนื่องจากฉันต้องส่งหลายไบต์และข้อความประเภทต่างๆ ฉันจึงออกแบบโปรโตคอลการสื่อสารอย่างง่าย

โปรโตคอลนี้ทำให้สามารถกำหนดข้อความประเภทต่างๆ ในลักษณะทั่วไปได้ ในโครงการนี้ ฉันใช้ข้อความ 2 ประเภท:

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

ขั้นตอนที่ 5: แอปพลิเคชัน Qt

ใบสมัคร Qt
ใบสมัคร Qt

เพื่อสื่อสารกับ Arduino และวาดจุดที่วัดได้เหมือนเรดาร์ ฉันสร้างแอปพลิเคชันพีซีใน Qt (C++) ได้รับพารามิเตอร์บางอย่าง (กำหนดไว้ใน Arduino) และจุดระยะทางที่วัดได้

คุณสามารถดาวน์โหลดแอปพลิเคชันและซอร์สโค้ดของมันได้เช่นกัน

ขั้นตอนที่ 6: รหัสที่มา Arduino

คุณสามารถปรับแต่ง paremeters บางส่วนที่ด้านบนของโค้ดด้วยมาโคร

โปรดทราบว่าหากคุณเปลี่ยนคุณสมบัติของเซ็นเซอร์วัดระยะ Sharp คุณต้องแก้ไขค่าอาร์เรย์ distAdcMap!

  • InfraRadar.c: รหัสของเรดาร์ คัดลอกและวางลงในโครงการ Arduino ของคุณ
  • InfraRadarMeasurement.c: รหัสสำหรับการวัดลักษณะเฉพาะ คัดลอกและวางลงในโครงการ Arduino ของคุณ ใช้ Serial Console เพื่อตรวจสอบค่า ADC

แนะนำ: