·          فصل یکم - معرفی دوره

         برنامه نویسی - میکروکنترلر - STM32

         معرفی مدرس دوره

         مشخصات اصلی دوره

         محتوی فصول دوره

         بردهای توسعه STM32

         پروگرامرهای استفاده شده در دوره

         نرم افزارهای استفاده شده در دوره

         ماژولهای خاص در دوره

         نحوه انجام پرروژه‌ها در این دوره

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

         دستاورد اصلی این دوره چیست؟

         ابزارها و لوازم مورد نیاز در این دوره

         پیشنیازهای این دوره چیست؟

         پشتیبانی از دوره

         نحوه استفاده از دوره

         سوالات متداول

         سخن نهایی قبل از شروع دوره

·         فصل دوم

o       جلسه یکم

         اصول یادگیری به روش هرم بلوم

         شیوه مطالعه سه مرحله‌ای دوره

         بررسی مشکل اساسی دانش پذیران

         مفاهیم پایه الکترونیک

         تعریف علم الکترونیک

         دسته بندی انواع مدارات الکترونیکی

         مدارات کامپیوتری و گیت‌های منطقی و ماژول‌های منطقی

         مبانی دیجیتال، صفرویک منطقی، رسم بیت کلمه و رجیستر

         مبنی اعداد باینری، دسیمال و BCD / مقیاس ها

         معرفی جبر بول

         معرفی معماری کامپیوتر و CPU

         تعریف میکروکنترلر

         معرفی معماری ARM

 

o       جلسه دوم

         مثال های عملی از

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

      تبدیل عدد دسیمال به باینری Bin Dec

      باینری به هگزادسیمال Hex Bin

      هگزادسیمال به دسیمال Dec Hex

      هگزادسیمال به باینری Bin Hex

      باینری به اکتال Oct Bin

      علت وجودی اعداد هگز و اوکتال

      توضیح محل کاربرد مبنی اعداد در برنامه نویسی میکروکنترلر

         توضیح کلی درمورد کاربرد میکروکنترلرها

         معرفی چند نمونه از میکروهای STM32

         بررسی خانواده میکروهای STM32 بر اساس جدول و نام میکرو

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

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

         مشاهده و بررسی پایه‌های میکرو در دیتاشیت

 

o       جلسه سوم

         تفاوت‌های AVR و STM32

         حساسیت‌های  STM32به کلاک و ولتاژ

         تفاوت سیستم 32بیتی با 8 بیتی

         انواع حافظه‌ها و تفاوت‌های آن‌ها

         انواع حافظه در STM32

         بررسی موارد استفاده EEPROM  درپروژه‌های میکروکنترلری

         چرخه انجام پروژه و سناریونویسی برای پروژه / بررسی سناریونویسی

         توضیح مفصل از چرخه پروگرام کردن میکروهای STM32 / توضیح مراحل لازم برای ساختن برنامه و پروگرام کردن

         بررسی انواع پروگرامرهای موجود در بازار

         تفاوت پروگرامر اصلی و تقلبی

         تفاوت پروگرامر فلشی و رومیزی

 

o       جلسه چهارم

         نصب و راه اندازی نرم افزارهای

      Cube IDE  

      ST-LINK Utility

       Cube Programer

         نصب پکیج‌های نرم افزاری برای خانواده  FO و F1 و GO

         نگاهی به نرم افزارهای ST-LINK Utility و Cube Programer

         نحوه بررسی اصلی یا تقلبی بودن پروگرامر

         آموزش آپدیت کردن Firewall یک پروگرامر

         معرفی کامپایلرهای دیگر برای برنامه نویسی STM32

         تفاوت Cube MX و Cube IDE

         توضیح علت استفاده از برد تبدیل در این دوره

         آموزش تشخیص پایه‌های آی‌سی‌های STM32

         آموزش لحیم کاری IC میکرو روی برد

         توضیح پایه‌های عمومی میکرو، انواع پایه‌ها، تغذیه  GPIO و NRST و BOOT

 

o       جلسه پنجم

         بررسی چندین دیتاشیت برای یافتن مقدار صحیح خازن‌های روی تغذیه میکرو

         بررسی انواع منابع کلاک LST, HST, LSE  و HSE

         بررسی نحوه تعیین صحیح خازن پای کریستال در میکرو

         بررسی دیتاشیت میکرو برای یافتن مقدار خازن پای کریستال

         مشاهده چند نمونه IC میکرو + برد تبدیل

         انجام اولیه پروژه با STM32 و یادگیری تمام تنظیمات

      آموزش ایجاد پروژه در Cube IDE

      بررسی پایه های میکرو

         پروژه LED  چشمک زن

         تست پروگرامر رومیزی

 

o       جلسه ششم

         آموزش بازگردانی تیک سریال وایر

         بررسی 30 خطا و علل و روش رفع خطاهای پروگرام کردن

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

         بررسی دقیق شماتیک و PCB برای برد Bluepill

         انجام پروژه LED  چشمک زن با برد Bluepill

         توضیح انواع سطح حفاظت از چپ

         آزمایش انجام تنظیم Option Bytes

         چندین نکته تکمیلی

 

·         فصل سوم

o       جلسه اول

         معرفی انواع زبان‌های برنامه نویسی

         دسته بندی زبان‌های برنامه نویسی

         معرفی کامپایلر و IDE

         اشتباهات مهلک در یادگیری برنامه نویسی

         مهارت حل مساله

         الگوریتم و فلوچارت

         حل چند مساله با فلوچارت

         فلوچارت کلی سطح بالا و جزئی سطح پایین

         بررسی کاراکترهای خاص در زبان C/C++

         بررسی ساختار کلی برنامه در زبان C

         بررسی تابع اصلی برنامه در زبان C

         بررسی ترتیب و محل اجرای کدها در زبان C

  

o       جلسه دوم

         ادامه مباحث ساختار کلی برنامه در زبان C

         نشانگر اجرای کدها در یک برنامه

         متغییرها و ثوابت در زبان C

         انواع داده ها در زبان C

         آرایه ها در زبان C

         محل ذخیره سازی متغییرها RAM  یا FLASH

         داده های متنی در زبان C++/C

         قوانین نام گذاری متغییرها و توابع در زبان C/C++

         خصوصیات زبان    C++/C

         انواع ورودی و خروجی ها

         عملگر انتصاب در زبان C/C++

         خطاهای عملگر انتصاب 

 

o       جلسه سوم

         انجام آزمایشات وتست های برنامه نویسی

         نام گذاری متغییرها

         نکات عملگر انتصاب

         نکات برنامه نویسی متعدد

         نوشتن اعداد در مبنی مختلف

         تعریف آرایه

         بررسی انواع خطاها، سینتاکس،Runtime  ، Logic Error

         نکاتی در مورد برنامه نویسی هم وند

         معرفی انواع عملگرهای زبان C

         بررسی عملگرهای محاسباتی در زبان C

          خواص عملگر باقی مانده صحیح در زبان C/C++

 

o       جلسه چهارم

         ادامه عملگرهای زبان C

         عملگرهای منطقی

         عملگرهای بیتی

         ساختارهای تکرار وتصمیم

         حل چندین مثال شرط نویسی

         حل چندین مثال از دستور IF

 

o       جلسه پنجم

         توضیحات تکمیلی در مورد ساختار Define

         توضیح کاربرد عملیات عملگرهای بیتی

         حل تمرین عملگرهای بیتی در زبان C/C++

         آموزش ساختار Switch/Case  درزبان C/C++

         معرفی انواع حلقه در زبان C/C++

         آموزش حلقه While  با جزئیات و مثال

         آموزش حلقه For  با جزئیات و مثال

  

o       جلسه ششم

         ادامه مطالب جلسه پنجم ( آموزش حلقه ها )

         دستورا ت   Goto-label

         دستورات Break-Cantinue

         ورودی و خروجی عمومی

         خروجی Open Drain , Push/Pull

         ورودیPull-Up    Pull -Down  ,

         ترفند برنامه نویسی برای صبر کردن با حلقه

         ساختار دستورات وثوابت GPIO

         بحث بانس و دیبانس

         معرفی ای سی 7414  نات اشمیت تریگر

 

o       جلسه هفتم

         بحث در مورد انواع ماژول ها و قطعات از نظر ورودی وخروجی بودن

         توابع در زبان C

         ساختار تابع در زبان C

         خروجی توابع درزبان C

         فراخوانی توابع در زبان C

         ورودی تابع در زبان C

         انواع توابع در زبان C

         انواع محل های نوشتن  نمیدانم توابع

         مفاهیم Hang , Halt  دربرنامه

         علل Hang یا Halt  شدن برنامه

         معرفی تابع فیبوناتچی

         تمرین عملی نوشتن کد تابع فیبوناتچی بصورت ساده و بازگشتی  

      

o       جلسه هشتم

         تمرین فرمول نویسی در زبان C/C++

         مفهوم Scope  متغییرهای سراسری ومحلی در زبان C/C++

         انواع تیپ های برنامه نویسی

         معرفی فرایندهای همروند

         آموزش چند ترفند برنامه نویسی در زبان C/C++

         منطق برنامه نویسی

         مهارت برنامه نویسی

 

o       جلسه نهم

         ایجاد پروژه آخر فصل سوم

         انجام پروژه آخر فصل سوم ←6 پروژه ساده

         نکات و اشکالات نرم افزارهای ممکن


·         فصل چهارم

o       جلسه اول

         معرفی توابع Hall  و یادگیری سیستم Hall Driver

         بررسی چندین تابع معروف Hall

         استراکچرها در زبان C/C++

      لزوم استفاده

      نحوه تعریف و استفاده

      دسترسی به متغیرهای داخل استراکچر

         مفهوم Enum  در زبان C/C++

      لزوم استفاده

      نحوه تعریف

      نحوه استفاده

         معرفی رابط سریال به USB  و نرم افزارهای آن

         مفهوم  Bug  و دیباگ کردن

          انواع روش های دیباگ کردن

         سیستم دیباگ کردن مبنی بر مبدل USB به سریال

 

o       جلسه دوم

         نصب مبدل USB به سریال

         افزودن قابلیت USART به پروژه آخر فصل سوم

         استفاده از تابع Strlen , SprintF  و تابع ارسال اطلاعات روی USART

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

         نحوه تعریف آرایه ای از استراکچرها

         آموزش اشاره گرها بصورت کامل

      مفاهیم آدرس و متغیر

      نکات استفاده از اشارهگرها

         نحوه استفاده از اشاره گرها برای ارسال ( پارامتر به تابع )

         ارتباط ارایه ها با اشاره گرها

         ترتیب استراکچرها و اشاره گرها

 

o       جلسه سوم

         آموزش عملی برنامه نویسی اشاره گرها در زبان C با چند مثال

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

         چند نکته تکمیلی در مورد اشاره گر

         شروع کار با تجهیزات جانبی میکروها

         نکاتی در مورد پایه های تجهیزات جانبی میکروها

         معرفی کامل GPIO با توابع و ثوابت مربوطه

         توضیحات مختصر در مورد انواع سوئیچ های الکترونیکی

         توضیح اجمالی در مورد سوئیچ ترانزیستوری

         معرفی تابع تاخیر

         انجام پروژه ساده با سلونوئید و تمرین GPIO و تابع تاخیر

 

o       جلسه چهارم

         تعیین جهت پایه های میکرو

         تغییر جهت پایه ها بصورت داینامیک از طریق کد ها

         انجام پروژه برای تست تغییر جهت پایه ها

         توضیح انواع تنظیمات پیشرفته GPIO

         آموزش  Pinlabel -ضرورت و نحوه استفاده

         انجام پروژه برای یادگیری Pinlabel  و نحوی استفاده از آن

         آموزش تغییر همزمان چند پایه خروجی با یک دستور

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

         نکات مربوط به نمایشگر 7قسمتی و انواع اند وکاتد مشترک

 

o       جلسه پنجم

         انجام پروژه جلسه قبلی با نمایشگر 7 قسمتی و پیاده سازی نکات جلسه قبلی

  

o       جلسه ششم 

         معرفی USART  پایه ها +  توابع کاربردها

         بررسی Handler  برای USART

         علت وجودی واهمیت Timeout در USART

         تفاوت UART  با USART

         تفاوت مدهای کاری سنکرون و آسنکرون در USART

         مفهوم بیت  Start و  Stop وBoudrate

         مفهوم بیت توازن

         معرفی MAX232 IC  برای ارتباط میکرو با پورت Com

 

o       جلسه هفتم 

         انجام پروژه برای یادگیری USART (در این پروژه ها دو میکر وکنترول را برنامه نویسی کردیم و نهایتا دو دستور مختلف را توانستیم که از میکرو اول به میکرو دوم ارسال کنیم (منظور از دستور مقدار دو دکمه است) )

         معرفی ماژول های ارتباط رادیویی قابل اتصال به میکرو کنترول

 

o       جلسه هشتم

         معرفی تراشه MAX485

         معرفی ماژول های رادیویی ساده 433مگاهرتز

         آشنایی اجمالی با نحوه‌ی استفاده از ماژول‌های رادیویی

         معرفی ماژول‌های HM-T و HM-R

         آشنایی با اصول اولیه انتقال داده بصورت بی سیم

         آموزش تبدیل سطح ولتاژ منطقی 5 به 3.3 ولت

         آموزش نحوه‌ی تغییر پایه های USART  ( عملی )

         آموزش نحوه‌ی تغییر پارامترهای USART ( عملی )

         توضیح تابع Sprintf  و Strlen

         کاراکترهای خاص در کار با رشته ها

         شروع بحث وقفه ها ی خارجی در STM32

         انواع لبه ها در وقفه خارجی

         3نکته بسیارمهم در فعال کردن وقفه خارجی

         نوشتن تابع برای وقفه خارجی

 

o       جلسه نهم

         آزمایش عملی یک  پروژه ساده برای وقفه خارجی

         تنظیم پایه های میکرو به عنوان وقفه خارجی

         انجام تمام تنظیمات وقفه خارجی در CubeIDE

         نکته درمورد عدم پروگرام شدن برخی میکروها با پروگرمرهای فیک

         نکاتی در مورد Firewale  پروگرامرها

         آموزش کیبورد یا کیپد ماتریس

         انجام پروژه پیچیده برای وقفه خارجی با کیپد ماتریس


o       جلسه دهم

         نوشتن کد برای خواندن دکمه بصورت تکی (فقط یکبار)

         رفع ایراد منطقی از کد صفحه کلید به روش یولینگ

         نوشتن کد مربوط به KeyPad با وقفه خارجی

         آموزش نوشتن تابع برای وقفه خارجی بصورت عملی

         استفاده از Flay  برای همروند کردن

         شروع بحث تایمر و کانتر

         آموزش تئوری اندازه گیری زمان وعرض پالس بصورت یولینگ

         آموزش فعال کردن تایمر

         آشنایی با Prescaler و CanterPeriod

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

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

         نکات نهایی فعال کردن تایمر و وقفه تایمر

         نحوه مقدار دهی به Prescaler و Canterperiod

 

o       جلسه یازدهم

         انجام عملی پروژه با تایمر

         آموزش بیشتر در مورد Prescaler و Canterperiod

         مثال 100ms برای تنظیم تایمر

         معرفی ابزار آنلاین برای مقدار دهی متغییرهای تایمر

         استفاده و تست ابزار آنلاین برای تایمر

         آموزش عملی تنظیمات تایمر و نوشتن روتین تایمر

         مواجهه عملی با باگ CubeIDE در مورد مقادیر پارامترها

          تئوری استفاده از تایمردر راه اندازی 7segment از نوع Mltiplex

         معرفی ماژول اولتراسونیک

         مکانیزم عملکرد ماژول اولتراسونیک

         معرفی فیلتر نرم افزاری Moving Average برای حذف نویز از پارامترها

 

o       جلسه دوازدهم

         بستن پروژه فاصله سنج با التراسونیک7segment

         مثال های دیگر در مورد تایمر در STM32

         تغییر نوع نمایشگر7segment  از یولینگ به تایمر

         تنظیم فرکانس تایمر برای نمایشی 7segment بصورت بی نقص در مورد تصویر برداری

         رفع هاله از نمایشگر 7segment

         اموزش نحوه‌ی عملکرد سنسور فاصله سنج اولتراسونیک

         برنامه نوعی ماژول اولتراسونیک

                    

o       جلسه سیزدهم

         ادامه پروژه نمایشگر 7segment وسنسور اولتراسونیک

         مفاهیم عملی در مورد تایمرها و امکان هنگ کردن سیستم با تنظیم نادرست تایمر

         پیاده سازی عملی ترفند Moving Average برای تثبیت مقدار سنسور

         معرفی موتورهای پله ای

         ارتباط درایو کردن موتور پله ای با تایمر

         انواع موتورهای پله ای از نظر مشخصات فنی

         انواع روشهای درایو کردن موتور پله ای بصورت تک قطبی یا دو قطبی

         نحوه‌ی تشخیص سیم های موتور پله ای

         کاربرد موتورهای پله ای در انواع دستگاه‌ها

         تکنیک راه اندازی چند موتور پله ای بصورت همزمان با تایمر

         مفهوم ترک در موتورهای پله ای

         روتاری انکودر و کاربردهای آن

         ساختار درونی روتاری  انکودر

         مکانیزم عملکرد روتاری انکودر

         تکنیک نرم افزاری برای حذف نویز روتاری انکودر

 

o       جلسه چهاردهم

         ایجاد پروژه STM32 از روی پروژه دیگر

         برنامه نویسی عملی Rotary Encoder

         ترفند Moving Average برای مقابله با کیفیت کم روتاری انکودر های بازار

          مشاهده عملی سیستم های موتور پله ای

         آموزش عملی اتصال موتور پله ای به میکرو کنترل STM32

         برنامه نویسی برای راه اندازی موتور پله ای با STM32

   

o       جلسه پانزدهم

         رفع چند ایراد در کد در ادامه پروژه جلسه قبلی

         تکمیل مدار درایو موتور پله ای

         آموزش عملی تست موتور پله ای و یافتن ترتیب سیم ها با مولتی متر

         آموزش عملی تغییر مشخصات تایمر بصورت پویا

         نکات عملی در Map کردن مقادیر مختلف و تنظیم روی تایمر بصورت داینامیک

         تحلیل تفاوت محاسبات ریاضی عادی با محاسبات ریاضی در میکرو کنترل

         انواع توابع و روش های ایجاد تاخیر

         پروژه ساده برای ایجاد تاخیر با استفاده از تایمر

 

o       جلسه شانزدهم

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

         آموزش مفهوم PWM

         پارامترها و مشخصات PWM

         روش های تولید PWM

         نکات تولید PWM توسط تایمر میکرو

         انجام پروژه عملی ساده برای تست PWM با تایمر  )پروژه افزایش و کاهش سرعت موتور DC  با  PWM )

         کنترل سرعت موتور DC به روش Polling

         کنترل سرعت موتور DC با PWM تولید شده توسط تایمر

 

o       جلسه هفدهم

         معرفی سروو موتور و خصوصیات آن

         تفاوت انواع سیگنال ها با فرکانس متفاوت برای راه اندازی Serro Motor

         آموزش محاسبات لازم برای تولید پالس برای Serro Motor

         اصول کار موتور های براش لس و نحوه‌ی درایو کردن آن‌ها

         شروع مبحث RTC

         نکات استفاده از RTC

         تنظیمات واحد تاریخ و ساعت

         توابع مربوط به واحد تاریخ و ساعت

         تفاوت فرمت BIN و BCD در توابع RTC

         ساختار شرط پرانتزی

         معرفی LCD کاراکتری

 

o       جلسه هجدهم

         شروع پروژه عملی ساعت و تقویم با LCD کاراکتری

         شروع پایه‌های LCD  کاراکتری

         توضیح پایه‌های اختصاصی RTC

         توضیح تنظیمات RTC

         نحوه‌ی اضافه کردن کتابخانه LCD کاراکتری به پروژه

         نحوه اتصال LCD  کاراکتری به میکرو کنترل

         توابع مربوط به LCD  و RTC

         نکته ای در مورد همروند بودن فرایندها

         چندین ترفند برنامه نویسی برای چاپ روی LCD  کاراکتری

         نکته برای رفع پرپر زدن نور پس زمینه نمایشگرها

         معرفی رابط سریال I2C

         مفهوم Master و Slave  در رابط I2C

         نکات ارتباطی در سطح سخت افزاری برای I2C

 

o       جلسه نوزدهم

         ادامه مباحث I2C

         توابع I2C

         ساختار آدرس دهی در ارتباط I2C

         اطلاعات تکمیلی در مورد AT24C32

         انجام پروژه عملی راه اندازی آی سی AT24C32

         نکات خاص در دیتاشیت آی سی AT24C32

         توابع Read و Write روی EEPROM

         نوشتن روی حافظه EEPROM

         خواندن از حافظه EEPROM

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

         نکات تکمیلی در مورد آی سی AT24C32

 

o       جلسه بیستم

         شروع بحث مربوط ADC

         مباحث پایه در مورد انالوگ و سنسورها

         نکات در مورد پایه های مربوط به ADC

         تغذیه و ولتاژ مرجع در ADC

         نکات مربوط  به رزولوشن در ADC

         اسکیل کردن ولتاژ برای اندازه گیری ولتاژهای بالای 3.3 V

         توابع ADC  در STM32

         ماهیت غیرخطی ADC  در میکرو کنترل‌ها

         ترفنداندازه گیری ولتاژهای بسیار پایین

         انجام پروژه ترموستات با LM32 و ثبت پارامترها در EEPROM

         ترفند متوسط گیری بصورت عملی در مقدار ولتاژ سنسور

         محاسبات مورد نیاز در ADC

         نمایش دما بصورت اعشاری روی LDC کاراکتری

 

o       جلسه بیست ویکم

         معرفی ماژول Joystick

         آموزش مفاهیم مولتی خیلی برای ADC

         انجام پروژه خواندن  چند کانال ADC برای Joystick

         تست جوی استیک با مولتی متر

         تنظیمات پیشرفته ADC

         مفهوم   Rank در تبدیل ADC

         تغییرRank  بصورت داینامیک

         راه اندازی دو سروو موتور با یک Joystick

         مولتی قبل ADC در میکروهای فاقدNumber Of Converstion

         کانال های Vref  و دماسنج داخلی در ADC

 

o       جلسه بیست و دوم

         آموزش صفحات لمسی مقاومتی

         اصول کار صفحات لمسی مقاومتی

         نحوه درایو کردن صفحات لمسی مقاومتی

         انجام پروژه و برنامه نویسی لازم برای راه اندازی صفحه لمسی مقاومتی با STM32

         کالیبراسیون صفحات لمس مقاومتی

         معایب روش استفاده شده برای راه اندازی صفحه لمس مقاومتی

         ترفند آماری برای افزایش دقت نمونه برداری از صفحه لمس مقاومتی

         شروع بحث SPI در STM32

         اتصالات SPI وپایه های SPI

 

·         فصل پنجم

o       جلسه یکم

         یادآوری تعریف سناریو و روابط کاربردی و تعریف محدودیت

         راهکار عملی برای دیباگ کردن پروژه های پیچیده

         برنامه نویسی ماژولار

         دات ماتریس 8*8و نحوه عملکرد این ماژول ها

         شروع پروژه رسم شکل روی دات ماتریس

         نکته در مورد تغذیه آنالوگ برخی میکروها

 

o       جلسه دوم

         ادامه کد نویسی جلسه قبل

         تنظیم فرکانس دات ماتریس

         رفع چندین باک

         نمایش اشکال خاص روی دات ماتریس

         ایجاد امکان تغییر شکل روی دات ماتریس

         چشمک زن کردن نقطه هدف روی دات ماتریس

         تعریف Font برای نمایش روی دات ماتریس

         اتمام پروژه اول فصل پنجم

 

o       جلسه سوم

         نکته باگ ودیاگ در مورد کد پروژه جلسه قبلی

         معرفی نمایشگرهای رنگی TFT

         ساختار داخلی نمایشگر رنگی برای نمایش تصویر

         مفهوم Pixel و عمق رنگ – انواع سیستم رنگ HSV,RGB و CMYK-رزولوشن-بیتمپ

         بررسی کامل فضای رنگ RGB   16بیتی

         معرفی توابع مربوط به نمایشگر ILI9488

         معرفی نرم افزار Lcdvision

         منطق انتقال تصویر از کامپیوتر روی نمایشگر

         مفهوم Little endian/big endian

         معرفی تابع Itoa  3 پارامتری

         اهمیت قید Const در زبان C/C++

         معرفی تراشه STM32F103RET6

         شروع پروژه راه اندازی نمایشگر رنگی TFT

 

o       جلسه چهارم

         ادامه پروژه راه اندازی نمایشگر رنگی

         اتصال نمایشگر ILI9488 به میکرو کنترول

         اتصال و تنظیم رابط SPI برای نمایشگر

         تست توابع مختلف نمایشگر رنگی

         تست عملی توابع تولید عدد تصادفی

         محاسبات لاز م برای جایابی تصویر روی نمایشگر

         تست عملی Map کردن یک عدد تصادفی به بازه دلخواه

         تبدیل تصویر معمولی به Hex برای اتصال به میکروکنترول

         استفاده از نرم افزار Lcdvision

         تفاوت RNG و PRNG

         ایجاد عدد تصادفی در بازه دلخواه

         ترفند تبدیل PRNG به شبه تصادفی

         مفهوم Seed در تولید عدد تصادفی

         برنامه نویسی بازی ها وتئوری بازی ها

 

o       جلسه پنجم

         شروع پروژه بازی Tetris

         اضافه کردن چند قطعه به پروژه جلسه قبلی

         بررسی بیشتر روی توابع نمایشگر رنگی

         تبدیل کد رنگ 24 بیتی به 16 بیتی

         طراحی بلوک های بازی

         تست اولیه ساخت محیط بازی

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

 

o       جلسه ششم

         ادامه برنامه نویسی پروژه Tetris

         نکته مهم در مورد استفاده از تایمرها

         مفهوم Sprite  در برنامه نویسی بازی ها

         توصیف مکانیزم چرخش اسپریت ها دربازی Tetris

         تعریف استراکچر مربوط به اسپریت ها +مقداردهی اولیه

         توابع چاپ اسپریت روی نمایشگر

         توابع حذف اسپریت از روی نمایشگر

         رفع عیب مقدار دهی مکان اولیه اسپریت ها

         تست مقادیر اولیه اسپریت ها

         رفع عیب مقادیر اولیه اسپریت ها

 

o       جلسه هفتم

         ادامه برنامه نویسی پروژه بازی Tetris

         تشخیص تداخل Spriteها هنگام چرخش

         افزودن چند دکمه به مدار

         افزودن امکان به چپ و راست بردن Sprite ها

         افزودن LED برای یافتن خطای منطقی داخل بازی

 

o       جلسه هشتم

         ادامه برنامه نویسی بازی Tetris

         چک کردن تایمر برای رفع مشکل جلسه قبلی

         رفع مشکل جلسه قبلی

         شمارش دفعات کلیک برای دیباگ کردن

         روش های پیشرفته برای حذف بانس

         رفع چندین باگ و توضیح علت و راه حل

         شروع برنامه نویسی هسته اصلی بازی

         تشخیص برخورد Sprite به پایین صفحه

         عملیات بروزرسانی محیط بازی پس از برخورد

         اولین تست بازی

 

o       جلسه نهم

         ادامه برنامه نویسی بازی Tetris

         ترفند نرم افزاری برای دیباگ کردن

         دیباگ کردن برنامه برای رفع مشکل جلسه قبلی

         رفع مشکل جلس قبلی

         افزودن حالت GemeOver به بازی Tetris

         ایجاد حالت افزایش سرعت Sprite در مراحل بالاتر بازی

         رفع مشکل تغییر وضعیت بازی موقع GemeOver شدن

         افزودن حالت حذف ردیف در صورت پرشدن ردیف

 

o       جلسه دهم

         ادامه برنامه نویسی بازی Tetris

         رفع باگ جلسه قبلی از بازی

         اضافه کردن بازربه بازی

         تست نهایی و اتمام پروژه بازی Tetris

         معرفی توابع جدید برای تولید عدد تصادفی با کیفیت بالاتر

         شروع پروژه جدید : پروژه منوی 3 سطحی

         تعریف دقیق پروژه منوی 3 سطحی

         ایجاد پروژه منوی 3 سطحی و توابع اصلی آن

         طراحی و ایجاد تصاویر مورد نیاز برای پروژه

         تعریف و طراحی ساختار درختی منو

         تست اولیه منو

         برنامه نویسی فلش انتخابگر منو و دکمه های پروژه

 

o       جلسه یازدهم

         ادامه برنامه نویسی پروژه منوی 3 سطحی

         طراحی منوهای سطح دوم رله ها

         برنامه نویسی سطح دوم

         طراحی آیکون Home و Return

         برنامه نویسی سطح سوم رله ها

         طراحی منوهای سطح دوم موتورها

 

o       جلسه دوازدهم

         ادامه برنامه نویسی منوی 3 سطحی

         بررسی باگ های موجود در برنامه

         تغییر سرعت حرکت فلش روی منو

         رفع باگ های برنامه

         اضافه کردن 3سرووموتور 5ولتی به مدار

         تنظیمات تامیر برای راه اندازی سرووموتور

         تعریف فرمول دقیق برای راه اندازی سرووموتور

         تغییر آیکون بازگشت

         افزودن بوق به دکمه ها

         رفع چند باگ

         اتمام پروژه منوی 3سطحی

 

o       جلسه سیزدهم

         توضیحات بیشتر درمورد صفحات لمسی مقاومتی

         شروع پروژه بازی ویروس با صفحه لمسی

         نصب صفحه لمسی روی نمایشگر لمسی

         ایجاد پروژه درCube IDE  و انجام تنظیمات اولیه

         تشخیص بازه مجاز برای لمس (تشخیص عدم لمس شدن صفحه)

         انجام محاسبات لازم برای تشخیص دقیق محل لمس

         تهیه Spriteهای لازم برای باری ویروس

         تعریف استراکچر ویروس

         تعریف برخی از توابع مورد نیاز

         تشخیص برخورد محل تاچ روی ویروس

 

o       جلسه چهاردهم

         ادامه انجام پروژه بازی ساده ویروس

         تولید ویروس تصادفی

         جایابی تصادفی و تدوین ها

         تشخیص تداخل در محل ویروس ها

         تست اولیه بازی

         رفع عیوب و باگ ها

         تست نهایی پروژه بازی ساده ویروس

 

o       جلسه پانزدهم

         شروع پروژه منوی 3 سطحی با صفحه لمسی

         کپی پروژه از پروژه شماره23

         ایجاد تغییرات جرئی در پروژه

         تنظیمات اولیه پروژه و تست موتورها

         تشخیص محل دقیق لمس صفحه

         تشخیص لمس شدن دکمه های مجازی

         شبیه سازی فشرده شدن کلیدها

         رفع باگ های برنامه

         تست نهایی پروژه و اتمام پروژه

         ترفند متوسط گیری در خواندن صفحه لمسی

         راه اندازی ماژول های ناشناخته

 

·         فصل ششم

         مدارات منطقی

         زبان توصیف سخت افزاری

         تولید کنندگان FPG و CPLD

         تراشه ها و محیط های توسعه FPG و CPLD

         روش های درامدزایی از مهارت حاصله از این دوره نخبگان

         ترفندهای گرفتن پروژه (8روش موثر در گرفتن پروژه)

         توسعه پروژه

         قیمت گذاری روی پروژه (8عامل موثر در قیمت گذاری پروژه)

         طراحی صنعتی و عوامل موثر در آن

         دوبخش عمده طراحی صنعتی

         نویز در طراحی صنعتی

         نکات تغذیه مدار در طراحی صنعتی

         نکات طراحی PCB در طراحی صنعتی

         تاثیر کیفیت قطعه در طراحی صنعتی