آموزش برنامه نویسی میکروکنترلر STM32

کمکت میکنم برنامه نویسی میکروکنترلر های STM32 رو کامل، سریع و راحت یادبگیری و متخصص بشی.

السن | مرکز یادگیری سیستم های امبدد
Embedded systems Learning CENter

کتابخونه
دوره های آموزشی

سطح بندی و معرفی اجمالی دوره های آموزشی وبسایت elcen.ir

خلاصه بگم، آموزش زبان امبدد سی هست + … . آموزش از صفر ، برای کسانی که میخوان برنامه نویسی میکروکنترلر رو شروع کنند یا احساس میکندد تسلط کافی رو ندارند. ممکنه که خودتون ندونید که به این دوره نیاز دارید، چون چیزهایی که نمیدونید رو ، نمیدونید که نمیدونید.

فصل اول دوره پیشرفته بوده که رایگان در یوتوب منتشر کردم، هدف این دوره اینه که بفهمی برنامه نویسی رجیستری ساده است و پریفرال های اولیه میکروکنترلر STM32F1 رو هم یادبگیرید. جلسه ی اولش خیلی مهم و جدید هست، مفاهیم برنامه نویسی رجیستری آموزشش به این شکل تا بحال در اینترنت وجود نداشت، این دوره رو به زبان انگلیسی هم منتشر کردم، میتونید کامنت های پای ویدئوی انگلیسی رو در یوتوب بخونید.

آموزش تمام پریفرال های میکروکنترلر STM32F103  ، رجیستری و HAL . تمرکز این دوره آموزش استفاده از امکانات پیشرفته ی STM32 هست. دقت کنید که برای انجام خیلی از پروژه ها بدون استفاده از امکانات STM32 و با روش های AVR هم میشه روی STM32 پروژه انجام داد. در این دوره یادمیگیرید پروژه ها رو به روش STM32 ای انجام بدید. چندین جلسه از این دوره به زبان انگلیسی در یوتوب هم منتشر شده که برای اولین بار در اینترنت بوده.

دوره آموزشی شروع STM32 - رایگان

دوره آموزشی شروع STM32- مبانی برنامه نویسی رجیستری STM32f103

دوره جامع آموزش زبان های برنامه نویسی میکروکنترلر ARM

با مشاهده این آموزش فندانسیون دانش برنامه نویسی میکروکنترلر شما بتن ریزی میشه. برای شروع این خوبه.

دوره آموزش پیشرفته STM32F1

در این دوره در جریان راه اندازی در دسترس ترین قطعات با حرفه ای ترین روش ها، استفاده از قابلیت های قدرتمند پریفرال های میکروکنترلر STM32 رو یادمیگیری. امکاناتی که در AVR و آردوئینو وجود نداره.

بسیاری از ویدئوهای این دوره رو به زبان انگلیسی هم برای اولین بار در اینترنت در کانال یوتوب pointer-x منتشر کردم. ببینید و مقایسه کنید با سایر ویدئوها موجود در یوتوب. خیلی از ویدئوهای یوتوب در مورد STM32 ، در حقیقت برنامه های آردوئینو هستند که برای STM32 نوشته شده اند. در صورتی که اگر از امکانات قدرتمند STM32  استفاده کنیم ، روش انجام پروژه متفاوت خواهد بود.

ضمانت هفت روزه بازگشت وجه

یک هفته وقت داری دوره آموزشی رو مرور کنی. اگه اون چیزی که فکر میکردی نبود. پولتو پس بگیر.

قصد خرید دوره های آموزشی رو دارید؟

1- دریافت اطلاعات پرداخت با پیامک به شماره 09101710738 .

2-  پس از واریز وجه، لایسنس دوره (یک کد) در تلگرام برای شما ارسال میشه.

3- لایسنس رو در اسپات پلیر وارد کنید و دوره قابل مشاهده است.

4- در زمان مشاهده دوره برای رفع اشکال در تلگرام پیام بدید.

مشاهده دوره های آموزشی

1- از وبسایت اسپات پلیر نسخه پلیر مناسب سیستم عامل خود را دانلود و نصب کنید.
هر لایسنس در دو سیستم عامل از سیستم عامل های زیر به انتخاب شما قابل فعالسازی است:

  • اندروید 
  • ویندوز
  • MacOS

2- لایسنس دوره آموزشی رو در اسپات پلیر وارد کنید و دوره قابل مشاهده است.

  • برای مشاهده دوره لازم نیست همیشه آنلاین باشید، خودش خودکار دانلود میشه و میتونید آفلاین مشاهده کنید.
  • محدودیتی در زمان مشاهده دوره آموزشی برای شما وجود نداره
  • هر لایسنس در دو سیستم عامل به انتخاب شما قابل مشاهده است.
چجوری یادگیری STM32 رو شروع کنم؟

1- خرید میکروکنترلر STM32

 
به برد راه انداز میکروکنترلر و پروگرمر نیاز داری. این دو تا برد برای شروع خوبه.
  • برد بلوپیل bluepill، دارای میکروکنترلر STM32F103C8
  • برد نوکلئو F446، دارای میکروکنترلر STM32F446 و پروگرمر ST-link

این مقاله رو هم بخون:

 

2- آموزش رایگان “شروع STM32” رو ببین

در 7 ساعت و با 11 پروژه مبانی برنامه نویسی رجیستری STM32 و CMSIS رو درک میکنی و تنظیمات اولیه سیستم رو یادمیگیری و در زمان کمی تسلط خوبی به برنامه نویسی میکروکنترلر پیدا میکنی. 

3- آموزش ببینید و تمرین کنید

  • برای خودت پروژه تعریف کن و انجام بده. 
  • از منابع زیادی که در اینترنت وجود داره استفاده کن. 

دوره ی آموزشی خوب چه کاری برای شما انجام میده؟

  • سردرگمی رو از بین میبره و به یادگیری شما ساختار و جهت میده
  • کل مطالب یک جا جمع شده و مطالبی که نمیدونید باید بدونید ، رو یادمیگیرید
  • یادگیری آسونه و لذت بخشه چون مطلب برات جا میافته
  • سریع یادمیگیری
  • در زمان انجام پروژه اعتماد به نفس میگیری چون ناشناخته وجود نداره و همه ی نکات قبلا گفته شده
کار برنامه نویسی امبدد سیستم

مهندس امبدد سیستم چه کار میکنه؟

 

طراحی سیستم های شامل میکروکنترلر ها یا میکروپروسسور ها برای انجام کار های از پیش تعریف شده . ساخت کامپیوتر برای کاربرد مشخص.

سخت افزار: طراحی مدارهای مربوط به میکروکنترلر، ترسیم شماتیک و طراحی برد

نرم افزار: برنامه نویسی میکروکنترلر 

استخدام برنامه نویس STM32

 

اگر دوست دارید وارد کار برنامه نویسی میکروکنترلر بشید، هدفتون این باشه که از یه جایی به بعد کسب و کار خودتون رو راه بندازید مخصوصا اگر در ایران میمونید.

باید با کار کردن در شرکت های مختلف کارتون رو شروع کنید ولی همیشه کارمند بودن با توجه به شرایط ایران و سختی کار برنامه نویسی میکروکنترلر ، به نظر من نمیصرفه. البته اگر در خارج از ایران و در کشور های توسعه یافته هستید، کارمند بودن در زمینه ی برنامه نویسی امبدد سیستم شغل بسیار مناسب و پردرآمدی هست و زندگی خوبی خواهید داشت. 

 

 

شروع کار امبدد سیستم – چند سال اول

 

تو 3 تا 5 سال اول دو تا کار رو باید همزمان خستگی ناپذیر انجام بدی:

1- خودت دائما برای یادگیری تلاش کن، آموزش ببین و خودت هم همزمان کد نویسی و تمرین کن و برای خودت پروژه انجام بده. 

یک رزومه درست کن از توانایی هات و پروژه هایی که انجام دادی. دائما رزومت رو بزرگ تر کن.

2- برای کسب تجربه و یادگیری از اول باید بری سرکار. خیلی شرکت ها، کارگاه ها ، کارخونه ها یا حتی مغازه ها هست که میتونی بری اونجا مشغول شی. میتونی چند ماه یکبار هم شرکتتو عوض کنی که مطالب جدید یادبگیری. 

تو این دوره همیشه چشمات رو باز کن و یادبگیر. هدفت از سر کار رفتن نباید پول باشه ولی اینجوری هم نباشه که ازت بیگاری بکشن، اگه کار رو بلدی، ارزشش رو بدون و هزینش رو بخواه.

چجوری پول در بیارم

 

باید با استفاده از دانش الکترونیک و امبدد سیستم، مشکلات یا نیاز های بقیه رو با ارائه ی کالا یا خدمات برطرف کنی تا بهت پول بدن. 


چه کالا یا خدماتی ارائه بدم؟

 

برای اینکه ایده کالا یا خدمات به ذهنت برسه، باید چشمات چیزی رو ببینه یا گوشات بشنوه تا جرقه تو فکرت تولید بشه. دلیل اینکه از اول باید بری سرکار هم اینه که باید تو محیط هایی باشی که دائما اطلاعات جدید دریافت کنی. چند تا مثال:

 

  • هر جایی میری ببین مشکلشون ، کمبودشون یا نیازشون چیه ؟ ببین چه کالا یا خدماتی هست که تو بتونی بهشون ارائه بدی و اونا بهت پول بدن؟ ببین چجوری میتونی مشکلاتشون رو حل کنی و راه حلی ارائه بدی که براشون ارزشمند باشه؟
  • برو شرکت ها و کارخونه ها ازشون سوال کن به چه مشکلات فنی برخورد میکنن؟ ….  
  • ببین افراد دیگه چجوری تو این صنعت پول درمیارن ؟ آیا نقص و کمبود در روش کارشون وجود داره ؟ آیا تو میتونی بهتر انجامش بدی؟  
  • ایده های خوب وجود داره فقط باید بگردی پیداش کنی.  
محتوای آموزشی انگلیسی

مقاله های آموزشی در وبسایت
pointer-x.com

ویدئوهای آموزشی انگلیسی در کانال یوتوب pointer-x

آموزش امبدد سیستم | اهداف ، مشکلات و راه حل ها

 

هدف از انتشار محتوای آموزشی به زبان انگلیسی، بالا بردن سطح آموزش برنامه نویسی سیستم های امبدد در اینترنت و بخصوص یوتوب هست. برای ارتقاع دانش باید مشکلات و کمبود هایی که امروزه در آموزش امبدد سیستم وجود داره رو پیدا کرد و با ارائه ی محتوای آموزشی جدید راه حل ارائه داد. چند تا از مشکلات : 

  • حجم زیادی از دانش برنامه نویسی میکروکنترلر وجود داره که هنوز کسی آموزشی در موردش ننوشته. 
  • خیلی آموزش ها میتونن بهتر باشند از جهت فهموندن مطلب

STM32 Pulse machine
TIM & DMA |

  • سنسور نوری : پالس شمار سخت افزاری با قابلیت ETR.
  • سنسور التراسونیک SR-04 با STM32 بدون دیلی : ارسال و دریافت پالس.
  • lcd کاراکتری پارالل با STM32 بدون دیلی : بستر سخت افزاری ارتباط پارالل. 
  • سنسور دما و رطوبت DHT22 با STM32 بدون دیلی : بستر سخت افزاری پروتکل 1-wire.
  • سنسور دمای DS18B20 با STM32 بدون دیلی : بستر سخت افزاری پروتکل 1-wire ماکزیم . 

راه اندازی این قطعات با STM32 قبل از این در یوتوب وجود داشته (برای هر کدوم 10 تا ویدئو همش هم شبیه هم!!! ) ولی به روش آردوئینویی و بدون استفاده از امکانات STM32. برای اولین بار در اینترنت در این آموزش در قالب راه اندازی 5 تا از دردسترس ترین قطعات ، توانایی های تایمر و DMA میکروکنترلر رو آموزش میبینید.

روش آردوئینو : تایمر میکروکنترلر AVR قابلیت تایمر STM32 رو نداره و وقتی با AVR پروژه انجام بدید باید از CPU (پیاده سازی نرم افزاری) برای انجام کارها استفاده کنید. مثلا برای تولید پالس باید از GPIO و تابع دیلی استفاده کنید.

نکته : ایده های پروژه های این دوره آموزشی در forum ها و وبلاگ یا کد های مشابهش در github وجود داشته، من برای اولین بار آموزشش رو ارائه دادم.

STM32 for beginners

  • آموزش مبانی برنامه نویسی رجیستری و CMSIS در جریان انجام پروژه led چشمک زن.
  • آموزش تنظیمات اولیه سیستم : کلاک و Systick و اینتراپت ها

خود من هم در شروع یادگیری برنامه نویسی میکروکنترلر، در درک این که چجوری به رجیسترها دسترسی پیدا میکنیم مشکل داشتم و دقیقا نمیفهمیدم CMSIS چیه. اگه میتونستم در زمان سفر کنم، به گذشته میرفتم و این آموزش رو به خودم نشون میدادم.

Patrick Egesa

@patrickegesa8264​

one of the best tutorials, I have read dozens of books but I could not write structures to access MCU registers, you have just summarized in less than one hour, perfect.

Terrance Parker

@terrancenparker2015

Very good from a guy who works for ST. Wish they would do hands on labs like these

Salman Haider

@studentofedison421

TOO much informative and effective tutorial. I can’t explain enough how much beneficial the videos are. love form India,

آشنایی با میکروکنترلر

سیستم های امبدد 

 

کامپیوتر ها ماشین هایی هستن که میشه اونها رو برنامه ریزی کرد تا عملیات های ریاضی یا منطقی رو خودکار انجام بدن. سیستم های امبدد هم کامپیوتر هایی هستند که برای انجام یک کار مشخص طراحی میشن.

در ماشین لباسشویی کامپیوتری وجود داره که کنترل رابط کاربری و زمانبندی عملکرد شیر ها و … رو به عهده داره . این کامپیوتر همیشه یک برنامه رو اجرا میکنه که برای انجام کار مشخص کنترل لباسشویی نوشته شده. این امبدد سیستم هست.

مقایسه کنید با لپ تاپ که هر روز برنامه های جدیدی رو روش اجرا میکنید و حتی برنامه های جدیدی با استفاده از این کامپیوتر مینویسید . این امبدد سیستم نیست. 

میکروکنترلر

میکروکنترلر یک کامپیوتر کوچک هست روی یک چیپ که شامل : 

  • حافظه ها : فلش ( ذخیره برنامه ) ، رم ( ذخیره متغیر ها ) و رجیسترهای پریفرال ها 
  • وظیفه ی CPU اجرای کدی هست که در فلش نوشته میشه. کد شامل دستورات اسمبلی یا assembly instruction
  • پریفرال های میکروکنترلر مدار های الکترونیکی هستنید  که برای انجام کار های مشخصی طراحی شدن و عملکردشون توسط CPU با نوشتن اعداد در رجیسترهای پریفرال کنترل میشه.
  • داده با استفاده از باسها بین CPU و حافظه ها جابجا میشه. برای جابجایی داده در خود CPU هم باس وجود داره. در میکروکنترلر های 32 بیتی باسهای CPU و میکروکنترلر 32 بیتی هستند، یعنی اعداد 32 بیتی رو با یک عملیات جابجا میکنن. 

رجیسترهای پریفرال ها

رجیستر پریفرال یک فضای ذخیره سازی 8 ، 16 یا 32 بیت هست که آدرسش در در رفرنس منوال نوشته شده.

هر پریفرال تعدادی رجیستر داره و مقدار بیت های این رجیسترها عملکرد پریفرال رو مشخص میکنه. تو رفرنس منوال توضیحات همه ی بیت ها رو نوشته. تو برنامه باید با توجه به رفرنس منوال مقدار بیت های رجیسترها رو تغییر بدیم تا پریفرال طبق خواسته ی ما عمل کنه.

اجرای کد در میکروکنترلر

برنامه به اینستراکشن های اسمبلی تبدیل میشه که هر کدوم 16 یا 32 بیت هستند و در فلش نوشته میشن. بعد از ریست شدن میکروکنترلر ، CPU از اول فلش شروع میکنه و بعد از اجرای هر اینستراکشن(یا دستورالعل) به آدرس بعدی میره و دستورالعمل بعدی رو اجرا میکنه.

با اجرای اینستراکشن های Branch، آدرس اینستراکشن بعدی که CPU قراره از فلش بخونه تغییر داده میشه. مثلا CPU میتونه بره به یک آدرس مشخص در فلش و یک بلوک کد رو بخونه و اجرا کنه و دوباره برگرده به آدرس قبلی.

CPU با اجرای اینستراکشن های load و store میتونه محتوای حافظه ها رو بخونه یا تغییر بده، حافظه ها شامل فلش ، رم و رجیسترهای پریفرال ها هست.

میکروکنترلر آرم

میکروکنترلرهایی که CPU اونها توسط شرکت آرم طراحی شده. 

مثلا شرکت ST در ساخت میکروکنترلر های خانواده STM32F1 و STM32F4 از طرح CPU های cortex-m3 و cortex-m4 که طراحی شرکت آرم هستند استفاده کرده. 

چرا STM32 ؟

  • خانواده بزرگ از میکروکنترلر ها که برای هر نیاز راه حل داره
  • در پروژه های با فناوری بالا ( high tech ) استفاده میشه
  • شرکت ST گارانتی داره که تولید میکروها رو متوقف نکنه
  • منابع زیادی در اینترنت برای یادگیری STM32 وجود داره
  • پریفرال های قدرتمندی داره مثلا تو بعضی پروژه ها فقط به خاطر تایمرش از این میکروکنترلر استفاده میکنن
  • نرم افزارهای رایگان شرکت ST برای برنامه نویسی میکروکنترلر
شبکه های اجتماعی

در اینستاگرام پست های آموزشی اسلایدی منتشر میکنم.

لینک آخرین ویدئوها و مقاله ها در کانال تلگرام.

پیمایش به بالا