جدول المحتويات:

Arduino IDE: إنشاء لوحات مخصصة: 10 خطوات
Arduino IDE: إنشاء لوحات مخصصة: 10 خطوات

فيديو: Arduino IDE: إنشاء لوحات مخصصة: 10 خطوات

فيديو: Arduino IDE: إنشاء لوحات مخصصة: 10 خطوات
فيديو: طريقة برمجة الأردوينو للمبتدئين | شرح برنامج Arduino IDE 2024, يوليو
Anonim
Arduino IDE: إنشاء لوحات مخصصة
Arduino IDE: إنشاء لوحات مخصصة
Arduino IDE: إنشاء لوحات مخصصة
Arduino IDE: إنشاء لوحات مخصصة
Arduino IDE: إنشاء لوحات مخصصة
Arduino IDE: إنشاء لوحات مخصصة

على مدار الأشهر الستة الماضية ، أمضيت الكثير من الوقت في نقل مكتبات مختلفة إلى لوحة Robo HAT MM1 التي طورتها Robotics Masters. وقد أدى ذلك إلى اكتشاف الكثير عن هذه المكتبات ، وكيف تعمل خلف الكواليس ، والأهم من ذلك - ما يجب القيام به لإضافة لوحات جديدة في المستقبل.

هذه هي المرة الأولى في سلسلة عمليات الكتابة التي سأفعلها لمساعدة الآخرين الذين يرغبون في نقل مكتبات للوحاتهم. قد تكون العديد من مصادر المعلومات غامضة أو يصعب على الغرباء فهمها. آمل في "إزالة الغموض" وشرح كيفية تحقيق ميناء ناجح للجميع.

اليوم ، سننظر في منصة Arduino. لديها أكثر من 700000 لوحة مختلفة حول العالم وهي واحدة من أشهر منصات الإلكترونيات للتعليم والصناعة والصناع.

لم أجد سوى مصادر محدودة للغاية للمعلومات حول كيفية القيام بذلك بعد العديد من عمليات البحث على Google. لذلك اعتقدت أنني سأكتب عن كيفية القيام بذلك بالتفصيل.

ها نحن ذا!

الخطوة 1: قبل أن تبدأ

قبل أن تبدأ في نقل مكتبة برامج أو برنامج ثابت إلى لوحك ، يجب أن تعرف بعض النقاط الأساسية حول التكنولوجيا التي تستخدمها وأن تكون قادرًا على الإجابة على الأسئلة أدناه.

  1. ما هو المعالج الذي تستخدمه؟
  2. ما هي العمارة التي تستخدمها؟
  3. هل يمكنني الوصول إلى ورقة البيانات الخاصة بهذا المعالج الدقيق؟
  4. هل هناك لوحة مماثلة في السوق تستخدم نفس المعالج الدقيق؟

هذه مهمة جدا. سيؤثر على العديد من الجوانب المتعلقة بكيفية التعامل مع عملية التطوير.

عادةً ما تستخدم لوحات Arduino عددًا محدودًا من أنواع المعالجات والبنى. الأكثر شيوعًا هو نطاق ATMEGA باستخدام بنية AVR (Arduino Uno). هناك أجيال جديدة من Arduinos أصبحت أكثر شيوعًا باستخدام معالجات SAMD (ARM) وغيرها من المعالجات الأكثر قوة. لذلك من المهم التحقق من أي واحد تستخدمه.

تعد ورقة البيانات الخاصة بالمعالج الدقيق أمرًا حيويًا للغاية لضمان استجابة اللوحة كما هو متوقع عند تجميع البرامج الثابتة. بدونها ، لن تكون قادرًا على تعيين وظائف إخراج الدبوس الصحيحة أو تكوين المنافذ التسلسلية.

بمجرد حصولك على جميع المعلومات التي تحتاجها حول المعالج الذي تستخدمه ، يمكنك البدء في إلقاء نظرة على البرنامج وتعديله ليعمل على اللوحة المخصصة الخاصة بك.

الخطوة 2: نظرة عامة

أصعب جزء في أي مشروع هو إيجاد نقطة انطلاق جيدة. هذا لا يختلف. لقد جاهدت للعثور على دروس تعليمية جيدة بتفاصيل كافية حول كيفية إنشاء لوحات مخصصة لـ Arduino. توضح لك معظم البرامج التعليمية كيفية "إضافة لوحة مخصصة" ولكن ليس كيفية "إنشاء لوحة مخصصة". فيما يلي ملخص قصير لما ينطوي عليه الأمر.

  1. قم بتنزيل تعريفات اللوحة الموجودة ونسخها
  2. تحديث ملفات التعريف (variant.h ، varient.cpp)
  3. إنشاء دخول إلى مجلس الإدارة (board.txt)
  4. تحديث إصدار اللوحة (platform.txt)
  5. التحضير للتثبيت (json)
  6. تركيب اللوحة في Arduino IDE

سيتم شرح كل خطوة بالتفصيل أدناه. ستكون هناك أيضًا مناقشة مستفيضة حول كيفية تفاعل كل ملف مع بعضه البعض للمساعدة في توضيح كيفية عمل كل شيء خلف Arduino IDE.

في هذا البرنامج التعليمي ، سأوضح لك كيفية إنشاء لوحة مخصصة لمعالجات SAMD. بشكل أكثر تحديدًا ، SAMD21G18A - وهو المعالج الدقيق المستخدم في لوحة Robo HAT MM1 التي كنت أقوم بالتنقل إليها.

أفترض أيضًا أن لديك بالفعل Arduino IDE 1.8 أو تم تنزيله لاحقًا. لقد استخدمت Arduino 1.8.9 في وقت كتابة هذا التقرير.

الخطوة 3: تنزيل اللوحات الحالية

تحميل اللوحات الحالية
تحميل اللوحات الحالية
تحميل اللوحات الحالية
تحميل اللوحات الحالية
تحميل اللوحات الحالية
تحميل اللوحات الحالية

تتمثل الخطوة الأولى في تنزيل أقرب لوحة Arduino متغيرة تتناسب مع اللوحة الخاصة بك. بالنسبة للوحات SAMD ، هذا هو Arduino Zero.

منذ Arduino IDE 1.6 ، كانت طريقة تنزيل لوحات جديدة في البيئة تتمثل في إضافة ملفات JSON الخاصة التي يوفرها مطورو البرامج ثم تثبيت اللوحات المخصصة باستخدام "Boards Manager". استخدمت الإصدارات السابقة من Arduino IDE طريقة مختلفة لن نناقشها اليوم. سننشئ ملف JSON الخاص بنا لاحقًا في هذا البرنامج التعليمي ، ومع ذلك ، نحتاج إلى إضافة لوحة Arduino Zero باستخدام هذه الطريقة أولاً.

من حسن حظنا أن اللوحة التي نريد تنزيلها لا تحتاج إلى ملف JSON لأن ملف JSON مُجمع مسبقًا مع Arduino IDE - لذلك نحتاج فقط إلى تثبيت اللوحة من "Boards Manager".

للقيام بذلك ، انتقل إلى "أدوات" ثم قم بتوسيع قائمة "اللوحة". في الجزء العلوي من قائمة "مجلس الإدارة" سيكون "مدير اللوحات". انقر فوق خيار القائمة هذا لإحضار Boards Manager.

(انظر الصور)

عند فتح Boards Manager ، سينظر في جميع ملفات JSON التي قام بتخزينها في Arduino IDE ثم يقوم بتنزيل الإعدادات من الملف. يجب أن ترى قائمة طويلة من لوحات Arduino المتاحة التي يمكنك تثبيتها.

(انظر الصور)

نحن مهتمون فقط بلوحة "Arduino SAMD Boards (32 بت ARM Cortex-M0 +)" لهذا البرنامج التعليمي ، ولكن يمكنك انحراف وتثبيت اللوحة التي تحتاجها في هذه المرحلة. يرجى البحث عن لوحة Arduino SAMD Boards (32 بت ARM Cortex-M0 +) وتثبيتها. يمكن القيام بذلك عن طريق النقر فوق النص من القائمة متبوعًا بزر "تثبيت" الموجود على الجانب الأيمن والذي سيظهر بعد النقر فوق النص. سيستغرق التثبيت دقيقتين.

لمزيد من التفاصيل حول تثبيت لوحات جديدة: لدى Adafruit برنامج تعليمي رائع هنا يشرح كيفية تثبيت لوحات Feature M0 الخاصة بهم.

الآن بعد أن تم تثبيت ملفات اللوحة ، يمكننا نسخها حتى يمكن تعديلها للوحة المخصصة الخاصة بك.

الخطوة 4: البحث عن ملفات اللوحة ونسخها

البحث عن ملفات اللوحة ونسخها
البحث عن ملفات اللوحة ونسخها
البحث عن ملفات اللوحة ونسخها
البحث عن ملفات اللوحة ونسخها
البحث عن ملفات اللوحة ونسخها
البحث عن ملفات اللوحة ونسخها

بالنسبة لنظام التشغيل Windows ، توجد ملفات Board في (تذكر تغيير اسم المستخدم إلى اسم المستخدم الخاص بك):

C: / Users / username / AppData / Local / Arduino15 \packs

في هذا المجلد ، عليك التعمق قليلاً للوصول إلى الملفات التي تحتاج إلى نسخها لتعديلها. في هذا البرنامج التعليمي ، سنذهب ونحصل على ملفات لوحة Arduino Zero التي سيتم تثبيتها على (تذكر تغيير اسم المستخدم إلى اسم المستخدم الخاص بك):

C: / Users / username / AppData / Local / Arduino15 \packs / arduino / Hardware / samd

انسخ المجلد المرقم بالإصدار الموجود في هذا الدليل إلى مجلد جديد في مجلد "المستندات" أو المجلد الذي تختاره. لأغراض هذا البرنامج التعليمي ، سأضعهم في مجلد جديد باسم "لوحات مخصصة" داخل المستندات.

يحتوي المجلد على عدد من المجلدات والأدلة. تلك التي سنستخدمها مذكورة في الجدول في لقطة الشاشة.

الخطوة 5: إنشاء المتغير

إنشاء المتغير
إنشاء المتغير
إنشاء المتغير
إنشاء المتغير
إنشاء المتغير
إنشاء المتغير
إنشاء المتغير
إنشاء المتغير

نحن الآن جاهزون لبدء إنشاء إدخال مخصص للوحة. في هذا البرنامج التعليمي ، سأستخدم Robo HAT MM1 كمثال. كما ذكرنا سابقًا ، إنها لوحة تعتمد على SAMD وهي الأقرب إلى بناء Arduino Zero.

سنبدأ بالانتقال إلى مجلد المتغيرات ونسخ مجلد arduino_zero الموجود هناك. سنعيد تسمية شكل اللوحة الجديد "robohatmm1". يمكنك الاتصال بك ما تريد.

(انظر الصورة)

يوجد داخل مجلد robohatmm1 الدبابيس التي نحتاجها لبدء التحرير: variant.cpp و variant.h. افتح كلاهما.

استغرق هذا مني بعض الوقت للعمل ، لذلك سأشرح ذلك هنا لتوفير بعض الوقت. يحتوي ملف variant.cpp على مجموعة كبيرة جدًا من الدبابيس التي تتم الإشارة إليها خلال variant.h. جميع مراجع الدبوس في variant.h هي إشارة إلى تكوين الدبوس في موضع معين في مجموعة variant.cpp.

(انظر لقطة شاشة مع ملفين)

لذلك ، ستحدث معظم عمليات التحرير في كلا هذين الملفين ولكنك تحتاج إلى التأكد من أنه إذا قمت بتغيير ترتيب الدبابيس في variants.cpp - يجب عليك تغيير المراجع في ملف الرأس (variants.h). بالنسبة إلى Robo HAT MM1 ، كنت بحاجة فقط إلى تغيير بعض الدبابيس والوظائف. تم ذلك في المتغيرات. أضفت بعض دبابيس PWM الجديدة لأن SAMD21 قادر على التعامل مع 12 قناة PWM. أضفت أيضًا بعض الأسماء لـ Servos و Signals (بدلاً من ADC / Digital) والتعيين المخصص للوظائف الصحيحة - مثل SPI و UART و I2C.

الشيء المهم الذي يجب ملاحظته هو التحقق مرة أخرى من أن مراجع المصفوفة التي تستخدمها للوظائف الموضحة في المتغيرات h تتطابق مع الدبوس في varaints.cpp - وهو ما سننظر إليه الآن.

Variants.cpp ملف قوي ومهم للغاية. يقوم بكل العمل الشاق المتمثل في ضبط المسامير لتتناسب مع إعدادات الأجهزة. أسهل طريقة لشرح ذلك هي بمثال وشرح لكل جزء.

