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

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

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

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

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

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

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

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

هادی سلیمی

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

فرهنگ عبادی

قبل از این کلا ناامید شده بودم ولی رجیسترها در دوره خوب تحلیل شد و الان رجیسترها راحت شده برام. آموزش امکانات  CubeIDE هم خیلی خوب بود که اکثر برنامه نویسا خبر ندارن.

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

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

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

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

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

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 دوره آموزشی لازمه؟

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

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

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

یک شبه پولدار شو ..

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

این کار برای افرادی که علاقه مند هستند، پشتکار دارند و ناامید نمیشن. افرادی که دوست دارن کارهای جدید انجام بدن و تغییر ایجاد کنن.

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

 

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

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

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

استخدام برنامه نویس 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 برای برنامه نویسی میکروکنترلر
شبکه های اجتماعی

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

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

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