גילוי תנועה הוא פשוט באמצעות ATtiny1627 Curiosity Nano

מאת ‎Jacob Beningo

באדיבות ‎DigiKey's North American Editors

הצורך בחישת תנועה ממשיך לגדול ביישומים תעשייתיים, מסחריים, ביתיים ומשובצים רבים. הבעיה היא שחישת תנועה יכולה לדרוש חיישנים דיגיטליים יקרים שקשה להתממשק איתם. בנוסף, ברגע שהנתונים מתקבלים, עדיין צריך לפתח אלגוריתמים כדי לגלות את התנועה, וזה מאמץ לא-טריוויאלי.

מספר פתרונות יכולים לחוש תנועה, אך פתרונות אינפרה אדום (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 יציב ויציאה משדה הראייה.

תמונה של חיישני PIR המשתמשים ב-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 ומתג משתמש. אולי הכי מעניין הוא שהלוח תוכנן לחיבור בקלות באמצעות פסי-פינים ליצירת אב-טיפוס מהיר, או שניתן להלחים אותו ישירות על אב-טיפוס או לוח ייצור.

תמונה של ATtiny1627 Curiosity Nano מבית Microchipאיור 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, מדידות טמפרטורה, המרות אנלוגיות ועוד הרבה יותר.

בניית עמדת בדיקה עבור גילוי תנועה

הפעלת עמדת בדיקה עבור גילוי תנועה היא פשוטה ולא יקרה מדי. הרכיבים הדרושים לבניית עמדת בדיקה כוללים:

כבר בחנו את ה-ATtiny1627 Curiosity Nano. מתאם Curiosity Nano מספק לוח נושא עבור ATtiny1627 Curiosity Nano שניתן להשתמש בו לבנייה מהירה של אב-טיפוס (איור 3). בנוסף, הוא מספק שלושה חריצי הרחבה עבור לוחות Click‏ מבית MIKROE יחד עם פסי-פינים נגישים לבדיקת אותות או להוספת חומרה מותאמת-במיוחד.

תמונה של Curiosity Nano Adapter מבית Microchipאיור 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."

תמונה של לוח Click‏ MIKROE-3339 מבית MikroElektronikaאיור 4: לוח Click ‏MIKROE-3339 מספק חיישן PIR‏ PL-N823-01 מבית KEMET עבור בניית אב-טיפוס קלה. (מקור התמונה: MikroElektronika)

תוכנת גילוי תנועה PIR

ישנן מספר אפשרויות שמפתחים יכולים להשתמש בהן כדי ליצור את פתרונות התוכנה שלהם עבור גילוי תנועה. הפתרון הראשון הוא להשתמש בחומרים לדוגמה שמספקת Microchip ב-AN3641. ניתן למצוא את מאגר הקוד של תוכנת גילוי התנועה לדוגמה ב- Github.

האפליקציה מתנהלת במספר שלבים. ראשית, האפליקציה מאתחלת ומחממת את חיישן ה-PIR. שנית, רוטינת פסק (Interrupt‏) של ממיר ה- ADC‏ משמשת לדגימה מחזורית של חיישן PIR. שלישית, מחושב הממוצע של נתוני ה-ADC. לבסוף, אלגוריתם גילוי משמש כדי לאותת אם זוהתה תנועה. אם התגלתה פעילות, נורית LED מובנית תהבהב, ואות גילוי יישלח דרך היציאה הטורית. את זרימת התוכנית המלאה ניתן לראות באיור 5.

תמונה של זרימת התוכנה עבור אפליקציית זיהוי תנועה של Microchip (לחצו להגדלה)איור 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 logo

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

אודות כותב זה

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo הוא יועץ תוכנה משובצת. הוא פרסם יותר מ- 200 מאמרים על טכניקות פיתוח תוכנה משובצת, הוא דובר ומאמן טכני מבוקש, והוא בעל שלושה תארים, כולל תואר שני בהנדסה מאוניברסיטת מישיגן.

אודות מוציא לאור זה

DigiKey's North American Editors