جلسه دوم : چرا آردوینو ؟

به نام خدا
وارد جلسه دوم می شیم.
اول باید بدونیم آردوینو چیه؟
به زبان ساده، آردوینو بردیه که از پردازنده و یک سری قطعات الکترونیکی دیگه مثل خازن و مقاومت و رگولاتور و کریستال و … تشکیل شده . آردوینو انواع مختلفی داره که بسته به نوعش، پردازنده ای که روش استفاده شده متفاوته. مثلا روی آردوینو UNO میکروکنترلر مورد استفاده، ATMEGA32 هست. قطعات الکترونیکی که به صورت پیش فرض روی برد آردوینو قرار گرفته، برای راه اندازی ساده تر میکروکنترلر AVR هست که در ادامه در مورد آنها بیشتر توضیح داده میشه. همین قطعات الکترونیکیه که با قرار گرفتن در کنار AVR بردی متفاوت و پرکاربرد را بوجود آورده. ناگفته نمونه بعضی از بردهای آردوینو میکروکنترلر ARM استفاده میکنن.

حالا چرا از خود AVR استفاده نکنیم و بیایم سراغ آردوینو ?
کسانی که با AVR کار کرده باشن خوب میدونن، حتی اگه بخوای یک پروژه LED چشمک زن ساده هم راه اندازی کنی علاوه برخود AVR به یک سری سخت افزار جانبی مثل رگولاتور و کریستال و سیم بندی واسه تغذیه و زمین کردن(مهم ترین پایه ها) کنترلر AVR نیاز داری. حالا این وسط اگه یه موقع میکرو را بر عکس تو مدار جا بزنی یا اشتباه به یه پایه دیگه اون ولتاژ بدی عملا میکرو می سوزه و تا بخواد دستت بیاد چجوری اشتباه نکنی، عملا مقدار هنگفتی پول خرج کردی و دل زده شدی و الفرار.
این اول داستان نیست. پروگرام کردن AVR هم یه سری مشکلات داره .در بهترین حالت که پروگرامر از نوع USB باشه، باید AVR را از مدار خارج کنی، وصلش کنی روی پروگرامر، کد رو آپلود کنی، دوباره از برد پروگرامر جداش کنی و بزاریش تو مدار ( اگه اشتباه نزاری). اگه از کد نویسی مطمئن باشی و نخواد به خاطر یه اشتباه کوچک کد را عوض کنی 4 مرحله وجود داره تا آپلود کنی.
اینم یک نمونه از پروگرامر که اگه قصد دارید از AVR به تنهایی استفاده کنید باید همه جا دنبالتون باشه .
avr programmer-1
تا این قسمت از جلسه توضیح راه اندازی پروژه LED چشمک زن با AVR بود. از این جای داستان به بعد پروژه LED چشمک زن را با آردوینو پیاده سازی میکنیم .(الان صرفا یک شمای کلی از نحوه کار با آردوینو بیان میشه. جزئیات بحث آردوینو، مطمئنا در جلسات بعدی مطرح خواهد شد.)
خب شروع میکنیم .
قطعات مورد نیاز: برد آردوینو + کابل USB .
سخت افزار همین جا تمام میشه .شما به هیچ چیز دیگری (حتی LED) احتیاج ندارید. رگولاتور و کریستال و همه سخت افزارهای دیگه ای که برای راه اندازی پروژه LED چشمک زن لازمه روی این برد به صورت پیش فرض قرار گرفته. برای آپلود کردن کد کافیه کابل USB رو به آردوینو وصل کنید، در نرم افزار آردوینو با اشاره یک کلید آپلود کنید. یعنی بعد از آماده شدن کد فقط با 2 حرکت می تونید آپلود کنید.
اگر فرض کنیم کسی در کد نویسی وارد نباشه، مطمئنا چندین بار لازمه کد برنامه را تغییر بده. حالا اگه با AVR کار کنه به ازای هر تغییری که در کد بوجود بیاره و بخواد آپلود کنه باید 4 مرحله را طی کنه اما، اگه بخواد با آردوینو پروژه انجام بده هیچ نیازی نداره میکرو از مدار جدا بشه، همونطوری که تمام اجزای مدار سر جاشه کابل USB وصل میشه و برنامه آپلود میشه.
خیلی قابل درکه که پروگرام کردن و ساخت مدار پروژه چشمک زن توسط آردوینو نسبت به AVR کار بسیار ساده تری است.
DEV01158-01-L1401607442538ad512d0411 حالا اگه قصد داشته باشیم در حوزه کد نویسی وارد بشیم و تفاوت ها را در این حوزه هم بیان کنیم، یه بار دیگه برمی گردیم به پروژه LED چشمک زن. اگر بخواهیم با نرم افزار های مخصوص AVR کد نویسی کنیم، اول برنامه(هدر برنامه) باید تعدادی تابع را include کنیم تا بتونیم از توابع مورد نیاز استفاده کنیم. بعد برای این که پین میکرو را 0 و 1 کنیم (تا LED روشن و خاموش بشه) اول باید به ریجسترها مقدار بدیم تا اون پین خروجی بشه، بعد پایه را 0 و 1 کنیم. ریجسترهایی که استفاده میشه معمولا اسم هایی دارن که به خاطر سپردنشون برای بعضی افراد کار مشکلیه .
حالا اگه بخواهیم همین کد رو توی آردوینو بنویسیم نه نیازه تابعی را include کنیم نه به ریجستری مقدار بدیم .با یک خط کد نویسی پین به عنوان خروجی در نظر گرفته میشه. دستوری که با اون پین را معرفی می کنیم، دستور pinMode هست که به خاطر سپردنش کار ساده ایه. در نرم افزار آردوینو کدنویسی به زبان ++c است.
برای مقایسه، دو تا کد میزاریم اولی کدنویسی AVR است:

define F_CPU 4000000UL#
 <include <avr/io.h#
 <include <avr/delay.h#
 "include “myTimer.h#
 (int main (void
 }
 ;DDRC = 0xFF
 } (while(1
 ;(PORTC |=(1<<0
 ;(delay_ms(250
 ;(PORTC &= ~(1 << 0
 ;(delay_ms(250
 ;{
 {

دومی کد نویسی آردوینو است:

}()void setup
 ;(pinMode(13, OUTPUT
 {
 }()void loop
 ;(digitalWrite(13, HIGH
 ;(delay(250
 ;(digitalWrite(13, LOW
 ;(delay(250
 {

 

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

One thought on “جلسه دوم : چرا آردوینو ؟

    1. خیلی کلی بخوام بگم تابع مجموعه ای از چند دستور هست.
      مثلا یک خانواده 5 نفره با عنوان فامیل اون خانواده شناخته میشن ولی خب هر کدوم از 5 نفر یک انسان مستقل هستن.

      تابع هم دقیقا همینه مثلا عنوان تابع blink (چشمک زن )هست.
      این یعنی یک سری دستورهایی وجود دارن که مجموعشون باهم باعث میشه یک LED چشمک بزنه .

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

  2. ممنون از آموزش هاتون.

    یک سوال برای برنامه نویسی اردونیو باید برد رو از رابط usb به کامپیوتر وصل کرد، همین!

  3. سلام
    منبع معتبر برای مطالعه آردوینو وجود داره!؟ آخه بخوای تو یه مطلب علمی در موردش بنویسی باید مرجع بدی براش!

  4. نحوه توضیح دادن شما بسیار کامل و شیوا است. جواب بسیاری سوالاتی رو که حتی دوستان فوق لیسانس الکترونیک نتونستن بدن.اینجا پیدا کردم.مرسی

  5. با سلام و تشکر از وبلاگ خوبتون. خیلی خوب آردوینو رو توضیح دادین ، من خودم با اینکه رشته تحصیلیم الکترونیک نیست ولی علاقمند زیادی به یادگیری این رشته دارم. راستش من خودم با avr
    شروع کردم(کدویژن) ولی بنا به اونچیزی که خودتون هم گفتین بدلیل مراحل زیاد در یادگیری و تست سخت پروژه ها دیگه ازش منصرف شدم. تا اینکه آردوینو رو شناختم… خیلی چیز جالبیه مخصوصا واسه آماتور ها. یه چندتا سوال فنی داشتم که ممنون میشم جواب بدین…
    اول اینکه اگه آردوینو رو فول بشی آیا نیاز هست تو برخی پروژه ها برگردی به زبان c و avr .(اینجوری بگم که آردوینو آیا 100 درصد پروژه هایی که با avr اجرا میشه رو پوشش میده؟)
    دوم اینکه تو آردوینو و حتی avr (که مدتی من باهاش کار کردم) دستورات تو برنامه نویسی بصورت سری اجرا میشه و امکان اینکه در یک لحظه واحد بشه چندین کارو انجام داد وجود نداره(مثلا فرض کنید میخوام تو 4 تا از پین های اردوینو فرکانس های متفاوتی رو ایجاد کنم- فرضا 4 LED با فرکانس های مختلف هم زمان چشمک بزنن) آیا راهی واسه حل این مشکل هست و یا کلا خاصیت میکروکنترلر ها اینجوریه؟
    خیلی ممنون از جواباتون. موفق باشین

  6. سلام، من تازه می خوام کار با این آردوینو رو شروع کنم
    خیلی خوب آموزش میدید
    خدا بهتون سلامتی و علم عنایت کنه
    یا علی

  7. سلام واقعا عالیه فقط یه سوال فرق کتاب خونه با کد چیه ؟ یا این که مظور از نصب کناب خونه روی برد آردوینو همون آپلود کردنه؟

  8. سلام واقعا عالیه فقط یه سوال فرق کتاب خونه با کد چیه ؟ یا این که منظور از نصب کناب خونه روی برد آردوینو همون آپلود کردنه؟

  9. سلام واقعا عالیه فقط یه سوال فرق کتاب خونه با کد چیه ؟ یا این که منظور از نصب کتاب خونه روی برد آردوینو همون آپلود کردنه؟

  10. سلام
    توضیحاتتون خیلی خوب بود. ولی ناگفته نمونه که یکمی در موردش زیاده روی دیدم. مثلا avr را خیلی سخت و arduino را خیلی هلو برو تو گلو معرفی کردید. واقعا اینجوری نیست. اولا برای پروگرام کردن avr کی گفته هر بار باید میکرو را از برد جدا کنی و بذاری روی پروگرامر؟ آیا روش ISP وجود نداره؟ با روش ISP نمیخواد برد را جدا کنی. از طرفی برای avr هم کلی برد های راه انداز وجود داره که خیلی از شرکت های ایرانی هم تولید میکنن و به راحتی میشه فقط وصلش کرد به کامپیوتر و باهاش کار کرد.
    من الان هم با avr و arm کار میکنم و هم با arduino. این ها دنیاهای متفاوتی هستند و هر کدوم در جای خودشون کاربرد دارن و جای هم دیگه را نمی گیرن. اردوینو در هر پروژه ای استفاده نداره و avr هم برای تازه کارهای سخته. پس سعی کنید مقایسه منصفانه تری انجام بدید. چون این حس به من دست داد که میخواید مخاطب را تشویق کنید بیاد ازتون برد اردوینو بخره.
    موفق و پیروز باشید

    1. سلام
      من خیلی علاقه دارم برنامه نویسی یاد بگیرم ولی سال دوم هنرستانم هنوز!(البته بگم رشته الکترونیک نیستم اما دنبالشم تا در کنار رشته ی خودم کمی یاد بگیرم)
      میخواستم بدونم شما که تجربه داری پیشنهاد میدی برنامه نویسی avr یاد بگیرم، یا آردینو، کدومش در آینده بیشتر بدردم میخوره و تو پروژه های بیشتری، بدرد بخور تره

  11. با عرض سلام فقط یه سوال داشتم و اون اینکه ما در avr موقعی که برنامه رو مینوشتیم با نرم افزار پروتءوس تستش میکردیم میخواستم بدونم اینجا نمیشه اینکارو انجام داد

پاسخ دادن به امید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *