چند وقت پیش یک برقکار آوردم خونه تا مقداری کارهای سیم کشی رو انجام بده. بعد اینکه شیرین کاریهای من رو روی کلیدهای برق خونه دید خیلی مشتاق شد که از این کارها انجام بده و گفت براش به طور خلاصه این چیزها رو توضیح بدم. الان با وجود آردوینو و سایر بوردهای وابسته ساختن یک دستگاه هوشمند خیلی سخت نیست و لازم نیست از امحا و احشام میکروکنترولر و فیوز بیت و این چیزها سر در بیارین. تو این نوشته سعی میکنم به سادهترین روش ممکن مفاهیم اولیه کار با آردوینو رو توضیح بدم.
اگه یادتون بیاد دستگاههای قدیمی مثل الان پیچیده نبودند. مثلا ماشینهای لباسشویی سطلی قدیمی اوج تکنولوژی که داشتند یه کلید تایمردار مکانیکی بود که یک فنر داشت و با چرخوندنش تیک تیک صدا میکرد و در زمان خاص ماشین رو خاموش میکرد. امروزه همه ماشینهای لباسشویی حداقل چندین مدل برنامه شستشو دارند. مدیریت اینهمه پیچیدهگی کار یک کلید مکانیکی تایمردار نیست و نیاز به یک برنامه هوشمند داره. به طبع انتظار ندارین که به هر ماشین لباسشویی یک کیس یا لپ تاپ وصل کنند :) اینجاس که تراشههای هوشمند وارد صحنه میشوند. (مقداری آهنگ هیجانی)
میکروکنترلرها تراشههای کوچک و جمع و جور و گوگولی مگولی هستند که همه چیزهای لازم برای ساختن یک وسیله هوشمند را در خودشان دارند. مهمترین مزیت آنها اینه که زبون حالیشون میشه! (البته نه زبون آدمیزاد) یعنی میتونید از قبل بهش بگید چیکار کنه. مثلا میتونید بهش بگید برای لباسهای ضخیم موتور رو با دور آهسته بچرخونه یا برای ملافهها اینجوری موتور بچرخه که چروک نشوند.
ساختن و راهاندازی یک مدار ساده با میکروکنترلر کار سادهای نیست و علاوه بر ساختن سخت افزار باید تنظیمات و نحوه پروگرام کردن و کلی چیز میز دیگه رو بدونید. یک شرکتی در یه گوشهای از ایتالیا دید حل این پیچیدگیها برای یه دانشآموز کار راحتی نیست، برای همین بوردهایی ساخت که به آردوینو معروف شدند. تمامی آنچه برای راهاندازی یک میکروکنترلر نیاز دارین توی این بوردها هست (اعم از پروگرامر و نوسان ساز و...) برای همین شما درگیر ساخت سخت افزار نمیشید و تنها با کمی دونستن برنامه نویسی میتونید اونها رو پروگرام کرده و استفاده کنید.
عکس بالا دل و روده یکی از بوردهای Ardunio معروف به UNO رو نشون میده. قسمتی که با رنگ سبز مشخص شده ورودی و خروجیهای دیجیتال هستند. هر کدام از این پینها یک شماره دارند که در برنامه نویسی با این شماره به آنها مراجعه میکنیم. این پینها دو وضعیت دارند: صفر و یک. بله همین صفر و یکی که متخصصین کامپیوتر اینهمه باهاش پز میدن!
بذارین اینو با یک مثال روشن کنم. این شکل رو ببینید:
اینجا یک led رو با یک مقاومت به پین شماره 7 وصل کردم. خروجی پینها در حالت 1 حدودا 3 ولت و در حالت 0 صفر ولت هست. پس یه مقاومت لازمه که led سالم بمونه. این پایه 7 اینجا در نقش کلید عمل میکنه یعنی گوش به فرمان ما هست (البته گوش به فرمان کد ما) و با یه اشاره ما میتونه led رو روشن یا خاموش کنه.
تو این عکس از یک پین دیگه هم استفاده کردم. یک کلید رو به پین 9 وصل کردم. اینجا پین به جای اینکه خروجی باشه برعکسه به عنوان ورودی عمل میکنه. یعنی به گوش به فرمان دست ماست و با فشرده شدن کلید مقدارش عوض میشه و ما توی کد اینو میفهمیم و بر اساس این رویداد یه کاری انجام میدیم.
حتما با خودتون میگید که ساختن همچین چیزی دیگه آردینو و این قرتی بازیا لازم نداره! بله کاملا درسته. هدف من این بود که با پایههای ورودی و خروجی دیجیتال آشنا بشید. به این پایهها به اختصار IO هم میگن. اینم بگم که این اتفاقات باید همراه با کد نویسی باشه. یعنی بدون نوشتن کد این وسیله تره هم برای شما خورد نمیکنه چه برسه به روشن و خاموش کردن led.
چون این مطلب کمی طولانی شد کد نویسی رو میذارم در مطلب بعدی توضیح میدم. اگر جایی بد توضیح دادم یا چیزی جا اتفاده تو کامنتها بگید تا بیشتر توضیح بدم و از شما یاد بگیرم.