ลดความซับซ้อนของการตรวจจับการเคลื่อนไหวโดยใช้ ATtiny1627 Curiosity Nano

By Jacob Beningo

Contributed By DigiKey's North American Editors

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

โซลูชันหลายอย่างสามารถตรวจจับการเคลื่อนไหวได้ แต่โซลูชันอินฟราเรด (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 ปรากฏ, เสถียร และออกจาก (ตัด)

รูปภาพของเซ็นเซอร์ PIR ใช้ 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 และสวิตช์ผู้ใช้ บางทีสิ่งที่น่าสนใจที่สุดคือบอร์ดได้รับการออกแบบให้เชื่อมต่อได้ง่ายผ่านส่วนหัวสำหรับการสร้างต้นแบบอย่างรวดเร็ว หรือสามารถบัดกรีโดยตรงบนบอร์ดต้นแบบหรือการผลิตได้

ภาพของ ATtiny1627 Curiosity Nano จาก Microchipรูปที่ 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 การวัดอุณหภูมิ การแปลงอนาล็อก และอื่น ๆ อีกมากมาย

สร้างม้านั่งทดสอบการตรวจจับการเคลื่อนไหว

การเตรียมม้านั่งทดสอบการตรวจจับการเคลื่อนไหวและใช้งานนั้นง่ายและไม่แพงเกินไป ส่วนประกอบที่จำเป็นในการสร้างม้านั่งทดสอบ ได้แก่ :

เราได้ดู ATtiny1627 Curiosity Nano แล้ว Curiosity Nano Adapter จัดเตรียมบอร์ดสำหรับ ATtiny1627 Curiosity Nano ที่สามารถใช้สำหรับการสร้างต้นแบบอย่างรวดเร็ว (รูปที่ 3) นอกจากนี้ยังมีช่องต่อขยายสามช่องสำหรับบอร์ดคลิก MIKROE พร้อมด้วยส่วนหัวที่เข้าถึงได้เพื่อกำหนดขอบเขตสัญญาณหรือเพิ่มฮาร์ดแวร์ที่กำหนดเอง

รูปภาพของ Microchip Curiosity Nano Adapterรูปที่ 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

รูปภาพของ MikroElektronika MIKROE-3339 คลิกบอร์ดรูปที่ 4: บอร์ดคลิก MIKROE-3339 มีเซ็นเซอร์ KEMET PL-N823-01 PIR ในรูปแบบต้นแบบที่ใช้งานง่าย (ที่มาของภาพ: MikroElektronika)

ซอฟต์แวร์ตรวจจับการเคลื่อนไหว PIR

มีหลายตัวเลือกที่นักพัฒนาสามารถใช้เพื่อสร้างโซลูชันซอฟต์แวร์สำหรับการตรวจจับการเคลื่อนไหว แนวทางแรกคือการใช้วัสดุตัวอย่างที่ Microchip จัดหาให้ใน AN3641 สามารถดูที่เก็บโค้ดสำหรับซอฟต์แวร์ตรวจจับการเคลื่อนไหวตัวอย่างได้ที่ Github

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

ภาพการไหลของซอฟต์แวร์สำหรับแอปพลิเคชันการตรวจจับการเคลื่อนไหวของ Microchip (คลิกเพื่อดูภาพขยาย)รูปที่ 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 ยังสามารถใช้ได้

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 Jacob Beningo

Jacob Beningo

Jacob Beningo เป็นที่ปรึกษาด้านซอฟต์แวร์แบบฝังตัว เขาได้ตีพิมพ์บทความมากกว่า 200 บทความเกี่ยวกับเทคนิคการพัฒนาซอฟต์แวร์แบบฝังตัวเป็นวิทยากรและผู้ฝึกสอนด้านเทคนิคที่เป็นที่ต้องการและสำเร็จการศึกษา 3 ปริญญา รวมถึง ปริญญาโทวิศวกรรมศาสตร์จากมหาวิทยาลัยมิชิแกน

About this publisher

DigiKey's North American Editors