مرحبا Giktayms! مع هذا النصف نصف الكرسي ، Master Gambes ... من خلال هذا المنشور ، نطلق نحن ، مشروع Samsung IoT Academy و Unwired Devices ، سلسلة من المنشورات استنادًا إلى الدورة العملية الجديدة لبرمجة وحدات التحكم الدقيقة المستندة إلى Cortex-M3 الأساسية ، والتي سيتم تدريسها غدًا في
معهد تكنولوجيا المعلومات بجامعة موسكو التكنولوجية (أيضًا المعروف باسم ميريا).
الغرض من الدورة هو تعريف الطلاب على المتحكمات الدقيقة الحديثة بناءً على جوهر Cortex-M3 ومنحهم مهارات البرمجة الأساسية لهم بلغة C تحت نظام التشغيل. متطلبات الطلاب - الإلمام باللغة C (ليس بالضرورة على المتحكم الدقيق) وفهم أساسي للإلكترونيات (على مستوى القدرة على توصيل LED).

في البداية ، تم تصميم برنامج IoT Academy على أنه عالي المستوى تمامًا - يجب على الطلاب العمل مع وحدات نقل البيانات الجاهزة لشبكات LoRa و 6LoWPAN ، حيث تم بالفعل تحميل البرامج الثابتة مع دعم أجهزة الاستشعار الضرورية والمنطق اللازم للعمل معهم. في الواقع ، تتمثل الدورة التدريبية في تكوين هذه الوحدات النمطية وكتابة برنامج عالي المستوى لمعالجة البيانات الواردة على منصة Samsung Artik + Tizen.
ومع ذلك ، كما أظهرت الممارسة ، فإن العديد من الطلاب مهتمون بالخوض بشكل أكثر جدية في ما يحدث داخل وحدات التحكم الدقيقة. في الوقت نفسه ، في الوقت الحالي ، مع الدورات التدريبية على وحدات التحكم Cortex-M مقترنة بأنظمة التشغيل ، كل شيء سيء للغاية: في الواقع ، تم تخصيص تسعة من كل عشرة من هذه الدورات لكتابة تطبيق بسيط باستخدام StdPeriphLib و / أو CubeMX ، مع نصف النص حول مشكلات التهيئة تحكم ومحيطها.
ومع ذلك ، يبدو الواقع الحديث مختلفًا - في معظم المشاريع التجارية (سنتحدث عن هذه الإحصائيات في المقالة التالية ، لم يتم أخذها من السقف) ، RTOS مستخدمة بالفعل ، والتي تجلب تجريد الأجهزة من الأجهزة ، والافتراضية لموارد الأجهزة ، وتعدد المهام والعديد من الأشياء المفيدة الأخرى.
ما هو مثير للاهتمام بشكل خاص ، استخدام RTOS يمكن أن يقلل بشكل كبير من عتبة الدخول - وعلى وجه التحديد تكمن المشكلة الرئيسية في كثير من الأحيان. المبدأ الرئيسي للبرامج التعليمية هو التطوير من البسيط إلى المعقد - عند دراسة المتحكمات الدقيقة الحديثة في الدرس الأول ، يتم تقسيمها إلى مخطط تسجيل الوقت STM32 (الصفحة A4 بالكامل بخط ليس كبيرًا جدًا) والحاجة إلى كتابة نصف صفحة من التعليمات البرمجية فقط حتى يبدأ المتحكم الدقيق. نعم ، يمكنك إجراء سلسلة من المحاضرات ، بدءًا من المجمّع ، والسجلات ، وأنماط الساعة - ولكن لنكن صادقين: الطلاب الذين لم يكونوا مهتمين بجدية بدراسة هذا الموضوع منذ البداية سيصلون إلى النهاية فقط تحت تهديد اجتياز الاختبار.
نعم ، يحل مولدات الأكواد مشكلة عتبة الإدخال ، لكنها تقودنا أيضًا إلى العمل مع الصندوق الأسود ، مما يحرمنا من فهمنا للهيكل الداخلي للنظام. لكن RTOS الحديثة الموزعة في أكواد المصدر ، من ناحية ، تتيح لك البدء بسرعة بأشياء بسيطة إلى حد ما ، ومن ناحية أخرى ، يمكنك التعمق في البنية الداخلية للنظام أثناء دراسة الفروق الدقيقة المختلفة.
في ديسمبر من العام الماضي ، أجرينا بالفعل درسًا تجريبيًا -
يتم تسجيله على موقع YouTube - لإخبار الطلاب قليلاً عن ماهية وحدات التحكم الدقيقة الحديثة ، وكذلك كيفية وميض مؤشر LED عليها. يجب أن أقول أن النجاح كان مثيرًا للإعجاب: بدأنا في الساعة العاشرة والنصف صباحًا ، بينما لم يكن هناك شخص واحد في الجمهور لديه خبرة في البرمجة مع STM32 وقليل فقط من ذوي الخبرة مع Arduino ، لكننا انتهينا في الخامسة مساءً في مختبر IoT Academy ، حيث كان بعض الطلاب بدأت بالفعل في كتابة الألعاب باستخدام الأزرار وحكام RGB على STM32.
ونتيجة لذلك ، توصلنا - الأجهزة غير السلكية وأكاديمية Samsung IoT ومعهد MIREA لتكنولوجيا المعلومات - إلى استنتاج مفاده أن الوقت قد حان لاتخاذ دورة كاملة من المقدمة العملية للعمل مع وحدات التحكم الدقيقة الحديثة. وقد فعلوا.
يبدأ تدريس هذه الدورة لطلاب معهد MIREA لتكنولوجيا المعلومات غدًا ، 3 مارس ، وستكون دورة مكونة من 6 محاضرات و 5 فصول عملية مع تعميق تدريجي في الموضوعات المتعلقة بالمراقبين.
علاوة على ذلك ، سيقوم المعهد بتسجيل جميع المحاضرات وتسجيل الدروس العملية بشكل انتقائي ؛ على مدونة Samsung IoT الخاصة بأكاديمية إنترنت الأشياء ، سيتم نشر ملاحظات المحاضرة تتكيف مع استخدام لوحات ST Nucleo-L152 ، وهي متاحة للجميع بسعر 1200-1400 روبل ، وفي ستعرض مستودعات github للأجهزة غير السلكية الرمز المستخدم في الفصل الدراسي.
في جميع التمارين العملية ، سنستخدم فقط رمز نظام التشغيل الأساسي. لذلك ، على الرغم من توفر مجموعة كاملة لشبكات LoRa للطلاب ، إلا أن المهمة في الدرس الأخير لن تكون استخدامها ، ولكن كتابة بروتوكول نقل البيانات الخاص بك وضمان حمايته من الهجمات الكبرى.
لن نستخدم StdPeriphLib و CubeMX وحتى LL - إذا احتجنا للحديث عن تشغيل وحدة التحكم الدقيقة ، فسوف نتحدث عن السجلات و CMSIS. لا يستخدم رمز OS HAL سوى CMSIS.
إذن ما الذي سيتم تضمينه في الدورة؟
0. محاضرة تعريفية. وحدات التحكم الدقيقة الحديثة وأدوات البرمجة وأنظمة التشغيل في الوقت الفعلي. عائلة وحدات تحكم STM32.
1. تعدد المهام في أنظمة التشغيل المضمنة. أنظمة متعددة المهام وقائية وغير استباقية متعددة المهام. خيوط ، موقتات ، مقاطعات.
تمرين: كتابة تطبيق بسيط يعمل مع الأزرار ومصابيح LED عن طريق إرسال رسائل من المقاطعات إلى دفق منفصل.
2. منافذ الإدخال / الإخراج وواجهات SPI ، I2C ، UART. تسجيل الوقت ، واجهات متزامن وغير متزامن ، وتنفيذ الأجهزة والبرامج.
التدريب: جهاز تشغيل مستشعر الضوء TI OPT3001 (I2C) والعمل معه من تطبيق المستخدم. إضافة إلى برنامج التشغيل وظيفة إنشاء مقاطعة عند العتبة التي حددها المستخدم.
3. العمل مع الإشارات التناظرية وشبه التناظرية. PWM ، ADC ، DAC. طرق توليد اشارة تناظرية. رقمنة الإشارة ، ومعدل أخذ العينات ، ونظرية Kotelnikov.
تمرين: اضبط سطوع المصباح باستخدام PWM وفقًا لقيمة الإشارة التناظرية الواردة. رقمنة إشارة تناظرية متغيرة بمرور الوقت وتحميل القيم المستقبلة إلى UART.
4. توفير الطاقة. طرق تشغيل قلب المعالج - RUN ، SLEEP ، STOP ، STANDBY. الصحوة من مصادر خارجية وداخلية. حفظ حالة ذاكرة الوصول العشوائي لوحدة التحكم ، يسجل النسخ الاحتياطي RTC. العمل مع أوضاع الطاقة المنخفضة في نظام التشغيل.
الممارسة: تطبيق "النوم" لعداد النبض مع الاقتراع الدوري لحالة GPIO معينة وتراكم القيم. حفظ القيمة المتراكمة في EEPROM وسجلات النسخ الاحتياطي.
5. شبكات البيانات اللاسلكية. العمل مع قناة راديو LoRa. حماية البيانات المرسلة من الهجمات النموذجية.
تمرين: المراسلة بين جهازي تحكم دقيق باستخدام برنامج تشغيل جهاز الإرسال والاستقبال SX1276 LoRa. تشفير الرسائل والحماية من تزوير الرسائل والحماية من الهجمات المتكررة.
6. درس عملي إضافي في شكل حر. الإجابة على الأسئلة ، والمشاورات حول المشاريع الخاصة بالطلاب.هل تعتقد أنه تم فقد شيء مهم وضروري؟ اكتب عن هذا في التعليقات.
