لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش توسعه نرم افزار جاسازی شده با استفاده از C++
Embedded Software Development using C++
نکته:
آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره:
طراحی شی گرا و برنامه نویسی برنامه HAL در STM32، ARM Cortex-M دانشجویان قادر خواهند بود کتابخانه هایی را با استفاده از C++ برای ارتباط STM32 با دستگاه های خارجی طراحی و توسعه دهند. دانشآموزان میتوانند با استفاده از درایورهای STM32Cube HAL و C++، نرمافزارهای تعبیهشده را توسعه دهند. دانشآموزان تیک تاک میتوانند با استفاده از میکروکنترلر STM32 ماشینهای روباتی دستی و خودران طراحی و توسعه دهند. برای توسعه برنامه های کاربردی C++ جاسازی شده دانش آموزان قادر خواهند بود از STM32CubeIDE برای توسعه برنامه های کاربردی C++ جاسازی شده استفاده کنند. یک تخته نان بدون لحیم سیم های اتصال دهنده موتور L298N 4 شاسی ماشین چرخ دار HC05 ماژول بلوتوث SG90 موتور سروو 4 چرخ 4 TT موتور دنده DC 3 سنسور اولتراسونیک HC-SR04 باتری 12 ولت دانش برنامه نویسی اولیه (جاسازی شده C برنامه نویسی H3ALM مفید خواهد بود) درایورهای GPIO)
دوره توسعه نرم افزار جاسازی شده با استفاده از C++ کاربرد برنامه نویسی شی گرا (OOP) را در سیستم های جاسازی شده نشان می دهد. C++ زبان منتخب است زیرا دارای امکاناتی است که پیاده سازی OOP را آسان می کند و همچنین امکان برنامه نویسی در سطح سخت افزار را فراهم می کند. همانطور که C++ از ویژگی های غنی و خارق العاده ای برخوردار است، استفاده نادرست از آن آسان است و این ممکن است باعث نفخ کد شود. در این دوره، ویژگی های خاصی از زبان انتخاب شده است تا اطمینان حاصل شود که برنامه های توسعه یافته از موارد زیر پیروی می کنند:
سادگی
خوانایی
قابلیت نگهداری
مفاهیم اصلی OOP مانند انتزاع، کپسولاسیون و چندشکلی پوشش داده شده است. هدف این دوره ارائه این سبک از برنامه نویسی تا حد امکان ساده و دوستانه است، بنابراین وراثت پوشش داده نمی شود. به منظور ایجاد کتابخانه و توسعه برنامه نسبتاً سریعتر، از APIهای STM32Cube HAL استفاده می شود و برنامه نویسی در سطح ثبت مستقیم به حداقل کاهش می یابد. از برد STM32F401RE Nucleo در طول این دوره و Keil uVision5 MDK و STM32CubeIDE برای توسعه نرم افزار و اشکال زدایی استفاده می شود. از آنجایی که این دوره عمدتاً از HAL استفاده میکند، پس هرکسی که این دوره را میگذراند، میتواند از یک میکروکنترلر STM32 متفاوت استفاده کند و به دلیل قابل حمل بودن HAL، همان کد را اجرا کند (با کمی تغییرات).
بیشتر نرم افزارهای تعبیه شده به زبان C و با رویکرد رویه ای برای برنامه نویسی نوشته شده اند. C++ جایگزینی برای C و OOP نیز جایگزینی برای برنامه نویسی رویه ای نیست. اما C++ برخی از ویژگیهایی را ارائه میکند که نرمافزار تعبیهشده ما میتواند از آنها بهرهمند شود و در صورت استفاده عاقلانه، برای توسعه برنامه مفید خواهد بود. در پایان، این یک اولویت و مورد استفاده است و این دوره تضمین می کند که کاربرد زبان و پارادایم برنامه نویسی (OOP) منعکس و قدردانی می شود.
به عنوان دانشجوی این دوره، با موارد زیر مواجه خواهید شد:
برنامه نویسی شی گرا در یک سیستم تعبیه شده و موارد زیر اعمال خواهد شد:
کلاس، کپسولاسیون، انتزاع، چند شکلی
کلید واژه های خصوصی و عمومی
نشانگرها و مراجع
ایمنی را تایپ کنید
توسعه کتابخانهها با استفاده از درایورهای C++، STM32Cube HAL و اطلاعاتی از اسناد برای رابط میکروکنترلر STM32 با اجزای خارجی مانند:
LCD 20x4
صفحه کلید 4x4
SG90 Servo
ماژول بلوتوث HC05
حسگر اولتراسونیک HC-SR04
درایور موتور L298N
تولید کد با استفاده از STM32CubeMx و همچنین اصلاح و سفارشیسازی کد تولید شده CubeMx متناسب با برنامه در حال توسعه.
برنامه نویسی HAL GPIO، UART و تایمر در STM32
استفاده از تایمر برای تولید سیگنال PWM و همچنین جذب ورودی PWM برای تعیین چرخه وظیفه سیگنال ورودی
طراحی نرم افزار قبل از توسعه کتابخانه یا کد برنامه
تست کد و اشکال زدایی در Keil uVision 5 و STM32CubeIDE
از آنجایی که این دوره مبتنی بر پروژه است، دانشجویان حداقل دو پروژه خواهند ساخت که برخی از آنها عبارتند از:
یک کنسول بازی Tic-tac-toe
یک ماشین خودران
من میتوانم تضمین کنم که هرکسی که در این دوره ثبتنام میکند، پس از اتمام این دوره، میتواند نرمافزار تعبیهشده برای پروژهها را بدون نظارت و یا بدون نظارت بسازد. همچنین، بهعنوان فارغالتحصیل این دوره، میتوانید نرمافزار تعبیهشده ساده، خوانا و قابل نگهداری را برای چندین پروژه با الزامات تعریفشده با استفاده از C++ طراحی و توسعه دهید.
برای به دست آوردن بهترین نتیجه از دوره، دانش آموزان ملزم به خرید قطعات سخت افزاری و نصب نرم افزار هستند تا سخنرانی ها، تمرین ها و پروژه ها را به راحتی دنبال کنند.
نیازهای نرم افزار:
Keil uVision5 MDK
محیط زمان اجرا جاوا (برای STM32CubeMx لازم است)
STM32CubeMx
STM32CubeIDE (برای بردهای بدون پشتیبانی HAL در Keil uVision)
همچنین انتظار میرود که دانشآموزان با برنامهنویسی STM32 در سطح پایه آشنا باشند، یعنی درک لوازم جانبی اولیه و رجیسترهای آنها (GPIO، UART و تایمرها در حالت شمارش عادی). دانستن C تعبیه شده نیز مفید خواهد بود. می توان از Keil uVision 5 یا STM32CubeIDE استفاده کرد. برای بردهای بدون پشتیبانی HAL در زنجیره ابزار Keil uVision (به عنوان مثال STM32 bluepill)، می توان از STM32CubeIDE استفاده کرد.
فرآیند آموزش و یادگیری در این دوره فراتر از سخنرانی ها و تمرین ها است. دانش آموزان همیشه می توانند از طریق بخش پرسش و پاسخ با مربی ارتباط برقرار کنند. این بخش بسیار فعال است زیرا در عرض 24 ساعت به سوالات پاسخ داده می شود.
سرفصل ها و درس ها
معرفی
Introduction
معرفی دوره
Course Introduction
منابع دوره
Resources for the course
خرید قطعات
Purchasing the components
تازه کننده
Refresher
دستکاری بیت
Bit Manipulation
دستکاری بیت
Bit Manipulation
CMSIS
CMSIS
CMSIS
CMSIS
HAL
HAL
آشنایی با HAL، CMSIS و رجیسترهای سخت افزاری
Understanding the HAL, CMSIS and hardware registers
برنامه نویسی شی گرا چیست؟
What is Object-oriented programming about?
مروری بر اکوسیستم STM32
Overview of the STM32 ecosystem
توسعه کتابخانه سروو موتور
Servo Motor Library Development
یودمی یکی از بزرگترین پلتفرمهای آموزشی آنلاین است که به میلیونها کاربر در سراسر جهان امکان دسترسی به دورههای متنوع و کاربردی را فراهم میکند. این پلتفرم امکان آموزش در زمینههای مختلف از فناوری اطلاعات و برنامهنویسی گرفته تا زبانهای خارجی، مدیریت، و هنر را به کاربران ارائه میدهد. با استفاده از یودمی، کاربران میتوانند به صورت انعطافپذیر و بهینه، مهارتهای جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.
یکی از ویژگیهای برجسته یودمی، کیفیت بالای دورهها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد میدهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و میتوانند به بهترین شکل ممکن از آموزشها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرمهای آموزشی آنلاین، به افراد امکان میدهد تا به راحتی و با کیفیت، مهارتهای مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.