גילוי תנועה הוא פשוט באמצעות ATtiny1627 Curiosity Nano
באדיבות ‎DigiKey's North American Editors
2022-02-23
הצורך בחישת תנועה ממשיך לגדול ביישומים תעשייתיים, מסחריים, ביתיים ומשובצים רבים. הבעיה היא שחישת תנועה יכולה לדרוש חיישנים דיגיטליים יקרים שקשה להתממשק איתם. בנוסף, ברגע שהנתונים מתקבלים, עדיין צריך לפתח אלגוריתמים כדי לגלות את התנועה, וזה מאמץ לא-טריוויאלי.
מספר פתרונות יכולים לחוש תנועה, אך פתרונות אינפרה אדום (IR) הם הפופולריים ביותר. המפתחים יכולים לבחור בפתרון אקטיבי הנפוץ בחיישנים דיגיטליים עצמאיים רבים אך הוא יקר ומורכב יותר למימוש. האלטרנטיבה היא לנצל חיישני אינפרה אדום פסיביים (PIR), שהם פחות יקרים ופשוטים יותר להתממשק איתם. PIR מספק ממשק אנלוגי שרוב המיקרו-בקרים יכולים להתממשק אליו.
מאמר זה דן תחילה ביסודות חישת תנועה לפני שהוא מציג כיצד המפתחים יכולים להתחיל עם חישת תנועה באמצעות PIR המחובר ל-ATtiny 1627 Curiosity Nano DM080104 מבית Microchip. לאחר מכן הוא מציג חלופה לפיתוח אלגוריתמים מורכבים עבור חישת תנועה המנצלת את הטכניקות של למידת מכונה (ML). כלולים גם טיפים וטריקים כדי להתחיל.
יסודות חישת תנועה
ישנן טכנולוגיות חישה רבות היכולות לגלות תנועה, אך IR הוא הנפוץ ביותר. חיישני IR הם אקטיביים או פסיביים. חיישנים אקטיביים כוללים משדר LED IR ומקלט פוטודיודה. חיישנים אקטיביים חשים את ה-IR המוחזר מאובייקטים ולאחר מכן משתמשים ב-IR המתקבל כדי לגלות אם הסובייקט או האובייקט זז. בהתאם ליישום, החיישן האקטיבי עשוי להכיל מספר פוטודיודות כדי לראות את כיוון התנועה. לדוגמה, על ידי גילוי אילו אותות IR מפגרים או מובילים, ניתן להשתמש בארבע פוטודיודות כדי לחוש כיוון תנועה כמו שמאלה, ימינה, קדימה, אחורה, מעלה ומטה.
חיישני אינפרה-אדום פסיביים לא יכולים לשדר IR, רק לקלוט אותו. חיישן PIR משתמש ב-IR המשודר על ידי הסובייקט/אובייקט המעניין כדי לגלות את נוכחותו וכל תנועה הקשורה אליו. לדוגמה, למערכת אבטחה ביתית יהיו לרוב חיישני תנועה המזהים IR הנפלט על ידי אדם או חיה וקובעים אם הוא נע בשדה הראייה שלו. איור 1 מראה מה חיישן PIR אנלוגי עשוי לגלות בתנאים שונים כגון היעדר IR, נוכחות IR, IR יציב ויציאה משדה הראייה.
איור 1: חיישני PIR משתמשים ב-IR הנפלט על ידי סובייקטים או אובייקטים כדי לגלות את נוכחותם ותנועתם. שלבי הגילוי השונים מוצגים: היעדר IR, נוכחות IR, IR יציב ויציאה משדה הראייה. (מקור התמונה: Microchip Technology)
כאשר בוחרים את סוג חיישן ה-IR המתאים עבור יישום, המפתחים צריכים לשקול היטב את הפשרות ביחס לפרמטרים הבאים:
- עלות החיישן
- מארז
- ממשק מיקרו-בקר
- אלגוריתם גילוי וכוח המיחשוב
- טווח החיישן וצריכת האנרגיה
נבחן דוגמה למערכת גילוי תנועה PIR המשתמשת ב-ATtiny1627.
הצגת ה-ATtiny1627 Curiosity Nano
פתרון מיקרו-בקר (MCU) מעניין עבור חישת תנועה הוא ה-ATtiny1627 מבית Microchip Technology. למיקרו-בקר Bit-8 זה יש ממיר אנלוגי-דיגיטלי (ADC) Bit-12 מובנה עם אפשרות דגימת-יתר של Bit-17. הוא כולל גם מגבר עם הגבר ניתן-לתכנות (PGA) שיכול לכוונן את הרגישות. השילוב של שני המאפיינים הללו יכול לספק מערכת גילוי תנועה בעלות נמוכה המתאימה עבור יישומים רבים.
הפתרון הטוב ביותר בעלות נמוכה כהתחלה הוא להשתמש בלוח הפיתוח DM080104 ATtiny1627 Curiosity Nano (איור 2). לוח הפיתוח כולל AVR MCU הפועל עד 20 מגה-הרץ (MHz) עם 16 קילובייט (Kbytes) של זיכרון Flash, Kbytes 2 של SRAM ו-Bytes 256 של EEPROM. הלוח כולל מתכנת, LED ומתג משתמש. אולי הכי מעניין הוא שהלוח תוכנן לחיבור בקלות באמצעות פסי-פינים ליצירת אב-טיפוס מהיר, או שניתן להלחים אותו ישירות על אב-טיפוס או לוח ייצור.
איור 2: ל-ATtiny1627 Curiosity Nano יש AVR MCU מובנה של Bit-8 הפועל במהירויות של עד 20 מגה-הרץ עם 16 קילובייט (Kbytes) של זיכרון Flash, Kbytes 2 של SRAM ו-Bytes 256 של EEPROM. ניתן להלחים את לוח הפיתוח בקלות או לחברו באמצעות מגשרים על לוח בסיס גדול יותר כדי להקל על בניית אב-טיפוס ומערכות ייצור. (מקור התמונה: Microchip)
הלוח מגיע גם עם כמה מאפיינים נוספים היכולים להיות מועילים למפתחים. ראשית, יש לו שני ערוצי נתח לוגיקה, DGI ו-GPIO. ערוצים אלה יכולים לשמש לניפוי באגים ולנהל את המיקרו-בקר. שנית, המפתחים יכולים למנף נקודת-חיבור COM וירטואלי (CDC) עבור ניפוי באגים או רישום הודעות. לבסוף, ניתן להשתמש במספר כלים כדי לכתוב ולהתקין את התוכנה. לדוגמה, המפתחים יכולים להשתמש ב-Microchip Studio 7.0, קומפיילר GCC, או MPLAB X, המשתמש ב-GCC או בקומפיילר XC8.
ישנם גם כתריסר מאגרי קוד הנתמכים על-ידי Microchip עם דוגמאות שונות עבור ATtiny1627. למאגרי הקוד הללו יש דוגמאות החל מגילוי תנועה PIR, מדידות טמפרטורה, המרות אנלוגיות ועוד הרבה יותר.
בניית עמדת בדיקה עבור גילוי תנועה
הפעלת עמדת בדיקה עבור גילוי תנועה היא פשוטה ולא יקרה מדי. הרכיבים הדרושים לבניית עמדת בדיקה כוללים:
- DM080104 ATtiny1627 Curiosity Nano
- מתאם AC164162T Curiosity Nano
- חיישן MIKROE-3339 PIR מבית MikroElektronika
כבר בחנו את ה-ATtiny1627 Curiosity Nano. מתאם Curiosity Nano מספק לוח נושא עבור ATtiny1627 Curiosity Nano שניתן להשתמש בו לבנייה מהירה של אב-טיפוס (איור 3). בנוסף, הוא מספק שלושה חריצי הרחבה עבור לוחות Click מבית MIKROE יחד עם פסי-פינים נגישים לבדיקת אותות או להוספת חומרה מותאמת-במיוחד.
איור 3: למתאם Curiosity Nano יש שלושה חריצי הרחבה עבור לוחות Click מבית MIKROE יחד עם פסי-פינים לגישה לאותות והוספת חומרה מותאמת-במיוחד. (מקור התמונה: Microchip)
לבסוף, חיישן MIKROE-3339 PIR, המוצג באיור 4, מספק את חיישן ה-IR הפסיבי של PL-N823-01 מבית KEMET בצורה פשוטה וניתנת להרחבה שניתן לחבר ישירות למתאם Curiosity Nano. חשוב לציין שה-MIKROE-3339 דורש שינוי מסוים כשמשתמשים בו עם דוגמאות Microchip עבור גילוי תנועה. ניתן למצוא שינויים אלה בעמוד 10 של דף היישום AN3641 של Microchip, "גילוי תנועה PIR עם צריכת הספק נמוכה ויחס עלות-תועלת באמצעות משפחת tinyAVR® 2."
איור 4: לוח Click MIKROE-3339 מספק חיישן PIR PL-N823-01 מבית KEMET עבור בניית אב-טיפוס קלה. (מקור התמונה: MikroElektronika)
תוכנת גילוי תנועה PIR
ישנן מספר אפשרויות שמפתחים יכולים להשתמש בהן כדי ליצור את פתרונות התוכנה שלהם עבור גילוי תנועה. הפתרון הראשון הוא להשתמש בחומרים לדוגמה שמספקת Microchip ב-AN3641. ניתן למצוא את מאגר הקוד של תוכנת גילוי התנועה לדוגמה ב- Github.
האפליקציה מתנהלת במספר שלבים. ראשית, האפליקציה מאתחלת ומחממת את חיישן ה-PIR. שנית, רוטינת פסק (Interrupt) של ממיר ה- ADC משמשת לדגימה מחזורית של חיישן PIR. שלישית, מחושב הממוצע של נתוני ה-ADC. לבסוף, אלגוריתם גילוי משמש כדי לאותת אם זוהתה תנועה. אם התגלתה פעילות, נורית LED מובנית תהבהב, ואות גילוי יישלח דרך היציאה הטורית. את זרימת התוכנית המלאה ניתן לראות באיור 5.
איור 5: התרשים מייצג את זרימת התוכנה עבור יישום זיהוי תנועה של Microchip. (מקור התמונה: Microchip)
האפשרות השנייה לזיהוי תנועה היא למנף את האתחול ורוטינת הפסק של ה-ADC מהדוגמאות של Microchip, אך במקום להשתמש באלגוריתם הזיהוי שלהם, משתמשים ב-ML. ניתן לאסוף נתוני PIR ולאחר מכן להשתמש בהם לאימון רשת נוירונית. לאחר מכן ניתן להמיר את מודל ה-ML להפעלה על מיקרו-בקר עם TensorFlow Lite for Microcontrollers, תוך שימוש במתמטיקה של נקודה-קבועה עם משקלים של Bit-8.
מה שמעניין בשימוש ב-ML בצורה זו הוא שהוא מסיר את הצורך של מפתחים לתכנן אלגוריתם לצרכים הספציפיים שלהם. במקום זאת, הם יכולים פשוט לדגום את החיישן בתנאים הצפויים ולהשתמש במקרים שהם צריכים עבור היישום שלהם. ML גם מאפשר למפתחים להגדיל ולהתאים במהירות את המודלים שלהם כאשר ישנם נתונים חדשים.
טיפים וטריקים עבור חישת תנועה באמצעות ATtiny1627
בפני המפתחים המעוניינים להתחיל עם גילוי תנועה עומדות אפשרויות רבות. מפתחי "טיפים וטריקים" צריכים לזכור לפשט ולהאיץ את הפיתוח שלהם, כולל:
- בניית פלטפורמת אב-טיפוס בעלות נמוכה באמצעות חלקים מן-המדף.
- מינוף הדוגמה לגילוי תנועה של Microchip שניתן למצוא ב-GitHub.
- תכנון חומרת אב-טיפוס עם חתימת-השטח של ATtiny1627 Curiosity Nano והלחמה ישירות של הלוח על החומרה כדי לפשט את אבות-הטיפוס הראשוניים.
- עבור קוד קטן, ממוטב ויעיל יותר מומלץ להשתמש בקומפיילר XC8 מבית Microchip.
- קראו את דף היישום AN3641 של Microchip גילוי תנועה PIR בהספק נמוך ועם יחס עלות-תועלת מיטבי באמצעות משפחת 2®tinyAVR לפני שאתם מתחילים לעבוד על היישום של גילוי תנועה.
- שקלו ברצינות להשתמש ב-ML עבור אלגוריתם גילוי התנועה.
המפתחים שעוקבים אחר ה"טיפים והטריקים" הללו יגלו שהם חוסכים לא מעט זמן וצער בעת יצירת אב-טיפוס של האפליקציה שלהם.
סיכום
גילוי תנועה הופך למאפיין נפוץ ביישומים רבים, במיוחד כאשר ללא-מגע הוא מועיל. המפתחים יכולים להקטין למינימום את עלויות מפרט החומרים (BOM) שלהם ולפשט את התכנון שלהם על ידי מינוף חיישן PIR ו-MCU בעלות נמוכה. כפי שהוצג, ה-ATtiny1627 הוא נקודת התחלה מצוינת, ו-Microchip מספקת מגוון רחב של כלים ודפי יישומים כדי לעזור למפתחים להתחיל. בנוסף, כדי להקטין למינימום את המורכבות של פיתוח אלגוריתמים לגילוי תנועה, ניתן להשתמש ב-ML.

מיאון אחריות: דעות, אמונות ונקודות מבט המובעות על ידי מחברים שונים ו/או משתתפי פורום באתר אינטרנט זה לא בהכרח משקפות את הדעות, האמונות ונקודות המבט של חברת DigiKey או את המדיניות הרשמית של חברת DigiKey.