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

–          برنامه نویسی - میکروکنترلر - 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 در طراحی صنعتی

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