درست است که برای یادگیری هر موضوعی بهتر است که همت کنیم و از اولین شنبهی پیشرو آستینها را بالا بزنیم و شروع به یادگیری کنیم. اما در مورد میکروکنترلر چنین نیست و باید شنبههای زیادی را صبر کرد.
شما قبل از اینکه بخواهید میکروکنترلر یاد بگیرید، باید به خوبی با منطق دیجیتال آشنا باشید. یعنی اینکه نقطهی شروع کارتان از همان جبر بول شروع شده باشد و با شناخت گیتهای دیجیتال ادامه پیدا کند و در نهایت به یک شناخت نسبیِ طراحی انواع مدارات دیجیتال با استفاده از همین گیتها رسیده باشید.
حال اگر شما این مراحل را نگذراندهاید، بهتر است که در همینجا از ادامهی خواندن این مقاله منصرف شوید و ابتدا به خوبی مواردی که در بالا ذکر شد را فرا بگیرید. چون در غیر اینصورت یا شما کلا از ادامهی راه منصرف خواهید شد و یا به همین حرف الان ما میرسید و برمیگردید و از ابتدا موارد بالا را یاد میگیرید.
راستی تا یادم نرفت این را هم بگویم که دانستن یک زبان برنامهنویسی مانند زبان C هم یکی دیگر از پیشنیازهای یادگیری میکروکنترلر است.
پس موارد بالا را به خوبی یاد بگیرید چون که مشخصا در رابطه با هیچ کدام از موضوعات بالا در این مجموعه آموزشی صحبت نخواهد شد.
چطور میکروکنترلر یاد بگیرم؟
یادگیری میکروکنترلر عموما شبیه یادگیری همان مفاهیم دیجیتالی بود که باید تا اینجا بلد باشید. یعنی ابتدا یکی سری اسامی میدانستید که مفهومشان را نمیدانستید و برای یادگیری آنها کتاب میخواندید، مقاله میخواندید، کلاس میرفتید و تمرین میکردید. اما در میکروکنترلر علاوه بر مواردی که ذکر گردید دو منبع دیگر هم برای یادگیری پیش روی شماست.
یکی از دو منبع که اصلیترین و قابل استنادترین منبع است و در اصل مرجعی برای یادگیری میکروکنترلر است، مستندات خود شرکت سازندهی میکروکنترلر میباشد. اما در ابتدای کار ارتباط برقرار کردن با این منابع کمی مشکل است، پس به همین خاطر منبع دوم برای یادگیری شما را معرفی خواهیم کرد.
منبع دیگر مقالاتی است که قرار است ما در این مجموعه آموزشی در اختیار شما قرار بدهیم.
کدام میکروکنترلر را یاد بگیرم؟
از آنجایی که نحوهی کارکرد همهی میکروکنترلرها بر یک سری اصول مشترک برقرار است، پس یادگیری هر نوع میکروکنترلری میتواند شما را با این حوزه آشنا کند. اما یکی سری پارامتر دیگر نیز وجود دارد که ما با توجه به این پارامترها یکی از این میکروکنترلرها را انتخاب میکنیم.
سه پارامتر زیر از مهمترین پارامترها برای انتخاب یک میکروکنترلر است:
- بازار کار
- به روز بودن
- در دسترس بودن منابع آموزشی و ابزارها
میماند مورد سوم، یعنی در دسترس بودن منابع آموزشی و ابزراها. همین مورد ما را بر این داشت که میکروکنترلرهای شرکت ST را از بین این همه میکروکنترلر مبتنی بر معماری ARM برگزینیم.
شرکت ST شاید بهترین منابع، مستندات و آموزشها را نداشته باشد، اما به جرات میتوان گفت که یک دلیل برتری این شرکت، گستردگی و سادگی همین مستندات و ابزارهای توسعه است.
یادگیری میکروکنترلرهای ST در این مجموعه آموزشی چگونه و با چه ابزارهایی خواهدبود؟
همانطور که گفتیم روشها و ابزارهای زیادی برای کار با میکروکنترلرهای این شرکت وجود دارد، اما ما با توجه به اینکه شما در مسیر یادگیری این نوع میکروکنترلرها هستید و همچنین با سنجیدن یک سری پارامتر دیگر که به مرور با آنها آشنا خواهید شد، به این نتیجه رسیدیم که با استفاده از ابزارهایی که در ادامه معرفی خواهیم کرد، این مجموعه آموزش را پیش ببریم.
ابزار اول نرمافزار STM32CubeMX است که یک محیط گرافیکی زیبا و کاربر پسند برای ایجاد و پیکرهبندی اولیه پروژه است.
ابزار دوم توابع LL است که قرار است ما در این مجموعه آموزشی با استفاده از این توابع برنامهنویسی کنیم. اکنون از توضیح اینکه این توابع چه هستند صرفنظر میکنیم و در مقالات این مجموعه آموزشی به تشریح کامل این توابع خواهیم پرداخت.
توابع دیگری مانند توابع LL نیز برای توسعهی کد وجود دارد که این توابع را هم در آینده بررسی خواهیم کرد.
توجه داشته باشید اکنون که این مقاله در حال نگارش است، هیچ آموزش فارسی زبانی در ایران برای راهاندازی میکروکنترلرهای STM32 با استفاده از توابع LL ارائه نشده است. بر همین اساس تصمیم گرفته شد تا آموزشی کاربردی و مطابق با نیاز، تدوین و به صورت رایگان در اختیار علاقهمندان قرار داده شود.
ابزار سوم که یکی از مهمترین ابزارها برای کار با میکروکنترلرهاست و معمولا افراد وقت زیادی را درگیر این موضوع هستند که چه ابزرای را انتخاب بکنند، IDE و کامپایلر است. ما در این آموزش از IDE و کامپایلر Keil استفاده خواهیم کرد و گاها هم برای آشنایی بیشتر شما، از نرمافزار STMCubeIDE که در زمان نگارش این مقاله حدود یک سالی از معرفی آن توسط شرکت ST میگذرد، استفاده خواهیم کرد.
نرمافزار STMCubeIDE از IDE محبوب Eclipse و کامپایلر GCC استفاده میکند. خوبی این نرمافزار این است که علاوه بر اینکه Eclipse IDE و کامپایلر GCC را تحت عنوان یک نرمافزار مجتمع ارائه میدهد، نرمافزار STM32CubeMX که برای پیکرهبندی اولیه استفاده میشد را هم در همین پک نرمافزاری گنجانده است. یعنی ما تنها با یک نرمافزار هم پیکرهبندی اولیه را انجام میدهیم، هم کد یا همان برنامه را ادیت و هم کامپایل میکنیم.
در این مجموعه آموزشی هر پروژه به صورت کاملا عملی بر روی برد تست خواهد شد و همچنین در صورت نیاز به عنوان یک کاربرد سختافزارهای جانبی را با استفاده از امکانات میکروکنترلر راهاندازی خواهیم کرد.