(انظر الجدول في لقطة الشاشة)

مثال (مقتطف من variants.cpp)

{PORTA ، 22 ، PIO_SERCOM ، PIN_ATTR_NONE ، No_ADC_Channel ، NOT_ON_PWM ، NOT_ON_TIMER ، EXTERNAL_INT_NONE} ، // SDA

هذا هو أول دبوس في مجموعة variants.cpp لـ Robo HAT MM1. تم توفير الجدول من ورقة البيانات كصورة (جدول رمادي).

(انظر الصور)

يتم استخدام هذا الدبوس الخاص لوظيفة I2C Data Pin. بإلقاء نظرة على الجدول ، يمكننا أن نرى أن هذا الدبوس يمكن استخدامه كدبوس I2C SDA (بداية جيدة!). يسمى الدبوس "PA22" وهو اختصار لـ PORTA على السن 22. على الفور يمكننا تعيين رقم المنفذ ورقم التعريف الشخصي لهذا الدبوس.

الشيء التالي الذي يتعين علينا القيام به هو تعيين الدبوس كمنفذ اتصال تسلسلي. يحتوي الدبوس على اتصال تسلسلي متاح من خلال الوظيفة C (PIO_SERCOM) باستخدام SERCOM 3 و D باستخدام SERCOM5 (PIO_SERCOM_ALT). لأغراض Robo HAT MM1 ، نستخدم SERCOM3 لاتصالات I2C. هذا في الوظيفة C ؛ الملقب ب. PIO_SERCOM للمتغيرات.

نظرًا لأننا نخطط لاستخدام هذا الدبوس فقط باعتباره I2C SDA ، فلا داعي لتعيين أي من الوظائف الأخرى. يمكن تعيينها جميعًا كخيارات "لا" أو "لا" من الجدول السابق. ومع ذلك ، إذا أردنا استخدام الوظائف الأخرى - فيمكننا المرور عبر ورقة البيانات ووضعها جميعًا في المساحات الصحيحة. كل ذلك في ورقة البيانات.

يمكن أن يستغرق تعديل الملفات المتغيرة بعض الوقت. كن حذرا ودائما تحقق ثلاث مرات.

الخطوة 6: إنشاء تعريف المجلس

قم بإنشاء تعريف لوحة
قم بإنشاء تعريف لوحة

بمجرد أن تكون ملفاتك المتنوعة جاهزة ، يجب أن تكون مباشرة من هنا. سيتم نسخ معظم العمل ولصقها أو تعديلها وتحديثها.

بدءا من board.txt.

(انظر الصورة)

ستحتاج إلى نسخ ولصق تعريف لوحة موجود بالفعل. أود أن أوصي بـ Arduino Zero مرة أخرى.

للتبسيط ، قم فقط بتغيير اسم اللوحة (السطر الأول) و usb_product و usb_manufacturer و البديل (robohat). يمكنك تخصيص الوسائط الأخرى لاحقًا لتناسب احتياجاتك - مثل أداة تحميل التشغيل المخصصة أو USB VID / PIDs لتحديد اللوحة الخاصة بك.

يجب أن يتطابق متغير اللوحة مع الاسم المعطى للمجلد الذي تم إنشاؤه في البداية. في هذا البرنامج التعليمي أطلقت عليه اسم "robohatmm1".

يوصى أيضًا بتغيير الجزء الأول من كل سطر ليطابق اسم اللوحة الخاصة بك. في لقطة الشاشة تم تغييره إلى "robo_hat_mm1". يجب عليك اختيار اسم للوحة الخاصة بك بنفس التنسيق.

هذا كل شيء بالنسبة لـ board.txt إلا إذا كنت تريد إجراء المزيد من التعديلات المذكورة أعلاه لاحقًا.

الخطوة 7: تحديث إصدار اللوحة

تحديث إصدار اللوحة
تحديث إصدار اللوحة

في platforms.txt ، قم بتغيير الاسم إلى اسم اللوحة المخصصة الخاصة بك. قم أيضًا بتغيير رقم الإصدار. تذكر ما قمت بضبطه ، سنحتاجه لاحقًا.

الخطوة 8: إنشاء ملف حزمة JSON

قم بإنشاء ملف حزمة JSON
قم بإنشاء ملف حزمة JSON
قم بإنشاء ملف حزمة JSON
قم بإنشاء ملف حزمة JSON

لتثبيت اللوحة الخاصة بك في Arduino IDE ، ستحتاج إلى إنشاء ملف JSON الذي ستقوم باستيراده. يخبر ملف JSON Arduino IDE بمكان الحصول على الملفات لتثبيت اللوحة ، وما هي الحزم الإضافية المطلوبة وعدد قليل من أجزاء البيانات الوصفية الأخرى.

من المهم جدًا حفظ هذا الملف خارج المجلد الذي عملنا فيه للتو.

يمكن نسخ معظم الملف ولصقه في ملفك. ستحتاج فقط إلى تغيير قسم "اللوحات" والبيانات الوصفية الأخرى في أعلى الملف. انظر لقطة الشاشة لما يجب تحديثه.

(انظر الصورة)

  • القسم الأحمر: هذه هي البيانات الوصفية التي يمكن للمستخدمين استخدامها للعثور على المساعدة. لها صلة فنية قليلة جدًا.
  • القسم الأزرق: كل هذه الأمور مهمة. تظهر في Arduino IDE. سيتم عرض الاسم والعمارة والإصدار لأي شخص يحاول تثبيت الحزمة. هذا هو المكان الذي تحتاج فيه إلى وضع رقم الإصدار من platforms.txt. القسم الأزرق الثاني هو قائمة اللوحات المضمنة في الحزمة. يمكن أن يكون لديك لوحات متعددة.
  • القسم الأخضر: هذا القسم يحتاج إلى مزيد من الشرح.

(انظر الجدول بالصور)

بمجرد إنشاء الملف المضغوط ، والحصول على المجموع الاختباري للملف المضغوط وحجم الملف ، يمكنك الآن تحميل الملف المضغوط إلى موقع. ستحتاج إلى وضع عنوان URL هذا في حقل "url". إذا كان الاسم أو أي من التفاصيل المذكورة أعلاه غير صحيح ، فسيفشل تثبيت اللوحة المخصصة الخاصة بك.

تأكد أيضًا من تحميل ملف package_boardname_index.json إلى مكان عام على الإنترنت. GitHub هو خيار جيد.

يمكن العثور على ملف لوحة Robo HAT MM1 المخصص هنا.

الخطوة 9: الخطوة الأخيرة - قم بتثبيت اللوحة المخصصة الخاصة بك

الخطوة الأخيرة - قم بتثبيت اللوحة المخصصة الخاصة بك!
الخطوة الأخيرة - قم بتثبيت اللوحة المخصصة الخاصة بك!
الخطوة الأخيرة - تثبيت اللوحة المخصصة الخاصة بك!
الخطوة الأخيرة - تثبيت اللوحة المخصصة الخاصة بك!

كل شيء يسير على ما يرام ، يجب أن تكون الآن قادرًا على تضمين ملف JSON الخاص بك في Arduino IDE وتثبيت اللوحة المخصصة الخاصة بك.

من السهل تضمين ملف JSON! في Arduino IDE - ما عليك سوى الانتقال إلى "ملف"> "تفضيلات" وانسخ موقع (URL) الخاص بـ package_boardname_index.json والصقه في قسم "عناوين URL لمدير اللوحات الإضافية" في أسفل قائمة التفضيلات.

(انظر الصورة)

ثم اضغط على موافق.

قم بتشغيل التعليمات الواردة أعلاه لتثبيت لوحات جديدة إذا كنت قد نسيت. تذكر أن تبحث عن منتداك المخصص هذه المرة!

(انظر الصورة)

لمزيد من التفاصيل حول تثبيت لوحات جديدة: لدى Adafruit برنامج تعليمي رائع هنا يشرح كيفية تثبيت لوحات Feature M0 الخاصة بهم.

الخطوة 10: الخاتمة

استنتاج
استنتاج
استنتاج
استنتاج

لقد كان هذا ممتعًا في إنشاء لوحات Arduino مخصصة. لا يزال هناك الكثير لأجربه في المستقبل (إضافة منافذ تسلسلية إضافية) لكنها كانت تجربة تعليمية رائعة!

تأكد من إطلاعك على حملة Crowd Supply أيضًا. ينتهي في 11 يونيو 2019.

www.crowdsupply.com/robotics-masters/robo-…

آمل أن يكون هذا قد ساعدك أو استمتعت بالقراءة!

شكرا!

موصى به: