پازجی ها سلام!
چند وقتی بود فکر پورت کردن IDE ی آردوینو روی بورد پازج-یک خواب را از چشمانمان ربوده بود از بس که این IDE پرطرفدار و خوش دست است لامذهب! ولذا در یک صبح سرد زمستانی عزم خود را جزم کرده و مصمم شدیم که این مرکب خوش دست را مهار پازج کنیم!
State of the art:
در حال حاضر برخی از بوردهای توسعه FPGA این قابلیت را دارند که توسط IDE ی آردوینو (و یا نسخه ای اختصاصی شده از آن) برنامه نویسی شوند. Mojo ، پاپیلیو، miniSpartan6 و برخی از بوردهای Digilent نمونه های از این دست هستند. بعنوان نمونه پاپیلیو از نسخه ای Customize شده (بومی سازی شده!) از آردوینو به نام DesignLab بهره مند است. تعداد دیگری از بوردهای مذکور نیز خود را به FPGArduino که یک IDE آردوینو مخصوص بردهای FPGA است مجهز نموده اند.
این سودیش کُجیس؟ (سود این کار چیست؟)
شاید از دید بسیاری از ریش سفیدان سخت افزار، Arduino یک اسباب بازی باشد، اما واقعیت این است که همین اسباب بازی ساده به خاطر همین سادگی و صفای باطنی که دارد به پرطرفدارترین گزینه برای مبتدیان و جامعه ی هابیستی تبدیل شده و جالبتر اینکه پروژه های حرفه ای و پیچیده ای از پرینتر سه بعدی گرفته تا روباتهای فسقلی باهوش با همین آردوینو انجام گرفته است. بدون آردوینو انجام هیچ کدام از این کارها در این حجم و با این سرعت برای یک فرد مبتدی ممکن نبود.
مشابه روندی که در دنیای میکروکنترلرها شکل گرفت، چند سالی است که "تب آردوینو" به دنیای FPGA نیز راه یافته و روز به روز در حال شیوع است که در بالا به نمونه هایی از آن اشاره کردیم. از این پس باید شاهد روند رو به رشد پروژه های آردوینویی روی پلتفرم هایی با پایه ی FPGA باشیم.
چطوری ممکنه؟
نسخه های جدید Arduino IDE قابلیت گسترش پشتیبانی برای سخت افزارهای تعریف شده توسط کاربر را دارند. این بدین معنی است که شما میتوانید بورد پردازشی دلخواه خودتان را که ممکن است یک بورد مبتنی بر یک میکروکنترلر دلخواه با معماری دلخواه AVR، ARM و یا حتی x86! (مثل Intel Edison) باشد! حتی میتوان پا را از این نیز فراتر گذاشت و یک بورد مبتنی بر FPGA را که درون آن یک soft-core (مانند MicroBlaze) جاسازی شده باشد را در نظر گرفت! مورد اخیر دقیقا همان اتفاقی است که در DesignLab پاپیلیو و FPGArduino به وقوع پیوسته است.
یکی از ملزومات اجرای این کار پورت کردن کتابخانه های آردوینو برای پردازنده ی مورد نظر و همچنین فراهم کردن toolchain کامپایل آن است.
Arduino برای پازج-یک:
تلاشهای اولیه در مسیر ایجاد پیوند مودت بین پازج-یک و آردوینو خوشبختانه کارساز واقع شده و هم اکنون نسخه ی بتای نرم افزار آردوینو برای پازج آماده شده است. در این نسخه از کور MicroBlaze mcs استفاده شده است که یک میکروکنترلر 32 بیتی با فرکانس 100MHz است.
در حال حاضر توابع آردوینویی زیر تست شده اند:
- PinMode()
- digitalRead()
- digitalWrite()
- delay()
- Serial()
آپدیت:
- AnalogWrite()
- Milis()
- Micros()
- delayMicroseconds()
سایر توابع و کتابخانه ها نیز در حال تست هستند که انشاءالله به زودی نتیجه آن از طریق همین پست اعلام خواهد شد.
همچنین FPGA ی موجود روی بورد از طریق پروگرمر روی بورد توسط نرم افزار آردوینو پروگرام میشود.