ลดความซับซ้อนของการตรวจจับการเคลื่อนไหวโดยใช้ ATtiny1627 Curiosity Nano
Contributed By DigiKey's North American Editors
2022-02-23
ความต้องการการตรวจจับการเคลื่อนไหวยังคงเติบโตอย่างต่อเนื่องในการใช้งานในอุตสาหกรรม เชิงพาณิชย์ ในบ้าน และแบบฝังตัว ปัญหาคือการตรวจจับการเคลื่อนไหวอาจต้องใช้เซ็นเซอร์ดิจิทัลราคาแพงซึ่งยากต่อการเชื่อมต่อ นอกจากนี้ เมื่อได้รับข้อมูลแล้ว ยังต้องพัฒนาอัลกอริธึมเพื่อตรวจจับการเคลื่อนไหว ซึ่งเป็นความพยายามที่ไม่ควรให้ความสำคัญ
โซลูชันหลายอย่างสามารถตรวจจับการเคลื่อนไหวได้ แต่โซลูชันอินฟราเรด (IR) เป็นที่นิยมมากที่สุด นักพัฒนาสามารถเลือกโซลูชันที่ใช้งานอยู่ซึ่งพบได้ทั่วไปในเซ็นเซอร์ดิจิทัลแบบสแตนด์อโลนจำนวนมาก แต่จะมีราคาแพงกว่าและซับซ้อนกว่าในการนำไปใช้ อีกทางเลือกหนึ่งคือการใช้ประโยชน์จากเซ็นเซอร์อินฟราเรดแบบพาสซีฟ (PIR) ซึ่งมีค่าใช้จ่ายน้อยกว่าและง่ายต่อการเชื่อมต่อ PIR ให้อินเทอร์เฟซแบบอนาล็อกที่ไมโครคอนโทรลเลอร์ส่วนใหญ่สามารถเชื่อมต่อได้
บทความนี้กล่าวถึงพื้นฐานการตรวจจับการเคลื่อนไหวก่อนที่จะแสดงให้เห็นว่านักพัฒนาสามารถเริ่มต้นการตรวจจับการเคลื่อนไหวโดยใช้ PIR ที่เชื่อมต่อได้อย่างไร DM080104 ATtiny 1627 Curiosity Nano จาก Microchip จากนั้นจะแสดงทางเลือกแทนการพัฒนาอัลกอริธึมที่ซับซ้อนสำหรับการตรวจจับการเคลื่อนไหวที่ใช้ประโยชน์จากเทคนิคการเรียนรู้ของเครื่อง (ML) รวมคำแนะนำและเคล็ดลับในการเริ่มต้นใช้งาน
พื้นฐานการตรวจจับการเคลื่อนไหว
มีเทคโนโลยีการตรวจจับหลายอย่างที่สามารถตรวจจับการเคลื่อนไหวได้ แต่ IR นั้นใช้กันอย่างแพร่หลายที่สุด เซ็นเซอร์อินฟราเรดเป็นแบบแอกทีฟหรือพาสซีฟ เซ็นเซอร์แบบแอคทีฟประกอบด้วยตัวส่ง IR LED และตัวรับโฟโตไดโอด เซ็นเซอร์แบบแอคทีฟจะตรวจจับ IR ที่สะท้อนจากวัตถุ จากนั้นใช้ IR ที่ได้รับเพื่อตรวจจับว่าวัตถุหรือวัตถุเคลื่อนที่หรือไม่ เซ็นเซอร์แบบแอคทีฟอาจมีโฟโตไดโอดหลายตัวเพื่อดูทิศทางการเคลื่อนที่ ทั้งนี้ขึ้นอยู่กับการใช้งาน ตัวอย่างเช่น โดยการตรวจจับสัญญาณ IR ที่ล่าช้าหรือตะกั่ว โฟโตไดโอดสี่ตัวสามารถใช้เพื่อตรวจจับการเคลื่อนที่แบบสั่งการ เช่น ซ้าย ขวา ไปข้างหน้า ถอยหลัง ขึ้นและลง
เซ็นเซอร์อินฟราเรดแบบพาสซีฟไม่สามารถส่ง IR ได้ แต่รับได้เท่านั้น เซ็นเซอร์ PIR ใช้ IR ที่ส่งโดยวัตถุ/วัตถุที่สนใจเพื่อตรวจจับการมีอยู่และการเคลื่อนไหวใด ๆ ที่เกี่ยวข้อง ตัวอย่างเช่น ระบบรักษาความปลอดภัยภายในบ้านมักจะมีเซ็นเซอร์ตรวจจับความเคลื่อนไหวที่ตรวจจับ IR ที่ปล่อยออกมาจากมนุษย์หรือสัตว์ และตรวจสอบว่ามีการเคลื่อนไหวผ่านขอบเขตการมองเห็นหรือไม่ รูปที่ 1 แสดงสิ่งที่เซ็นเซอร์ PIR แบบอะนาล็อกอาจตรวจพบภายใต้สภาวะต่าง ๆ เช่น ไม่มี IR, IR ปรากฏ, เสถียร และออกจาก (ตัด)
รูปที่ 1: เซ็นเซอร์ PIR ใช้ IR ที่ปล่อยออกมาจากวัตถุหรือวัตถุเพื่อตรวจจับการมีอยู่และการเคลื่อนไหวของพวกเขา ระยะการตรวจจับต่าง ๆ จะแสดงขึ้น: ไม่มี IR, IR ปรากฏ, เสถียร และออกจาก (ตัด) (แหล่งที่มารูปภาพ: Microchip Technology)
เมื่อเลือกประเภทเซ็นเซอร์ IR ที่เหมาะสมสำหรับแอปพลิเคชัน นักพัฒนาจำเป็นต้องพิจารณาข้อแลกเปลี่ยนที่สัมพันธ์กับพารามิเตอร์ต่อไปนี้อย่างรอบคอบ:
- ค่าเซ็นเซอร์
- บรรจุภัณฑ์
- อินเทอร์เฟซไมโครคอนโทรลเลอร์
- อัลกอริธึมการตรวจจับและพลังประมวลผล
- ช่วงเซนเซอร์และการใช้พลังงาน
มาดูตัวอย่างระบบตรวจจับการเคลื่อนไหว PIR ที่ใช้ ATtiny1627 กัน
ข้อมูลเบื้องต้นเกี่ยวกับ ATtiny1627 Curiosity Nano
โซลูชันไมโครคอนโทรลเลอร์ (MCU) ที่น่าสนใจสำหรับการตรวจจับการเคลื่อนไหวคือ ATtiny1627 ของ Microchip Technology MCU 8 บิตนี้มีตัวแปลงอนาล็อกเป็นดิจิตอล (ADC) 12 บิตในตัวที่สามารถสุ่มตัวอย่างเกินเป็น 17 บิต นอกจากนี้ยังมีเครื่องขยายสัญญาณขยายสัญญาณที่ตั้งโปรแกรมได้ (PGA) ที่สามารถปรับความไวได้ การรวมคุณสมบัติทั้งสองนี้เข้าด้วยกันสามารถให้ระบบตรวจจับการเคลื่อนไหวราคาประหยัดที่เหมาะกับการใช้งานจำนวนมาก
วิธีแก้ปัญหาราคาประหยัดที่ดีที่สุดในการเริ่มต้นคือการใช้ DM080104 ATtiny1627 Curiosity Nano development board (ภาพที่ 2) บอร์ดพัฒนาประกอบด้วย AVR MCU ที่ทำงานได้ถึง 20 เมกะเฮิรตซ์ (MHz) พร้อมแฟลช 16 กิโลไบต์ (Kbytes), SRAM 2 Kbytes และ EEPROM 256 ไบต์ บอร์ดประกอบด้วยโปรแกรมเมอร์ LED และสวิตช์ผู้ใช้ บางทีสิ่งที่น่าสนใจที่สุดคือบอร์ดได้รับการออกแบบให้เชื่อมต่อได้ง่ายผ่านส่วนหัวสำหรับการสร้างต้นแบบอย่างรวดเร็ว หรือสามารถบัดกรีโดยตรงบนบอร์ดต้นแบบหรือการผลิตได้
รูปที่ 2: ATtiny1627 Curiosity Nano มี AVR MCU ที่ตั้งโปรแกรมได้ 8 บิตในตัวที่ทำงานด้วยความเร็วสูงถึง 20 MHz พร้อมแฟลช 16 Kbytes, SRAM 2 Kbytes และ EEPROM 256 ไบต์ บอร์ดพัฒนาสามารถบัดกรีหรือจัมเปอร์บนกระดานข้างก้นขนาดใหญ่ได้อย่างง่ายดาย เพื่อความสะดวกในการสร้างต้นแบบและระบบการผลิต (แหล่งที่มาของภาพ: Microchip)
บอร์ดยังมาพร้อมกับคุณสมบัติเพิ่มเติมบางอย่างที่สามารถเป็นประโยชน์กับนักพัฒนา อันดับแรก มีช่องตัววิเคราะห์ลอจิกสองช่อง DGI และ GPIO แชนเนลเหล่านี้สามารถใช้เพื่อดีบักและจัดการไมโครคอนโทรลเลอร์ ประการที่สอง นักพัฒนาสามารถใช้ประโยชน์จากพอร์ต Virtual COM บนบอร์ด (CDC) สำหรับการดีบักหรือการบันทึกข้อความ สุดท้าย สามารถใช้เครื่องมือหลายอย่างในการเขียนและปรับใช้ซอฟต์แวร์ได้ ตัวอย่างเช่น นักพัฒนาสามารถใช้ Microchip Studio 7.0 , คอมไพเลอร์ GCC หรือMPLAB X ซึ่งใช้ GCC หรือ theคอมไพเลอร์ XC8
นอกจากนี้ยังมี ที่เก็บรหัส จำนวนมากที่ Microchip สนับสนุนด้วยตัวอย่างต่าง ๆ สำหรับ ATtiny1627 ที่เก็บโค้ดเหล่านี้มีตัวอย่างตั้งแต่การตรวจจับการเคลื่อนไหว PIR การวัดอุณหภูมิ การแปลงอนาล็อก และอื่น ๆ อีกมากมาย
สร้างม้านั่งทดสอบการตรวจจับการเคลื่อนไหว
การเตรียมม้านั่งทดสอบการตรวจจับการเคลื่อนไหวและใช้งานนั้นง่ายและไม่แพงเกินไป ส่วนประกอบที่จำเป็นในการสร้างม้านั่งทดสอบ ได้แก่ :
- DM080104 ATtiny1627 Curiosity นาโน
- AC164162T Curiosity Nano Adapter
- MIKROE-3339 เซ็นเซอร์ PIR จากMikroElektronika
เราได้ดู ATtiny1627 Curiosity Nano แล้ว Curiosity Nano Adapter จัดเตรียมบอร์ดสำหรับ ATtiny1627 Curiosity Nano ที่สามารถใช้สำหรับการสร้างต้นแบบอย่างรวดเร็ว (รูปที่ 3) นอกจากนี้ยังมีช่องต่อขยายสามช่องสำหรับบอร์ดคลิก MIKROE พร้อมด้วยส่วนหัวที่เข้าถึงได้เพื่อกำหนดขอบเขตสัญญาณหรือเพิ่มฮาร์ดแวร์ที่กำหนดเอง
รูปที่ 3: Curiosity Nano Adapter มีช่องเสียบส่วนขยายสามช่องสำหรับบอร์ดคลิก MIKROE พร้อมด้วยส่วนหัวเพื่อเข้าถึงสัญญาณและเพิ่มฮาร์ดแวร์ที่กำหนดเอง (แหล่งที่มาของภาพ: Microchip)
สุดท้าย เซ็นเซอร์ MIKROE-3339 PIR แสดงในรูปที่ 4 ให้ PL-N823-01 จาก KEMET ซึ่งเป็นเซ็นเซอร์ IR แบบพาสซีฟในรูปแบบที่เรียบง่ายและขยายได้ ซึ่งสามารถเชื่อมต่อโดยตรงกับ Curiosity Nano Adapter สิ่งสำคัญที่ควรทราบคือ MIKROE-3339 ต้องมีการปรับเปลี่ยนบางอย่างเมื่อใช้กับตัวอย่าง Microchip สำหรับการตรวจจับการเคลื่อนไหว การแก้ไขเหล่านี้สามารถพบได้ในหน้า 10 ของ AN3641 Application Note ของไมโครชิป “การตรวจจับการเคลื่อนไหว PIR ที่ประหยัดพลังงานและประหยัดโดยใช้ TinyAVR® 2 Family”
รูปที่ 4: บอร์ดคลิก MIKROE-3339 มีเซ็นเซอร์ KEMET PL-N823-01 PIR ในรูปแบบต้นแบบที่ใช้งานง่าย (ที่มาของภาพ: MikroElektronika)
ซอฟต์แวร์ตรวจจับการเคลื่อนไหว PIR
มีหลายตัวเลือกที่นักพัฒนาสามารถใช้เพื่อสร้างโซลูชันซอฟต์แวร์สำหรับการตรวจจับการเคลื่อนไหว แนวทางแรกคือการใช้วัสดุตัวอย่างที่ Microchip จัดหาให้ใน AN3641 สามารถดูที่เก็บโค้ดสำหรับซอฟต์แวร์ตรวจจับการเคลื่อนไหวตัวอย่างได้ที่ Github
แอปพลิเคชันเกิดขึ้นในไม่กี่ขั้นตอน ขั้นแรก แอปพลิเคชันจะเริ่มต้นและทำให้เซ็นเซอร์ PIR มีความร้อนเพิ่มขึ้น ประการที่สอง รูทีนบริการขัดจังหวะ ADC ใช้เพื่อสุ่มตัวอย่างเซ็นเซอร์ PIR เป็นระยะ ประการที่สาม ข้อมูล ADC มีค่าเฉลี่ย สุดท้าย ใช้อัลกอริธึมการตรวจจับเพื่อส่งสัญญาณว่าตรวจพบการเคลื่อนไหวหรือไม่ หากตรวจพบกิจกรรม ไฟ LED บนบอร์ดจะกะพริบ และสัญญาณการตรวจจับจะถูกส่งผ่านพอร์ตอนุกรม โฟลว์โปรแกรมทั้งหมดสามารถดูได้ในรูปที่ 5
รูปที่ 5: แผนภูมิแสดงการไหลของซอฟต์แวร์สำหรับแอปพลิเคชันการตรวจจับการเคลื่อนไหวของ Microchip (ที่มาของภาพ: Microchip)
ตัวเลือกที่สองสำหรับการตรวจจับการเคลื่อนไหวคือการใช้ประโยชน์จากการเริ่มต้นและรูทีนขัดจังหวะ ADC จากตัวอย่าง Microchip แต่แทนที่จะใช้อัลกอริธึมการตรวจจับ ให้ใช้ ML ข้อมูล PIR สามารถเก็บรวบรวมและนำไปใช้ในการฝึกอบรมโครงข่ายประสาทเทียม จากนั้นโมเดล ML สามารถแปลงให้ทำงานบนไมโครคอนโทรลเลอร์ด้วย TensorFlow Lite สำหรับไมโครคอนโทรลเลอร์ โดยใช้คณิตศาสตร์แบบจุดคงที่ที่มีน้ำหนัก 8 บิต
สิ่งที่น่าสนใจเกี่ยวกับการใช้ ML ในลักษณะนี้คือทำให้นักพัฒนาไม่ต้องออกแบบอัลกอริทึมสำหรับความต้องการเฉพาะของตน พวกเขาสามารถสุ่มตัวอย่างเซ็นเซอร์ภายใต้สภาวะที่คาดหวังและกรณีการใช้งานที่จำเป็นสำหรับการใช้งานแทน ML ยังช่วยให้นักพัฒนาปรับขนาดและปรับโมเดลได้อย่างรวดเร็วเมื่อมีข้อมูลใหม่
คำแนะนำและเคล็ดลับสำหรับการตรวจจับการเคลื่อนไหวโดยใช้ ATtiny1627
มีตัวเลือกมากมายสำหรับนักพัฒนาที่สนใจเริ่มต้นใช้งานการตรวจจับการเคลื่อนไหว นักพัฒนา "เคล็ดลับและลูกเล่น" ควรคำนึงถึงเพื่อลดความซับซ้อนและเพิ่มความเร็วในการพัฒนา ซึ่งรวมถึง:
- สร้างแพลตฟอร์มการสร้างต้นแบบต้นทุนต่ำโดยใช้ชิ้นส่วนที่หาซื้อได้ทั่วไป
- ใช้ประโยชน์จากตัวอย่างการตรวจจับการเคลื่อนไหวจาก Microchip ที่สามารถพบได้บน GitHub
- ออกแบบฮาร์ดแวร์ต้นแบบด้วยขนาดของ ATtiny1627 Curiosity Nano และประสานบอร์ดเข้ากับฮาร์ดแวร์โดยตรงเพื่อลดความซับซ้อนของต้นแบบเริ่มต้น
- สำหรับโค้ดที่เล็กกว่า มีประสิทธิภาพมากกว่า และปรับให้เหมาะสมที่สุด ให้ใช้คอมไพเลอร์ XC8 ของ Microchip
- อ่าน AN3641 ของ Microchip การตรวจจับการเคลื่อนไหว PIR ที่ใช้พลังงานต่ำและประหยัดต้นทุนโดยใช้ tinyAVR® 2 ตระกูล ก่อนเริ่มการใช้งานแบบตรวจจับการเคลื่อนไหว
- พิจารณาใช้ ML สำหรับอัลกอริธึมการตรวจจับการเคลื่อนไหวอย่างจริงจัง
นักพัฒนาที่ปฏิบัติตาม "คำแนะนำและเคล็ดลับ" เหล่านี้จะพบว่าพวกเขาประหยัดเวลาและความเศร้าโศกได้ไม่น้อยเมื่อสร้างต้นแบบแอปพลิเคชันของตน
บทสรุป
การตรวจจับการเคลื่อนไหวกลายเป็นคุณสมบัติทั่วไปในแอพพลิเคชั่นมากมาย โดยเฉพาะอย่างยิ่งในกรณีที่การไม่สัมผัสเป็นประโยชน์ นักพัฒนาสามารถลดค่าใช้จ่าย BOM และทำให้การออกแบบง่ายขึ้นโดยใช้ประโยชน์จากเซ็นเซอร์ PIR และ MCU ราคาประหยัด ดังที่แสดงไว้ ATtiny1627 เป็นจุดเริ่มต้นที่ยอดเยี่ยม และ Microchip มีเครื่องมือและบันทึกการใช้งานที่หลากหลายเพื่อช่วยนักพัฒนาในการเริ่มต้น นอกจากนี้ เพื่อลดความซับซ้อนของการพัฒนาอัลกอริธึมเพื่อตรวจจับการเคลื่อนไหว ML ยังสามารถใช้ได้

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.