צעדים ראשונים בתכנון חיישני תנועה וכיוון מבוססי MEMS באמצעות לוחות פילוג (Breakout) מבית Arduino

מאת ‎Clive "Max" Maxfield

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

המתכננים זקוקים יותר ויותר לספק למערכות שלהם יכולת כיווניות ותנועה. למרבה המזל, חיישנים המבוססים על מערכות מצב-מוצק (מוליכים-למחצה) ומערכות מיקרו-אלקטרומכניות (MEMS) זמינים כדי לעזור להם לעשות זאת. הגודל הקטן והעלות הנמוכה שלהם מאפשרים לשלב חישת תנועה וכיוון במגוון רחב של מערכות, כולל רחפנים, רובוטים וכמובן מוצרים נישאים-ביד כמו סמארטפונים ומחשבי טאבלט. חיישנים אלה משמשים גם במערכות תחזוקה פרדיקטיבית עבור האינטרנט של דברים תעשייתי (IIoT), ומספקים נתונים עבור ניתוח באמצעות בינה מלאכותית (AI) ולמידת מכונה (ML) בקצה.

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

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

לחלופין, מתכננים שאינם רגילים לעבוד עם חיישני תנועה וכיוון עשויים להרוויח מהתנסות ובניית אב-טיפוס באמצעות לוחות פיתוח של מיקרו-בקרים בקוד פתוח ובעלות נמוכה מבית Arduino, ביחד עם סביבת הפיתוח המשולבת (IDE) היחידה שלו, כמו גם לוחות פילוג (Breakout‏) (BOB‏) של חיישנים במקור פתוח ובעלות נמוכה שלהם חיישנים ממספר יצרנים.

כדי לעזור למתכננים להתחיל בעבודה, מאמר זה מספק מילון מונחים של מינוחי חיישנים ודיון קצר על תפקידם של חיישני תנועה וכיוון. לאחר מכן הוא יציג מבחר של לוחות BOB עם חיישנים כאלה מבית Adafruit והשימושים שלהם.

מילון מונחי חיישנים

שני מונחים המשמשים בדרך כלל ביחס לחיישני תנועה וכיוון הם "מספר הצירים" ו"דרגות החופש "(DOF‏). למרבה הצער, לעתים קרובות משתמשים במונחים אלה באופן נרדף, דבר שעלול להוביל לבלבול.

באופן כללי, ניתן להשתמש במונח ציר (בלשון רבים: צירים) כדי לתאר את ממדיות הנתונים בהם משתמשים במערכת. בהקשר של תנועה וכיוון , ישנם שלושה צירים מעניינים, Y ,X ו- Z.

הייצוג של צירים אלה תלוי במערכת המדוברת. במקרה של סמארטפון בכיוון דיוקן, למשל, ציר X אופקי ביחס למסך ומצביע ימינה, ציר Y אנכי ביחס למסך ומצביע כלפי מעלה, וציר Z, אשר מאונך לשני הצירים האחרים, נחשב כמצביע החוצה מן מהמסך (איור 1).

תרשים של מערכת פיזית היכולה תמיד לכלול מקסימום של שש דרגות חופש (DOF‏)איור 1‏: מערכת פיזית יכולה תמיד לכלול מקסימום של שש דרגות חופש (DOF‏) מאחר וישנן רק שש דרכים בהם היא יכולה לנוע במרחב 3D‏: שלוש לינאריות ושלוש זוויתיות. (מקור התמונה: Max Maxfield‏)

ביחס להתקן כמו סמארטפון, ישנם שני סוגים של תנועות מעניינות: לינארית וזוויתית. במקרה של תנועה ליניארית, המערכת עשויה לנוע מצד לצד על ציר X, למעלה ולמטה על ציר Y, וקדימה ואחורה על ציר Z. במקרה של תנועה זוויתית, המערכת עשויה להסתובב סביב אחד או יותר משלושת הצירים.

בהקשר של תנועה, דרגת החופש (DOF‏) מתייחסת לכל אחד מהכיוונים בהם יכולה להתרחש תנועה בלתי-תלויה. על בסיס זה, מערכת פיזית יכולה תמיד לכלול מקסימום של שש דרגות חופש (‎6DOF‏) מאחר וישנן רק שש דרכים בהם היא יכולה לנוע במרחב 3D‏: שלוש לינאריות ושלוש זוויתיות.

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

דרך אחת להסתכל על זה היא שניתן לציין את כיוון ההתקן על ידי הערכים של כל דרגות החופש האפשריות בזמן כלשהו X‏t‏. לשם השוואה, תנועת ההתקן נקבעת על ידי ההפרש בין הערכים של כל דרגות החופש האפשריות בין הזמנים 0‏t‏ ו- 1‏t‏.

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

אם פלטפורמת חיישנים מתוארת כעוקבת אחר יותר משישה צירים, זה מציין שהיא מספקת רמת דיוק גבוהה יותר הודות לעקיבה אחר מספר נקודות נתונים לאורך (או סביב) צירי X‏, Y‏ ו- Z‏. דוגמה לכך היא חבילת מד-תאוצה של 12 צירים המשתמשת במדידות תאוצה לינאריות מארבעה מדי-תאוצה 3-צירים.

למרבה הצער, רבים מבלבלים בין דרגות החופש (DOF) עם מספר הצירים. לדוגמה, השילוב של מד-תאוצה 3-צירים, ג'ירוסקופ 3-צירים ומגנומטר 3-צירים עשוי להיות מתואר על ידי יצרנים מסוימים כחיישן 9DOF‏, למרות שיש לתאר אותו נכון יותר כחיישן 6DOF עם 9 צירים.

מיזוג חיישנים

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

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

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

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

המונח "היתוך חיישנים (Sensor Fusion)" מתייחס לשילוב של נתוני חיישנים ממקורות שונים כך שלמידע המתקבל יש פחות אי-ודאות ממה שהיה אפשרי אם נתונים מאותם מקורות היו משמשים בנפרד.

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

התוצאה של שימוש בהיתוך חיישנים היא שדיוק היציאה עולה על דיוק החיישנים הנפרדים.

היכרות עם חיישנים מייצגים

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

דוגמה טובה למד תאוצה הוא ה- BOB‏ 2019‏ מבית Adafruit, הכולל מד-תאוצה 3-צירים עם ממיר אנלוגי-לדיגיטלי (ADC‏) של Bit‏-14‏ (איור 2).

תמונה של BOB‏ 2019‏ מבית Adafruitאיור 2‏: ה- BOB‏ 2019‏ מבית Adafruit הוא מד-תאוצה 3-צירים היכול לשמש לגילוי תנועה, נטייה וכיוון בסיסי. (מקור התמונה: Adafruit)

לחיישן 3-צירים עם דיוק גבוה יש תחום רחב מ- g‏ 2‏± עד g‏ 8‏± והוא יכול לשמש לגילוי תנועה, נטייה וכיוון בסיסי. החיישן דורש הספקת-כוח של 3.3 וולט עם מפל-מתח נמוך, אך ה- BOB כולל מעגלי מייצב והסטת רמה של 3.3 וולט, ההופכים אותו לבטוח לשימוש עם הספקת-כוח ולוגיקה של 3 וולט או 5 וולט. התקשורת בין ה- BOB למיקרו-בקר מבית Arduino‏ (או אחר) מתבצעת באמצעות C‏2‏I‏.

עבור יישומים הדורשים חיישן ג'ירוסקופי בלבד לגילוי תנועות פיתול וסיבוב, דוגמה טובה הוא ה- BOB‏ 1032‏ מבית Adafruit עם הג'ירוסקופ 3-צירים L3GD20H‏ מבית STMicroelectronics‏. תומך בממשקי C‏2‏I‏ ו- SPI למיקרו-בקר מבית Arduino (או אחר), ה- L3GD20H ניתן להגדרה עבור סולם של 250‏±, 500‏± או 2,000‏± מעלות-לשנייה עבור תחום רחב של רגישויות. שוב, החיישן דורש הספקת-כוח של 3.3 וולט, אך ה- BOB כולל מעגלי מייצב והסטת רמה של 3.3 וולט המאפשרים להשתמש בו עם הספקת-כוח ולוגיקה של 3 וולט או 5 וולט.

בדומה, עבור יישומים הדורשים חיישן מגנטי בלבד, אפשרות הערכה טובה הוא ה- BOB‏ 4479‏ מבית Adafruit, הכולל את המגנטומטר LIS3MDL‏ 3-צירים מבית STMicroelectronics‏. ה- LIS3MDL יכול לחוש בתחום מ- Gauss‏ 4± (400± מיקרו-טסלה (µT‏) עד Gauss‏ 16± (µT‏ 1,600± או 1.6 מילי-טסלה (mT‏)). התקשורת בין ה- BOB למיקרו-בקר מבית Arduino‏ (או אחר) מתבצעת באמצעות C‏2‏I‏. שוב, ה- BOB כולל מעגלי מייצב והסטת רמה של 3.3 וולט, ההופכים אותו לבטוח לשימוש עם הספקת-כוח ולוגיקה של 3 וולט או 5 וולט.

השימוש במספר חיישנים ביחד הוא נפוץ ביותר. לדוגמה, ניתן להשתמש במד-תאוצה בשילוב עם ג'ירוסקופ לביצוע משימות כמו קליטת תנועה 3D‏ ומדידת אינרציה; כלומר לאפשר למשתמש לקבוע כיצד אובייקט נע במרחב 3D‏. דוגמה אחת לשילוב כזה הוא ה- BOB‏ 4480 מבית Adafruit (איור 3), הכולל את שבב החיישן LSM6DS33‏ מבית STMicroelectronics.

תמונה של BOB‏ 4480‏ מבית Adafruitאיור 3‏: ה- BOB‏ 4480‏ מבית Adafruit כולל את מד-התאוצה ה3-צירים LSM6DS33TR‏ וג'ירוסקופ 3-צירים היכולים לשמש לביצוע משימות כמו קליטת תנועה 3D‏ ומדידת אינרציה. (מקור התמונה: Adafruit)

מד-התאוצה 3-צירים יכול לספק נתונים איזה כיוון הוא לכיוון כדור-הארץ על ידי מדידת כוח הכבידה, ובאיזו מהירות הלוח מאיץ במרחב 3D‏. בינתיים, הג'ירוסקופ 3-צירים יכול למדוד סיבוב ופיתול. כמו עם יתר לוחות ה- BOB שהוצגו קודם לכן, ה- BOB‏ 4480‏ כולל מעגלי מייצב והסטת רמה של 3.3 וולט, ההופכים אותו לבטוח לשימוש עם הספקת-כוח ולוגיקה של 3 וולט או 5 וולט. כמו כן, ניתן לגשת לנתוני החיישן באמצעות ממשקי C‏2‏I‏ או SPI, המאפשרים להשתמש בהם עם מיקרו-בקר מבית Arduino‏ (או אחר) ללא כינון חומרה מורכב.

דוגמה נוספת ל- BOB עם שני חיישנים הוא ה- 1120 מבית Adafruit, הכולל שילוב של מד-תאוצה 3-צירים ומגנומטר 3-צירים בצורה של שבב חיישנים LSM303‏ מבית STMicroelectronics. התקשורת בין המיקרו-בקר ל- 1120 היא באמצעות ממשק C‏2‏I‏, וה- BOB כולל מעגלי מייצב והסטת רמה של 3.3 וולט, ההופכים אותו לבטוח לשימוש עם הספקת-כוח ולוגיקה של 3 וולט או 5 וולט.

יישומים מסוימים דורשים שימוש במדי-תאוצה, ג'ירוסקופים ומגנומטרים. במקרה זה, BOB שימושי כדוגמה הוא ה- 3463 מבית Adafruit, הכולל שני שבבי חיישנים: ג'ירוסקופ 3-צירים ומד-תאוצה 3-צירים עם מגנומטר 3-צירים. התקשורת בין ה- BOB למיקרו-בקר ממומשת באמצעות ממשק SPI. כמו כן, ה- BOB כולל מעגלי מייצב והסטת רמה של 3.3 וולט, ההופכים אותו לבטוח לשימוש עם הספקת-כוח ולוגיקה של 3 וולט או 5 וולט.

יתרון אחד של ה- BOB‏ 3463‏ הוא שהמתכנן מקבל גישה לנתונים הגולמיים משלושת החיישנים. החיסרון הוא ששימוש בחיישן זה (טיפול ועיבוד הנתונים שלו) ידרוש כ- 15 קילו-בייט (Kbytes) מזיכרון Flash‏ של המיקרו-בקר ויצרוך הרבה מחזורי שעון.

כחלופה, ה- BOB‏ 2472‏ מבית Adafruit כולל את שבב החיישנים BNO055‏ מבית Bosch‏. ה- BNO055 כולל מד-תאוצה 3-צירים, ג'ירוסקופ 3-צירים ומגנומטר 3-צירים, כולם בתוך מארז אחד (איור 4).

תמונה של חיישן BNO055 ב- BOB‏ 2472‏ מבית Adafruitאיור 4‏: בנוסף למד-תאוצה 3-צירים, ג'ירוסקופ 3-צירים ומגנומטר 3-צירים, חיישן BNO055‏ על ה- BOB‏ 2472‏ מבית Adafruit כולל גם מעבד Cortex-M0 מבית Arm‏ המבצע היתוך חיישנים. (מקור התמונה: Adafruit)

יתר על כן, ה- BNO055 כולל גם מעבד Arm Cortex-M0‏ Bit‏-32‏, הלוקח את הנתונים הגולמיים משלושת החיישנים, מבצע היתוך חיישנים מתוחכם ומספק למתכננים מידע מעובד בצורות בהן הם יכולים להשתמש: קוואטרניונים, זוויות אוילר ווקטורים. באופן ספציפי יותר, באמצעות ממשק C‏2‏I‏ של ה- BOB‏ 2472‏, המתכננים יכולים לגשת במהירות ובקלות לנתונים הבאים:

  • כיוון אבסולוטי (וקטור אוילר‏, 100 הרץ (Hz‏)): נתוני כיוון 3-צירים על בסיס כדור של 360°‏.
  • כיוון אבסולוטי (קוואטרניון, Hz‏ 100‏): יציאת קוואטרניון ארבע-נקודות עבור נתונים מדויקים יותר.
  • וקטור מהירות זוויתי (Hz‏ 100‏): שלושה-צירים של "מהירות סיבוב" ב- rad/s‏ (ראדיאן-לשנייה).
  • וקטור תאוצה (Hz‏ 100‏): 3-צירים של תאוצה (כבידה + תנועה לינארית) במטר-לשנייה-רבוע (2‏s‏/m‏).
  • וקטור עוצמת שדה מגנטי (Hz‏ 20‏): 3-צירים של חישת שדה מגנטי (ב- µT‏).
  • וקטור תאוצה לינארית (Hz‏ 100‏): 3-צירים של נתוני תאוצה לינארית (תאוצה פחות כוח הכבידה) ב- 2‏s‏/m‏.
  • וקטור כוח הכבידה Hz(‏ 100‏): 3-צירים של תאוצת כוח הכבידה (פחות תנועה כלשהי) ב- 2‏s‏/m‏.
  • טמפרטורה (Hz‏ 1‏): טמפרטורת הסביבה במעלות צלזיוס.

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

סיכום

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

לקריאה נוספת:

  1. השתמשו בלוחות BOB של Arduino כדי להעריך במהירות חיישנים ורכיבים היקפיים
  2. ה- IoT, IIoT ו- AIoT, ומדוע הם העתיד של אוטומציה תעשייתית
  3. הביאו בקלות בינה מלאכותית לכל מערכת תעשייתית
DigiKey logo

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

אודות כותב זה

Image of Max Maxfield

Clive "Max" Maxfield

Clive "Max" Maxfield קיבל את התואר הראשון שלו בהנדסת בקרה בשנת 1980 מאוניברסיטת Sheffield Hallam, אנגליה, והחל את דרכו כמתכנן יחידות עיבוד מרכזיות (CPUs) עבור מחשבי מיינפריים גדולים. במהלך השנים תכנן מקס כל דבר, החל משבבי סיליקון ועד מעגלים וממגברי גלי מוח ועד למנועי מדע בדיוני Prognostication Engines (אל תשאלו). הוא גם היה בחזית של אוטומציית תכנון אלקטרוני (EDA) במשך יותר מ- 30 שנה.

מקס הוא מחבר ו/או מחבר-שותף של מספר ספרים, כולל Designus Maximus Unleashed (נאסר לפרסום במדינת אלבמה), Bebop to the Boolean Boogie (מדריך לא שגרתי לאלקטרוניקה), EDA: Where Electronics Begins‏, FPGAs: Instant Access ו- How Computers Do Math‏. בקרו בבלוג שלו “Max’s Cool Beans‏”.

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

DigiKey's North American Editors