جدول المحتويات:
فيديو: برمجة Arduino عبر الأثير (OTA) - Ameba Arduino: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:38
هناك العديد من وحدات التحكم الدقيقة لشبكة Wi-Fi في السوق ، ويستمتع العديد من المصنّعين ببرمجة متحكم Wi-Fi الخاص بهم باستخدام Arduino IDE. ومع ذلك ، فإن واحدة من أروع الميزات التي يقدمها متحكم Wi-Fi يميل إلى التغاضي عنها ، وهي برمجة وتحميل الكود الخاص بك عن بُعد ولاسلكيًا باستخدام وظيفة OTA (Over-The-Air).
في Instructable ، سأوضح لك كيفية إعداد OTA على متحكم Wi-Fi الخاص بك باستخدام Arduino IDE في كل مكان على متحكم Ameba Arduino Wi-Fi!
اللوازم
أميبا اردوينو × 1
الخطوة 1: عبر الهواء
يشير OTA (Over-The-Air) إلى آلية الترقية عبر الإنترنت عبر الإنترنت.
يوفر Arduino IDE ميزة OTA ، والتي تتبع سير العمل في الشكل أعلاه.
(ط) يبحث Arduino IDE عبر mDNS عن الأجهزة المزودة بخدمة Arduino IDEOTA في الشبكة المحلية.
(2) نظرًا لأن خدمة mDNS تعمل على Ameba ، فإن Ameba تستجيب لبحث mDNS وتفتح منفذ TCP المحدد للاتصال.
(3) يقوم المستخدم بتطوير البرنامج في Arduino IDE. عند الانتهاء ، اختر منفذ الشبكة.
(4) انقر فوق تحميل. ثم يرسل Arduino IDE صورة OTA إلى Ameba من خلال TCP ، ويحفظ Ameba الصورة إلى عنوان محدد ويعين خيار التمهيد للتمهيد من هذه الصورة في المرة القادمة.
يتكون سير العمل من ثلاثة أجزاء: عملية صورة mDNS و TCP و OTA. التفاصيل المتعلقة بـ mDNS موصوفة في البرنامج التعليمي mDNS. تُستخدم برمجة TCP socket في نقل الصورة وهي متوفرة بالفعل في OTA API.
في القسم التالي ، سنناقش كيفية معالجة صورة OTA ، وتقديم بعض المعرفة الأساسية حول تخطيط ذاكرة فلاش Ameba وتدفق التمهيد.
الخطوة 2: تخطيط ذاكرة فلاش Ameba
حجم ذاكرة فلاش Ameba RTL8195A هو 2 ميغا بايت ، ويتراوح من 0x00000000 إلى 0x00200000. ومع ذلك ، فإن حجم ذاكرة فلاش Ameba RTL8710 هو 1 ميغا بايت. لتتناسب مع استخدام اللوحات المختلفة ، نفترض أن تخطيط ذاكرة الفلاش هو 1 ميغا بايت.
كما هو موضح في الشكل أعلاه ، يحتل برنامج Ameba ثلاثة أجزاء من ذاكرة الفلاش:
- صورة الحذاء :
هذا هو محمل الإقلاع. عندما يقوم Ameba بالتمهيد ، فإنه يضع صورة التمهيد في الذاكرة ويقوم بإجراء التهيئة. علاوة على ذلك ، فإنه يحدد مكان المتابعة بعد أداة تحميل التشغيل. يبحث Bootloader في عنوان OTA ودبوس الاسترداد في منطقة بيانات النظام ويحدد الصورة التي سيتم تنفيذها بعد ذلك. في نهاية محمل الإقلاع ، فإنه يضع الصورة في الذاكرة ويمضي في تنفيذها.
- الصورة الافتراضية 2 :
يتم وضع رمز المطور في هذا الجزء ، يبدأ العنوان من 0x0000B000. أول 16 بايت هي رأس الصورة ، 0x0000B008 ~ 0x0000B00F يشتمل على التوقيع ، والذي يستخدم للتحقق مما إذا كانت الصورة صالحة. يحتوي حقل التوقيع على قيمتين صالحتين لتمييز الصورة الجديدة عن الصورة القديمة.
- صورة OTA :
البيانات الموجودة في هذا الجزء هي أيضًا كود المطور. بشكل افتراضي ، يبدأ هذا الجزء من الذاكرة من 0x00080000 (يمكن تغييره). الاختلافات الرئيسية بين صورة OTA والصورة الافتراضية 2 هي عنوان ذاكرة الفلاش وقيمة التوقيع.
بصرف النظر عن الكود ، هناك بعض كتل البيانات:
- بيانات النظام:
تبدأ كتلة بيانات النظام من 0x00009000. هناك نوعان من البيانات المتعلقة بـ OTA:
1. عنوان OTA بيانات 4 بايت تبدأ من 0x00009000. يخبر عنوان صورة OTA. إذا كانت قيمة عنوان OTA غير صالحة (على سبيل المثال ، 0xFFFFFFFF) ، فلا يمكن تحميل صورة OTA في ذاكرة الفلاش بشكل صحيح.
2. بيانات الاسترداد : 4 بايت تبدأ من 0x00009008 ، يتم استخدام دبوس الاسترداد لتحديد الصورة (الصورة الافتراضية 2 أو صورة OTA) التي سيتم تنفيذها عندما تكون كلتا الصورتين صالحتين. إذا كانت قيمة رقم التعريف الشخصي للاسترداد غير صالحة (على سبيل المثال ، 0xFFFFFFFF) ، فسيتم تنفيذ الصورة الجديدة افتراضيًا.
ستتم إزالة بيانات النظام عندما نقوم بتحميل البرنامج إلى Ameba عبر DAP. أي ، ستتم إزالة عنوان OTA وسيحدد Ameba عدم وجود صورة OTA.
- بيانات المعايرة يتم وضع بيانات المعايرة الطرفية في هذه الكتلة. عادة لا ينبغي حذف هذه البيانات.
الخطوة 3: تدفق التمهيد
من الصورة أعلاه
نناقش السيناريوهات التالية: (1) لا يتم استخدام OTA ، استخدم DAP لتحميل البرنامج:
في هذه الحالة ، يتحقق برنامج bootloader من توقيع الصورة الافتراضية 2 وعنوان OTA. منذ إزالة عنوان OTA ، سيتم تحديد الصورة الافتراضية 2 للتنفيذ.
(2) يتم نقل صورة OTA إلى Ameba ، ويتم تعيين عنوان OTA بشكل صحيح ، ولم يتم تعيين دبوس الاسترداد :
تلقت Ameba صورة محدثة عبر OTA ، سيتم تعيين توقيع الصورة الافتراضية 2 على التوقيع القديم.
يتحقق Bootloader من توقيع الصورة الافتراضية 2 وعنوان OTA. سيجد عنوان OTA يحتوي على صورة OTA صالحة. نظرًا لعدم تعيين دبوس الاسترداد ، فإنه يختار الصورة الجديدة (أي صورة OTA) ليتم تنفيذها.
(3) يتم نقل صورة OTA إلى Ameba ، ويتم تعيين عنوان OTA بشكل صحيح ، ويتم تعيين دبوس الاسترداد :
تلقت Ameba صورة محدثة عبر OTA ، سيتم تعيين توقيع الصورة الافتراضية 2 على التوقيع القديم.
يتحقق Bootloader من توقيع الصورة الافتراضية 2 وعنوان OTA. سيجد عنوان OTA يحتوي على صورة OTA صالحة. ثم تحقق من قيمة دبوس الاسترداد. إذا كان دبوس الاسترداد متصلاً بـ LOW ، فسيتم تنفيذ الصورة الجديدة (أي صورة OTA). إذا كان دبوس الاسترداد متصلاً بـ HIGH ، فسيتم تنفيذ الصورة القديمة (أي الصورة الافتراضية 2).
الخطوة 4: مثال
لاستخدام ميزة OTA ، يرجى ترقية البرنامج الثابت DAP إلى الإصدار> 0.7 (لم يتم تضمين الإصدار 0.7). البرنامج الثابت الافتراضي من المصنع DAP هو الإصدار 0.7. يرجى اتباع التعليمات لترقية البرنامج الثابت DAP:
افتح المثال: "ملف" -> "أمثلة" -> "AmebaOTA" -> "ota_basic"
املأ معلومات SSID وكلمة المرور في نموذج التعليمات البرمجية لاتصال الشبكة.
هناك بعض المعلمات المتعلقة بـ OTA:
§ MY_VERSION_NUMBER : في الإصدار الأول ، نحتاج إلى تعيين عنوان OTA ورقم التعريف الشخصي. نظرًا لأن هذا الوقت الذي نقوم فيه بالتحميل عبر USB هو الإصدار الأول ، فلا داعي لتغيير هذه القيمة.
§ OTA_PORT : سوف يجد Arduino IDE Ameba عبر mDNS. سيخبر Ameba Arduino IDE أنه يفتح منفذ TCP 5000 لانتظار صورة OTA.
§ RECOVERY_PIN : تكوين الدبوس المستخدم للاسترداد. نستخدم دبوس 18 هنا.
ثم نستخدم برنامج تحميل USB إلى Ameba. انقر فوق أدوات -> منافذ ، وتحقق من المنفذ التسلسلي لاستخدامه :
يرجى ملاحظة أن Arduino IDE يستخدم منفذًا واحدًا لبرنامج التحميل والإخراج. لتجنب الموقف الذي لا يمكن فيه إخراج السجل عند استخدام OTA ، نستخدم محطة منفذ تسلسلي أخرى (على سبيل المثال ، مصطلح Tera أو المعجون) بدلاً من جهاز العرض التسلسلي لمشاهدة رسالة السجل.
ثم انقر فوق تحميل واضغط على زر إعادة الضبط.
في رسالة السجل:
1. بين “===== أدخل الصورة 1 ====” و “أدخل الصورة 2 ====” ، يمكنك أن تجد “Flash Image 2: Addr 0xb000”. هذا يعني أن Ameba تحدد التمهيد من الصورة الافتراضية 2 عند 0xb000.
2. بعد "أدخل الصورة 2 ====" ، يمكنك أن تجد "هذا هو الإصدار 1". هذه هي رسالة السجل التي نضيفها في الرسم التخطيطي.
3. بعد توصيل Ameba بـ AP والحصول على عنوان IP "192.168.1.238" ، يقوم بتنشيط mDNS وينتظر العميل.
بعد ذلك ، نقوم بتعديل "MY_VERSION_NUMBER" إلى 2.
انقر فوق "أدوات" -> "منفذ" ، يمكنك مشاهدة قائمة "منافذ الشبكة". ابحث عن "MyAmeba عند 192.168.1.238 (Ameba RTL8195A)" ، MyAmeba هو اسم جهاز mDNS الذي قمنا بتعيينه في نموذج التعليمات البرمجية ، و "192.168.1.238" هو عنوان IP الخاص بـ Ameba.
إذا لم تتمكن من العثور على منفذ شبكة Ameba ، فيرجى تأكيد:
- ما إذا كان جهاز الكمبيوتر الخاص بك و Ameba في نفس الشبكة المحلية؟
- حاول إعادة تشغيل Arduino IDE.
- تحقق من رسالة السجل في Serial Monitor لمعرفة ما إذا كان Ameba متصلًا بـ AP بنجاح.
ثم انقر فوق تحميل. هذه المرة سيتم تحميل البرنامج عبر TCP. في محطة السجل ، يمكنك رؤية معلومات اتصال العميل.
عند تنزيل صورة OTA بنجاح ، ستتم إعادة تشغيل Ameba وسيظهر السجل التالي في محطة السجل.
- بين "===== أدخل الصورة 1 ====" و "أدخل الصورة 2 ====" ، يمكنك رؤية رسالة السجل "Flash Image 2: Addr 0x80000". هذا يعني أن Ameba تحدد التمهيد من OTA Image عند 0x80000.
- بعد "أدخل الصورة 2 ====" ، يكون السجل "هذا هو الإصدار 2" هو الرسالة التي نضيفها في الرسم التخطيطي.
للاستعادة إلى الصورة السابقة بعد تنزيل صورة OTA إلى Ameba ، يرجى توصيل دبوس الاسترداد الذي قمنا بتعيينه في الرسم (على سبيل المثال ، دبوس 18) إلى HIGH (3.3 فولت) ، ثم اضغط على إعادة التعيين.
ثم سيتم اختيار الصورة الافتراضية 2 عند التشغيل. لاحظ أنه لا يتم حذف صورة OTA التي تم تنزيلها ، بمجرد فصل دبوس الاسترداد عن HIGH ، سيتم تنفيذ صورة OTA.
نلخص تدفق التطوير باستخدام OTA في الشكل التالي.
موصى به:
برمجة اردوينو عبر الموبايل -- Arduinodroid -- Arduino Ide لنظام Android -- وميض: 4 خطوات
برمجة اردوينو عبر الموبايل || Arduinodroid || Arduino Ide لنظام Android || Blink: يرجى الاشتراك في قناة youtube الخاصة بي لمزيد من مقاطع الفيديو …… Arduino هو لوحة ، والتي يمكن أن تكون مباشرة عبر USB. إنه بسيط للغاية ورخيص لمشروعات الكلية والمدارس أو حتى في النماذج الأولية للمنتجات. تعتمد العديد من المنتجات عليها أولاً من أجل
برمجة Arduino بجهاز Android عبر البلوتوث: 6 خطوات (بالصور)
قم ببرمجة Arduino الخاص بك باستخدام جهاز Android عبر Bluetooth: مرحبًا بالعالم ، في Instructable ، أريد أن أوضح لك كيفية برمجة Arduino Uno مع جهاز Android الخاص بك عبر Bluetooth. انها بسيطة جدا ورخيصة جدا. كما أنه يسمح لنا ببرمجة Arduino في أي مكان نريده عبر البلوتوث اللاسلكي … لذلك
Arduino Alternative - STM32 Blue Pill برمجة عبر USB: 5 خطوات
Arduino Alternative - STM32 Blue Pill Programming عبر USB: أنت وأنا نحب ألواح Arduino ، من أصغر Attiny85 إلى أكبر MEGA2560. ومع ذلك ، إذا كنت بحاجة إلى مزيد من السرعة ، والمزيد من المدخلات التناظرية ، والمزيد من الدقة ، ولكنك ما زلت لا تريد التبديل من برمجة Arduino ، فهناك حل أنيق …. ب
مولد اضطراب الأثير Galvani-Edison Luminiferous: 4 خطوات (بالصور)
مولد اضطراب الأثير المضيء في Galvani-Edison Luminiferous: يود Instructablist لفت الانتباه إلى التطورات الأخيرة من قبل السادة Galvani و Edison واستخدام أبحاثهم في تطوير مولد اضطراب الأثير Luminiferous
HackerBox 0031: الأثير: 10 خطوات
HackerBox 0031: الأثير: هذا الشهر ، يتعمق HackerBox Hackers في Ethernet وأنظمة تشغيل جهاز التوجيه ومراقبة الشبكة وتحليل الشبكة. يحتوي هذا Instructable على معلومات للعمل مع HackerBox # 0031 ، والتي يمكنك التقاطها هنا أثناء نفاد الإمدادات. أليس