مقدمه

شاید برای شما هم اتفاق افتاده باشد که ایده‌‌ای به ذهن‌‌تان رسیده و برای پیاده‌سازی آن ایده به الکترونیک و برنامه‌نویسی نیاز داشته‌اید اما عدم مهارت کافی در الکترونیک و برنامه‌نویسی باعث شده که آن ایده را به کل کنار بگذارید. بد نیست بدانید تا به امروز که این مطلب را می‌خوانید، افراد زیادی در سرتاسر دنیا با تخصص‌های مختلف از هنرمند گرفته تا معلم و حتی پزشک، بدون اینکه مهارت زیادی در حوزه الکترونیک و برنامه‌نویسی داشته باشند موفق شده‌اند دستگاه‌های مورد نظر خود را بسازند و ایده‌هایشان را پیاده کنند. چطور؟ با کمک آردوینو (Arduino ).آردوینو بردی میکروکنترلری است که به همراه ابزار برنامه‌نویسی در اختیار شما قرار می‌گیرد. شما با استفاده از آردوینو قادر به پیاده‌سازی پروژه‌هایی هستید که تا پیش از این برای پیاده‌سازی‌شان به مهارت زیادی در برنامه‌نویسی و الکترونیک نیاز داشتید. در این مطلب سعی می‌کنیم آشنایی مختصری با آردوینو پیدا کنیم و برای کار کردن با این پلتفرم آماده شویم.

آردوینو به زبان ساده

کسانی که با میکروکنترلرها آشنا هستند و می‌دانند پیاده‌سازی مدارهای میکروکنترلری چه دشواری‌هایی دارد، قطعاً آردوینو (Arduino ) را بعنوان یک ابزار کار راه‌انداز و جادویی می‌شناسند. در گذشته اگر شما تصمیم داشتید مداری میکروکنترلری برپا کنید، باید به ساختار سخت‌افزاری خانواده میکروکنترلر مورد نظرتان، لوازم جانبی که پشتیبانی می‌کرد و برنامه‌نویسی آن مسلط می‌شدید. انتخاب تراشه میکروکنترلر مناسب برای پروژه‌تان و نحوه ریختن برنامه روی آن تراشه هم از جمله چالش‌هایی بود که در طول پروژه همراه‌تان بود و در برخی موارد به کابوس تبدیل می‌شد. به ویژه اینکه از سیستم عاملی بجز ویندوز استفاده می‌کردید. خلاصه مطلب اینکه اگر شما به الکترونیک و برنامه‌نویسی مسلط نبودید، قطعاً برای پیاده‌سازی ایده‌تان با میکروکنترلر هم به مشکل بر می‌خوردید. اگر از این مباحث سر در نمی‌آوردید هم که نتیجه مشخص بود!

بردهای آردوینو ( Arduino ) بازی را عوض کردند. با معرفی آردوینو، فردی که دانش محدودی در زمینه برنامه‌نویسی داشت و قطعات الکترونیک را بطور کامل نمی‌شناخت هم می‌توانست پروژه‌ای میکروکنترلری پیاده کند. چیزی که تا پیش از این رؤیایی زیبا و البته دست نیافتی بود. در حقیقت هنر آردوینو این است که برنامه‌نویسی و استفاده از ابزار الکترونیک و خصوصا میکروکنترلرها را در دسترس عموم مردم قرار داده است. حالا دیگر این فقط مهندسان و متخصصان الکترونیک نبودند که می‌توانستند با میکروکنترلرها کار کنند بلکه افرادی از تخصص‌های دیگر هم این امکان را یافتند تا از این ابزار برای رفع نیازهای خود بهره‌مند شوند و حتی ایده‌هایی را پیاده‌سازی کنند که متخصصان تراز اول دنیا هم به فکرشان نمی‌رسید!

میکروکنترلرها
برپایی یک باغچه هوشمند. نمونه‌‌ای از ایده‌هایی که می‌توان با آردوینو به واقعیت تبدیل کرد.

پروژه آردوینو

هدف اصلی آردوینو، فراهم کردن امکانی برای نمونه‌سازی سریع و ساده ایده‌هاست. آردوینو این امکان را در اختیار شما قرار می‌دهد که به سادگی و بدون اینکه مجبور باشید با پیچیدگی‌های معمول کار با میکروکنترلرها دست و پنجه نرم‌ کنید، پروژه‌های میکروکنترلری خود را پیاده کنید و ایده‌هایتان را بیازمایید. سادگی بکارگیری نرم‌افزار و سخت‌افزار آردوینو، ارزان‌ بودن آن در مقایسه با پلفترم‌های مشابه و نیز اپن‌سورس بودن، سبب شده است که از آردوینو در پروژه‌های متنوعی استفاده شود. شما با یک جستجوی ساده در اینترنت، پروژه‌های گوناگونی را خواهید یافت که با هزینه‌ای اندک توسط معلمان و دانش‌آموزان و سایر افراد با تخصص‌های مختلف طراحی و پیاده‌سازی شده‌اند. حتی از آردوینو بعنوان ابزاری برای آموزش برنامه‌نویسی و روباتیک استفاده می‌شود. البته این فقط آماتورهای الکترونیک نیستند که از جادوی آردوینو استفاده می‌کنند بلکه حرفه‌‌ای‌ها هم آردوینو را بعنوان یک ابزار مفید بخصوص برای آزمودن و نمونه‌سازی سریع ایده‌هایشان بکار می‌گیرند و از توانایی اپن‌سورس ( open source ) آن استفاده می‌کنند. به دلیل اپن‌سورس بودن آردوینو،‌ طرح بردها، از شماتیک گرفته تا طرح فیبر مدارچاپی (PCB)در اختیار شماست

شماتیک بردآردوینو UNO
شماتیک و طراحی PCB آردوینو بصورت آزاد در اختیار همگان است. در اینجا شماتیک برد UNO را می‌بینید.

و حتی نرم‌افزار کدنویسی آن نیز بصورت متن‌باز و اپن‌سورس در اختیار است. این ویژگی کمک می‌کند تا افرادی که بیشتر از الکترونیک و برنامه‌نویسی سر در می‌آورند با دستکاری طراحی سخت‌افزاری و نرم‌افزاری آردوینو، بدون اینکه نیاز به خرید برد داشته باشند، آن را خودشان ساخته و حتی بر اساس نیازهای خود آنرا بازطراحی کنند و ایراداتش را هم بگیرند! ماهیت اپن‌سورس این بستر سبب شده است که جامعه بزرگی از دانش‌آموزان و دانشجویان، علاقه‌مندان به الکترونیک و برنامه‌نویسی، حرفه‌ای‌ها و حتی هنرمندان از نسخه‌های مختلف آردوینو استفاده کنند و دانش و تجربه خود در این زمینه را با دیگران به اشتراک گذارند. همین ویژگی باعث می‌شود افرادی که به تازگی با آردوینو آشنا می‌شوند ساده‌تر با آن همراه شده و استفاده از آن را بیاموزند.

ویژگی‌های آردوینو

اگرچه در این کاربرد نمونه‌های مشابهی نظیر Basic Stamp از شرکت Parallax را به یاد می‌آوریم اما آردوینو قابلیت‌هایی را در اختیار قرار می‌دهد که خصوصا آنرا برای دانش‌آموزان، معلمان و آماتورها جذاب‌تر می‌کند. بردهای آردوینو ویژگی‌های زیادی دارند که آن‌ها را به محبوب‌ترین گزینه برای پروژه‌های موسوم به «خودت بساز» ( DIY ) و حتی پروژه‌های سطح بالا تبدیل کرده است که از میان آن‌ها می‌توان به این ویژگی‌ها اشاره کرد:

آردوینوی ارزان

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

سادگی برنامه نویسی آردوینو

استفاده از محیط برنامه‌نویسی آردوینو(IDE) برای افراد مبتدی ساده است و برای کاربران حرفه‌ای هم انعطاف‌پذیری لازم را دارد

برنامه‌نویسی آردوینو
(A)نمونه‌ای از یک برنامه نوشته شده به زبان آردوینو برای روشن و خاموش کردن یک LED با فواصل یک ثانیه‌ای
اتصال LED به پایه ۱۳ آردوینو
(B)- نحوه اتصال LED به پایه ۱۳ آردوینو
 نمای شماتیک آردوینو
(C)نمای شماتیک طرح

نرم‌افزار آردوینو (open source)

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

سخت‌افزار متن‌باز(open source) و قابل گسترش:

بردهای آردوینو تحت مجوز Creative Commons عرضه می‌شوند. به بیان ساده یعنی اینکه طراحان سخت‌افزار این اجازه را دارند که نسخه‌های آردوینوی خودشان را طراحی کنند و آنرا گسترش داده و قابلیت‌هایش را بهبود دهند. حتی افراد کم‌تجربه هم این اجازه را دارند که بر روی بِردبُرد (breadboard)، سخت‌افزار آردوینو را پیاده کرده و از عملکرد آن سر دربیاورند و حتی بجای نسخه بازاری از همین نسخه بِردبُردی استفاده کنند

آردوینو بر روی یک برد
می‌توان آردوینو را بر روی یک برد پیاده کرد

بردهای آردوینو

بردهای آردوینو عموما مبتنی بر میکروکنترلرهای AVR شرکت ATMEL هستند. وقتی با آردوینو کار می‌کنید در حقیقت در حال کار با یک میکروکنترلر AVR هستید. نوع AVR بستگی به بردی دارد که استفاده می‌کنید. البته برخی از مدل‌های آردوینو هم مجهز به میکروکنترلرهای ARM هستند

آردوینو مجهز به میکروکنترلر ARM
نمونه‌ای از یک آردوینو مجهز به میکروکنترلر ARM

آردوینو این امکان را به ما می‌دهد که با افزودن ماژول‌ها و بردهایی موسوم به شیلد به پروژه، قابلیت‌‌های مورد نیاز را به آن اضافه کنیم. بطور مثال یک درایور موتور به برد متصل کنیم و یا نمایشگر LCD به آن بیفزاییم

شیلد و نحوه افزوده شدن آن به برد اصلی آردوینو
نمونه‌ای از شیلد و نحوه افزوده شدن آن به برد اصلی آردوینو

آردوینو بردهای متنوعی را عرضه کرده است و هر یک سطحی از نیازها را پوشش می‌دهند . همانطور که گفته شد غالب این بردها مبتنی بر میکروکننترلرهای AVR هستند. شما برای برنامه‌نویسی این بردها از دستوراتی استفاده می‌کنید که بسیار ساده‌اند و به راحتی می‌توان بکارگیری از آن‌ها را آموخت. البته آن‌هایی که علاقه‌مند به کار فنی‌تر هستند می‌توانند بجای زبان آردوینو از زبان برنامه‌نویسی AVR C استفاده کنند.

برای شروع کار با آردوینو بهتر است از برد مناسب برای سطح مبتدی استفاده کنید

 بردهای سطح مبتدی آردوینو
بردهای سطح مبتدی

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

 بردهای پیشرفته‌ آردوینو
نمونه‌هایی از بردهای پیشرفته‌تر آردوینو

آردوینو مجموعه‌ای از بردها را هم عرضه کرده است که مناسب برای کاربرد اینترنت اشیاء ( IoT ) هستند

آردوینو برای اینترنت اشیاء
برخی از بردهای آردوینو مناسب برای اینترنت اشیاء

برخی از بردهای موجود هم نسخه‌های بسیار قدیمی آردوینو هستند که استفاده از آن‌ها توصیه نمی‌شود.

شروع با آردوینو یونو

برای شروع کار با بردهای آردوینو و آشنایی با الکترونیک و کدنویسی، پیشنهاد ما این است که از نسخه یونو (UNO) شروع کنید

برد آردوینو یونو
برد آردوینو UNO

این نسخه محبوب‌ترین نسخه از خانواده آردوینو است و همین هم باعث شده تا مجموعه‌ای مفصل و غنی از منابع و مستندات در مورد این نسخه از آردوینو در دسترس باشد که به یادگیری و رفع اشکال افراد مبتدی کمک زیادی می‌کند.

میکروکنترلر بکار رفته در نسخه UNO یک AVR مدل ATmega328P است. آردوینوی UNO چهارده پایه در اختیار شما قرار می‌دهد که می‌توانید بر اساس نیاز از آن‌ها بصورت ورودی یا خروجی دیجیتال استفاده کنید. ۶ پایه از این ۱۴ پایه دیجیتال این قابلیت را دارند که بصورت خروجی PWM بکار روند. از آنجاییکه UNO خروجی آنالوگ ندارد، این ۶ پایه PWM که بطور مشخص روی برد علامت‌گذاری شده‌اند، امکان شبیه‌سازی عملکرد آنالوگ را در اختیار ما قرار می‌دهند.

بطور مثال با کمک پایه PWM می‌توان شدت نور یک دیود نوری ( LED ) را تنظیم کرد. UNO شش پایه ورودی آنالوگ هم دارد. علاوه بر این، برد UNO شامل یک نوسانساز سرامیکی ۱۶ مگاهرتزی، پورت USB، یک جک تغذیه، هدر ICSP و دکمه ریست است

مشخصات برد آردوینو UNO
مشخصات برد آردوینو UNO

هر آنچه که برای کار کردن با میکروکنترلر نیاز دارید بر روی برد یونو وجود دارد و تنها کاری که باید بکنید این است که آنرا به یک منبع تغذیه متصل کنید. برای اینکار می‌توانید از آداپتور مناسب استفاده کنید یا ورودی تغذیه را به باتری وصل کنید. حتی با متصل کردن آن به کامپیوتر از طریق پورت USB هم می‌توانید تغذیه برد را تأمین کنید. برد آردوینو به گونه‌ای طراحی شده است که کاربران خصوصا آن‌هایی که تجربه زیادی در الکترونیک ندارند نگران آسیب رسیدن به آن نباشند. در بدترین حالت شاید مجبور شوید آی‌سی میکروکنترلر را تعویض کنید که آنهم کاری ساده است.

آردوینوی دوست‌داشتنی

تا اینجای کار کلیاتی از آردوینو را با هم مرور کردیم و کمی با ایده‌ پشت آن و کمک‌هایی که می‌توان از آن گرفت آشنا شدیم. در مقالات بعدی بیشتر با این موجود دوست‌داشتنی آشنا خواهیم شد و نمونه‌هایی عملی را با هم خواهیم ساخت. خواهید دید که با کمک آردوینو به چه سادگی می‌توانید ایده‌های خود را از هوشمندسازی خانه گرفته تا ارسال پیام روی شبکه‌های اجتماعی عملی کنید. حالا فقط ایده‌هایتان را روی کاغذ بنویسید و منتظر باشید تا آن‌ها را با کمک آردوینو پیاده کنید.