# برنامه نویسی میکروکنترلر (MicroController) ها و MicroProcessor ها > برنامه نویسی سیستم های Embeded > آردوئینو (Arduino) >  اردویینو چیست؟

## مهدی عباس پور

آردوینو ابزاری است برای تولید کامپیوترهایی که نسبت به کامپیوتر شخصی شما، مقدار بیشتری از دنیای فیزیکی را احساس و کنترل می کنند. این ابزار، یک پلت فرم محاسباتی فیزیکی open-source است که بر اساس یک برد میکروکنترلر ساده تهیه شده، و نیز یک محیط توسعه برای نوشتن نرم افزار جهت کار با برد می باشد.
آردوینو می تواند جهت ایجاد اشیای تعاملی، گرفتن ورودی از تعداد زیادی سوییچ و حسگر، و کنترل تنوعی از لامپ ها، موتورها، و سایر خروجی های فیزیکی به کار گرفته شود. پروژه های آردوینو می توانند مستقل باشند، و یا با نرم افزاری که روی کامپیوتر شما در حال اجراست(مثل Flash ، Processing، MaxMSP)، ارتباط برقرار کند.  شما می توانید بردها را به طور دستی مونتاژ کنید و یا به صورت از پیش مونتاژ شده، خریداری کنید؛ محیط برنامه نویسی open-source را می توانید به صورت رایگان دانلود کنید.
زبان برنامه نویسی آردوینو، یک پیاده سازی از Wiring(یک پلت فرم محاسباتی و فیزیکی مشابه) است، که بر اساس محیط برنامه نویسی چندرسانه ای Processing کار می کند.

برای دانلود کامپایلر می توانید به لینک زیر بروید : http://arduino.googlecode.com/files/....5-windows.zip

----------


## مهدی کرامتی

با تشکر از مهدی عزیز، چون گوگل کد در ایران مسدود است می توانید محیط توسعه را از سایت اصلی آن یعنی http://arduino.cc دانلود کنید.

بردهای متنوع آردوئینو نیز این روزها به وفور در بازار یافت می شوند. اگر در تهران ساکن هستید فروشگاه جهان کیت در انتهای رو به خیابان، طبقه دوم پاساژ امجد در جمهوری این بردها را موجود دارد. در غیر این صورت می توانید از فروشگاه آفتاب رایانه شیراز تهیه کنید: http://shop.aftabrayaneh.com/Arduino_Boards
کالاهای موجود در فروشگاه آفتاب رایانه تقریبا تکمیله. با پست، 2 روزه سفارش را به دست تان می رسانند. فقط یک کم تنبل هستند و تنوع کالاهاشون رو با این که توانایی واردات دارند دیر به دیر تغییر میدهند.

----------


## مهدی عباس پور

مفاهیمی در اردوئینو وجود دارد که که اصطلاحا محصولات اردوئینو نام دارد که عبارتند از : برد - شیلد -کیت-Accessory (لوازم جانبی)
برد : یک برد ساده اردوئیونو شامل شامل یک میکرو کنترل 8 بیتی Avr با تعدادی قطعات می باشد.مهتمترین ویژگی برد های اردئیونو دارا بودن روش استاندارد برای اتصال اسان لوازم جانبی به ان است که امکان برقراری ارتباط بین cpu و انواع ماژول های جانبی که شیلد نامیده میشود را فراهم می کند .برخی از شیلد ها مستقیما با پین های I/O و برخی دیگر از طریق واسط ها دیگر . اکثر برد های ان با ولتاژ 5 ولت کار می کند.

بردهای اردوئیو نو را می توان از طریق  پورت USB(کابل USB ) یا در برخی موارداز طریف  پورت سریال برنامه نوشته شده رو بارگذاری کرد.

----------


## مهدی کرامتی

*آشنایی با برد های آردوینو (اونهایی رو لیست کردم که تو بازار ایران می توانید تهیه کنید):*

*آردوئینو Uno:*

این برد این روزها به وفور در بازار یافت میشه (فروشگاه های خ جمهوری، فروشگاه های آنلاین). قیمتش بین 33,000 تومان تا 60,000 تومان! ممکنه باشه (هر چی تیغ فروشنده ببره).

رد آردوینو Uno یک میکروکنترلر بر پایه ATmega328 می باشد (datasheet).  این برد 14 پین ورودی و خروجی دیجیتال (که 6 تای آن می تواند به عنوان  خروجی PWM استفاده گردد)، 6 ورودی آنالوگ، یک تشدیدگر سرامیکی 16مگاهرتز (Ceramic  Resonator)، یک پورت USB، یک پاورجک (ورودی منبع تغذیه)، یک ICSP header و  یک دکمه ریست دارد. برد Uno شامل کلیه امکانات مورد نیاز جهت بکارگیری  میکروکنترلر موجود بر روی برد می باشد. برای شروع تنها با یک کابل USB، به  سـادگی برد را به کامپیوترتان متصـل کنید و یـا آن را با یـک آداپـتور  AC-To-DC و یا باتری راه اندازی نمایید.

به نظر من، بهترین گزینه برای شروع آردوئینو، همین برد می باشد.

لینک خرید:
http://shop.aftabrayaneh.com/Arduino...no_UNO_R3.html

جدیدا آفتاب رایانه یک نسخه ارزون تر این برد رو هم ارائه کرده (به قیمت 15,500 تومان) که به نظر میاد بر اساس Arduino Uno SMD ساخته شده:

برد آردوینو UNO CH340G
http://shop.aftabrayaneh.com/Arduino...H340G_UNO.html


تفاوت این برد با ورژن قبلی آی سی مورد استفاده برای ارتباط با PC است (ورژن 33,500 تومانی از میکرو ATmega 8 به عنوان رابط USB استفاده کرده، اما این نسخه از آی سی CH340G). برای ارزون تر تمام کردن برد، از قطعات SMD (ریز) استفاده شده است.

مشخصات فنی این برد در تصویر زیر ذکر شده است:





*آردوینو مگا 2560 - Arduino MEGA R3*:


برد آردوینو Mega2560 یک برد میکروکنترلر بر پایه ATmega2560 می باشد(datasheet). این برد مجموعاً 54 پین ورودی/خروجی دیجیتال(که 15 تای آن می تواند به عنوان خروجی PWM استفاده گردد)، 16 ورودی آنالوگ، 4 پورت UART (پورت های سریال سخت افزاری)، یک نوسان ساز کریستال MHz 16،  یک پورت USB، یک پاورجک، یکICSP Header و یک دکمه ریست دارد. برد Mega  2560 شامل کلیه امکانات مورد نیاز جهت بکارگیری میکروکنترلر موجود برروی  برد می باشد. برای شروع، تنها با یک کـابل USB، به سادگی برد را به  کامپیوتـرتان وصل کنید، و یا آن را با یـک آداپـتور AC-to-DC و یا باتری  راه اندازی نمایید.
لیست امکانات:



کاربرد: زمانی که تعداد ورودی و خروجی های بیشتری داشته باشید (تعداد وسیله بیشتری را به برد متصل کنید) دیگر Arduino Uno پاسخگوی شما نیست و بهتر است از این برد استفاده کنید.

لینک خرید http://shop.aftabrayaneh.com/Arduino...ga2560_R3.html

و مانند مورد قبل، باز هم آفتاب رایانه یک نسخه ارزان ترش رو آورده که از همون آی سی CH340G استفاده کرده تا ارزون تر تمام شود (البته این یکی فقط 7,000 تومن ارزون تر از نسخه عادی است):

آردوینو مگا 2560 - Arduino MEGA CH340G


http://shop.aftabrayaneh.com/Arduino...60_CH340G.html


*آردوینو نانو*:


برد آردوینو نانو ، یک برد کوچک و کامل می  باشد ، طراحی آن به نحوی است که  استفاده از آن بر روی bread board را ساده  می نماید . میکرو کنترل استفاده شده در این برد ATmega328  می باشد و کارایی آن کم و بیش شبیه برد آردوینو Duemilanove است اما در یک شکل متفاوت.  حذف سوکت منبع تغذیه ، استفاده از قطعات SMT و مینی USB به جای پورت USB استاندارد باعث کوچک شدن برد و کاهش وزن آن گردیده است . اندازه برد فقط  17,8 در 43,2 میلیمتر  و وزن آن چیزی در حدود 6 گرم می باشد ، این خصوصیات منحصر به فرد استفاده  از برد را برای ربات های پرنده و سایر ربات ها و ماشین های کوچک میسر می  سازد.

لیست امکانات:


کاربرد: استفاده راحت تر، هنگامی که می خواهید قطعات جانبی را بر روی Bread Board مونتاژ کنید.

http://shop.aftabrayaneh.com/Arduino...o_Nano_v3.html

و دوباره، نسخه ارزان ترش نیز قابل تهیه است:

آردوینو نانو CH340G
http://shop.aftabrayaneh.com/Arduino..._V3_CH340.html


*
آردوینو پرو مینی*:


همانطور که از نام این برد مشخص است آردوینو  پرو مینی یک برد حرفه ای  کوچک می باشد! در این برد برای کمتر شدن اندازه و  کاهش وزن آن ورودی آدابتور و پورت USB حذف شده  اند. سایز کوچک و وزن اندک این برد  آن را یک گزینه بسیار ایده ال برای  استفاده در ربات های پرنده و یا هواپیماهای مدل می نماید، همچنین اگر می  خواهید اندازه پروژه خود را کوچک نگاه دارید ، باز هم ما استفاده از  آردوینو پرو مینی را به  شما توصیه می نماییم. بر خلاف اندازه کوچک و قیمت  اندک آن  با توجه به اینکه میکروکنترل به کار رفته درون این برد atmega328 می باشد از نظر کارایی هیچ تفاوتی با سایر بردهای آردوینو که چیپ آنها  atmega328 می باشد، ندارد.  تنها تفاوت این برد در شکل فیزیکی آن می باشد ، حذف پورت USB  باعث می شود که شما نتوانید به سادگی سایر برد های آردوینو کدهای خود را  بر روی برد آپلود نمایید ، برای آپلود کدها می توانید از یک برد آردینو  دیگر که دارای رابط USB می باشد به عنوان پراگرامر استفاده کنید و یا اینکه  کد خود را از طریق یک کابل FTDI و یا مبدل USB به سریال موجود در سایت درون میکروی برد آپلود نمایید.
این برد مشابه برد آردوینو نانو دارای 14 ورودی و خروجی دیجیتال ( 6 تای آنها می توانند به عنوان خروجی PWM استفاده  شوند ) ، 8 ورودی آنالوگ و یک دکمه ریست می باشد. این برد برای افرادی  طراحی شده است که با برنامه نویسی بردهای آردوینو آشنایی دارند و می خوهند  یک نمونه دائمی از محصول خود را بسازند. با توجه به قیمت ارزان این برد ،  به راحتی می توانید از آن در تولیدات نهایی و محصولات تجاری خود نیز از آن  استفاده نمایید.

مشخصات فنی:


http://shop.aftabrayaneh.com/Arduino..._Pro_Mini.html

دنبال نسخه ارزان ترش می گردید؟ نگردید! این خودش ارزان است (12,500 تومان!).


*برد ARM آردوینو Due*


برد آردوینو Due یک میکروکنترلر بر پایه SAM3X8E ARM Cortex-M3 CPU از شرکت Atmel می باشد.(datasheet).  این برد، اولین برد آردوینویی است که بر اساس میکروکنترلر با هسته ARM 32  بیتی پایه ریزی شده است. دارای 54 پین دیجیتال ورودی/خروجی (که 12 تای آن  می تواند به عنوان خروجی PWM استفاده شود)، 12 ورودی آنالوگ، 4 پورت UARTs  (پورت های سریال سخت افزاری)، و یک ساعت 84 مگاهرتزی، an USB OTG capable  connection ، یک DAC (دیجیتال به آنالوگ)، 2 عدد TWI، یک پاور جک، یک SPI  header، یک JTACG header، یک دکمه ریست و یک دکمه پاک کردن می باشد.

  این برد، هرچیزی را که جهت  پشتیبانی از میکروکنترلر مورد نیاز است، شامل می شود؛ برای آغاز کار، برد  را با یک کابل micro-USB به سادگی به کامپیوتر متصل کنید و یا با یک  آداپتور AC-to-DC یا باتری، به آن ولتاژ بدهید. برد Due با همه شیلدهای  آردوینو که با 3.3 ولت کار می کنند، و همچنین با 1.0 Arduino pinout سازگار  است.

  برد Due از 1.0 pinout پیروی می کند:


TWI: پین های SDA و SCL که در نزدیکی پین AREF قرار دارند.پین IOREF که اجازه می دهد یک شیلد را با پیکربندی مناسب جهت تطبیق با  ولتاژی که توسط برد فراهم شده است، متصل کنید. این قابلیت، به شیلدها  امکان می دهد تا با برد 3.3 ولتی همچون Due و بردهای AVR-based که با ولتاژ  5 ولت کار می کنند، خود را تطبیق دهند.یک پین که متصل نیست و جهت کاربردهای آتی در نظر گرفته شده است. 
  مزایای هسته ARM

  برد Due یک هسته ARM 32-bit دارد که می تواند بر بردهای میکروکنترلر 8بیتی غالب شود. برجسته ترین تفاوتهای آنها عبارتند از:

یک هسته 32 بیتی، که عملیات را روی داده های 4 بایتی درون یک کلاک CPUی تکی فراهم می کند. (جهت کسب اطلاعات بیشتر، صفحه نوع Int را مطالعه کنید).کلاک CPU با فرکانس 84 مگاهرتز.96 کیلوبایت حافظه SRAM.512 کیلوبایت حافظه فلش برای کد.یک کنترلر DMA که می تواند جهت انجام وظایف فشرده، به CPU کمک کند. 



http://shop.aftabrayaneh.com/Arduino...no_Due_R3.html

کاربرد: زمانی که نیاز به قابلیت Multi Tasking در برنامه نویسی آردوئینو دارید چنین چیزی را در کتابخانه های استاندارد آردئینو پیدا نخواهید کرد، چون بردهای آردوئینو این قابلیت را ندارند (البته با استفاده از کتابخانه mthread که توسط یک شخص ثالث نوشته شده است می توان Multi Threading را شبیه سازی کرد). اما در Arduino Due به دلیل استفاده از میکروکنترلر سری ARM به جای AVR، امکان Multi Threading بدون استفاده از هیچ کتابخانه جانبی وجود دارد.

نکته: برای برنامه نویسی این برد می بایست Arduino 1.5.7 BETA را دریافت کنید، نسخه کنونی محیط توسعه آردوئینو (Arduino 1.0.6) بردهای Arduino Due را پشتیبانی نمی کند (شاید زمانی که شما این پست را می خوانید ورژن های اشاره شده تغییر کرده باشند).


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

*و......*
در اکثر مطالبی که در مورد آردئینو می نویسم به فروشگاه آفتاب رایانه اشاره کردم. صرف اطلاع، فروشگاه فوق پسرخاله و ما نیست، اما فروشگاه خوبی است، زیرا دسترسی به بردها، ماژول ها و قطعات مورد نیاز را بسیار آسان کرده، و هر جای کشور باشید سفارش تون (اگه تا قبل از ساعت 12 روز جاری ثبت شده باشه) فردا صبح از طریق پست به دست تون می رسه.


*قابل توجه جناب عباس پور:*
این جوری چراغ قوه میگیرن!

----------


## علیرضا نیک منش

سلام به دوستان
 مجموعه فیلم های رباتیک که با بردهای اردوینو کار می کنند را در ویدئو های مایکروسافت دیدم  کافیست در سایت کانال نه مایکروسافت کلمه رباتیک را سرچ کنید            http://channel9.msdn.com/Series/Prog...sual-Studio/02
قسمت اول به معرفی اختصاص داشت و در قسمت دوم یک سروو موتور که به برد اردوینو وصل شده بود به راحتی راه اندازی می شود.
نکته بسیار جالب در فیلم  این که برنامه در محیط ویژوال استودیو نوشته می شد و یک نوار به محیط بالای محیط ویژوال اضافه می شد که  ما می توانستیم نوع بردی را که  داریم استفاده می کنیم به کامپیوتر معرفی بکنیم البته من نتوانستم این کار را انجام بدهم

----------


## مهدی کرامتی

آموزش های فوق بر اساس پلاگین Visual Micro است که تنها قابلیت اش این است که اجازه می دهد همان کدهایی که در Arduino IDE می نویسید در ویژوال استودیو تایپ کنید. جالب تر آنکه برای اینکه بتواند کار کند به Arduino IDE نیاز دارد (باید دانلود و نصب شده باشد). 

من تستش کردم، هیچ چیز خاصی نداشت. قابلیت های مفید ویژوال استودیو (غیر از Code Formatting که با زدن Ctrl+T در Arduino IDE قابل انجام است) در هنگام نوشتن Sketch ها فعال نیست.

Debugger اش هم خیلی ابتدایی است و مثلا در حلقه For وارد بدنه حلقه نمی شود، Watch و Local Variables کار نمی کنند (پس به چه درد می خوره این؟!؟).

در مجموع، چیز خاص و به درد بخوری نیست.

----------


## abedi66

*Arduino چیست ؟
*توضیحات کامل در رابطه با انواع آردینو هادر این لینک موجود است

----------


## alizadehsoha

سلام به همه, من یه سوال کلی داشتم,من هم سیستم عامل و کار روی هسته لینوکس رو دوست دارم و هم بحث روباتیک رو, حالا میشه منو کمک کنین که کدوم آینده بهتری داره?ممنونم...

----------


## mehdin69

> با تشکر از مهدی عزیز، چون گوگل کد در ایران مسدود است می توانید محیط توسعه را از سایت اصلی آن یعنی http://arduino.cc دانلود کنید.
> 
> بردهای متنوع آردوئینو نیز این روزها به وفور در بازار یافت می شوند. اگر در تهران ساکن هستید فروشگاه جهان کیت در انتهای رو به خیابان، طبقه دوم پاساژ امجد در جمهوری این بردها را موجود دارد. در غیر این صورت می توانید از فروشگاه آفتاب رایانه شیراز تهیه کنید: http://shop.aftabrayaneh.com/Arduino_Boards
> کالاهای موجود در فروشگاه آفتاب رایانه تقریبا تکمیله. با پست، 2 روزه سفارش را به دست تان می رسانند. فقط یک کم تنبل هستند و تنوع کالاهاشون رو با این که توانایی واردات دارند دیر به دیر تغییر میدهند.


مهندس یعنی چون شیرازی هستند؟  :بامزه: 
حالا من شیراز زندگی میکنم راحت میرم ازشون میگیرم خیلی چیزای دیگه هم دارن یه مدته مشتریشونم واقعاً چیزای خوبی دارن

----------


## مهدی کرامتی

> مهندس یعنی چون شیرازی هستند؟


اولا که ما خدمت شیرازی ها ارادت داریم. ثانیا، اونی که نوشتم نقل قول از وبلاگ خودشون بود. برو بخون خودت ببین  :لبخند:

----------


## mehdin69

> اولا که ما خدمت شیرازی ها ارادت داریم. ثانیا، اونی که نوشتم نقل قول از وبلاگ خودشون بود. برو بخون خودت ببین


ما مخلص شما هستیم استاد

----------

