میکروکنترلرها (Microcontrollers) در دستگاههای CNC نقش مغز متفکر را ایفا میکنند و وظیفه کنترل دقیق حرکتها و عملیات دستگاه را بر عهده دارند. این قطعات الکترونیکی کوچک، شامل یک واحد پردازش مرکزی (CPU)، حافظه و پورتهای ورودی/خروجی هستند و با اجرای برنامههای کنترلی، دستورات لازم برای حرکت محورها، کنترل سرعت موتورها، و سایر عملکردهای CNC را صادر میکنند.
میکروکنترلر (Microcontroller) در اصل یک کامپیوتر بسیار کوچک است که با جمعآوری دیگر قطعات الکترونیکی در یک فضای کوچک، اجزای یک کامپیوتر ساده را فراهم می کند.
چرا حس کردیم به میکروکنترلرها نیاز داریم؟
این روزها در علم الکترونیک برای کنترل سیستمها (از ابعاد کوچک گرفته تا بزرگ) از مدارهای مجتمع (IC) یا تراشهها استفاده میشود. به بیان ساده یک تراشه، بستری از مجموعه قطعات الکترونیک (مانند ترانزیستور، دیود، خازن، مقاومت و سلف) است که به جای ساخته شدن در ابعاد بزرگ چند میلیمتری و چند سانتیمتری، تا حد ممکن فشرده شده و در کنار هم جای گرفتهاند. به همین دلیل است که به این قطعات فشرده، مدار مجتمع، IC یا Integrated Circuits میگویند.
اما اینکه یک مدار مجتمع واحدی داشته باشد که با انجام عملیات محاسباتی بتواند تصمیمگیری کرده و در نقش یک کنترلکننده، به عنوان مغز یک سیستم عمل کند، ایدهای بود که اولین محصولات پردازشی بر اساس آن شکل گرفتند.
پیش از ظهور استفاده از تراشههای پردازشی، لامپهای خلاء این وظیفه را بر عهده داشتند ولی انبوه معایبی که در کار کردن با لامپهای خلاء وجود دارد، شرایط را به نحوی تغییر داد تا در اواخر دهه 1960، مهندسان، هر چه بیشتر به سمت استفاده از ریزپردازندهها بروند؛ قطعاتی که در آن زمان به صورت یک آرایه چند تراشهای توسعه مییافتند. این قطعات در داخل خود علاوه بر یک واحد پردازشی، واحدهای دیگری را نیز جای داده بودند که با فناوری ساخت فشرده MOS LSI، امکان تحقق رویای یک کنترلکننده بسیار کوچک یا همان میکروکنترلر را فراهم میکردند
تراشه ریزپردازشگر i4004؛ اولین میکروپروسسور تاریخ در سال 1971
اما از دید بسیاری از صاحبنظران تاریخ علم الکترونیک، اولین اقدام واقعی و قابل استفاده مهندسان بر استفاده از میکروپروسسورها جهت ساخت دستگاههایی غیر از کامپیوترها در دنیا در سال 1971 اتفاق افتاد. ساختار مذکور بر پایه تراشه Intel 4004 یا همان i4004 ساخته شد که یک پردازنده 4 بیتی بود. داستان توسعه این طرح نیز در نوع خود جالب است. یک شرکت ژاپنی به نام BUSICOM به دنبال روشی بود که بتواند مدارهای پردازشی با یک تراشه در اختیار داشته باشد و از آنها در دل ماشینحسابهای پیشرفته خود (مانند مدل BUSICOM 141-BCF) استفاده کند.
انواع میکروکنترلر
اغلب میکروکنترلرها ویژگی های مشترک زیادی دارند زیرا همه ی آنها دارای یک حافظه درایو، پایه های ورودی و خروجی و توان مصرفی کم هستند. اما در جزِئیاتی مانند تعداد پایه ها ، ابعاد، قیمت تمام شده و … نیز با هم متفاوت اند.
انواع میکروکنترلرها براساس نوع کارکرد و مداری که در آن ها مورد استفاده قرار میگیرند به گروه زیر دسته بندی می شوند.
- میکروکنترلرهای AVR
- میکروکنترلرهای ARM
- میکروکنترلر های x-mega
- میکروکنترلرهای PIC
- میکروکنترلرهای 8051
همچنین میکروکنترلرها براساس حافظه، معماری، بیت ها و مجموعه دستورالعمل ها به دسته بندی های مختلفی تقسیم می شوند.
البته پیشنهاد این است که در میان انواع میکروکنترلر، تا حد امکان از میکروکنترلرهای AVR استفاده نمایید. مدلهای میکرو کنترلر AVR توسط شرکت Atmel روانه بازار شدند. این مدل از میکروکنترلرها از معماری RISK و CISK برای تولید آنها استفاده شده است. برخلاف میکروکنترلر ARM ، قیمت مناسبی دارند و به راحتی در بازار یافت می شوند!
کاربرد میکروکنترلرها
همانطور که اشاره شد، میکروکنترلر در اصل یک رایانه بسیار کوچک است که در هر پروژه و دستگاهی به طور همزمان نقش قلب و مغز مجموعه را ایفا میکند! بنابراین در حال حاضر در بیشتر لوازم خانگی و صنعتی مانند سیستم کنترل روشنایی، سیستم کنترل دما و آتش، سیستم های کنترل فرمان که در آنها اعمالی همچون اندازه گیری، ذخیرهسازی، محاسبه، کنترل و نمایش اطلاعات انجام می شود، از میکروکنترلر استفاده شده است.
اجزای مختلف میکروکنترلر چیست؟
اینکه ساختار و اجزای میکروکنترلرها چگونه است در ادامه به آن می پردازیم.
• حافظه :
هر میکرو مقدار مشخصی از ROM، RAM و فلش ساخته می شود و تمام برنامهها و دادهها میکروکنترلر در این واحد ذخیره می شوند. پردازنده (CPU) معمولا از این واحد برای ذخیرهسازی و دسترسی به اطلاعات استفاده میکند!
• ورودی و خروجی ها :
پورتهای ورودی و خروجی(I/O) در اصل راه ارتباطی هستند که تمامی میکروکنترلرها از آنها برای اتصال به وسایل جانبی، دریافت ورودی و نمایش خروجی استفاده می کنند!
• تایمر:
برای تولید پالس، اندازهگیری فرکانس، ساخت نوسانات و … هر میکروکنترلر به یک یا چند تایمر (شمارنده) نیاز دارد. تا با کمک آنها، عملیات زمانبندی و شمارش را کنترل نماید!
• مبدل آنالوگ به دیجیتال (ADC) و مبدل دیجیتال به آنالوگ (DCA) :
بیشتر کمیت های اطراف ما که برای اندازه گیری، کنترل و شبیه سازی از آنها استفاده میکنیم، آنالوگ و پیوسته هستند اما میکروکنترلر تنها مقادیر دیجیتال را درک میکند!
در نتیجه ما برای ایجاد یک زبان مشترک بین میکرو و کمیت هایی مانند گرما، نور و… از مبدل های ADC و DCA کمک می گیریم.کارایی و سرعت میکروکنترلرها با میکروپروسسورها بسیار متفاوت هستند، در ادامه به تفاوت آن ها می پردازیم.
نقش میکروکنترلر در CNC:
• پردازش دستورات:
میکروکنترلر دستورات دریافتی از کنترلر اصلی (مانند کامپیوتر یا برد کنترل) را تفسیر و به زبان قابل فهم برای اجزای مکانیکی دستگاه تبدیل میکند.
• کنترل حرکت:
با استفاده از موتورهای پلهای یا سروو موتورها، میکروکنترلر حرکت دقیق محورهای دستگاه CNC را کنترل میکند. این حرکتها شامل جابجایی در سه بعد (X، Y، Z) و همچنین چرخش قطعات است.
• مدیریت ورودی/خروجی:
میکروکنترلر وظیفه دریافت اطلاعات از سنسورها (مانند سنسورهای موقعیت) و ارسال سیگنالهای کنترلی به عملگرها (مانند موتورها و شیرهای برقی) را بر عهده دارد.
• تنظیم سرعت و شتاب:
میکروکنترلر سرعت و شتاب حرکتها را بر اساس پارامترهای تعریف شده در برنامه کنترل میکند تا از دقت و کیفیت بالای کار اطمینان حاصل شود.
• کنترل سایر اجزا:
میکروکنترلر میتواند وظایف دیگری مانند کنترل دور موتور اسپیندل، روشن/خاموش کردن لیزر، و کنترل سیستم خنککاری را نیز بر عهده داشته باشد.
انواع میکروکنترلرها در CNC:
• میکروکنترلرهای AVR:
این نوع میکروکنترلرها به دلیل سادگی، قیمت مناسب و در دسترس بودن، در بسیاری از دستگاههای CNC خانگی و کوچک استفاده میشوند.
• میکروکنترلرهای ARM:
این نوع میکروکنترلرها به دلیل قدرت پردازش بالا و قابلیتهای پیشرفته، در دستگاههای CNC صنعتی و پیشرفته به کار میروند.
• میکروکنترلرهای PIC:
این نوع میکروکنترلرها نیز در برخی از دستگاههای CNC مورد استفاده قرار میگیرند.
نرمافزارهای مرتبط با میکروکنترلرها در CNC:
• آردوینو (Arduino):
یک پلتفرم متنباز و محبوب برای برنامهنویسی میکروکنترلرها است که به ویژه برای ساخت دستگاههای CNC خانگی استفاده میشود.
• GRBL:
یک فریمور متنباز برای کنترل دستگاههای CNC است که بر روی میکروکنترلرهای AVR و ARM قابل اجرا است.
• نرمافزارهای CAD/CAM:
این نرمافزارها برای طراحی قطعات و تولید کد G (که توسط میکروکنترلر تفسیر میشود) استفاده میشوند.
مزایای استفاده از میکروکنترلر در CNC:
• دقت بالا:
میکروکنترلرها با دقت و سرعت بالا، حرکتهای دقیق و پیچیده را کنترل میکنند.
• انعطافپذیری:
با تغییر برنامه میکروکنترلر، میتوان دستگاه CNC را برای انجام وظایف مختلف پیکربندی کرد.
• هزینه پایین:
میکروکنترلرها در مقایسه با کنترلرهای مبتنی بر کامپیوتر، هزینه کمتری دارند.
• اندازه کوچک:
میکروکنترلرها فضای کمی را اشغال میکنند و به راحتی در دستگاههای CNC تعبیه میشوند.
در نهایت، میکروکنترلرها نقش حیاتی در عملکرد صحیح و کارآمد دستگاههای CNC ایفا میکنند و با پیشرفت تکنولوژی، شاهد استفاده بیشتر از این قطعات در صنعت خواهیم بود.
تفاوت بین میکروکنترلر و میکروپروسسور
میکروپروسسور در اصل همان CPU یا مغز میکروکنترلر است که تمام عملیات محاسباتی و منطقی روی داده ها توسط آن انجام می شود. اصلی ترین تفاوت بین میکروکنترلر و میکروپروسسور نیز در طریقه ی اتصال آنها به تجهیزات جانبی خارجی است.
زیرا همانطور که در تصویر زیر مشاهده می کنید تمام وسایل جانبی به کاربرده شده در میکروکنترلر، به صورت واحد در تراشه، در کنار هم فشرده شده اند، اما برای اتصال همین تجهیزات به میکروپروسسور باید از نمونه های بزرگتر آنها استفاده نماییم.
در نتیجه بهتر است تا حد امکان از میکروکنترلر به جای میکروپروسسور، استفاده کنیم. زیرا ساخت هر دستگاهی با میکروکنترلر بسیار ارزانتر است. علاوه بر این ، در ساخت تجهیزات با میکروکنترلر شما به فضای کمتری نیز نیاز دارید!
تفاوت میکروکنترلر و PLC
یک کنترلکننده منطقی قابل برنامهریزی (PLC) مانند یک ریزکنترلگر است، اما بزرگتر، سریعتر و قابل اعتمادتر است. PLCها اجزای بسیار پیچیدهتری هستند که برای طیف وسیعی از برنامههای کاربردی با کارایی بالا مناسب هستند. از سوی دیگر، میکروکنترلرها در مقایسه ساده هستند و برای مصارف کوچکتر و کممصرف ایدهآل هستند. در دنیای اتوماسیون و کنترل، دو جزء اصلی که نقش مهمی ایفا میکنند، میکروکنترلرها و کنترلکنندههای منطق برنامهپذیر (PLC) هستند. هرچند هر دو برای کنترل فرآیندها و ماشینآلات استفاده میشوند، اما تفاوتهای بنیادینی میان آنها وجود دارد.
زبان برنامه نویسی میکروکنترلر
همانطور که میدانید میکروکنترلر تنها مقادیر دیجیتال را درک می کند، در نتیجه برای برقراری ارتباط با میکروکنترلر باید با زبان باینری (01010) با آنها صحبت کنیم.
بنابراین باید یک مترجم برای تبدیل دستورها به کد های باینری فراهم کنیم! این مترجم ها همان کامپایلر ها هستند که زبان های مختلف را به زبان ماشین تبدیل میکنند. در کشور ما کامپایلر های Bascom AVR ، Code vision AVR و Atmel Studio بیشترین کاربرد را دارند.
برای برنامه نویسی میکروکنترلرها اغلب از زبان برنامه نویسی C ، Assembly، Basic و ++ C استفاده می شود. البته پیشنهاد این است که برای شروع کار با میکروکنترلرها، بهتر است از زبان ساده C استفاده کنیم!
آزمایش میکروکنترلرها
احتمالا زمانی که شما به دنبال تجهیزات لازم برای کار با میکروکنترلر ها و مدارات الکترونیکی بوده اید، با انواع پروگرامر آشنا شده اید. اما فراموش نکنید که این ابزار تنها زمان ریختن برنامه بر روی IC ها کارایی دارند! و بعد از آن شما به تجهیزاتی مانند: مولتی متر، اسیلوسکوپ، فانکشن ژنراتور و … برای اندازه گیری و تست مدارات نیاز دارید.
در آزمایش مدارهای الکترونیکی طراحی شده با ریزپردازنده ها، گاهی نیاز داریم که سیگنال هایی با شکل موج متفاوت به یک قطعه اعمال کنیم. از این رو، به دستگاهی بنام سیگنال ژنراتور نیاز داریم که از آن برای تولید سیگنال هایی با دامنه، فرکانس و … استفاده می شود.
معمولا در مدارهای آنالوگ برای مشاهده حالت های مختلف کار مدار، پاسخ فرکانسی و… از اسیلوسکوپ استفاده می شود. البته اسیلوسکوپ ها ی دیجیتال مجهز به لاجیک آنالایزر در مدارهای دیجیتالی که دارای میکرو هستند کاربرد بیشتری دارند.