پرش به


تصویر

Arduino IDE برای پازج!

arduino microblaze

  • لطفا وارد حساب کاربری خود شوید تا بتوانید پاسخ دهید
7 پاسخ برای این موضوع

#1 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 18 February 2016 - 01:16 PM

پازجی ها سلام!

 

چند وقتی بود فکر پورت کردن 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 ی موجود روی بورد از طریق پروگرمر روی بورد توسط نرم افزار آردوینو پروگرام میشود.


  • M.Sadeghi و sarbaz13 این پست را پسندیده است

#2 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 18 February 2016 - 02:45 PM

پین ها:

پین های شماره ی 1 تا 16 روی کانکتور بال A، به ترتیب معادل پین های 0 تا 15 در نرم افزار میباشند. یعنی با نوشتن دستور PinMode(0, output) در محیط Arduino، پین شماره 1 روی بال A در حالت خروجی قرار داده شده و با اجرای دستور DigitalWrite(0, High) مقدار این پین 1 میشود. این پین ها قابلیت خواندن/نوشتن مقادیر دیجیتال و نوشتن مقادیر آنالوگ روی آنها وجود دارد.

 

ارتباط سریال:

ارتباط سریال توسط تراشه ی ft2232 روی بورد فراهم شده است که از طریق فراخوانی تابع serial() در آردوینو قابل دسترسی است.

 

مواردی که هنوز بررسی نشده اند:

- ارتباط SPI

 

توابع Arduino که قابل اجرا نیستند:

توابع مربوط به خواندن مقادیر آنالوگ (مانند analogRead(), analogReference(), analogReadResolution()) به دلیل نبود بخش ADC روی بورد.


  • sarbaz13 این پست را پسندیده است

#3 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 19 February 2016 - 06:43 PM

نصب و راه اندازی:

گام اول: آخرین نسخه ی نرم افزار آردوینو را دانلود و نصب نمایید. (از اینجا)

گام دوم: محتوای آرشیو ارائه شده در پیوست را درون پوشه ی آردوینو Extract نمایید.

گام سوم: بورد پازج-یک را به کامپیوتر خود متصل نموده، نرم افزار آردوینو را باز کرده و از منوی Board، قسمت posedge، گزینه ی MicroBlaze_mcs (write to FPGA) و یا درصورتی که میخواهید برنامه ی شما در حافظه ی فلش بورد ذخیره شود گزینه ی MicroBlaze_mcs(write to flash) را انتخاب نمایید. اکنون بورد شما آماده ی کار با آردوینو است.

گام چهارم: از منوی Example->basics->blink را انتخاب نمایید تا پروژه ی نمونه LED چشمک زن باز شود. بصورت پیشفرض LED به پین 13 متصل شده است. از آنجایی که روی بورد پازج led وجود ندارد، برای اجرای این مثال بایستی بال LED را به یکی از دو محل موجود روی کانکتور ردیف A روی بورد متصل نموده و شماره پین متصل به یکی از LED ها را جایگزین عدد 13 نمود. فراموش نکنید که نام گذاری پین ها روی بورد از شماره 1 شروع شده ولی در نرم افزار از شماره صفر. بنابراین اگر LED مورد نظر روی بال به پین شماره 1 کانکتور متصل است، در نرم افزار آردوینو بایستی مقدار 0 را وارد نمایید. اجازه بدهید فرض کنیم بال را در قسمت بالایی ردیف A (پین های 1 تا 8) متصل کرده ایم. اولین LED به پین شماره 1 کانکتور متصل است. در کد نمونه به جای 13، مقدار 0 را وارد نموده و تغییرات را ذخیره مینماییم. اکنون با فشردن کلید verify در نوار ابزار بالای نرم افزار و سپس کلیک بر روی گزینه ی Upload ، برنامه ی مورد نظر بر روی FPGA پروگرام میشود و LED شروع به چشمک زدن میکند!

به همین ترتیب میتوانید مثال های دیگر مثل Fade،  DigitalReadSerial و ... را اجرا نمایید و نتیجه را مشاهده نمایید. لطفا نتایج تجربیات خود در این رابطه را با ما در میان بگذارید و بدین طریق در پیشبرد این پروژه سهیم شوید.

فایلهای پیوست:

افزونه ی بورد پازج-یک برای نرم افزار آردوینو


  • sarbaz13 این پست را پسندیده است

#4 moonice

moonice

    newbie

  • کاربر عادی
  • ستاره
  • 2 ارسال

ارسالی 12 March 2016 - 03:07 PM

با عرض سلام و خسته نباشید خدمت دوستان عزیز

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

پروژه FADE:

خب همونطور از اسمش مشخصه کنترل شدت سیگنال توسط PWM میباشد.

در این پروژه ساده بال ال ای دی را در قسمت بالایی ردیف A (پین های 1 تا 8) متصل کرده ایم.با هر بار فشردن پوش باتم شماره 4 دیوتی سایکل PWM ما تغییر و افزایش میی یابد و به عبارت دیگر مقدار متوسط سیگنال خروجی افزایش میبابد که در اینجا ما مشاهده میکنیم نور LED افزایش می یابد و زمانی که به 100% خود رسید(255) بعد از گذشت 30 میلی ثانیه تاخیر صفر میشود و از ابتدا شروع میشود.

همچنین با فشردن پوش باتم شماره 2 دیوتی سایکل PWM کاهش یافته و کاهش نور LED را مشاهده میکنیم.

و به همین سادگی با یک دروایور L298 میتونید یک کنترلر موتور DC داشته باشید.

برای پیاده سازی بعد از اینکه برد را آماده کار کردید (گام اول تا گام سوم در پست قبل) فایل پیوست زیر را برای گام چهارم پست قبل روی FPGA آپلود نمایید.

 

با تشکر

سعیدی

 

فایل های پیوستی

  • فایل پیوستی  Fade.zip   315bytes   7 تعداد دریافت ها

  • mahmoud و M.Sadeghi این پست را پسندیده است

#5 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 26 September 2016 - 05:38 AM

سلام

امکانش هست میکرو را  در شماتیک زایلینکس بصورت یک سیمبول اضافه کرد؟

در اینصورت میشه میکرو را به طراحی اضافه کرد و با ide  آردواینو پروگرام کرد



#6 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 27 September 2016 - 08:14 PM

سلام

امکانش هست میکرو را  در شماتیک زایلینکس بصورت یک سیمبول اضافه کرد؟

در اینصورت میشه میکرو را به طراحی اضافه کرد و با ide  آردواینو پروگرام کرد

سلام.

بله این امکان وجود دارد. 

مدتی است که قصد انجام چنین کاری برای سافت کور ZPUino را داشته ام، اما هنوز فرصت نشده است.  :(



#7 fazel459

fazel459

    کاربر عادی

  • کاربر عادی
  • ستارهستاره
  • 22 ارسال

ارسالی 29 September 2016 - 07:47 AM

برای avr 8  که تو پاپیلیو به  اسم avr papilio 8  هست انجام دادم. در واقع کور atmega 103  هست


  • mahmoud این پست را پسندیده است

#8 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 30 September 2016 - 10:18 PM

برای avr 8  که تو پاپیلیو به  اسم avr papilio 8  هست انجام دادم. در واقع کور atmega 103  هست

بسیار عالی.

اگر وقت دارید سری هم به ZPUino بزنید. خیلی سوژه جالبی هست. 
من مدتی قبل کمی باهاش کار کردم و تونستم روی پازج پورتش کنم. اما فقط GPIO ها و واسط سریالش را. هدف نهاییم این بود که اون رو بصورت یک سافت کور با واسط wishbone _که قابلیت اتصال به انواع پریفرالهای wishbone را داشته باشه_ توی پروژه ام instantiate کنم که هنوز موفق به انجام این مرحله از کار نشده ام. یخورده بدقلقی در آورد و من هم بیخیالش شدم! باشد تا سر فرصت خدمتش برسم!
علی ای حال، از ظواهر امر مشخصه که شما انگیزه و توانمندی لازم برای ادامه ی اون کار را داشته باشید. پیشنهاد میکنم یه سری بهش بزنید و اگر کمکی هم لازم داشتید بنده با تمام وجود در خدمت هستم.

موفق باشید.







همچنین به arduino, microblaze نیز برچسب خورده است

0 کاربر در حال خواندن این موضوع است

0 کاربر، 0 مهمان و 0 عضو مخفی