- Arduino Nano 33 BLE Sense
- نظرة عامة على أجهزة Arduino Nano 33 BLE Sense
- تحسينات البرامج مع استشعار Arduino Nano 33 BLE
- تجهيز Arduino IDE الخاص بك لحساس Arduino Nano 33 BLE
- برنامج لقراءة بيانات المستشعر وعرضها على Serial Monitor
- Arduino Nano 33 BLE- تحميل الكود
لقد كان Arduino هو النظام الأساسي لتطوير النماذج الأولية السريعة والتحقق من صحة الفكرة. كان الكثير منا قد بدأ مع مجلس تطوير Arduino UNO ، ولكن اليوم مع تقدمنا نحو إنترنت الأشياء ، رؤية الكمبيوتر ، الذكاء الاصطناعي ، التعلم الآلي ، وغيرها من التقنيات المستقبلية ، لم يعد Arduino UNO المتواضع قادرًا على التعامل مع 8 -بت متحكم. دعا هذا إلى إطلاق لوحات جديدة مع معالجات أكثر قوة تحتوي على Wi-Fi و Bluetooth و GSM وإمكانيات لاسلكية أخرى ، مثل MKR1000 أو MKR GSM 1400. في هذا السياق ، أطلقت Arduino مؤخرًا نسخة جديدة من Nano تسمى Arduino Nano 33.
يوجد نوعان تمامًا من لوحات Arduino Nano 33 ، وهما Arduino Nano 33 IoT و Arduino Nano 33 BLE. يتمثل الاختلاف الرئيسي بين كلتا الوحدتين في أن وحدة الاستشعار Arduino Nano 33 BLE تحتوي على بعض المستشعرات المضمنة (سيتم التطرق إلى التفاصيل لاحقًا) بينما لا يحتوي Arduino Nano 33 IoT عليها. في هذه المقالة سنراجع لوحة استشعار Arduino Nano 33 BLE ، ونقدم لك ميزاتها ووظائفها ، وأخيرًا نكتب نموذجًا لكود لقراءة قيم المستشعر وعرضه على الشاشة التسلسلية. لذلك دعونا نتعلم….!
Arduino Nano 33 BLE Sense
اسم "Arduino Nano 33 BLE Sense" شائع ، لكن الاسم نفسه يوضح بعض المعلومات المهمة. يطلق عليه "نانو" لأن الأبعاد والتوصيل وعامل الشكل يشبه إلى حد بعيد Arduino Nano الكلاسيكي ، فمن المخطط بالفعل استخدامه كبديل لـ Arduino Nano في مشاريعك الحالية ، ولكن المهم هو أن هذه الوحدة الجديدة تعمل على 3.3 فولت بينما يعمل النانو الكلاسيكي على 5 فولت. لذلك أعتقد أن هذا هو المكان الذي يأتي فيه الاسم "33" ، للإشارة إلى أن اللوحة تعمل على 3.3 فولت. ثم يشير الاسم "BLE" إلى أن الوحدة تدعم تقنية Bluetooth منخفضة الطاقة (BLE5 5.0)ويشير اسم "المعنى" إلى أنه يحتوي على مستشعرات مثل مقياس التسارع والجيروسكوب ومقياس المغناطيسية ومستشعر درجة الحرارة والرطوبة ومستشعر الضغط ومستشعر القرب ومستشعر الألوان ومستشعر الإيماءات وحتى ميكروفون مدمج. سوف ندخل في تفاصيل BLE والمستشعرات الأخرى في وقت لاحق ، ولكن في الوقت الحالي هذه هي الطريقة التي تبدو بها لوحة استشعار Arduino Nano 33 BLE مباشرة.
نظرة عامة على أجهزة Arduino Nano 33 BLE Sense
عند النظرة الأولى للوحة ، يمكنك أن تجد الكثير من المكونات مزدحمة في الأعلى ، ومعظمها من أجهزة الاستشعار التي أخبرتها سابقًا. لكن الدماغ الرئيسي مخفي خلف الغلاف المعدني على الجانب الأيمن. يحتوي هذا الغلاف على معالج Nordic nRF52840 الذي يحتوي على Cortex M4F قوي ووحدة NINA B306 لاتصالات BLE و Bluetooth 5. يتيح ذلك للوحة العمل بطاقة منخفضة جدًا والتواصل باستخدام Bluetooth 5 مما يجعلها مثالية لتطبيقات الشبكة المعشقة منخفضة الطاقة في أتمتة المنزل والمشاريع المتصلة الأخرى. أيضًا نظرًا لأن معالج nRF يدعم نظام التشغيل ARM Mbed OSكما أنه يوفر بعض تحسينات البرامج التي سنناقشها لاحقًا. يتم تمييز المستشعرات ومصابيح LED وأزرار الضغط وغيرها من الأشياء المهمة التي يجب أن تعرفها على لوحتك في الصورة أدناه.
كما ترى من الصورة أعلاه ، فإن اللوحة مليئة بالطاقة بأجهزة استشعار يمكنها مساعدتك في بناء يمين الصندوق دون الحاجة حتى إلى توصيل اللوحة بأي أجهزة استشعار خارجية. تهدف اللوحة إلى استخدامها في الأجهزة القابلة للارتداء والأجهزة المحمولة الذكية الأخرى مثل عصابات اللياقة البدنية ومراقبة الجلوكوز وعداد الخطى والساعة الذكية ومحطة الطقس وأمن المنزل وما إلى ذلك حيث ستستخدم معظم هذه المستشعرات. وكما هو الحال دائمًا ، تحتوي كل هذه المستشعرات على مكتبات مُعدة مسبقًا لـ 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:
مدعوم بمعالج Nordic nRF52840 ، فإن لوحة Arduino Nano 44 BLE تتمتع بالمواصفات الفنية التالية
- جهد التشغيل: 3.3 فولت
- جهد إدخال USB: 5 فولت
- جهد الإدخال: 4.5 فولت إلى 21 فولت
- الرقاقة: NINA-B3 - RF52840
- الساعة: 64 ميجا هرتز
- فلاش: 1 ميجا بايت
- SRAM: 256 كيلو بايت
- الاتصال اللاسلكي: 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 باستخدام Arduino IDE. ولكن ، عليك استخدام مدير اللوحة وإضافة تفاصيل اللوحة إلى IDE الخاص بك قبل أن تبدأ. كما نعلم يمكن برمجة nRF 52840 باستخدام نظام التشغيل ARM Mbed OS ، وهذا يعني أن لوحة Arduino Nano 33 تدعم نظام التشغيل في الوقت الفعلي (RTOS). باستخدام برمجة Mbed OS ، يمكننا تشغيل خيوط متعددة في نفس الوقت في البرنامج لأداء مهام متعددة. أيضًا ، سيتم تقليل استهلاك الطاقة للوحة بشكل كبير ، في كل مرة نسمي فيها وظيفة التأخير ، ستدخل اللوحة في وضع الدغدغة أثناء وقت التأخير لتوفير الطاقة وستعود إلى التشغيل بمجرد انتهاء التأخير. يُذكر أن هذه العملية ستستهلك 4.5uA أقل من عملية تأخير Arduino العادية.
ومع ذلك ، فإن تكامل Mbed OS مع Arduino IDE جديد نسبيًا وسيستغرق بعض الوقت قبل أن نتمكن من الاستفادة الكاملة من القوة الكاملة لنظام التشغيل Mbed مع Arduino IDE. لذلك من أجل بدء التشغيل السريع ، سنكتب برنامجًا لقراءة جميع قيم المستشعر وعرضها على الشاشات التسلسلية.
تجهيز Arduino IDE الخاص بك لحساس Arduino Nano 33 BLE
قم بتشغيل Arduino IDE الخاص بك وانتقل إلى Tools -> Boards -> Board Manger لبدء تشغيل مدير Arduino Board الخاص بك. ابحث الآن عن "Mbed OS" وقم بتثبيت الحزمة. من المفترض أن يستغرق التثبيت بعض الوقت حتى يكتمل.
بمجرد الانتهاء من التثبيت ، أغلق مربع الحوار وقم بتوصيل لوحة Arduino 33 باستخدام كابل micro USB مع الكمبيوتر المحمول. بمجرد توصيل اللوحة ، ستبدأ النوافذ تلقائيًا في تثبيت برامج التشغيل المطلوبة للوحة. ثم افتح Arduino IDE الخاص بك وحدد Tools -> Board -> Arduino Nano 33. ثم حدد أيضًا منفذ COM الصحيح عن طريق التحقق من الأدوات -> المنفذ ، المنفذ متصل بمنفذ COM3 ولكن قد يختلف المنفذ الخاص بك. بعد تحديد المنفذ ، يجب أن تبدو الزاوية اليمنى السفلية لـ IDE على هذا النحو
الآن للتحقق بسرعة مما إذا كان كل شيء يعمل بشكل سريع ، يمكننا استخدام مثال على البرنامج ، دعنا نجرب البرنامج المقدم في File -> Examples -> PDM -> PDMSerialPlotter. سيستخدم هذا البرنامج الميكروفون الموجود على اللوحة للاستماع إلى الصوت ورسمه على رسام تسلسلي. يمكنك تحميل البرنامج ومعرفة ما إذا كانت اللوحة و IDE يعملان.
الآن إذا واجهت عملية تجميع بطيئة يبعث على السخرية ، فأنت لست وحدك ، فالكثير من الأشخاص بمن فيهم أنا يواجهون هذه المشكلة وفي وقت كتابة هذا المقال ، يبدو أنه لا يوجد حل. يستغرق الأمر حوالي 2-3 دقائق لتجميع وتحميل البرامج البسيطة وعندما جربت بعض برامج BLE أو حاولت العمل مع نظام التشغيل Mbed ، زاد وقت التجميع إلى أكثر من 10 دقائق مما لم يشجعني على تجربة أي شيء آخر. هذا بسبب تكامل نظام التشغيل Mbed مع Arduino IDE ، فلنأمل أن يأتي شخص ما من مجتمع Arduino الرائع بحل لذلك.
برنامج لقراءة بيانات المستشعر وعرضها على Serial Monitor
إذا لم نستخدم وظائف BLE أو Mbed OS الأساسية للوحة ، فإن وقت التجميع كان معقولاً. لذلك كتبت رسمًا بسيطًا لقراءة جميع قيم المستشعر وعرضها على الشاشة التسلسلية مثل العرض أدناه
الكود الكامل لفعل الشيء نفسه موجود في أسفل هذه الصفحة ، ولكن تأكد من تثبيت جميع المكتبات المذكورة أعلاه. شرح الكود كالتالي.
ابدأ البرنامج بتضمين جميع ملفات الرأس المطلوبة. هنا سنستخدم جميع أجهزة الاستشعار الأربعة باستثناء الميكروفون
# تضمين // تضمين مكتبة IMU ذات 9 محاور # تضمين // تضمين مكتبة لقراءة الضغط # تضمين // تضمين مكتبة لقراءة درجة الحرارة والرطوبة # تضمين // تضمين مكتبة للتعرف على الألوان والقرب والإيماءات
داخل وظيفة الإعداد ، نقوم بتهيئة الشاشة التسلسلية بمعدل 9600 باود لعرض جميع قيم المستشعر وأيضًا تهيئة جميع المكتبات المطلوبة. يظهر الرمز الموجود داخل الإعداد أدناه
إعداد باطل () {Serial.begin (9600) ؛ // شاشة تسلسلية لعرض جميع قيم المستشعر إذا (! IMU.begin ()) // تهيئة مستشعر IMU {Serial.println ("فشل تهيئة IMU!") ؛ while (1)؛} if (! BARO.begin ()) // تهيئة مستشعر الضغط {Serial.println ("فشل تهيئة مستشعر الضغط!") ؛ while (1)؛} if (! HTS.begin ()) // تهيئة مستشعر درجة الحرارة والرطوبة {Serial.println ("فشل تهيئة مستشعر درجة الحرارة والرطوبة!") ؛ while (1)؛} if (! APDS.begin ()) // تهيئة مستشعر اللون والقرب والإيماءة {Serial.println ("فشل تهيئة مستشعر اللون والقرب والإيماءة!") ؛ بينما (1) ؛}}
داخل وظيفة الحلقة ، نقرأ قيم المستشعر المطلوبة من المكتبة ثم نطبعها على الشاشة التسلسلية. يمكن إحالة التركيب اللغوي من مثال البرنامج لكل مكتبة ، لقد قرأنا قيم مقياس التسارع والجيروسكوب ومقياس المغناطيسية والضغط ودرجة الحرارة والرطوبة ومستشعر القرب وعرضها على الشاشة التسلسلية. فيما يلي رمز قياس قيمة مقياس التسارع ، وبالمثل ، يمكننا القياس لجميع أجهزة الاستشعار.
// قيم مقياس التسارع إذا (IMU.accelerationAvailable ()) {IMU.readAcceleration (التسريع_x ، التسريع_y ، التسريع_z) ؛ Serial.print ("مقياس التسارع =") ؛ Serial.print (تسريع_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 في وقت لاحق في المستقبل. كيف كانت تجربتك مع المجلس؟ ماذا تريد مني أن أبني به؟ اترك الإجابات في قسم التعليقات وسنناقش المزيد.