یکی از واحدهایی که بچههای الکترونیک (و البته سایر رشتههای مشابه) باید پاس کنند، میکروکنترلر است. موضوعی که بسیار در صنعت کاربردی است. متاسفانه اغلب، این درس -حتی در دانشگاههای سطح اول کشور- بسیار ضعیف ارائه میشود و نگاه کاربردی در ارائه آن وجود ندارد. در حالیکه حرفهای شدن -به معنای واقعی کلمه- در برنامهنویسی میکروکنترلرها، میتواند ارزش و درآمد خوبی برای فرد ایجاد کند.
این روزها اغلب وقت کاری من، صرف برنامهنویسی برای میکروکنترلرهای STM32 میشود. دوست ندارم وارد بحثهای بیهوده و پوچ بر سر برتری میکروکنترلرها یا ابزارهای مختلف شوم.
“در پاسخ به دوستانی که برای انتخاب مسیر خود در کار کردن با خانواده های مختلف میکروکنترلر و ابزارهای برنامه نویسی سردرگم هستند، معمولا این پاسخ ارائه میشود که برای رهایی از سردرگمی و فراهم شدن امکان قضاوت بهتر، یک “با” را از سوال ذهنی خود حذف کنید. اگر بجای این سوال که “باید با چه کار کنم؟” بیشتر روی این سوال متمرکز شویم که “باید چکار کنم؟” آنگاه با مشخص شدن هدف و کار مورد نظر برای انجام دادن، ابزارهای سخت افزاری و نرم افزاری به شکل مشخص تری قابل انتخاب خواهند بود. به عبارت دیگر، در صورتی که نیاز جاری را بشناسیم بهتر میتوانیم ابزار مناسب را برای رفع این نیاز انتخاب کنیم. ” استاد اوژن کینژاد
اما قصد دارم از چیزهایی که در این مسیر تاکنون یادگرفتهام، بنویسم. در مسیر بیان آموختههایم تازه کار هستم. هرچند تلاشم را برای انتقال هرچه بهتر مفاهیم خواهم کرد. با این وجود نظرات و فیدبکهایی که شما به من میدهید میتواند این مسیر را هموارتر و ما را به هدف نزدیکتر کند.
قبل از توضیح بیشتر در خصوص این دوره باید بگویم که فرض بر این است شما با مفاهیم ابتداییِ زبان سی آشنایی کافی دارید. در غیر اینصورت بهتر است ابتدا سراغ یادگیری این مفاهیم بروید و بعد که کمی راه افتادید، میتوانید در کنار افزایش دانش برنامهنویسی خود، شروع به یادگیری این دوره و همچنین به کار بردن این آموختهها بکنید. با این کار شما در کنار دانش، مهارت برنامهنویسیتان نیز بالا میرود و یادگیری برایتان به مراتب لذت بخشتر خواهد شد. اگر دوست دارید بدونید که من چه جوری زبان سی رو یاد گرفتم، پیشنهاد میکنم نگاهی به این پست بندازید.
برای شروع مباحث این دوره سعی میکنم از مقدماتیترین و ساده ترین مباحث میکروکنترلر شروع کنم و کم کم به مباحث پیشرفتهتر آن برسیم. قطعاً آموزش میکروکنترلر بدون انجام مثال چیز مضحکی خواهد بود. از این رو در بیان هر مبحث سعی شده از یک مثال بسیار ساده استفاده شود. اما علاوه بر این مثالهای ساده، قصد دارم این مثالها تکمیل کنندهی یک پروژه نسبتاً جالب -پیادهسازی بازی snake- هم باشد. در همان پستی که پاراگراف قبل به آن اشاره کردم، در خصوص علت انتخاب این پروژه توضیحاتی دادم.
میکروی مورد استفاده در آموزشها STM32F030F4P6 خواهد بود. دو دلیل عمده برای انتخاب این میکرو داشتم. اول اینکه میکرویی بسیار ارزان و با امکانات فوق العاده با توجه به قیمتش میباشد. در بسیاری از کاربردها همین میکرو میتواند جوابگو مناسبی برای محصول تولیدی ما باشد. علاوه بر این ممکن است بسیاری از افراد از جمله دانشجویان، بخواهند با حداقل هزینه، آموزش عملی میکروکنترلر را آغاز کنند. دومین دلیلم هم این بود که امکانات و محدودیتهای حداقلی این میکرو ما را مجبور میکند تا بهینهتر از منابع میکرو استفاده کنیم و این خود میتواند موجب یادگیری نکات بیشتر شود.
برای کار با این میکرو، ما به یک برد الکترونیکی نیاز داریم که STM32F030F4P6 بر رویش قرار داشته باشد. نمونه خیلی خوب مینی بردهای STM32F030F4P6 (تصویر بالا) میباشد که با قیمت ارزانی در بازار وجود دارند. علاوه بر آن به یک پروگرامر/دیباگر هم نیاز داریم که اگر میخواهید هزینه زیادی در این خصوص انجام ندهید، نوع مینی ST-LINK (تصویر زیر) هم کفایت میکند. در سری پستهای بعدی قطعات دیگری که به مرور نیاز داریم را معرفی خواهم کرد.
نقشه راه دوره رایگان آموزش میکروکنترلر STM32:
در اینجا نقشه راه این دوره را که به تدریج با انتشار هر درس کاملتر خواهد شد، قرار میدهم تا کسی که قصد دنبال کردن این دوره را دارد، بتواند به راحتی مسیر تعیین شده را جلو برود.
1– آموزش میکروکنترلر STM32 : معرفی و نقشه راه دوره
2- یادگیری زبان C – راهی که من رفتم
5- کنترل 64 led از طریق 16 پایه – ساختار داخلی دات ماتریکس چگونه است؟
تشکر فراوان از شما مهندس عزیز ♥
خیلی ممنون