آموزش توسعه نرم افزار جاسازی شده با استفاده از 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

  • آشنایی با موتور سروو Introduction to Servo motor

  • سروو: ایجاد فایل های پروژه Keil uVision Servo: Creating Keil uVision Project Files

  • سروو: CubeMx Code Generation Servo: CubeMx Code Generation

  • سروو: سروو کلاس قسمت 1 Servo: Servo Class Part 1

  • سروو: سروو کلاس قسمت 2 Servo: Servo Class Part 2

  • محاسبه رجیستر تایمر ARR Timer ARR register calculation

  • سروو: نمایش کد توسعه یافته در سخنرانی قبلی Servo: Demonstration of code developed in previous lecture

  • کد منبع سروو موتور Servo Motor Source Code

  • راندن سروو موتور Driving a Servo Motor

توسعه کتابخانه HC05 HC05 Library Development

  • آشنایی با ماژول بلوتوث HC05 Introduction to HC05 Bluetooth module

  • HC05: تولید کد CubeMx HC05: CubeMx Code Generation

  • HC05: HC05 Class Part 1 HC05: HC05 Class Part 1

  • HC05: HC05 Class Part 2 HC05: HC05 Class Part 2

  • HC05: نمایش کد توسعه یافته در سخنرانی قبلی HC05: Demonstration of code developed in previous lecture

  • کد منبع HC05 HC05 Source Code

پروژه 1: سروو کنترل شده بلوتوث Project 1: Bluetooth Controlled Servo

  • سروو کنترل شده بلوتوث Bluetooth Controlled Servo

  • نمایش کد توسعه یافته در سخنرانی قبلی Demonstration of code developed in previous lecture

  • کد منبع سروو کنترل شده بلوتوث Bluetooth Controlled Servo Source Code

توسعه کتابخانه LCD LCD Library Development

  • آشنایی با LCD 20x4 Introduction to 20x4 LCD

  • مقدمه ای بر انتقال داده ها و دستورالعمل های LCD Intro to LCD data and instruction transfer

  • درک حافظه DDRAM و دستورالعمل های حالت 4 بیتی Understanding the DDRAM memory and 4-bit mode instructions

  • فعال کردن پالس و توالی مقداردهی اولیه نرم افزار Enable-pulse and Software initialization sequence

  • کدهای آدرس LCD LCD Address Codes

  • طراحی کلاس LCD LCD Class design

  • LCD: LCD Class Intro LCD: LCD Class Intro

  • LCD: تکمیل سازنده LCD: Completing the constructor

  • LCD: نوشتن Nibble LCD: Write Nibble

  • LCD: تنظیم موقعیت مکان نما LCD: Setting Cursor Position

  • LCD: روش چاپ (نویسه ها) LCD: Print Method (Characters)

  • LCD: نمایش مثال 1 LCD: Display Example 1

  • LCD: نمایش سخنرانی قبلی LCD: Demonstration of previous lecture

  • الگوریتم عدد صحیح به رشته قسمت 1 Integer to String Algorithm Part 1

  • الگوریتم عدد صحیح به رشته قسمت 2 Integer to String Algorithm Part 2

  • LCD: تابع عدد صحیح به رشته LCD: Integer to String function

  • LCD: روش چاپ (اعداد صحیح I) LCD: Print Method (Integers I)

  • LCD: روش چاپ (اعداد صحیح II) LCD: Print Method (Integers II)

  • LCD: نمایش مثال 2 LCD: Display Example 2

  • LCD: نمایش سخنرانی قبلی LCD: Demonstration of previous lecture

  • LCD: نمایش مثال 3 LCD: Display Example 3

  • LCD: نمایش سخنرانی قبلی LCD: Demonstration of previous lecture

  • کد منبع LCD LCD Source Code

توسعه کتابخانه صفحه کلید Keypad Library Development

  • آشنایی با صفحه کلید 4x4 Introduction to 4x4 Keypad

  • صفحه کلید: ورزش کنید Keypad: Exercise

  • صفحه کلید: کلاس صفحه کلید (سازنده) Keypad: Keypad Class (Constructor)

  • صفحه کلید: ماتریس صفحه کلید (آرایه دو بعدی) Keypad: Keypad matrix (2D array)

  • صفحه کلید: انتخاب یک ردیف Keypad: Selecting a row

  • صفحه کلید: فشار دادن طولانی کلید Keypad: Getting a long keypress

  • صفحه کلید: مثال 1 (با نمایش) Keypad: Example 1 (with demonstration)

  • صفحه کلید: جهش زدایی Keypad: De-bouncing

  • صفحه کلید: دریافت یک کلید کوتاه Keypad: Getting a short keypress

  • صفحه کلید: مثال 2 (با نمایش) Keypad: Example 2 (with demonstration)

  • کد منبع صفحه کلید برای فشار طولانی کلید Keypad Source Code for Long Keypress

  • کد منبع صفحه کلید برای فشار دادن کلید کوتاه Keypad Source Code for Short Keypress

  • تکلیف: صفحه کلید + LCD Assignment: Keypad + LCD

پروژه 2: تیک تاک انگشت پا Project 2: Tic Tac Toe

  • معرفی Introduction

  • سخت افزار The Hardware

  • معرفی بازی Game Intro

  • منوی بازی Game menu

  • ویدئوی آزمایشی: قوانین Demo video: Rules

  • ویدئوی نمایشی: بازی را شروع کنید Demo video: Start the game

  • نمونه گیم پلی Sample gameplay

  • کد منبع پروژه Tic-tac-toe Tic-tac-toe Project Source Code

توسعه کتابخانه HCSR04 HCSR04 Library Development

  • آشنایی با سنسور HCSR04 Introduction to HCSR04 sensor

  • HCSR04: راه اندازی پین ماشه HCSR04: Trigger Pin Initialization

  • استفاده از حالت ورودی PWM به پین ​​اکو Application of PWM input mode to the Echo pin

  • HCSR04: تولید کد CubeMx HCSR04: CubeMx Code Generation

  • HCSR04: سازنده HCSR04 HCSR04: HCSR04 Constructor

  • HCSR04: اندازه‌گیری فاصله HCSR04 HCSR04: HCSR04 Distance Measurement

  • HCSR04: نمونه برنامه HCSR04: Sample Application

  • کد منبع HCSR04 HCSR04 Source Code

  • HCSR04: با نسخه ی نمایشی ورزش کنید HCSR04: Exercise with demo

توسعه کتابخانه موتور دی سی DC Motor Library Development

  • آشنایی با درایور موتور L298N Introduction to the L298N motor driver

  • اطلاعات بیشتر در مورد درایور موتور L298N More about the L298N motor driver

  • موتور دنده TT TT gear motor

  • کتابخانه موتور دی سی DC Motor Library

  • تمرین: توسعه یک برنامه کاربردی برای راندن موتور DC Exercise: Developing an application to drive a DC motor

پروژه 3: ماشین خودران Project 3: Self-driving car

  • الزامات Requirements

  • الگوریتم قسمت 1 Algorithm Part 1

  • الگوریتم قسمت 2 Algorithm Part 2

  • ویدئوی نمایشی Demo video

  • کد منبع خودروی خودران Self-driving car Source Code

STM32CubeIDE STM32CubeIDE

  • آشنایی با STM32CubeIDE Getting familiar with STM32CubeIDE

  • توسعه یک پروژه ++C در STM32CubeIDE: کلاس دکمه Developing a C++ project in STM32CubeIDE: Button Class

امتیاز: توسعه کتابخانه BME280 Bonus: BME280 Library Development

  • ارتباط I2C I2C Communication

  • اطلاعات بیشتر در مورد I2C Communication More on I2C Communication

  • مقایسه ارتباط سریال و موازی Comparing Serial and Parallel Communication

  • سنسور BME280 BME280 Sensor

  • درک توالی ارتباط I2C Understanding the I2C communication sequence

  • آشنایی با سنسور BME280 Understanding the BME280 sensor

نمایش نظرات

نظری ارسال نشده است.

آموزش توسعه نرم افزار جاسازی شده با استفاده از C++
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
7 hours
90
Udemy (یودمی) udemy-small
21 اسفند 1400 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
1,126
4.5 از 5
دارد
دارد
دارد
Olaoluwa Raji

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Olaoluwa Raji Olaoluwa Raji

سیستم های جاسازی شده || میکروکنترلر || مدارها

Udemy (یودمی)

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

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.