- ארדואינו ננו 33 BLE Sense
- סקירה כללית על חומרה של Arduino Nano 33 BLE Sense
- שיפורי תוכנה עם Arduino Nano 33 BLE חוש
- הכנת Arduino IDE שלך ל- Arduino Nano 33 BLE חוש
- תכנית לקריאת נתוני חיישנים ולהצגה על צג סידורי
- Arduino Nano 33 BLE- העלאת הקוד
ארדואינו היווה פלטפורמת פיתוח עבור אב טיפוס מהיר ואימות רעיונות. רבים מאיתנו היו מתחילים עם לוח הפיתוח של Arduino UNO, אך כיום ככל שאנו מתקדמים לעבר האינטרנט של הדברים, ראיית מחשב, בינה מלאכותית, למידת מכונות וטכנולוגיות עתידניות אחרות, UNO Arduino הצנוע לא יכול היה עוד להתמודד עם 8 -מיקרו-בקר. זה קרא להשקת לוחות חדשים עם מעבדים חזקים יותר שיש להם Wi-Fi מובנה, Bluetooth, GSM ויכולות אלחוטיות אחרות, כמו MKR1000 הפופולרי או MKR GSM 1400. בהקשר זה, ארדואינו השיקה לאחרונה גרסה חדשה של הנאנו שלה בשם ארדואינו ננו 33.
ישנם שני סוגים של לוחות Arduino Nano 33, כלומר Arduino Nano 33 IoT ו- Arduino Nano 33 BLE חוש. ההבדל העיקרי בין שני המודולים הוא שבמודול החישה Arduino Nano 33 BLE יש כמה חיישנים מובנים (יכנסו לפרטים בהמשך) ואילו ל- Arduino Nano 33 IoT אין אותם. במאמר זה נסקור את לוח החושים Arduino Nano 33 BLE, נציג בפניכם את התכונות והפונקציות שלו ולבסוף נכתוב קוד לדוגמא לקריאת ערכי החיישן ולהצגה על צג סדרתי. אז בואו נלמד…!
ארדואינו ננו 33 BLE Sense
השם "Arduino Nano 33 BLE Sense" הוא בעל פה, אבל השם עצמו מוציא מידע חשוב. זה נקרא "ננו" מכיוון שהממדים, האינפורמציה וגורם הצורה דומים מאוד לננו הארדואינו הקלאסי, למעשה הוא מתוכנן לשמש כתחליף לארדואינו ננו בפרויקטים הקיימים שלך, אך המלכוד הוא שהמודול החדש הזה פועל 3.3 וולט בעוד שננו הקלאסית פועלת על 5 וולט. אז אני חושב שכאן נכנס השם "33", כדי לציין שהלוח פועל על 3.3 וולט. ואז השם "BLE" מציין שהמודול תומך ב- Bluetooth Low Energy (BLE5 5.0)והשם "חוש" מציין שיש בו חיישנים על הלוח כמו מד תאוצה, גירוסקופ, מגנומטר, חיישן טמפרטורה ולחות, חיישן לחץ, חיישן קירבה, חיישן צבע, חיישן מחווה, ואפילו מיקרופון מובנה. ניכנס לפרטים של BLE וחיישנים אחרים בהמשך, אך לעת עתה כך נראה לוח חוש Arduino Nano 33 BLE ישר ללא אגרוף.
סקירה כללית על חומרה של Arduino Nano 33 BLE Sense
במבט הראשון של הלוח תוכלו למצוא הרבה רכיבים הומי אדם בחלקו העליון, רובם חיישנים שסיפרתי קודם. אבל המוח הראשי מוסתר מאחורי מעטפת המתכת בצד ימין. מעטפת זו מכילה את מעבד ה- nRF52840 הנורדי המכיל קורטקס M4F חזק ומודול ה- NINA B306 לתקשורת BLE ו- Bluetooth 5. זה מאפשר ללוח לפעול בהספק נמוך מאוד ולתקשר באמצעות Bluetooth 5 מה שהופך אותו לאידיאלי ליישומי רשת עם צריכת חשמל נמוכה באוטומציה ביתית ובפרויקטים מחוברים אחרים. כמו כן מכיוון שמעבד nRF תומך במערכת ההפעלה ARM Mbedהיא מספקת גם כמה שיפורי תוכנה עליהם נדבר בהמשך. החיישנים, נוריות הלחצן, כפתורי הלחץ ושאר דברים חשובים שכדאי שתכירו בלוח שלכם מסומנים בתמונה למטה.
כפי שניתן לראות מהתמונה שלעיל, הלוח מלא בחיישנים שיכולים לעזור לכם בבניית ימין הקופסה מבלי אפילו לחבר את הלוח לחיישנים חיצוניים כלשהם. הלוח מיועד לשימוש במכשירים לבישים ומכשירים ניידים חכמים אחרים כמו להקות כושר, ניטור גלוקוז, מד צעדים, שעון חכם, תחנת מזג אוויר, אבטחת בית וכו ', שם תשתמשו ברוב החיישנים הללו. וכמו תמיד לכל החיישנים הללו יש ספריות שנבנו מראש עבור Arduino בהן תוכלו להשתמש בקלות. בסוף מאמר זה נקרא ערכים מכל החיישנים הללו ונציג אותם על הצג הסדרתי. פרטי החיישן בלוח החושים Arduino Nano 33 BLE יחד עם הספריות הנדרשות שלו מוצגים להלן
שם החיישן |
פרמטרים |
קישורים |
LSM9DSI - ST מיקרואלקטרוניקה |
תאוצה, גירוסקופ, מגנטומטר |
גליון נתונים של LSMDSI ספריית Arduino_LSM9DS1 |
LPS22HB - ST מיקרואלקטרוניקה |
לַחַץ |
גליון נתונים LPS22HB ספריית Arduino_LPS22HB |
HTS221 - מיקרואלקטרוניקה ST |
טמפרטורה ולחות |
גליון נתונים LPS22HB ספריית Arduino_HTS221 |
APDS9960 - Avago Tech. |
קרבה, אור, צבע, מחווה |
גליון נתונים LPS22HB ספריית Arduino_APDS9960 |
MP34DT05 - מיקרואלקטרוניקה ST |
מִיקרוֹפוֹן |
גיליון נתונים MP34DT05 ספריית PDM מובנית |
מרבית החיישנים הללו הם של ST Microelectronics והם תומכים בתפעול בהספק נמוך והופכים אותו לאידיאלי עבור עיצובים המופעלים על ידי סוללות. מעטים האנשים שכבר מכירים את חיישן APDS9960 מכיוון שהוא כבר זמין כמודול ספייט והשתמשנו בעבר בחיישן APDS9960 עם Arduino. לקבלת מידע נוסף על חיישנים אלה, תוכל לבקר בגליון הנתונים המתאים ולוודא שהוספת את כל הספרייה שסופקה ל- Arduino IDE שלך כדי להתחיל להשתמש בהם עם לוח החושים שלך Arduino Nano 33 BLE. כדי להוסיף ספרייה תוכלו להשתמש בקישור הנתון בכדי להגיע לדף GitHub המתאים ולהוריד את קובץ ה- ZIP, ואז להשתמש ב- Sketch -> Include Library -> Add.ZIP Library או שתוכלו גם להשתמש במנהל הספרייה ב- Arduino IDE ולהוסיף אלה ספריות.
Arduino Nano 33 BLE חוש לוח מפרט טכני:
מופעל על ידי מעבד ה- nRF52840 הנורדי, ללוח Arduino Nano 44 BLE יש את המפרט הטכני הבא
- מתח הפעלה: 3.3V
- מתח כניסת USB: 5V
- מתח סיכה כניסה: 4.5V עד 21V
- שבב: NINA-B3 - RF52840
- שעון: 64 מגה-הרץ
- פלאש: 1MB
- SRAM: 256 KB
- קישוריות אלחוטית: Bluetooth 5.0 / BLE
- ממשקים: USB, I2C, SPI, I2S, UART
- סיכות קלט / פלט דיגיטליות: 14
- סיכות PWM: 6 (רזולוציה של 8 סיביות)
- סיכות אנלוגיות: 8 (להגדרה של 10 סיביות או 12 סיביות)
שיפורי תוכנה עם Arduino Nano 33 BLE חוש
בדיוק כמו כל לוחות Arduino שם, ניתן לתכנת את חוש Arduino Nano 33 BLE באמצעות ה- IDE של Arduino. אבל עליך להשתמש במנהל הדירקטוריון ולהוסיף את פרטי הלוח ל- IDE שלך לפני שתוכל להתחיל. כידוע ניתן לתכנת את ה- nRF 52840 באמצעות מערכת ההפעלה ARM Mbed, המשמעות היא שלוח Arduino Nano 33 שלנו תומך במערכת הפעלה בזמן אמת (RTOS). בעזרת תכנות מערכת ההפעלה Mbed אנו יכולים להריץ מספר שרשורים בו זמנית בתוכנית לביצוע ריבוי משימות. כמו כן, צריכת החשמל של הלוח תפחת במידה ניכרת, בכל פעם שאנחנו קוראים לפונקציית העיכוב הלוח יעבור למצב דגדוגים בזמן העיכוב כדי לחסוך בחשמל ויקפוץ לפעולה לאחר שהעיכוב הסתיים. נמסר כי פעולה זו תצרוך 4.5uA פחות מפעולת עיכוב רגילה של Arduino.
עם זאת, שילוב מערכת ההפעלה של Mbed עם Arduino IDE הוא חדש יחסית וזה ייקח קצת זמן עד שנוכל לנצל את מלוא העוצמה של מערכת ההפעלה Mbed עם ה- Arduino IDE. אז לצורך הפעלה מהירה, נכתוב תוכנית לקריאת כל ערכי החיישן ולהצגתה על גבי המסכים הסדרתיים.
הכנת Arduino IDE שלך ל- Arduino Nano 33 BLE חוש
הפעל את ה- Arduino IDE שלך ועבור אל כלים -> לוחות -> לוח מאנג'ר כדי להפעיל את מנהל לוח הארדואינו שלך. כעת חפש "Mbed OS" והתקן את החבילה. ייקח זמן מה עד לסיום ההתקנה.
לאחר סיום ההתקנה, סגור את תיבת הדו-שיח וחבר את לוח ה- Arduino 33 שלך באמצעות כבל מיקרו USB למחשב הנייד שלך. ברגע שתתחבר חלונות הלוח יתחילו להתקין באופן אוטומטי את מנהלי ההתקנים הנדרשים ללוח. ואז פתח את ה- IDE של Arduino ובחר כלים -> לוח -> Arduino Nano 33. ואז בחר גם את יציאת ה- COM הנכונה על ידי סימון כלים -> יציאה, שלי מחובר ליציאת COM3 אבל שלך עשוי להשתנות. לאחר בחירת היציאה שלך IDE בפינה השמאלית התחתונה צריך להיראות כך
עכשיו כדי לבדוק במהירות אם הכל עובד נוכל להשתמש בתוכנית דוגמה, בואו ננסה את זו המסופקת בקובץ -> דוגמאות -> PDM -> PDMSerialPlotter. תוכנית זו תשתמש במיקרופון המובנה כדי להאזין לאודיו ולתכנן אותו בקושר סדרתי. אתה יכול להעלות את התוכנית ולבדוק אם הלוח וה- IDE עובדים.
עכשיו אם אתה חווה הידור איטי עד כדי גיחוך אז אתה לא לבד, אנשים רבים כולל אותי מתמודדים עם הבעיה ובזמן כתיבת מאמר זה נראה שאין פיתרון. לוקח לי בערך 2-3 דקות להרכיב ולהעלות תוכניות פשוטות וכשניסיתי כמה תוכניות BLE או ניסיתי לעבוד עם מערכת ההפעלה Mbed זמן האוסף גדל ליותר מ -10 דקות מה שלא עודד אותי לנסות שום דבר נוסף. הסיבה לכך היא שילוב מערכת ההפעלה של Mbed עם Arduino IDE, נקווה שמישהו מקהילת Arduino הנפלאה ימצא פיתרון לכך.
תכנית לקריאת נתוני חיישנים ולהצגה על צג סידורי
אם איננו משתמשים בפונקציות ה- BLE או הליבה של מערכת ההפעלה Mbed של הלוח, זמן הידור היה סביר. אז כתבתי סקיצה פשוטה לקריאת כל ערכי החיישן ולהצגתו על הצג הסדרתי כמו להראות למטה
הקוד השלם לשם ביצוע אותו ניתן בתחתית דף זה, אך וודא שהתקנת את כל הספריות שהוזכרו לעיל. ההסבר לקוד הוא כדלקמן.
הפעל את התוכנית על ידי הכללת כל קבצי הכותרת הנדרשים. כאן נשתמש בכל ארבעת החיישנים למעט המיקרופון
# כלול // כלול את הספרייה עבור IMU בן 9 צירים # כלול // כלול ספרייה לקריאה לחץ # כלול // כלול ספרייה לקריאת טמפרטורה ולחות # כולל // כלול ספרייה לזיהוי צבעים, קרבה ומחוות
בתוך פונקציית ההתקנה אנו מאתחלים את הצג הצפוני בקצב שידור של 9600 כדי להציג את כל ערכי החיישן וגם לאתחל את כל הספריות הנדרשות. הקוד בתוך ההתקנה מוצג להלן
הגדרת חלל () {Serial.begin (9600); // צג סדרתי להצגת כל ערכי החיישן אם (! IMU.begin ()) // אתחל חיישן IMU {Serial.println ("נכשל האתחול של IMU!"); בעוד (1);} אם (! BARO.begin ()) // אתחל את חיישן הלחץ {Serial.println ("נכשל האתחול של חיישן הלחץ!"); בעוד (1);} אם (! HTS.begin ()) // אתחל חיישן טמפרטורה ולחות {Serial.println ("נכשל האתחול של חיישן טמפרטורה ולחות!"); בעוד (1);} אם (! APDS.begin ()) // אתחל חיישן צבע, קירבה ומחווה {Serial.println ("נכשל באתחול חיישן צבע, קירבה ומחווה!"); בעוד (1);}}
בתוך פונקציית הלולאה, אנו קוראים את ערכי החיישן הנדרשים מהספריה ואז מדפיסים אותם על הצג הסדרתי. ניתן להפנות את התחביר מתוכנת הדוגמה של כל ספרייה, קראנו את ערכי חיישני תאוצה, גירוסקופ, מגנומטר, לחץ, טמפרטורה, לחות וסמיכות והצגנו אותם על הצג הסדרתי. הקוד למדידת ערך תאוצה מוצג להלן, כמו כן, אנו יכולים למדוד עבור כל החיישנים.
// ערכי תאוצה אם (IMU.accelerationAvailable ()) {IMU.readAcceleration (accel_x, accel_y, accel_z); Serial.print ("Accelerometer ="); Serial.print (accel_x); Serial.print (","); Serial.print (accel_y); Serial.print (","); Serial.println (accel_z); } עיכוב (200);
Arduino Nano 33 BLE- העלאת הקוד
העלאת הקוד ל- Nano 33 דומה לכל לוח אחר, אך שימו לב שללוח יש שתי יציאות COM. כשלוחצים על כפתור ההעלאה ה- Arduino IDE אוסף את הקוד ואז מאפס את הלוח באופן אוטומטי באמצעות פקודת תוכנה, הדבר יכניס את הלוח למצב טעינת אתחול ויעלה את הקוד שלכם. מסיבה זו, לאחר שההעלאה תסתיים, ייתכן שתבחין בכך ש- Arduino IDE שינה אוטומטית את יציאת ה- COM למספר אחר וייתכן שתרצה לשנות אותה בחזרה לפני שתפתח את המסך הטורי שלך.
אז זה פחות או יותר הניסיון שלי עם לוח Arduino Nano 33 עד כה, אנסה לבנות משהו עם חיישניו ותכונות BLE מתישהו מאוחר יותר בעתיד. איך הייתה החוויה שלך עם הלוח? מה היית רוצה שאבנה איתו? השאירו את התשובות בסעיף ההערות ונדון בהמשך.