فهرست مطالب:

Arduino IDE: ایجاد تابلوهای سفارشی: 10 مرحله
Arduino IDE: ایجاد تابلوهای سفارشی: 10 مرحله

تصویری: Arduino IDE: ایجاد تابلوهای سفارشی: 10 مرحله

تصویری: Arduino IDE: ایجاد تابلوهای سفارشی: 10 مرحله
تصویری: How to use up to 10 push button switch with 1 Arduino input pin ANPB-V1 2024, جولای
Anonim
Arduino IDE: ایجاد تابلوهای سفارشی
Arduino IDE: ایجاد تابلوهای سفارشی
Arduino IDE: ایجاد تابلوهای سفارشی
Arduino IDE: ایجاد تابلوهای سفارشی
Arduino IDE: ایجاد تابلوهای سفارشی
Arduino IDE: ایجاد تابلوهای سفارشی

در طول شش ماه گذشته ، زمان زیادی را صرف انتقال کتابخانه های مختلف به برد Robo HAT MM1 کرده ام که توسط Robotics Masters توسعه یافته است. این منجر به کشف اطلاعات زیادی در مورد این کتابخانه ها ، نحوه عملکرد آنها در پشت صحنه و مهمتر از همه - برای افزودن تابلوهای جدید در آینده چه باید کرد.

این اولین مورد از مجموعه ای از نوشتارهایی است که من برای کمک به دیگران که مایلند کتابخانه ها را برای تابلوهای خود ارسال کنند ، انجام می دهم. بسیاری از منابع اطلاعات می توانند مبهم یا درک آن برای خارجی ها دشوار باشد. من امیدوارم که "demystify" کرده و نحوه دستیابی به یک بندر موفق را برای همه توضیح دهم.

امروز ، ما پلتفرم آردوینو را بررسی خواهیم کرد. این دارای بیش از 700 ، 000 نوع مختلف هیئت مدیره در سراسر جهان است و یکی از محبوب ترین سیستم عامل های الکترونیکی برای آموزش ، صنعت و سازندگان است.

من فقط می توانم منابع بسیار محدودی در مورد نحوه انجام این کار پس از بسیاری از جستجوهای گوگل پیدا کنم. بنابراین فکر کردم که در مورد نحوه انجام این کار با جزئیات خواهم نوشت.

اینجا می رویم!

مرحله 1: قبل از شروع

قبل از شروع انتقال کتابخانه نرم افزاری یا سیستم عامل به برد خود ، باید چند نکته کلیدی در مورد فناوری مورد استفاده خود بدانید و بتوانید به سوالات زیر پاسخ دهید.

  1. از چه پردازنده ای استفاده می کنید؟
  2. از چه معماری استفاده می کند؟
  3. آیا من به برگه اطلاعات این ریزپردازنده دسترسی دارم؟
  4. آیا برد مشابهی در بازار وجود دارد که از یک ریزپردازنده استفاده کند؟

اینها بسیار مهم هستند. این امر بر جنبه های زیادی از نحوه برخورد شما با فرایند توسعه تأثیر می گذارد.

بردهای آردوینو معمولاً از تعداد محدودی از انواع پردازنده و معماری استفاده می کنند. رایج ترین آنها محدوده ATMEGA با استفاده از معماری AVR (Arduino Uno) است. نسل جدیدتری از آردوینوس با استفاده از پردازنده های SAMD (ARM) و دیگر پردازنده های قوی تر رایج شده است. بنابراین مهم است که بررسی کنید از کدام یک استفاده می کنید.

برگه داده برای ریزپردازنده بسیار حیاتی است تا اطمینان حاصل شود که هنگامی که سیستم عامل را کامپایل می کنید ، صفحه آنطور که انتظار می رود پاسخ می دهد. بدون آن ، شما نمی توانید عملکردهای خروجی پین صحیح را تنظیم کرده یا پورت های سریال را پیکربندی کنید.

هنگامی که تمام اطلاعات مورد نیاز خود را در مورد پردازنده مورد استفاده خود دارید ، می توانید نرم افزار را بررسی کرده و آن را تغییر دهید تا برای برد سفارشی شما کار کند.

مرحله 2: مرور کلی

سخت ترین قسمت هر پروژه یافتن نقطه شروع خوب است. این هیچ تفاوتی ندارد. من برای یافتن آموزش های خوب با جزئیات کافی در مورد نحوه ایجاد تابلوهای سفارشی برای آردوینو تلاش کردم. بیشتر آموزشها به شما نشان می دهد که چگونه "یک برد سفارشی اضافه کنید" اما چگونه "ایجاد یک صفحه سفارشی" را نشان نمی دهید. در اینجا خلاصه ای کوتاه از آنچه در آن وجود دارد آورده شده است.

  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 یا بالاتر را بارگیری کرده اید. در زمان نوشتن از آردوینو 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" نصب کنیم.

