زمانی برنامه نویسی برای شما جذاب تر خواهد شد که بتوانید نتیجه تفکرات و الگوریتمهای خود را در دنیای واقعی مشاهده کنید. تصور کنید با نزدیک شدن به درب خانه بجای استفاده از کلید یا زنگ زدن، درب منزل شما بطور خودکار باز شود. تصور کنید بتوانید شیشه های ماشین خود را با استفاده از فرمان های صوتی خود بالا و پایین ببرید. تصور کنید بتوانید صفحه کیلومتر موتور ساده خود را تبدیل به صفحه ای تمام دیجیتال کنید که ویژگی های منحصربفردی دارد. تصور کنید درب اتاق شما تنها با استفاده از اثر انگشت شما باز شود. تصور کنید بتوانید کولر خانه خود را از بیرون از خانه خود خاموش و روشن کنید و خیلی تصورات مدرن و زیبای دیگه... .
اگر راه را بدانید، برای شما به عنوان یک برنامه نویس، تحقق این تصورات بسیار ساده خواهد بود.
همونطور که قبلاً گفته بودم، قصد داریم در آیس کت علاوه بر مسائل کامپیوتری، به مسائل الکترونیکی نیز بپردازیم و برای اولین پست قصد داریم شما را با میکروکنترلرها و میکروپروسسورها آشنا کنیم.
میکروپروسسور یا ریزپردازنده به چیپهای الکترونیکی گفته میشود که از کنارهم قرار گرفتن تعداد بسیار زیادی ترانزیستور، دیود و مقاومتهای الکتریکی ساخته شدهاند و قادر به انجام محاسبات ریاضی (مثل جمع و تفریق) و منطقی (مثل OR و AND) هستند. میکروپروسسورها قلب اصلی کامپیوترها و لپ تاپهای ما هستند و ما آنها را بیشتر به اسم CPU میشناسیم.
یک میکروپروسسور عموماً در داخل خود دارای RAM و ROM نیست و پایههای ورودی و خروجی ندارد، بلکه از پایههای خود به عنوان یک باس برای دسترسی و ارتباط با قطعات جانبی نظیر RAM و ROM و دستگاههای ورودی و خروجی مانند کارت صدا، کیبورد و ... استفاده میکند. به همین دلیل یک میکروپروسسور نمیتواند به تنهایی یک LED یا موتور را روشن کند و برای اینکار نیازمند سختافزاری جداگانه است.
از طرف دیگر میکروکنترلرها در واقع پکیجی از میکروپروسسور، RAM، ROM و تعدادی پایه ورودی و خروجی در قالب یک IC است. باس این قطعات در داخل IC بوده و طراح برد کنترلی بر روی آن ندارد، همچنین به دلیل SoC بودن امکان افزایش RAM، ROM و حتی تعداد پایههای ورودی و خروجی آن وجود ندارد. (کاری به ICهای I/O Expantion نداریم)
سرعت میکروکنترلرها معمولاً کمتر از 200 مگاهرتز است و به دلیل محدود بودن مقدار RAM و ROM آن، به هنگام برنامهنویسی برای آن باید به شدت مقدار RAM و ROM آنرا مد نظر داشته باشیم، کاری که معمولاً به هنگام برنامهنویسی برای کامپیوتر (میکروپروسسورها) نمیکنیم.
اما همه اینها باعث نمیشود که ما از میکروکنترلرها استفاده نکنیم، برعکس به دلیل پایین بودن قیمت آن (یک میکروکنترلر AVR ATMega328 تنها 6000 تومان قیمت دارد) میکروکنترلرها در سراسر دنیا در بین علاقهمندان به الکترونیک برای ساخت پروژههای جالب بسیار مورد استفاده قرار میگیرد. میکروکنترلرها کوچک هستند، مصرف برق کمی دارند و در بسیاری از لوازم دیجیتالی اطراف ما وجود دارند. (مانند کنترل تلویزیون، دستگاه پخش موسیقی و ...)
میکروکنترلرها با استفاده از سنسورها میتوانند محیط اطراف خود را Sense کنند و با توجه به آن واکنش نشان دهند، بطور مثال اگر باران میآید، بطور خودکار برف پاککن خودروی شما را روشن کند و با شدت گرفتن باران سرعت برف پاککن هم سریعتر شود.
حتی میتوانید روباتی بسازید که به هنگام حرکت فاصله خود با اجسام را تشخیص داده و از برخورد با اجسام اجتناب کند.
در پستهای آینده به معرفی بیشتر میکروکنترلرها، نحوه برنامهنویسی و چگونگی ساخت پروژههای جالب بوسیله آنها خواهیم پرداخت.
من قصد داشتم شروع کار با الکترونیک رو از آردویینو شروع کنم. به نظر شما انتخاب درستیه؟