مقدمةعند العمل مع وحدات التحكم في النظام الموزع ، غالبًا ما يتعين عليك إعادة تشغيل وحدات التحكم. لا يعد استخدام وحدة التحكم في Arduino IDE لإعادة التشغيل من قبل العميل أمرًا ملائمًا للغاية ، لأنه لكل نوع من وحدات التحكم ، من الضروري تكوين (أو التحقق) من نوع اللوحة وأرقام منافذ COM ، يجب تنفيذ هذا العمل بواسطة أفراد على دراية بـ IDE ، وليس كل عميل يريد أن يعرف أن النظام مبني على وحدات تحكم اردوينو.
في هذا العمل ، نأخذ في الاعتبار خيارات تنزيل وحدات التحكم (Arduino على Atmega328 و Atmega32u4 ووحدة التحكم Teensy المتوافقة) في أوامر منفصلة ومن خلال ملف دفعي ، دون استخدام IDE.
ترتيب لوحات الاتصالات USB COM اردوينومن خلال ترتيب قناة الاتصال التسلسلية ، يمكن تقسيم لوحات Arduino إلى لوحات مع محول USB-UART ولوحات مع ميكروكنترولر تدعم اتصالات USB دون محولات خارجية. الأول يشمل Arduino UNO ، Arduino NANO ، Arduino Mini ، Arduino UNO Ethernet ، Arduino UNO WiFi boards بناء على
Atmega328 Microcontrollers. والثاني هو لوحات اردوينو ليوناردو ، اردوينو مايكرو ، اردوينو يون ميني ، اردوينو الصناعية 101 ، اردوينو ليوناردو لوحات إيثرنت مع
Atmega32u4 تحكم [1].
تنزيل اردوينو المراقب المالي (Atmega328) مع avrdude.exeيمكن تنزيل ملف
hex على وحدة التحكم Arduino باستخدام
avrdude.exe . هذا البرنامج جزء من حزمة وحدة التحكم IDE ، على سبيل المثال ، Arduino الإصدار 1.8.5. يتم تشغيل أداة التحميل avrdude.exe بواسطة أداة
cmd أو أداة
Command Prompt ، والتي يتم إطلاقها كما هو موضح في الشكل 1.
الشكل 1 مثال على تشغيل الأداة المساعدة Command Prompt.للحصول على مثال على كتابة أمر لتحميل كود
hex في وحدة تحكم Arduino على جهاز الكمبيوتر الخاص بك ، أكمل التسلسل التالي.
• ربط اردوينو
• قم بتنزيل برنامج Arduino IDE
• حدد نوع لوحة Arduino من القائمة> أدوات> لوحة>
• حدد منفذ COM على اللوحة من القائمة> أدوات> منفذ>
• تعيين علامة التحميل في علامة التبويب تفضيلات: قائمة Arduino IDE> ملف> تفضيلات> إظهار إخراج مطوّل أثناء> التحميل
• قائمة التشغيل> رسم> تحميل
• بعد اكتمال التنزيل ، في نافذة الإخراج من وحدة التحكم Arduino IDE ، ابحث عن الأمر باستخدام
avrdude ، يبدو ، على سبيل المثال ، كما يلي:
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\user-2\AppData\Local\Temp\arduino_build_628118/Blink.ino.hex:i
لتنفيذ
الأمر avrdude باستخدام الأداة المساعدة Command Prompt ، يجب إدخال علامات اقتباس مزدوجة في الأمر ، كما هو موضح أدناه.
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/<b>avrdude</b>" -"CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:C:\Users\user-2\AppData\Local\Temp\arduino_build_628118/Blink.ino.hex:i
يمكن استخدام الأمر أعلاه لتحميل برامج
hex في وحدة تحكم Arduino باستخدام رقاقة Atmega328 ومحول USB-UART منفصل. بالنسبة لوحدات التحكم المزودة بـ Atmega32u4 التي تدعم اتصال USB بدون محول الأجهزة ، يلزم اتخاذ خطوات إضافية لتنفيذ الأمر ، الموضح أدناه في القسم المقابل.
نظرًا لأن البرنامج المترجم - يتم تخزين ملف hex في مجلد الملفات المؤقتة أثناء فتح وحدة تحكم IDE (.. \ AppData \ Local \ Temp \ ..) ، من الأفضل نسخ ملف hex إلى مجلد منفصل ، ونسخ أداة تحميل bootrder avrdude.exe وملف avrdude.conf هناك .
بعد نقل الملفات (الشكل 2) ، على سبيل المثال ، إلى المجلد C: \ ArdIDE ، يأخذ أمر التنزيل باستخدام مسارات الوصول إلى الملفات المحدثة النموذج ، كما هو مبين في الشكل 3.
الشكل 2 وضع محمل الإقلاع وملف سداسي عشرية في مجلد منفصل.
الشكل 3 إطلاق أداة تحميل التشغيل avrdude باستخدام موجه الأوامر.Teensy تحكم تحميل مع محمل teensy_post_compile.exeبعد تثبيت برنامج
Teensyduino لوحدات التحكم
Teensy ، تظهر وحدات التحكم المقابلة في قائمة الأجهزة بوحدة التحكم Arduino IDE (انظر الشكل 4).
الشكل 4 قائمة وحدات تحكم Teensy في وحدة التحكم Arduino IDE.يمكن الحصول على مثال لكتابة أمر لتحميل كود hex في وحدة تحكم
Teensy باتباع التسلسل الموضح أعلاه لوحدات التحكم Arduino. في نافذة الإخراج ، تحتاج إلى العثور على نموذج أداة
تحميل التشغيل - الأمر
teensy_post_compile . للتنزيل في وضع عدم الاتصال ، يمكنك نسخ الملفات الضرورية إلى مجلد منفصل ، على سبيل المثال ، كما هو موضح أدناه. يمكن أخذ الملفات teensy_post_compile و teensy_post_compile.exe و teensy.exe من حزمة Arduino التي يكملها تطبيق Teensy.

فيما يلي أمثلة على أوامر تنزيل ملفات hex Blink_1.ino و Blink_2.ino لجهازي تحكم Teensy متصلين بجهاز كمبيوتر عبر لوحة وصل USB.
"C:\TnsIDE/teensy_post_compile" -file=Blink_2.ino "-path=C:\TnsIDE" "-tools=C:\TnsIDE" -board=TEENSY31 -reboot -port=usb:0/1A0000/0/1/1/1 -portlabel=COM19 (Teensy 3.2) Serial -portprotocol=Teensy
"C:\TnsIDE/teensy_post_compile" -file=Blink_1.ino "-path=C:\TnsIDE" "-tools=C:\TnsIDE" -board=TEENSY31 -reboot -port=usb:0/1A0000/0/1/1/2 -portlabel=COM23 (Teensy 3.2) Serial -portprotocol=Teensy
في هذه الإدخالات ، يتم تخصيص منافذ لوحة الوصل كـ usb: 0 / 1A0000 / 0/1/1/1 و usb: 0 / 1A0000 / 0/1/1/2.
تنزيل اردوينو المراقب المالي (Atmega32U4) مع avrdude.exeتعتمد لوحات Arduino UNO و Leonardo و Micro وما إلى ذلك على متحكم ATmega32U4. يحتوي هذا المتحكم الدقيق على قناة USB مدمجة (USB 2.0 كامل السرعة) ، وبالتالي ، فإن تنزيل البرامج فيه يختلف عن التحميل المدروس إلى متحكم ATmega328 عبر محول USB-UART إضافي.
يتم سرد رقم منفذ COM لوحدة التحكم في Arduino في قائمة إدارة الأجهزة ، على سبيل المثال.

عند فتح منفذ COM الظاهري لوحدة التحكم Arduino pro Micro (مع أي تردد نقل يبلغ 1200 ، ... ، 9600 ، ... 115200 باود) ، تتم إعادة تعيين وحدة التحكم ويتم تشغيل برنامج المستخدم. في بيئة MATLAB ، يكون برنامج إنشاء المنفذ الظاهري كما يلي.
بعد إغلاق منفذ COM الظاهري بتردد لا يساوي 1200 باود ، على سبيل المثال ، كما هو موضح أدناه
fclose(s); delete(s); clear s
يتم تنفيذ برنامج المستخدم لوحدة التحكم.
تتم إعادة تعيين وحدة التحكم وبدء تشغيل أداة تحميل وحدة التحكم بعد فتح وإغلاق منفذ COM بتردد 12000 باود بواسطة البيئة الخارجية ، على سبيل المثال ، MATLAB ، كما هو موضح أدناه.
يمكن إجراء نفس العملية باستخدام أمر
الوضع ، كما هو مبين في الشكل 5.
الشكل 5 تشغيل الأمر mode في موجه الأوامر. يعيّن الأمر تردد النقل لمنفذ COM15 إلى 1200 باود ، مما يؤدي إلى إعادة ضبط وحدة التحكم وبدء تشغيل أداة تحميل الإقلاع ، ويغير أيضًا أرقام المنافذ الافتراضية لوحدة التحكم في قائمة الأجهزة.بعد إغلاق أمر المنفذ (fclose (s)) ، يُنشئ مُحمِّل جهاز التحكم منفذ (CDC) الظاهري الخاص به ، والذي يظهر في قائمة مدير الجهاز برقم جديد لمدة 8 ثوانٍ تقريبًا.

بعد وقت وجود المنفذ الظاهري الجديد (8 ثوانٍ) ، يتم إرجاع منفذ COM مع الرقم الأصلي إلى قائمة إدارة الأجهزة.

أثناء وجود منفذ COM الجديد ، من خلاله يمكن تنزيل برنامج المستخدم إلى وحدة التحكم باستخدام
الأمر avrdude sample
لوحدة التحكم Arduino IDE. يشبه الحصول على أمر تحميل أداة avrdude في أداة Arduino IDE للخيار أعلاه لـ Micmontrolers Atmega328. يختفي المنفذ الظاهري الذي تم إنشاؤه من قائمة الأجهزة بعد إعادة تشغيل اللوحة وإعادة منفذ COM مع الرقم الأصلي إلى القائمة.
يمكن أيضًا بدء تشغيل أداة تحميل التشغيل من خلال توصيل دبوس RST الخاص بلوحة Arduino بأرض GND.
إذا لم تنجح إعادة التعيين التلقائي لوحدة التحكم (من خلال إنشاء منفذ COM وتعطيله بتردد 1200 باود) ، فإن تحميل الأجهزة (Arduino Leonardo ، Arduino Pro Micro) على أساس متحكم ATmega32U4 يمكن تنفيذه من خلال وحدة التحكم Arduino IDE بالترتيب التالي.
1. اضغط مع الاستمرار على زر "إعادة الضبط" (أو ماس كهربائى RST دبوس إلى الأرض). تم قطع اتصال USB التسلسلي. يختفي منفذ COM المراقب من قائمة مدير الجهاز.
2. اضغط على الزر

تحميل (Ctrl + U) Arduino IDE. يوضح الشكل 6 الحالة الأولية لمدير الجهاز (يسار) و Arduino IDE (يمين) في هذه المرحلة
الشكل 6 رقم منفذ COM في إدارة الأجهزة وإشارة إلى عملية تجميع البرنامج في وحدة التحكم Arduino IDE.3. انتظر حتى ينتهي مؤشر الحالة من تجميع "التحويل البرمجي" ويستمر في تنزيل "التحميل" ، كما هو مبين في الشكل 7.
الشكل 7 رقم منفذ COM المؤقت الجديد في مدير الجهاز ومؤشر لعملية تحميل البرنامج في وحدة التحكم Arduino IDE.4. حرر زر "إعادة الضبط" (افتح دبوس RST). استعادة اتصال USB. تحميل في التقدم. يشير المؤشر إلى نهاية التحميل بعبارة "تم التحميل" (انظر الشكل 8)
الشكل 8 رقم منفذ COM في إدارة الجهاز وإشارة إلى إكمال تحميل البرنامج في وحدة التحكم Arduino IDE.تنزيل وحدات التحكم عبر ملف دفعي (قيادة)يمكن إجراء التحميل دون اتصال (بدون استخدام وحدة التحكم Arduino IDE) باستخدام ملف دفعي (دفعة). مثال على ملف دفعي (بملحق الخفافيش) لتنزيل ملفات HEX على جهازي تحكم Arduino Pro Micro (Atmega32u4) متصلين بالكمبيوتر من خلال المحور الأول ووحدتي تحكم Teensy متصلة بالكمبيوتر من خلال المحور الثاني ووحدة التحكم Arduino UNO (Atmega328) أدناه. تم وضع ملفات HEX التي تم تنزيلها وجميع البرامج اللازمة لذلك مسبقًا في المجلد المشترك الموضح في الشكل 9.
الشكل 9 مثال على محتويات مجلد للتحميل دون اتصال من 5 وحدات تحكم: Arduino Pro Micro (Atmega32u4) و Teensy و Arduino UNO (Atmega328)
يظهر الملف الدفعي mcLoad.bat للتحميل دون اتصال لخمس وحدات تحكم أدناه. تتم إضافة تأخير ثانية واحدة (TIMEOUT / T 1 / NOBREAK) قبل تحميل وحدات التحكم Arduino Pro Micro. يتم إدخال تأخير لمدة ثانيتين قبل تحميل وحدة التحكم Teensy الثانية. بعد الانتهاء من تحميل جميع وحدات التحكم ، يتم إغلاق نافذة برنامج Teensy.exe.
echo OFF echo UPLOAD: Arduino Pro Micro 1 mode COM42 BAUD=12000 TIMEOUT /T 1 /NOBREAK avrdude -Cavrdude.conf -v -patmega32u4 -cavr109 -PCOM45 -b57600 -D -Uflash:w:micro.ino.hex:i echo UPLOAD: Arduino Pro Micro 2 mode COM43 BAUD=12000 TIMEOUT /T 1 /NOBREAK avrdude -Cavrdude.conf -v -patmega32u4 -cavr109 -PCOM44 -b57600 -D -Uflash:w:micro.ino.hex:i echo UPLOAD: Arduino UNO avrdude -Cavrdude.conf -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w: BlinkUNO.ino.hex:i echo UPLOAD: Teensy 1 "C:\mcLOAD/teensy_post_compile" -file=Blink_1_Teensy.ino "-path=C:\mcLOAD" "-tools=C:\mcLOAD" -board=TEENSY31 -reboot -port=usb:0/1A0000/0/1/1/2 -portlabel=COM23 (Teensy 3.2) Serial -portprotocol=Teensy REM Delay 2 seconds: TIMEOUT /T 2 /NOBREAK echo UPLOAD: Teensy 2 "C:\mcLOAD/teensy_post_compile" -file=Blink_2_Teensy.ino "-path=C:\mcLOAD" "-tools=C:\mcLOAD" -board=TEENSY31 -reboot -port=usb:0/1A0000/0/1/1/1 -portlabel=COM19 (Teensy 3.2) Serial -portprotocol=Teensy REM Close Teensy.exe taskkill /f /IM Teensy.exe
فصل وحدة التحكم عن خط USB لا يؤثر على تحميل وحدات التحكم المتبقية.
لاستبعاد اسم Arduino من قائمة إدارة الأجهزة ، على سبيل المثال ، "Arduino UNO (COMX)" ، يمكنك استخدام البرامج ، على سبيل المثال ، RegOwnersahipEx ، أو استنساخ أجهزة وحدات تحكم Arduino ، على سبيل المثال ، WAVGAT ، المشار إليها في قائمة الأجهزة مثل "USB-SERIAL CH340 (COMX)" ) ".
قائمة المراجع1. مقارنة لوحات اردوينو (الجدول)
digitrode.ru/arduino-comparison.html2. اردوينو مايكرو ،
shop.pimoroni.com/products/arduino-micro3. د. بوب دافيدوف. تقنيات التحكم في الكمبيوتر في النظم التقنية portalnp.ru/author/bobdavidov.