برای انجام این کار ، به "Tools" بروید و منوی "Board" را گسترش دهید. در بالای منوی "Board" ، "Board Board" قرار دارد. بر روی این گزینه منو کلیک کنید تا Boards Manager ظاهر شود.

(تصاویر را ببینید)

هنگامی که مدیر بردها باز می شود ، تمام فایل های JSON را که در Arduino IDE ذخیره کرده است مشاهده می کند و سپس تنظیمات را از فایل بارگیری می کند. شما باید لیستی طولانی از بردهای موجود Arduino را مشاهده کنید که می توانید نصب کنید.

(تصاویر را ببینید)

ما فقط به برد "Arduino SAMD Boards (32-bit ARM Cortex-M0+)" برای این آموزش علاقه داریم ، اما می توانید در این مرحله تخته مورد نیاز خود را منحرف کرده و نصب کنید. لطفاً برد "Arduino SAMD Boards (32-bit ARM Cortex-M0+)" را جستجو و نصب کنید. این را می توان با کلیک بر روی متن از لیست و سپس دکمه "نصب" در سمت راست انجام داد که بعد از کلیک روی متن ظاهر می شود. چند دقیقه طول می کشد تا نصب شود.

برای جزئیات بیشتر نصب بردهای جدید: Adafruit یک آموزش عالی در اینجا دارد که نحوه نصب بردهای Feature M0 آنها را توضیح می دهد.

اکنون که فایلهای برد نصب شده اند ، می توانیم آنها را کپی کنیم تا بتوان آنها را برای برد سفارشی شما تغییر داد.

مرحله 4: پیدا کردن و کپی کردن فایل های برد

پیدا کردن و کپی کردن فایلهای هیئت مدیره
پیدا کردن و کپی کردن فایلهای هیئت مدیره
یافتن و کپی کردن فایل های برد
یافتن و کپی کردن فایل های برد
یافتن و کپی کردن فایل های برد
یافتن و کپی کردن فایل های برد

در ویندوز ، فایلهای برد در آن قرار دارند (به یاد داشته باشید که نام کاربری را به نام کاربری خود تغییر دهید):

C: / Users / username / AppData / Local / Arduino15 / packages

در این پوشه ، باید کمی عمیق تر بروید تا به پرونده هایی برسید که برای اصلاح آنها باید کپی کنید. برای این آموزش ما می رویم و فایل های برد Arduino Zero را که روی آنها نصب می شود دریافت می کنیم (به یاد داشته باشید که نام کاربری را به نام کاربری خود تغییر دهید):

C: / Users / username / AppData / Local / Arduino15 / packages / arduino / hardware / samd

پوشه شماره گذاری شده در این فهرست را در پوشه جدیدی در پوشه Documents یا پوشه دلخواه خود کپی کنید. برای اهداف این آموزش ، آنها را در یک پوشه جدید به نام "custom board" در Documents قرار می دهم.

این پوشه شامل تعدادی پوشه و دایرکتوری است. مواردی که ما از آنها استفاده خواهیم کرد در جدول تصویر نشان داده شده است.

مرحله 5: ایجاد نسخه

ایجاد Variant
ایجاد Variant
ایجاد Variant
ایجاد Variant
ایجاد Variant
ایجاد Variant
ایجاد Variant
ایجاد Variant

ما اکنون آماده هستیم تا یک ورودی برد سفارشی را ایجاد کنیم. برای این آموزش ، من از Robo HAT MM1 به عنوان مثال استفاده می کنم. همانطور که قبلاً ذکر شد ، این یک برد مبتنی بر SAMD است که بیشترین سازگاری با نسخه آردوینو صفر دارد.

ما با رفتن به پوشه variant و کپی پوشه arduino_zero که در آنجا قرار دارد شروع می کنیم. ما نام برد جدید را به "robohatmm1" تغییر خواهیم داد. شما می توانید نام خود را هرطور که دوست دارید صدا کنید.

(تصویر را ببینید)

در داخل پوشه robohatmm1 دو پین وجود دارد که برای شروع ویرایش به آنها نیاز داریم: variant.cpp و variant.h. هر دو را باز کنید.

این کار مدتی طول کشید تا تمرین کنم ، بنابراین در اینجا توضیح خواهم داد تا در وقت شما صرفه جویی شود. فایل variant.cpp حاوی مجموعه ای بسیار بزرگ از پین است که در variant.h به آن اشاره شده است. همه مراجع پین در variant.h مرجع پیکربندی پین در موقعیت خاصی در آرایه variant.cpp هستند.

(به تصویر با دو فایل مراجعه کنید)

بنابراین ، اکثر ویرایش های شما در هر دو این فایل ها انجام می شود ، اما باید مطمئن شوید که اگر ترتیب پین ها را در variant.cpp تغییر دهید - باید منابع فایل هدر (variant.h) را تغییر دهید. برای Robo HAT MM1 ، من فقط نیاز به تغییر برخی از پین ها و عملکردها داشتم. این در variant.h انجام شد. من تعدادی پین PWM جدید اضافه کردم زیرا SAMD21 قادر به اداره 12 کانال PWM است. همچنین چند نام برای Servos ، Signals (به جای ADC/Digital) و نقشه برداری سفارشی به توابع مناسب - مانند SPI ، UART و I2C اضافه کردم.

