วิธีการใช้งานการออกแบบการตรวจจับเวลาเดินทางของแสง 3 มิติอย่างรวดเร็ว
Contributed By DigiKey's North American Editors
2022-04-26
การวัดระยะห่างด้วยการวัดระยะเวลาเดินทางของแสง (Optical Time-of-flight (ToF)) นั้นมีบทบาทในการใช้งานพื้นฐานที่หลากหลายตั้งแต่การตรวจวัดทางอุตสาหกรรมไปจนถึงส่วนต่อประสานผู้ใช้แบบใช้ท่าทางสัมผัส ด้วยความพร้อมใช้งานของเซ็นเซอร์ ToF แบบหลายพิกเซลที่แม่นยำและความเร็วสูง นักพัฒนาสามารถใช้อัลกอริธึมการตรวจวัดสามมิติ (3D) ที่ซับซ้อนยิ่งขึ้นซึ่งจำเป็นในการใช้งานเหล่านี้ อย่างไรก็ตามวิธีการนี้ใช้เวลาในการพัฒนามากยิ่งขึ้น เนื่องจากความซับซ้อนของระบบย่อยของการตรวจวัดด้วยแสงแบบหลายพิกเซล
บทความจะนี้กล่าวถึงหลักการพื้นฐานของ ToF จากนั้นเกริ่นนำถึงชุดประเมินผล ToF แบบออปติคัลจาก Broadcom ที่ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันการวัดระยะทางแบบ 1D และ 3D ที่แม่นยำได้อย่างรวดเร็ว ตลอดจนนำโซลูชันการตรวจจับ ToF แบบออปติคัลที่กำหนดเองไปใช้งานได้อย่างรวดเร็ว
หลักการพื้นฐานของเทคโนโลยี ToF แบบออปติคัล
เทคโนโลยี ToF แบบออปติคัลใช้วัดระยะห่างอย่างแม่นยำจากระยะเวลาที่แสงเดินทางผ่านอากาศ ซึ่งจำเป็นต่อการใช้งานที่หลากหลาย โดยทั่วไปการคำนวณเฉพาะที่ใช้ในการวัดเหล่านี้จะขึ้นอยู่กับสองแนวทางที่แตกต่างกันคือ ToF ทางตรงและทางอ้อม ใน ToF ทางตรงหรือที่รู้จักในชื่อการวัดช่วงของพัลส์ อุปกรณ์วัดเวลาระหว่างการส่งและรับพัลส์ของแสงเฉพาะโดยเซ็นเซอร์ ToF โดยใช้สมการที่ 1:
สมการที่ 1
เมื่อ:
c0 = ความเร็วของแสงในสุญญากาศ
∆T = เวลาระหว่างการส่งและรับ
แม้ว่าแนวคิดจะเรียบง่าย แต่ความสามารถในการวัดอย่างแม่นยำด้วยวิธีการนี้ต้องพบกับความท้าทายหลายประการ รวมถึงความต้องการเครื่องส่งและเครื่องรับที่มีประสิทธิภาพเพียงพอ การเพิ่มประสิทธิภาพของสัญญาณต่อสัญญาณรบกวน และการตรวจจับช่วงพัลส์ที่แม่นยำ
ในทางกลับกันวิธี ToF ทางอ้อมใช้คลื่นต่อเนื่องแบบมอดูเลตและวัดความแตกต่างของเฟสระหว่างสัญญาณที่รับและส่งสัญญาณตามสมการที่ 2:
สมการที่ 2
เมื่อ:
c0 = ความเร็วของแสงในสุญญากาศ
fmod = ความถี่มอดูเลตเลเซอร์
∆φ = ความแตกต่างของเฟสที่กำหนด
นอกจากการลดความต้องการพลังงานของตัวส่งและตัวรับแล้ว วิธีการ ToF ทางอ้อมยังช่วยผ่อนปรนข้อกำหนดสำหรับการสร้างพัลส์ ซึ่งลดความซับซ้อนของการออกแบบ เพื่อแบ่งช่วง 3D และการตรวจจับการเคลื่อนไหว
ทั้งทางตรงและทางอ้อมจะต้องมีการออกแบบส่วนหน้าแบบออปติคัลอย่างระมัดระวังและการควบคุมสัญญาณตัวส่งและตัวรับที่แม่นยำ หลายปีที่ผ่านมา นักพัฒนาสามารถใช้ประโยชน์จากเซ็นเซอร์ ToF แบบออปติคัลในตัวที่รวมอุปกรณ์ส่งสัญญาณและเซ็นเซอร์รับสัญญาณไว้ในแพ็คเกจเดียว อย่างไรก็ตามอุปกรณ์รุ่นก่อนหน้า เหล่านี้มักจะต้องให้นักพัฒนาแลกเปลี่ยนประสิทธิภาพกับลักษณะการทำงานบางอย่าง เช่น การใช้พลังงาน ระยะ ความแม่นยำ และความเร็ว การแลกเปลี่ยนดังกล่าวได้กลายเป็นอุปสรรคสำคัญต่อชุดแอปพลิเคชันการตรวจจับทางอุตสาหกรรมที่กำลังเติบโตขึ้นซึ่งจำเป็นต้องใช้งานวัดระยะทางระดับปานกลางที่มีความยาว 10 เมตร (m)
โมดูลเซ็นเซอร์ ToF ทางอ้อมขั้นสูง เช่น AFBR-S50MV85G ของ Broadcom ได้รับการออกแบบมาโดยเฉพาะเพื่อตอบสนองความต้องการที่เพิ่มขึ้นเพื่อให้ได้ผลลัพธ์ที่มีความเร็วสูงและแม่นยำในระยะห่างระดับปานกลาง ในขณะที่ยังคงขนาดแพ็คเกจและการใช้พลังงานขั้นต่ำ จากเซ็นเซอร์นี้ ชุดประเมินผล AFBR-S50MV85G-EK ของ Broadcom และชุดพัฒนาซอฟต์แวร์ (SDK) ที่เกี่ยวข้อง เป็นแพลตฟอร์มการพัฒนาเซ็นเซอร์ ToF แบบหลายพิกเซลที่ช่วยให้นักพัฒนาสามารถนำแอปพลิเคชันการตรวจจับ 3D ToF ไปใช้ได้อย่างรวดเร็ว
โมดูลแบบบูรณาการช่วยลดความยุ่งยากในการวัดระยะทาง ToF ได้อย่างไร
โมดูล AFBR-S50MV85G ที่พัฒนาขึ้นสำหรับการตรวจวัดทางอุตสาหกรรมเป็นโซลูชันการตรวจจับ ToF แบบออปติคัลที่สมบูรณ์แบบในแพ็คเกจเดียว ส่วนประกอบแบบบูรณาการ ได้แก่ เลเซอร์เปล่งแสงพื้นผิวในแนวตั้งโปร่ง (VCSEL) ขนาด 850 นาโนเมตร (nm) สำหรับการส่องสว่างด้วยอินฟราเรด (IR) เมทริกซ์เซ็นเซอร์หกเหลี่ยม 32 พิกเซล เลนส์สำหรับ VCSEL และออปติกเซ็นเซอร์ และวงจรรวมเฉพาะแอปพลิเคชัน (ASIC)
เครื่องส่งจะส่งสัญญาณแสงไปยังวัตถุเป้าหมายโดยจัดตำแหน่งให้อยู่กับที่ให้สัมพันธ์กับเมทริกซ์การตรวจจับ ทำให้มีพิกเซลจำนวนหนึ่งในเมทริกซ์ตรวจจับเพื่อตรวจจับสัญญาณ IR ที่สะท้อนมา ในการใช้งานพื้นฐานสิ่งนี้ช่วยให้โมดูลสามารถวัดระยะทางที่แม่นยำจากพื้นผิวสีขาว สีดำ สี โลหะ หรือสะท้อนแสง แม้ในที่ที่สัมผัสกับแสงแดดโดยตรง ด้วยความสามารถในการลดแสงแวดล้อมในตัว
เมื่อระยะห่างจากวัตถุลดลง การชดเชยข้อผิดพลาดแบบพารัลแลกซ์อัตโนมัติช่วยให้สามารถวัดค่าได้โดยแทบไม่มีขีดจำกัดระยะทางต่ำสุด ในเวลาเดียวกัน การรวมกันของแสงอินฟราเรดและเมทริกซ์การตรวจจับช่วยให้มีข้อมูลเพิ่มเติมเกี่ยวกับวัตถุ รวมถึงการเคลื่อนที่ ความเร็ว มุมเอียง หรือการจัดตำแหน่งด้านข้าง ด้วยเหตุนี้ โมดูลจึงสามารถให้ข้อมูลที่จำเป็นในการระบุทิศทางและความเร็วของวัตถุเป้าหมายที่ผ่านหรือเข้าใกล้ (ภาพที่ 1)
รูปที่ 1: การใช้ข้อมูลที่ได้จากเมทริกซ์การตรวจจับ 8 x 4 พิกเซลของโมดูล AFBR-S50MV85G นักพัฒนาสามารถใช้แอปพลิเคชัน 3 มิติที่สามารถวัดลักษณะการเคลื่อนที่ของวัตถุได้ (ที่มาภาพ: Broadcom)
การจัดการการทำงานที่แม่นยำของ VCSEL และเมทริกซ์การตรวจจับ ASIC ในตัวของโมดูลมีวงจรทั้งหมดที่จำเป็นสำหรับการขับเคลื่อน VCSEL การดักจับสัญญาณแอนะล็อกจากเมทริกซ์ตรวจจับ และการปรับสัญญาณดิจิทัล (รูปที่ 2)
รูปที่ 2: ASIC ที่อยู่ในโมดูล AFBR-S50MV85G ประกอบด้วยวงจรทั้งหมดที่จำเป็นในการขับเคลื่อนแหล่งกำเนิดแสง VCSEL ของโมดูล รับสัญญาณจากเมทริกซ์การตรวจจับ และสร้างข้อมูลดิจิทัลสำหรับการถ่ายโอนผ่านบัส SPI (ที่มาภาพ: Broadcom)
วงจรจ่ายไฟในตัวของ ASIC ช่วยให้โมดูลสามารถจ่ายไฟ 5 โวลต์ได้เพียงแหล่งเดียว ในขณะที่ออสซิลเลเตอร์ตัวต้านทานตัวเก็บประจุ (RC) ที่ปรับเทียบจากโรงงานและชดเชยอุณหภูมิและเฟสล็อกลูปดิจิตอล (PLL) ให้สัญญาณนาฬิกาที่จำเป็นทั้งหมด เนื่องจากการผสานรวมนี้ นักพัฒนาจึงสามารถรวมโมดูลเข้ากับการออกแบบของตนได้อย่างง่ายดายโดยใช้ไมโครคอนโทรลเลอร์ยูนิต (MCU) และส่วนประกอบภายนอกเพิ่มเติมบางอย่าง อินเทอร์เฟซกับ MCU ต้องการเพียงพินอินพุต/เอาต์พุตทั่วไป (GPIO) สำหรับสัญญาณข้อมูลพร้อมจากโมดูล พร้อมกับการเชื่อมต่อผ่านอินเทอร์เฟซอุปกรณ์ต่อพ่วงดิจิทัลแบบอนุกรม (SPI) ของโมดูล (รูปที่ 3)
รูปที่ 3: โมดูล AFBR-S50MV85G ของ Broadcom ต้องการเพียง MCU และส่วนประกอบเพิ่มเติมบางส่วนสำหรับการใช้งานระบบตรวจจับ ToF ที่สมบูรณ์ (ที่มาภาพ: Broadcom)
ด้วยการออกแบบฮาร์ดแวร์ที่ตรงไปตรงมานี้ ฟังก์ชันซอฟต์แวร์ที่เกี่ยวข้องซึ่งจำเป็นต่อการวัดระยะทางนั้นมีให้ในซอฟต์แวร์ไดรเวอร์ ToF ของ Broadcom ในขณะที่โมดูลจัดการการรวบรวมข้อมูลออปติคัลสำหรับการวัดระยะทาง ซอฟต์แวร์ไดรเวอร์ Broadcom ToF ที่อยู่ใน AFBR-S50 SDK ที่ให้มานั้นดำเนินการกำหนดค่าฮาร์ดแวร์ การสอบเทียบ และขั้นตอนการวัดทั้งหมด ในระหว่างการวัด ซอฟต์แวร์ไดรเวอร์จะแยกทั้งค่าระยะทางและแอมพลิจูดของพิกเซล
วิธีพัฒนาแอปพลิเคชันการวัดระยะทางอย่างรวดเร็ว
เมื่อใช้ร่วมกับ AFBR-S50 SDK ชุดประเมิน AFBR-S50MV85G-EK ของ Broadcom จะเป็นแพลตฟอร์มที่ครอบคลุมสำหรับการสร้างต้นแบบอย่างรวดเร็วรวมทั้งเป็นการพัฒนาแอปพลิเคชันการวัดระยะทาง ชุดนี้มาพร้อมกับบอร์ดอะแดปเตอร์ที่มีโมดูล AFBR-S50MV85G ของ NXP บอร์ดประเมินผล FRDM-KL46Z จาก Arm Cortex-M0+ MCU และสาย mini-USB สำหรับเชื่อมต่อบอร์ดประเมินผลกับแล็ปท็อปหรือระบบฝังตัวอื่น ๆ (ภาพที่ 4)
รูปที่ 4: ชุดประเมินผล AFBR-S50MV85G-EK ของ Broadcom และซอฟต์แวร์ที่เกี่ยวข้องเป็นแพลตฟอร์มที่สมบูรณ์สำหรับการประเมินและการสร้างต้นแบบแอปพลิเคชันการวัดระยะทาง ToF (ที่มาภาพ: Broadcom)
การดำเนินการวัดระยะทาง ToF ด้วยชุดประเมินผลมีเพียงไม่กี่ขั้นตอนในการเริ่มต้น หลังจากดาวน์โหลด AFBR-S50 SDK แล้ว วิซาร์ดการตั้งค่าจะแนะนำผู้พัฒนาผ่านขั้นตอนการติดตั้งอย่างรวดเร็ว หลังจากที่นักพัฒนาเริ่มใช้งานแอปพลิเคชันซอฟต์แวร์ AFBR-S50 Explorer ของ Broadcom ที่รวมอยู่ในแพ็คเกจ SDK โดยซอฟต์แวร์จะเชื่อมต่อกับบอร์ดประเมินผล AFBR-S50 ผ่านอินเทอร์เฟซ USB จากนั้นจะรับข้อมูลการวัดผ่านซอฟต์แวร์ไดรเวอร์ที่ทำงานบน MCU ของบอร์ด NXP และอนุญาตให้ผู้ใช้แสดงผลลัพธ์ในรูปแบบ 1D หรือ 3D (ภาพที่ 5)
รูปที่ 5: ซอฟต์แวร์ AFBR-S50 Explorer ช่วยลดความยุ่งยากในการประเมินการวัด ToF ผ่านแผนภาพ 3 มิติที่แสดงแอมพลิจูดของการส่องสว่างที่ได้รับสำหรับแต่ละพิกเซลในเมทริกซ์เซ็นเซอร์ ToF (ที่มาภาพ: Broadcom)
ดังที่แสดงในรูปที่ 5 มุมมองพล็อต 3 มิติจะแสดงการอ่านจากแต่ละพิกเซล แต่ซอฟต์แวร์มีมุมมองทางเลือกที่ช่วยให้นักพัฒนาสามารถดูเฉพาะพิกเซลที่พิจารณาว่านำไปใช้สำหรับการวัดเท่านั้น ในมุมมองทางเลือกนี้ พิกเซลที่ไม่ตรงตามเกณฑ์ที่กำหนดไว้จะถูกนำออกจากการพล็อต (ภาพที่ 6)
รูปที่ 6: ด้วยซอฟต์แวร์ AFBR-S50 Explorer ของ Broadcom นักพัฒนาสามารถดูพล็อต 3 มิติของการวัดที่คล่องตัว ซึ่งกำจัดพิกเซลที่ไม่ตรงตามเกณฑ์ที่กำหนดไว้ล่วงหน้า (ที่มาภาพ: Broadcom)
ในด้านความแม่นยำและประสิทธิภาพในการวัดในสถานการณ์การใช้งานต่างๆ เช่น แสงไฟ การสะท้อนแสง และประเภทพื้นผิว นักพัฒนาสามารถดูผลกระทบของการกำหนดค่าการตรวจจับต่าง ๆ เช่น การใช้พิกเซลมากขึ้นสำหรับแอปพลิเคชัน 3D ที่ได้รับการปรับปรุง หรือจำนวนพิกเซลน้อยลงสำหรับแอปพลิเคชัน 1D ที่ต้องการการวัดที่แม่นยำยิ่งขึ้น หลังจากประเมินวิธีการวัดในต้นแบบแล้ว นักพัฒนาสามารถสร้างซอฟต์แวร์ตัวอย่างที่รวมอยู่ใน AFBR-S50 SDK ของ Broadcom เพื่อปรับใช้แอปพลิเคชันการตรวจจับ ToF ที่กำหนดเองได้อย่างรวดเร็ว
การสร้างแอปพลิเคชันซอฟต์แวร์ตรวจจับ ToF แบบกำหนดเอง
Broadcom รองรับการตรวจจับ ToF ในสถาปัตยกรรมที่มีประสิทธิภาพตามไลบรารีหลักของ AFBR-S50 ซึ่งประกอบด้วยโค้ดเฉพาะฮาร์ดแวร์ของเซ็นเซอร์ อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) และระดับชั้นสำหรับการจัดการกับฮาร์ดแวร์โดยตรง (HAL) (รูปที่ 7)
รูปที่ 7: ภายในสภาพแวดล้อมการทำงาน ToF ของ Broadcom นั้น API ไดรเวอร์ ToF ให้โค้ดแอปพลิเคชันของผู้ใช้ที่สามารถเข้าถึงฟังก์ชันการปรับเทียบ การวัด และการประเมินในไลบรารีหลักของไดรเวอร์ ToF ที่คอมไพล์ล่วงหน้า (ที่มาภาพ: Broadcom)
AFBR-S50 SDK Broadcom ได้จัดเตรียมไลบรารีหลักเป็นไฟล์ไลบรารี ANSI-C ที่คอมไพล์ล่วงหน้าในฐานะที่เป็นส่วนหนึ่งของแพ็คเกจ ซึ่งฝังข้อมูลและอัลกอริธึมทั้งหมดที่จำเป็นในการรันฮาร์ดแวร์ AFBR-S50MV85G ไลบรารีหลักที่ทำงานบน MCU ของระบบการวัดระยะมีฟังก์ชันต่างๆ รวมถึงการปรับเทียบ การวัด และการประเมินเพื่อดำเนินการวัดระยะทางด้วยโหลดการประมวลผลหรือการใช้พลังงานที่น้อยที่สุด เนื่องจากฟังก์ชันไลบรารีหลักจัดการรายละเอียดพื้นฐานทั้งหมด รอบการวัดพื้นฐานที่นักพัฒนาเห็นจึงตรงไปตรงมา (รูปที่ 8)
รูปที่ 8: ซอฟต์แวร์ AFBR-S50 SDK ToF ช่วยลดภาระงานของตัวประมวลผลโดยใช้การขัดจังหวะและการคอลแบ็ค (ที่มาภาพ: Broadcom)
ในช่วงเริ่มต้นของการวัดแต่ละรอบ (เริ่มต้นโดยการส่งสัญญาณอินเทอร์รัพท์ให้ตัวจับเวลาทำงานเป็นระยะหรือ IRQ) MCU จะเริ่มต้นการวัดและกลับสู่สถานะว่างทันที (หรือดำเนินการประมวลผลโค้ดแอปพลิเคชันบางส่วน) หลังจากการวัดเสร็จสิ้น โมดูล AFBR-S50MV85G จะใช้สาย GPIO ที่เชื่อมต่อเพื่อส่งสัญญาณอินเทอร์รัพท์ โดยปลุก MCU เพื่อเริ่มต้นการอ่านข้อมูลบนบัส SPI ก่อนกลับสู่สถานะก่อนหน้า หลังจากที่การอ่านข้อมูลเสร็จสิ้น (สัญญาณโดย SPI ที่ทำ IRQ) MCU จะรันโค้ดเพื่อประเมินข้อมูลเซ็นเซอร์ ToF ที่ได้รับ
เพื่อป้องกันการสูญเสียข้อมูลการวัด ไลบรารีหลักจะป้องกันไม่ให้เริ่มรอบการวัดใหม่โดยการบล็อกบัฟเฟอร์ข้อมูลจนกว่าจะมีการเรียกรูทีนการประเมิน เช่นนี้ นักพัฒนามักจะรวมดับเบิลบัฟเฟอร์สำหรับข้อมูลดิบเพื่ออนุญาตให้ดำเนินการวัดและประเมินผลแบบอินเตอร์ลีฟ
สำหรับนักพัฒนาซอฟต์แวร์แอปพลิเคชัน รูทีนของไลบรารีหลักจะป้องกันรายละเอียดของการสอบเทียบ การวัด และการประเมิน ในความเป็นจริง นักพัฒนาสามารถใช้ชุดประเมินผลและแอปพลิเคชัน AFBR-S50 Explorer เป็นแพลตฟอร์มการสร้างต้นแบบที่สมบูรณ์เพื่อส่งข้อมูลการวัดไปยังโค้ดแอปพลิเคชันซอฟต์แวร์ระดับสูง
สำหรับนักพัฒนาที่ต้องการติดตั้งซอฟต์แวร์แอปพลิเคชันแบบกำหนดเอง แพ็คเกจ AFBR-S50 SDK จะรวมโมดูลไลบรารีหลักที่คอมไพล์ไว้ล่วงหน้าเข้ากับตัวอย่างซอฟต์แวร์หลายตัว ด้วยเหตุนี้ นักพัฒนาจึงสามารถสร้างแอปพลิเคชันการตรวจจับ ToF ของตนเองได้อย่างรวดเร็วโดยสร้างจากแอปพลิเคชันตัวอย่างที่มีให้ใน SDK โดยนักพัฒนาสามารถเข้าถึงฮาร์ดแวร์ AFBR-S50MV85G และฟังก์ชันไลบรารีหลัก AFBR-S50 ในโค้ดซอฟต์แวร์เฉพาะแอปพลิเคชันได้โดยการเรียกใช้ฟังก์ชันใน AFBR-S50 SDK API และระบุฟังก์ชันของตนเองสำหรับการคอลแบ็คต่างๆ ที่ไลบรารีหลักรองรับ (ดูรูปที่ 7 อีกครั้ง)
Broadcom มีเอกสารประกอบมากมายเกี่ยวกับ API และซอฟต์แวร์ตัวอย่าง ช่วยให้นักพัฒนาสามารถปรับเปลี่ยนตัวอย่างซอฟต์แวร์ให้เข้ากับความต้องการได้อย่างรวดเร็ว หรือเริ่มต้นจากศูนย์ แท้จริงแล้วรอบการวัดและการประเมินเบื้องต้นนั้นตรงไปตรงมา เพียงแค่จับคู่ฟังก์ชันที่กำหนดเองและการเรียก API กับรอบการวัด (ดูรูปที่ 8 อีกครั้ง) ตัวอย่างเช่น รอบการวัดตามที่กล่าวไว้ก่อนหน้านี้ประกอบด้วยสามขั้นตอน: การรวมอุปกรณ์ ToF การอ่านข้อมูล และการประเมิน การเรียก API ไลบรารีหลักที่จำเป็นในการเริ่มต้นสามขั้นตอนเหล่านี้ ได้แก่:
- Argus_TriggerMeasurement() ทริกเกอร์เฟรมการวัดเดียวแบบอะซิงโครนัส
- Argus_GetStatus() ส่งค่า STATUS_OK เมื่อวัดเสร็จ
- Argus_EvaluateData() ประเมินข้อมูลที่เป็นประโยชน์จากข้อมูลการวัดค่าดิบ
Broadcom สาธิตการวนรอบการวัดพื้นฐานนี้ในแอปพลิเคชันตัวอย่างที่รวมอยู่ในการแจกจ่าย SDK ที่แสดงในรายการ 1
คัดลอก
int main(void)
{
status_t status = STATUS_OK;
/* Initialize the platform hardware including the required peripherals
* for the API. */
hardware_init();
/* The API module handle that contains all data definitions that is
* required within the API module for the corresponding hardware device.
* Every call to an API function requires the passing of a pointer to this
* data structure. */
argus_hnd_t * hnd = Argus_CreateHandle();
handle_error(hnd ? STATUS_OK : ERROR_FAIL, "Argus_CreateHandle failed!");
/* Initialize the API with default values.
* This implicitly calls the initialization functions
* of the underlying API modules.
*
* The second parameter is stored and passed to all function calls
* to the S2PI module. This piece of information can be utilized in
* order to determine the addressed SPI slave and enabled the usage
* of multiple devices on a single SPI peripheral. */
status = Argus_Init(hnd, SPI_SLAVE);
handle_error(status, "Argus_Init failed!");
/* Print some information about current API and connected device. */
uint32_t value = Argus_GetAPIVersion();
uint8_t a = (value >> 24) & 0xFFU;
uint8_t b = (value >> 16) & 0xFFU;
uint8_t c = value & 0xFFFFU;
uint32_t id = Argus_GetChipID(hnd);
argus_module_version_t mv = Argus_GetModuleVersion(hnd);
print("\n##### AFBR-S50 API - Simple Example ##############\n"
" API Version: v%d.%d.%d\n"
" Chip ID: %d\n"
" Module: %s\n"
"##################################################\n",
a, b, c, id,
mv == AFBR_S50MV85G_V1 ? "AFBR-S50MV85G (v1)" :
mv == AFBR_S50MV85G_V2 ? "AFBR-S50MV85G (v2)" :
mv == AFBR_S50MV85G_V3 ? "AFBR-S50MV85G (v3)" :
mv == AFBR_S50LV85D_V1 ? "AFBR-S50LV85D (v1)" :
mv == AFBR_S50MV68B_V1 ? "AFBR-S50MV68B (v1)" :
mv == AFBR_S50MV85I_V1 ? "AFBR-S50MV85I (v1)" :
mv == AFBR_S50SV85K_V1 ? "AFBR-S50SV85K (v1)" :
"unknown");
/* Adjust some configuration parameters by invoking the dedicated API methods. */
status = Argus_SetConfigurationFrameTime( hnd, 100000 ); // 0.1 second = 10 Hz
handle_error(status, "Argus_SetConfigurationFrameTime failed!");
/* The program loop ... */
for (;;)
{
myData = 0;
/* Triggers a single measurement.
* Note that due to the laser safety algorithms, the method might refuse
* to restart a measurement when the appropriate time has not been elapsed
* right now. The function returns with status #STATUS_ARGUS_POWERLIMIT and
* the function must be called again later. Use the frame time configuration
* in order to adjust the timing between two measurement frames. */
Argus_TriggerMeasurement(hnd, measurement_ready_callback);
handle_error(status, "Argus_StartMeasurementTimer failed!");
STATUS_ARGUS_POWERLIMIT)
{
/* Not ready (due to laser safety) to restart the measurement yet.
* Come back later. */
continue;
}
else
{
/* Wait until measurement data is ready. */
do
{
status = Argus_GetStatus(hnd);
}
while (status == STATUS_BUSY);
handle_error(status, "Waiting for measurement data ready (Argus_GetStatus) failed!");
/* The measurement data structure. */
argus_results_t res;
/* Evaluate the raw measurement results. */
status = Argus_EvaluateData(hnd, &res, (void*) myData);
handle_error(status, "Argus_EvaluateData failed!");
/* Use the obtain results, e.g. print via UART. */
print_results(&res);
}
}
}
รายการ 1: โค้ดตัวอย่างในการจัดสรร Broadcom AFBR-S50 SDK สาธิตรูปแบบการออกแบบพื้นฐานสำหรับการรับและประเมินข้อมูล ToF จากโมดูล AFBR-S50MV85G (แหล่งที่มาของโค้ด: Broadcom)
ดังที่แสดงในรายการข้างต้น การเรียกฟังก์ชัน API สามรายการที่กล่าวถึงก่อนหน้านี้เป็นแกนหลักของการดำเนินการรอบการวัด โดยการศึกษาเอกสาร API และแอปพลิเคชันตัวอย่างอื่น ๆ ใน SDK นักพัฒนาสามารถใช้แอปพลิเคชัน 3D ที่ซับซ้อนได้อย่างรวดเร็วโดยใช้ความสามารถของโมดูลในการให้ข้อมูลที่จำเป็นในการกำหนดคุณลักษณะขั้นสูง เช่น ความเร็ว ทิศทาง และมุมเอียงของวัตถุเป้าหมาย
บทสรุป
อุปกรณ์ตรวจจับ ToF แบบออปติคัลทำให้สามารถใช้งานในส่วนต่างๆ ที่ต้องการการวัดระยะที่แม่นยำ แต่ข้อจำกัดในย่านการวัด ความแม่นยำ หรือความน่าเชื่อถือได้จำกัดการขยายไปยังการใช้งานอื่น ๆ เช่น ระบบตรวจจับทางอุตสาหกรรมที่ต้องการอุปกรณ์ที่ใช้พลังงานต่ำ ซึ่งสามารถให้ผลลัพธ์ที่แม่นยำได้ในย่านการวัดที่มากกว่าเดิม ระบบย่อย ToF แบบออปติคัลแบบบูรณาการจาก Broadcom ตรงตามข้อกำหนดใหม่เหล่านี้สำหรับการตรวจจับรุ่นใหม่ เมื่อใช้ชุดประเมินผลตามอุปกรณ์นี้ นักพัฒนาสามารถใช้ระบบสำหรับการวัดที่แม่นยำในการใช้งานแบบ 1D ได้อย่างรวดเร็ว และสำหรับการติดตามการเคลื่อนไหวของวัตถุที่ซับซ้อนในการใช้งานแบบ 3D

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.