آردوینو چیست؟
شاید برای شما هم پیش آمده باشد که ایده ای به ذهنتان رسیده باشد که برای پیاده سازی آن به برنامه نویسی و الکترونیک نیاز داشتهاید اما شاید مهارت کافی در این دو مورد را نداشته اید و باعث شده که آن را کنار بگذارید، اما بهتر است که بدانید تا کنون در سر تا سر دنیا افرادی با مهارت های مختلف از هنرمند و پزشک گرفته تا مهندسین بدون اینکه حتی مهارت زیادی در حوزه ی الکترونیک یا برنامه نویسی داشته باشند موفق شده اند ایده های خود را پیاده کنند. با ما همراه باشید تا به راز این افراد برای انجام این امور پی ببریم.
مقدمه و تاریخچه
شاید زمانیکه در سال 2005 سه دانشجوی برق در ایتالیا، ساخت یک پلتفرم سخت افزاری که همه، بدون درگیر شدن با پیچیدگی های طراحی مدارهای الکترونیکی بتوانند وارد دنیای برق شوند را به عنوان پایان نامه خود انتخاب کردند، هیچگاه تصور این که روزی پلتفرم آن ها به یکی از ترندهای اصلی دنیای الکترونیک تبدیل شود و در اکثر پروژه ها، از پروژه های دانشجویی گرفته تا پروژهای صنعتی از آردوینو استفاده شود و یا کاربرد آردوینو در صنعت را از ذهن خود عبور نمی دادند. پلتفرم اردوینو از نظر کارکرد بسیار ساده و از نظر قیمتی مقرون و به صرفه است.
آردوینو بردی میکروکنترلری است که به همراه ابزار برنامهنویسی در اختیار شما قرار میگیرد. شما با استفاده از آردوینو قادر به پیادهسازی پروژههایی هستید که تا پیش از این برای پیادهسازیشان به مهارت زیادی در برنامهنویسی و الکترونیک نیاز داشتید. در این مطلب سعی میکنیم آشنایی مختصری با آردوینو و کاربرد های آن پیدا کنیم.
آردوینو به زبان ساده
کسانی که با میکروکنترلرها آشنا هستند و میدانند پیادهسازی مدارهای میکروکنترلری چه دشواریهایی دارد، قطعاً آردوینو (Arduino ) را بعنوان یک ابزار کار راهانداز و جادویی میشناسند. بردهای آردوینو ( Arduino ) بازی را عوض کردند، در حقیقت هنر آردوینو این است که این امکان را به افراد با هر تخصصی بدهد تا بتوانند ایده هایی را پیاد سازی کنند که حتی به ذهن خیلی از متخصصان تراز اول نرسیده است. جنجالی که آردوینو در الکترونیک پیش آورده به نظر کم از انقلاب صنعتی نبوده است البته این فقط آماتورهای الکترونیک نیستند که از جادوی آردوینو استفاده میکنند بلکه حرفهایها هم آردوینو را بعنوان یک ابزار مفید بخصوص برای آزمودن و نمونهسازی سریع ایدههایشان بکار میگیرند.
آردوینو (Arduino) یک بستر نرم افزاری و سخت افزاری متن باز برای تولید پروژه های سخت افزاری تعاملی و ساخت وسایلی که با محیط تبادل دارند و وسیله ای که ما را قادر می سازد دنیای فیزیکی را احساس و کنترل کنیم. پلتفرم آردوینو شامل یک میکروکنترلر تکبردی متنباز است که قسمت سختافزار آردوینو را تشکیل میدهد. علاوه بر این، پلتفرم آردوینو یک نرمافزار آردوینو (IDE) که به منظور برنامهنویسی برای بردهای آردوینو طراحی شدهاست و یک بوت لودر نرمافزاری که بر روی میکروکنترلر بارگذاری میشود را در بر میگیرد.
چرا آردوینو ؟!
- قابلیت پروگرام کردن با حداقل اطلاعات الکترونیکی
- قیمت پایین نسبت به کارایی مثلا در حدود $20
- قابلیت برنامه نویسی برد ها در سیستم عامل های مختلف؛ مک، ویندوز و لینوکس
- محیط توسعه برنامه نویسی ساده و کاربردی
- موجود بودن ماژول ها و شیلد های مختلف برای راحتی کار
- متن باز سخت افزاری و نرم افزاری
- جامعه پشتیبانی قوی که در صورت به مشکل خوردن آماده کمک کردن به شما هستند
- و ...
همه ی موارد بالا باعث شده است که آردوینو بتواند بر رقیبان خود همچون Teensy 3 ، Mbed LPC1768 غلبه کند.
مزایای آردوینو
آردوینو جهانی است یکی از مزایای مهم هر سیستمی گستردگی جامعه استفاده کننده است. این گستردگی باعث میشود که به سادگی قادر باشید جواب مشکلات خود را پیدا کنید، یا اگر باگی در یکی از کتابخانه های برنامه وجود داشته باشد در سریعترین زمان ممکن کشف و رفع شود. شاید یکی از تاثیر گذار ترین موارد جهت انتخاب یا عدم انتخاب یک پلتفرم همین مورد باشد. آردوینو مزایای دیگری نیز دارد اما مهم ترین آنها شامل ارزان بودن، کراس پلتفرم بودن، محیط کدنویسی ساده و قدرتمند، متن باز بودن نرم افزار و ساخت افزار آردوینو است.
ارزان بودن: اگر شما بخواهید با یک برد آردوینو و تعدادی از قطعات الکترونیک کار کنید، نسبت به حالتی که قرار باشد برای میکروکنترلر برد طراحی کرده و بسازید، هزینه کمتری پرداخت میکنید و خیلی سریع میتوانید وارد فاز کدنویسی شوید. در حالی که برای طراحی و ساخت برد با پیچیدگی های زیادی روبه رو میشوید که اغلب این موارد برای شروع کار فرایند آموزش شما را سخت میکند.
کراس پلتفرم بودن: این عبارت را بیشتر در دنیای کامپیوتر میشنویم. اما معنای آن چیست؟(Cross platform) به معنای آن است که نرم افزار آردوینو میتواند روی سیستم عاملهای مختلف از جمله ویندوز، مک و هم چنین نسخههای مختلف لینوکس اجرا شود. در حالی که اغلب نرم افزارهای میکروکنترلری به ویندوز محدود میشوند. حالا شما خیالتان راحت است که اگر با لینوکس یا مک کار میکنید، امکان کار با میکروکنترلرها برایتان فراهم است و مجبور نیستید به ویندوز محدود شوید.
محیط کدنویسی ساده و قدرتمند: (IDE) طراحی شده برای آردوینو ظاهر سادهای دارد و برای افراد تازه کار خیلی مناسب است؛ چرا که به راحتی میتوانند با آن کار کنند. البته همین محیط ساده آنقدر قدرتمند است که افراد حرفهای هم به خوبی میتوانند با استفاده از آن کدنویسی سطح بالا انجام دهند.
متن باز بودن نرم افزار: محیط کدنویسی آردوینو و کتابخانههای آن به صورت متن باز یا open source ارائه شدهاند، بنابراین افراد زیادی در دنیا میتوانند روی آن کار کرده و باعث توسعه بیشتر کدها شوند. زبانی که برای آردوینو مورد استفاده قرار میگیرد ++C است اما در واقع با تسلط به زبان C هم شما میتوانید برای آردوینو کدنویسی کنید. تنها کافی است کمی در مورد شئ گرایی اطلاعات داشته باشید. هم چنین میتوانید کدهای مستقیم AVR را برای آردوینو نیز استفاده کنید.
متن باز بودن سخت افزار: بردها و ماژولهایی که برای آردوینو ارائه میشوند به صورت متن باز بوده و طراحان میتوانند طبق نیاز خودشان اقدام به طراحی مجدد بردها کرده و از آنها استفاده کنند. توجه کنید که این یک ویژگی فوق العاده است، چرا که شما طرحهای بسیاری در اختیار دارید که تا مراحل حرفهای توسعه داده شدهاند و اکنون شما میتوانید با الگو گرفتن از این طرحها، ایدههای جدید برای کار خودتان ارائه دهید و شامل یک هسته ی مرکزی میکروکنترلر از سری شرکت ATMEL میشود و در بعضی مدل ها از میکرو های پیشرفته تری هم مثل سری ARM در ان استفاده شده است.
اگر با برنامه نویسی میکروکنترلر ها آشنا باشید بطور مثال میدانید که شما باید برای ایجاد فرکانس دلخواهتون از یک کریستال خارجی استفاده کنید، یا مثلا برای ریختن برنامه ی مورد نظرتون از کامپیوتر بر روی میکرو، باید از پروگرامر استفاده کنید ، یا برای تغذیه ی آن، باید پایه های VCC را با سیم به یک منبع تغذیه وصل کنید و خیلی دردسر های دیگر، به زبان ساده آردوینو تمام خواسته های شما از میکروکنترلر را بر روی یک برد طراحی کرده و بدون دردرسر کافیست شما با یک کابل آن را به کامپیوتر وصل کنید تا برنامه را بر روی آن انتقال دهید.
اگر بخواهید میتوانید آن را به تغذیه وصل نکنید زیرا این قابلیت را دارد که با پورت USB و ولتاژ پورت کار کند و یا اینکه یک کریستال در طراحی آن هم تعبیه شده که نیاز شما به کلاک خارجی و ایجاد فرکانس دلخواهتان را به راحتی و بدون دردسر فراهم میکند.
جامعه بسیار بزرگ: افراد فعال در زمینه آردوینو در سراسر جهان هر روز بیشتر میشوند و این به معنای آن است که شما تنها نیستید. در هر زمینهای که به مشکل بخورید افراد زیادی هستند که میتوانند به شما کمک کنند. افرادی که به احتمال زیاد قبلا با مشکل شما مواجه شدهاند. همیشه بزرگ بودن جامعه یک صنعت باعث رشد سریعتر آن خواهد شد و به همین علت است که آردوینو با سرعت بالا در حال رشد کردن است.
پایه های آردوینو
پاور: هر میکروکنترلری به نیروی برق احتیاج دارد تا بتواند کار کند. این نیرو عموما توسط رابط usb به دستگاه و برد متصل میشود و عموما برق مورداستفاده در آن توسط آداپتور به برق مستقیم تبدیل میشود یا از باتری برای این کار استفاده میشود.
پینهای ورودی خروجی: این پینها بر روی برد قرار داده شده اند تا بتوانید به راحتی برد آردوینو را به دنیای بیرون ارتباط دهید. شما می توانید قطعات الکترونیکی، سنسور ها، ماژول ها و شیلد های آردوینو را به این پین ها متصل کنید. از پین های ورودی آنالوگ می توانید برای خواندن مقدار ولتاژ های آنالوگ استفاده کنید که خروجی بسیاری از سنسورها و قطعاتی مانند میکروفن است.
دکمهها: عموما دکمهی ریست برد بر روی آن تعبیه میشود تا بتوان به راحتی آن را خاموش و روشن کرد. این دکمه عملکردی مشابه دکمهی ریاستارت در کامپیوتر را دارد.
LEDها: بر روی برد های Arduino معمولا به صورت پیشفرض چندین LED قرار داده شده است که تعدادی از آنها وضعیت روشن و خاموش بودن و ارتباط سریال میکروکنترلر را نمایش می دهند و تعدادی قابل برنامه ریزی هستند و می توانید برای مصارف دلخواهتان از آنها استفاده کنید.
کریستال اسیلاتور: یک قطعه کوچک الکترونیکی معمولا با بدنه فلزی براق و کشیده بر روی اغلب برد های آردوینو قرار دارد. این قطعه پالس کلاک میکروکنترلر روی برد را روی مقدار خاصی مانند ۱۶Mhz 8Mhz یا … تنظیم میکند. هرچه فرکانس کریستال روی برد بالاتر باشد میکروکنترلر با سرعت بیشتری کار میکند. البته دقت داشته باشید صرفا با تعویض کریستال اسیلاتور میکروکنترلر نمی توان سرعت میکروکنترلر را بالا برد. همچنین اکثر میکروکنترلر های استفاده شده در برد های AVR دارای کریستال داخلی نیز هستند. برخی از کریستال های روی برد های AVR مربوط به قسمت های دیگر از جمله ارتباط سریال هستند و ممکن است ارتباطی به فرکانس میکروکنترلر نداشته باشند.
میکروکنترلر (مغز متفکر): معمولا بزرگترین تراشه سیاه رنگی که روی برد قرار داده شده میکروکنترلر (Microcontroller) آن برد است و به نحوی مغز مدار محسوب میشود. انواع مختلف میکروکنترلر در بردهای مختلف آردوینو وجود دارند و هر کدام برای مقاصد خاصی مورد استفاده قرار میگیرند .معمولا برنامهها و دادهها در این قسمت قرار میگیرند و اجرای برنامه و انجام پردازش بر روی ورودی ها و خروجی های برد آردوینو توسط میکروکنترلر انجام می شود. اغلب برد های آردوینو که مصرف گسترده ای دارند از میکروکنترلر های AVR استفاده می کنند اما برخی نیز دارای میکروکنترلر ARM هستند.
تنظیمکننده ولتاژ: رگولاتور یا تنظیم کننده ولتاژی که باید به میکروکنترلر و قسمت های مختلف برد آردوینو برسد را کنترل می کند و اجازه نمی دهند ولتاژ بیش از اندازه به قطعات روی برد آسیب وارد کند. البته این محافظت و تثبیت ولتاژ در محدوده ی خاصی که برای هر برد مشخص شده است کارآیی دارد و اگر ولتاژ از محدوده مشخص شده تجاوز کند احتمال آسیب دیدن تمام قسمت های برد وجود دارد.
انواع اردوینو
با اینکه آردوینو یک سخت افزار قابل تغییراست، اما باز هم آردوینو راضی به طراحی تنها یک مدل برد نشده است و در تصویر پایین میبیند که مدل های مختلفی دارد ، از معروف ترین و پراستفاده ترین آن که مدل Uno است تا مدل های دیگر مثل nano, یا سری mega که بزگترین بردهای آردوینو به شمار میروند. اگه بخواهیم اسم چند مدل دیگر را هم بگوییم میشود به مدل های معروف دیگری مثل Leonardo و Due و … اشاره کرد.
برد های سطح مبتدی آردوینو
برد های سطح پیشرفته ترآردوینو
موارد استفاده از آردوینو
- تایمرهای چراغ راهنمایی رانندگی
- شمارندههای به کار رفته در پیشخوانهای بانکی و شمارندههای کارت پارکینگ
- وسایل پزشکی (گسترهی زیادی از استفادهی آردوینو، در علم پزشکی و علیالخصوص مهندسی پزشکی است که امکان ایجاد انواع شرایط و دریافت دادههای مختلف و امکان آنالیز لحظهای را برای مهندسین فراهم میکند.)
- دستگاههای تهویه هوا (در این دستگاهها سنسورهایی دما و میزان رطوبت محیط را میخوانند و آن را به قسمت پردازشگر میفرستند و خروجی آن نیز دور موتور متغیر است تا بتواند دما و میزان رطوبت لازم را برای محیط فراهم کند.)
- سیستمهای امنیتی
- رباتیک (به طور کلی دنیای رباتیک دنیای استفاده از میکروکنترلرهاست و برنامهای که به آن داده میشود تعیینکنندهی عملکرد رباتها است. سیستمهای کنترلی نیز توسط آردوینو به راحتی برنامهنویسی میشوند.)
- هک
- بیوتکنولوژی و کشاورزی (تغییرات میزان رطوبت و دما و نور محیط گلخانهها و مواردی از این دست به راحتی توسط سیستمهای میکروکنترلر پیادهسازی میشوند.)
- ساعتهای هوشمند و گوشیها
- اینترنت اشیاء
- استفاده در پرینترهای سه بعدی
- استفاده در بردهای فلایت کنترل کواد کوپترها
- استفاده در روباتها
- مانیتورینگ صنایع به کمک اینترنت (استفاده از وب سرورها)
استفادههای آردوینو بسیار وسیع هستند و نمیتوان به همهی آنها اشاره کرد و روز به روز نیز به این استفادهها افزوده میشود.
شیلد آردوینو چیست؟
تا اینجا در مقاله آردوینو چیست با ماهیت کلی آردوینو آشنا شدید. اما شاید به نظرتان بردهای آردوینو به تنهایی ارزش و کاربرد چندانی در واقعیت نداشته باشند، چرا که شما به یک برد از قبل ساخته شده محدود هستید. اما باید بگوییم که اینطور نیست، برای این بردهای آماده تعداد زیادی برد کمکی هم ساخته شده که به آنها شیلد گفته میشوند، این بردها را میتوان از طریق پین هدرهای موجود در برد آردوینو روی آن نصب کرد و هر کدام برای مصرف خاصی ساخته شدهاند. مثلا میتوان به شیلدهای اترنت (برای اتصال به شبکه)، راه انداز موتور L298 و خیلی موارد دیگر نیز اشاره کرد. در واقع با نصب شیلد روی آردوینو قابلیت های بیشتری در اختیار شما است و میتوانید برای آن برنامه نوشته و عملیات مورد نظر خودتان را انجام دهید.
نرم افزار :
1. bootloader برنامه ای است که ما بر روی میکروکنترلر بردمان داریم تا ارتباط بین برد و نرم افزار آردوینو (IDE آردوینو) را که کد هایمان را در آن مینویسیم برایمان انجام دهد.
- IDE Arduino که تمامی کد ها را در آن مینویسیم و کامپایلر ما محسوب میشود و باید از بخش software سایت آردوینو آن را دانلود کنیم.
بوت لودر چیست؟
آردوینو نیازی به پروگرامر ندارد و تنها با یک کابل USB به لپ تاپ وصل شده و پروگرام خواهد شد. اما چطور این امکان فراهم شده است؟ این امکان به کمک بوت لودر فراهم شده است.
در واقع بوت لودر برنامهای است که بر روی حافظه فلش میکروکنترلر ذخیره شده و به شما اجازه پروگرام کردن میکروکنترلر را از طریق پورت سریال میدهد. طبیعتا برای اتصال پورت سریال به کامپیوتر بهتر است از مبدل USB به TTL استفاده شود تا بتوانیم با یک کابل USB ساده آردوینو را پروگرام کنیم. پس توجه داشته باشید که اگر بوت لودر را به روشی از روی میکروکنترلر حذف کنید دیگر از طریق USB نمیتوانید آن را پروگرام کنید.
اینجا یک نکته جالب به ذهن میرسد. اگر بخواهیم یک میکروکنترلر را به آردوینو تبدیل کنیم کافی است ابتدا یک برنامه بوت لودر برای آن نوشته و روی آن پروگرام کنیم و سپس برد دلخواه خودمان را طراحی کنیم. حالا این برد جدید میتواند از کتابخانههای قدرتمند آردوینو استفاده کند.