نکته مهمی که باید به آن توجه کنید این است که دوبار بررسی کنید که مراجع آرایه ای که برای توابع مشخص شده در variant.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

این اولین پین در آرایه variant.cpp برای Robo HAT MM1 است. جدول از برگه داده به صورت یک تصویر (جدول خاکستری) ارائه شده است.

(تصاویر را ببینید)

این پین خاص برای عملکرد پین داده I2C استفاده می شود. با نگاهی به جدول ، می بینیم که این پین می تواند به عنوان پین I2C SDA (شروع خوب!) استفاده شود. پین "PA22" نامیده می شود که مخفف PORTA در پین 22 است. بلافاصله می توانیم PORT و شماره پین را برای این پین تنظیم کنیم.

مورد بعدی که باید انجام دهیم این است که پین را به عنوان یک پورت ارتباط سریال تنظیم کنیم. پین دارای ارتباط سری از طریق عملکرد C (PIO_SERCOM) با استفاده از SERCOM 3 و D با استفاده از SERCOM5 (PIO_SERCOM_ALT) است. برای اهداف Robo HAT MM1 ، ما از SERCOM3 برای ارتباط I2C استفاده می کنیم. این در تابع C است. موسوم به. PIO_SERCOM برای variant.cpp.

از آنجا که ما قصد داریم فقط از این پین به عنوان I2C SDA استفاده کنیم ، نیازی به تنظیم هیچ یک از توابع دیگر نیست. همه آنها می توانند به عنوان گزینه های "نه" یا "نه" از جدول قبلی تنظیم شوند. با این حال ، اگر ما بخواهیم از توابع دیگر استفاده کنیم - می توانیم برگه داده را مرور کرده و همه آنها را در فضاهای مناسب قرار دهیم. همه در برگه اطلاعات موجود است.

اصلاح فایلهای مختلف ممکن است کمی طول بکشد. مراقب باشید و همیشه سه بار بررسی کنید.

مرحله 6: یک تعریف هیئت مدیره ایجاد کنید

تعریف هیئت مدیره ایجاد کنید
تعریف هیئت مدیره ایجاد کنید

هنگامی که فایلهای متغیر خود را آماده کردید ، باید از اینجا مستقیماً به جلو ارسال شود. بیشتر کارها کپی و جایگذاری یا اصلاح و به روز رسانی فایل ها خواهد بود.

شروع با boards.txt.

(تصویر را ببینید)

شما می خواهید تعریف هیئت مدیره موجود را کپی و جایگذاری کنید. من دوباره آردوینو صفر را توصیه می کنم.

برای سادگی ، فقط نام برد (خط اول) ، usb_product ، usb_manufacturer و variant (robohat) را تغییر دهید. بعداً می توانید سایر استدلال ها را متناسب با نیاز خود سفارشی کنید - مانند بوت لودر سفارشی یا USB VID/PID های مختلف برای شناسایی برد خود.

نوع برد باید با نامی که در ابتدا ایجاد شده است مطابقت داشته باشد. برای این آموزش من آن را "robohatmm1" نامیدم.

همچنین توصیه می شود قسمت اول هر خط را تغییر دهید تا با نام برد شما مطابقت داشته باشد. در تصویر صفحه آن به 'robo_hat_mm1' تغییر کرده است. شما باید نامی را برای صفحه خود با همان فرمت انتخاب کنید.

این فقط برای boards.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 - فقط به "File"> "Preferences" بروید و محل (URL) package_boardname_index.json خود را کپی کرده و در قسمت "Additional Boards Manager URLs" در پایین منوی Preferences قرار دهید.

(تصویر را ببینید)

سپس OK را بزنید.

اگر فراموش کرده اید دستورالعمل های بالا را برای نصب بردهای جدید اجرا کنید. به یاد داشته باشید که این بار به دنبال تخته سفارشی خود باشید!

(تصویر را ببینید)

برای جزئیات بیشتر نصب بردهای جدید: Adafruit در اینجا یک آموزش عالی دارد که نحوه نصب بردهای Feature M0 آنها را توضیح می دهد.

مرحله 10: نتیجه گیری

نتیجه
نتیجه
نتیجه
نتیجه

ایجاد تابلوهای سفارشی آردوینو بسیار سرگرم کننده است. هنوز کارهای زیادی برای من در آینده وجود دارد (اضافه کردن پورت های سریال اضافی) ، اما این یک تجربه یادگیری عالی بود!

حتما کمپین Crowd Supply را نیز بررسی کنید. در 11 ژوئن 2019 به پایان می رسد.

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

امیدوارم این مطالب به شما کمک کرده باشد یا از خواندن آن لذت ببرید!

با تشکر!

توصیه شده: