วิธีการใช้งานการออกแบบการตรวจจับเวลาเดินทางของแสง 3 มิติอย่างรวดเร็ว

By Stephen Evanczuk

Contributed By DigiKey's North American Editors

การวัดระยะห่างด้วยการวัดระยะเวลาเดินทางของแสง (Optical Time-of-flight (ToF)) นั้นมีบทบาทในการใช้งานพื้นฐานที่หลากหลายตั้งแต่การตรวจวัดทางอุตสาหกรรมไปจนถึงส่วนต่อประสานผู้ใช้แบบใช้ท่าทางสัมผัส ด้วยความพร้อมใช้งานของเซ็นเซอร์ ToF แบบหลายพิกเซลที่แม่นยำและความเร็วสูง นักพัฒนาสามารถใช้อัลกอริธึมการตรวจวัดสามมิติ (3D) ที่ซับซ้อนยิ่งขึ้นซึ่งจำเป็นในการใช้งานเหล่านี้ อย่างไรก็ตามวิธีการนี้ใช้เวลาในการพัฒนามากยิ่งขึ้น เนื่องจากความซับซ้อนของระบบย่อยของการตรวจวัดด้วยแสงแบบหลายพิกเซล

บทความจะนี้กล่าวถึงหลักการพื้นฐานของ ToF จากนั้นเกริ่นนำถึงชุดประเมินผล ToF แบบออปติคัลจาก Broadcom ที่ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันการวัดระยะทางแบบ 1D และ 3D ที่แม่นยำได้อย่างรวดเร็ว ตลอดจนนำโซลูชันการตรวจจับ ToF แบบออปติคัลที่กำหนดเองไปใช้งานได้อย่างรวดเร็ว

หลักการพื้นฐานของเทคโนโลยี ToF แบบออปติคัล

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

สมการที่ 1 สมการที่ 1

เมื่อ:

c0 = ความเร็วของแสงในสุญญากาศ

∆T = เวลาระหว่างการส่งและรับ

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

ในทางกลับกันวิธี ToF ทางอ้อมใช้คลื่นต่อเนื่องแบบมอดูเลตและวัดความแตกต่างของเฟสระหว่างสัญญาณที่รับและส่งสัญญาณตามสมการที่ 2:

d = c0 / 2fmod x ∆φ/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)

แผนภาพของข้อมูลที่ได้รับจากเมทริกซ์การตรวจจับ 8 x 4 พิกเซลของโมดูล Broadcom AFBR-S50MV85G (คลิกเพื่อดูภาพขยาย) รูปที่ 1: การใช้ข้อมูลที่ได้จากเมทริกซ์การตรวจจับ 8 x 4 พิกเซลของโมดูล AFBR-S50MV85G นักพัฒนาสามารถใช้แอปพลิเคชัน 3 มิติที่สามารถวัดลักษณะการเคลื่อนที่ของวัตถุได้ (ที่มาภาพ: Broadcom)

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

แผนภาพของ ASIC ที่รวมอยู่ในโมดูล Broadcom AFBR-S50MV85Gรูปที่ 2: ASIC ที่อยู่ในโมดูล AFBR-S50MV85G ประกอบด้วยวงจรทั้งหมดที่จำเป็นในการขับเคลื่อนแหล่งกำเนิดแสง VCSEL ของโมดูล รับสัญญาณจากเมทริกซ์การตรวจจับ และสร้างข้อมูลดิจิทัลสำหรับการถ่ายโอนผ่านบัส SPI (ที่มาภาพ: Broadcom)

วงจรจ่ายไฟในตัวของ ASIC ช่วยให้โมดูลสามารถจ่ายไฟ 5 โวลต์ได้เพียงแหล่งเดียว ในขณะที่ออสซิลเลเตอร์ตัวต้านทานตัวเก็บประจุ (RC) ที่ปรับเทียบจากโรงงานและชดเชยอุณหภูมิและเฟสล็อกลูปดิจิตอล (PLL) ให้สัญญาณนาฬิกาที่จำเป็นทั้งหมด เนื่องจากการผสานรวมนี้ นักพัฒนาจึงสามารถรวมโมดูลเข้ากับการออกแบบของตนได้อย่างง่ายดายโดยใช้ไมโครคอนโทรลเลอร์ยูนิต (MCU) และส่วนประกอบภายนอกเพิ่มเติมบางอย่าง อินเทอร์เฟซกับ MCU ต้องการเพียงพินอินพุต/เอาต์พุตทั่วไป (GPIO) สำหรับสัญญาณข้อมูลพร้อมจากโมดูล พร้อมกับการเชื่อมต่อผ่านอินเทอร์เฟซอุปกรณ์ต่อพ่วงดิจิทัลแบบอนุกรม (SPI) ของโมดูล (รูปที่ 3)

แผนภาพของโมดูล AFBR-S50MV85G ของ Broadcom (คลิกเพื่อดูภาพขยาย) รูปที่ 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)

รูปภาพชุดประเมินผล AFBR-S50MV85G-EK ของ Broadcomรูปที่ 4: ชุดประเมินผล AFBR-S50MV85G-EK ของ Broadcom และซอฟต์แวร์ที่เกี่ยวข้องเป็นแพลตฟอร์มที่สมบูรณ์สำหรับการประเมินและการสร้างต้นแบบแอปพลิเคชันการวัดระยะทาง ToF (ที่มาภาพ: Broadcom)

การดำเนินการวัดระยะทาง ToF ด้วยชุดประเมินผลมีเพียงไม่กี่ขั้นตอนในการเริ่มต้น หลังจากดาวน์โหลด AFBR-S50 SDK แล้ว วิซาร์ดการตั้งค่าจะแนะนำผู้พัฒนาผ่านขั้นตอนการติดตั้งอย่างรวดเร็ว หลังจากที่นักพัฒนาเริ่มใช้งานแอปพลิเคชันซอฟต์แวร์ AFBR-S50 Explorer ของ Broadcom ที่รวมอยู่ในแพ็คเกจ SDK โดยซอฟต์แวร์จะเชื่อมต่อกับบอร์ดประเมินผล AFBR-S50 ผ่านอินเทอร์เฟซ USB จากนั้นจะรับข้อมูลการวัดผ่านซอฟต์แวร์ไดรเวอร์ที่ทำงานบน MCU ของบอร์ด NXP และอนุญาตให้ผู้ใช้แสดงผลลัพธ์ในรูปแบบ 1D หรือ 3D (ภาพที่ 5)

รูปภาพของซอฟต์แวร์ Broadcom AFBR-S50 Explorer (คลิกเพื่อดูภาพขยาย) รูปที่ 5: ซอฟต์แวร์ AFBR-S50 Explorer ช่วยลดความยุ่งยากในการประเมินการวัด ToF ผ่านแผนภาพ 3 มิติที่แสดงแอมพลิจูดของการส่องสว่างที่ได้รับสำหรับแต่ละพิกเซลในเมทริกซ์เซ็นเซอร์ ToF (ที่มาภาพ: Broadcom)

ดังที่แสดงในรูปที่ 5 มุมมองพล็อต 3 มิติจะแสดงการอ่านจากแต่ละพิกเซล แต่ซอฟต์แวร์มีมุมมองทางเลือกที่ช่วยให้นักพัฒนาสามารถดูเฉพาะพิกเซลที่พิจารณาว่านำไปใช้สำหรับการวัดเท่านั้น ในมุมมองทางเลือกนี้ พิกเซลที่ไม่ตรงตามเกณฑ์ที่กำหนดไว้จะถูกนำออกจากการพล็อต (ภาพที่ 6)

รูปภาพของซอฟต์แวร์ AFBR-S50 Explorer ของ Broadcom (คลิกเพื่อดูภาพขยาย) รูปที่ 6: ด้วยซอฟต์แวร์ AFBR-S50 Explorer ของ Broadcom นักพัฒนาสามารถดูพล็อต 3 มิติของการวัดที่คล่องตัว ซึ่งกำจัดพิกเซลที่ไม่ตรงตามเกณฑ์ที่กำหนดไว้ล่วงหน้า (ที่มาภาพ: Broadcom)

ในด้านความแม่นยำและประสิทธิภาพในการวัดในสถานการณ์การใช้งานต่างๆ เช่น แสงไฟ การสะท้อนแสง และประเภทพื้นผิว นักพัฒนาสามารถดูผลกระทบของการกำหนดค่าการตรวจจับต่าง ๆ เช่น การใช้พิกเซลมากขึ้นสำหรับแอปพลิเคชัน 3D ที่ได้รับการปรับปรุง หรือจำนวนพิกเซลน้อยลงสำหรับแอปพลิเคชัน 1D ที่ต้องการการวัดที่แม่นยำยิ่งขึ้น หลังจากประเมินวิธีการวัดในต้นแบบแล้ว นักพัฒนาสามารถสร้างซอฟต์แวร์ตัวอย่างที่รวมอยู่ใน AFBR-S50 SDK ของ Broadcom เพื่อปรับใช้แอปพลิเคชันการตรวจจับ ToF ที่กำหนดเองได้อย่างรวดเร็ว

การสร้างแอปพลิเคชันซอฟต์แวร์ตรวจจับ ToF แบบกำหนดเอง

Broadcom รองรับการตรวจจับ ToF ในสถาปัตยกรรมที่มีประสิทธิภาพตามไลบรารีหลักของ AFBR-S50 ซึ่งประกอบด้วยโค้ดเฉพาะฮาร์ดแวร์ของเซ็นเซอร์ อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) และระดับชั้นสำหรับการจัดการกับฮาร์ดแวร์โดยตรง (HAL) (รูปที่ 7)

แผนภาพของสภาพแวดล้อมการทำงาน ToF ของ Broadcom รูปที่ 7: ภายในสภาพแวดล้อมการทำงาน ToF ของ Broadcom นั้น API ไดรเวอร์ ToF ให้โค้ดแอปพลิเคชันของผู้ใช้ที่สามารถเข้าถึงฟังก์ชันการปรับเทียบ การวัด และการประเมินในไลบรารีหลักของไดรเวอร์ ToF ที่คอมไพล์ล่วงหน้า (ที่มาภาพ: Broadcom)

AFBR-S50 SDK Broadcom ได้จัดเตรียมไลบรารีหลักเป็นไฟล์ไลบรารี ANSI-C ที่คอมไพล์ล่วงหน้าในฐานะที่เป็นส่วนหนึ่งของแพ็คเกจ ซึ่งฝังข้อมูลและอัลกอริธึมทั้งหมดที่จำเป็นในการรันฮาร์ดแวร์ AFBR-S50MV85G ไลบรารีหลักที่ทำงานบน MCU ของระบบการวัดระยะมีฟังก์ชันต่างๆ รวมถึงการปรับเทียบ การวัด และการประเมินเพื่อดำเนินการวัดระยะทางด้วยโหลดการประมวลผลหรือการใช้พลังงานที่น้อยที่สุด เนื่องจากฟังก์ชันไลบรารีหลักจัดการรายละเอียดพื้นฐานทั้งหมด รอบการวัดพื้นฐานที่นักพัฒนาเห็นจึงตรงไปตรงมา (รูปที่ 8)

รูปภาพของซอฟต์แวร์ Broadcom AFBR-S50 SDK ToF (คลิกเพื่อดูภาพขยาย) รูปที่ 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

DigiKey logo

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.

About this author

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk มีประสบการณ์มากกว่า 20 ปีในการเขียนรวมทั้งประสบการณ์เกี่ยวกับอุตสาหกรรมอิเล็กทรอนิกส์ในด้านต่าง ๆ มากมายซึ่งรวมถึงฮาร์ดแวร์ซอฟต์แวร์ระบบและแอพพลิเคชั่นรวมถึง IoT เขาสำเร็จการศึกษาระดับปริญญาเอกทางด้านระบบประสาทเกี่ยวกับเครือข่ายเซลล์ประสาทและทำงานในอุตสาหกรรมการบินและอวกาศเกี่ยวกับระบบความปลอดภัยแบบกระจายจำนวนมากและวิธีการเร่งอัลกอริทึม ปัจจุบัน หากว่าเขาไม่ยุ่งกับการเขียนบทความเกี่ยวกับเทคโนโลยีและวิศวกรรม ก็จะทำงานเกี่ยวกับการประยุกต์ใช้การเรียนรู้เชิงลึกกับระบบการจดจำและการแนะนำ

About this publisher

DigiKey's North American Editors