armeducation
3.59K subscribers
377 photos
329 videos
115 files
376 links
آموزش حرفه ای میکروکنترلرهای ARM

ادمین:
@mzarkoob
مهندس مهدی زرکوب
شروع مطالب :
https://t.me/armeducation/1
اینستاگرام :
@armeducation
کانال ایتا:
https://eitaa.com/armeducation
همراه :
09359956361
Download Telegram
armeducation
در انجام یک پروژه تعیین قیمت یکی از مسائل اصلی بین طرفین می باشد. هر چند قبلا مواردی در کانال ذکر شده است: https://t.me/armeducation/196 https://t.me/armeducation/193 در تعیین قیمت یک پارامتر مهم زمان انجام کار است. اگر کاری از قبل انجام شده باشد که این موضوع…
قیمت دادن پروژه با توجه به کلیات
به عنوان مثال چنین کلیاتی را از یک پروژه در نظر بگیرید :
- راه اندازی LCD 7 اینچ و تاچ خازنی
- طراحی یک رابط کاربری گرافیکی
- چهار خروجی های pwm و یک SPI و سریال و چند GPIO
- نمونه گیری چند کانال adc
- تبادل دیتا با اترنت
- ذخیره دیتا در SD
....
لطفا قیمت و زمان انجام پروژه را مشخص فرمایید!
به نظر شما چگونه با توجه به کلیات می توان قیمت مناسب داد!؟
شاید بهتر باشد در این گونه موارد یک قیمت کلی داد و متناسب با مطرح کردن جزییات، در قیمت و زمان اصلاحات انجام داد. یا زمان زیادی صرف پرسیدن جزییات کرد ....
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
فیلم آموزش STM32F1 مقدماتی متوسط
فروشگاه:
https://goo.gl/oMHSom
پاسخگویی به سوالات :
https://goo.gl/2Zr5Qg

فیلم پیشرفته
فروشگاه :
https://goo.gl/JBvEZg
سوالات :
https://goo.gl/XVsMBf
@armeducation
armeducation
شرح و تست اولیه کیپد ساده با تاچ خازنی در TFT LCD Touch : GT911 TFT LCD : 7 inch 1024*600 Micro : LPC1788 @armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
اجرای کیپد با تاچ خازنی در TFT LCD
به نظر شما در این اجرای ساده چه جزئیاتی رعایت شده است؟
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
تبدیل الگوریتم به کد
یکی از مشکلاتی که در کارآموزان مختلف مشاهده شده ضعف در تبدیل الگوریتم به کد است. در اینجا دیگر مشکل راه اندازی پریفرال های مختلف نیست، بلکه مشکل نحوه پیاده سازی یک کاری با این پریفرال هاست.
در نظر بگیرید می خواهید یک عملکردی را به کد تبدیل کنید. در اینجا بایستی بستگی به نوع عملکرد بتوانید مرحله به مرحله کار را توسعه دهید تا کار مورد نظر انجام شود . مهارت برنامه نویسی چیزی است که در اینجا خود را نشان می دهد و این مهارت جز با تمرین حاصل نمی شود. تمرین هم نیاز به صرف وقت دارد. این تمرین را، خود فرد باید بعد از دیدن آموزش انجام دهد. بنابراین تمرین قسمت بعدی فرایند آموزش برای یادگیری است. در اینجا اگر این تمرینات کاربردی باشد بعدا در کارهایی که انجام می شود نیز می توان استفاده کرد.
تمرینات ترکیبی شروع خوبی برای این کار است :
https://t.me/armeducation/236
همچنین تبدیل کارهای بزرگ به قسمتهای کوچکتر :
https://t.me/armeducation/127

@armeducation
تاکنون تا چه حد مطالب کانال را مفید می دانید؟
Anonymous Poll
14%
خیلی زیاد
19%
زیاد
23%
خوب
17%
متوسط
27%
کم
🎓 هفتمین دوره آموزش میکروکنترلر STM32 - تابستان 98
🏢 مکان : "اصفهان"
(سطح مقدماتی متوسط)
مدت "36" ساعت
🕔 زمان : پنج شنبه ها ساعت 17 الی 21، در 9 هفته
▶️ شروع دوره : پنج شنبه 6 تیر ماه 98
👤 مدرس : مهندس مهدی زرکوب با 9 سال سابقه آموزش حرفه ای میکروکنترلرهای ARM
📚 پیش نیاز : آشنایی با زبان برنامه نویسی سی
https://t.me/armeducation/210
8️⃣ ظرفیت : 8 نفر
💲 شهریه : 580 هزار تومان، با تخفیف 480 هزار تومان
⚠️ اولویت با کسانیست که ثبت نام خود را زودتر قطعی نمایند.
🖋 جهت ثبت نام :
🆔 -》 @mzarkoob
☎️ 09359956361
📝 سرفصل (سطح مقدماتی متوسط) :
http://www.arm-education.ir/?p=19
آموزش این دوره مقدماتی متوسط از پایه ، عملی و کاربردی خواهد بود نه صرفا آشنایی با توابع یا رجیسترها.
✔️شرح رجیسترها و اصول عملکرد توابع، در موارد لازم cmsic و ” کاربردهای پریفرالها ” و اجرای عملی در کلاس و تمرین بعد از آن و رفع ایراد در جلسه بعد( و به موازات کیوب).
💻تجهیزات لازم : برد ، پروگرامر و لب تاب
توضیحات بیشتر :
http://www.arm-education.ir/?p=527
@armeducation
ارسال دیتا روی پورت های میکرو و پایه ای پشت سر هم :
اگر بخواهید یک دیتای 16 بیتی را روی پورت های میکرو ارسال کنید حالت های مختلفی وجود دارد. ساده ترین حالت ارسال روی یک پورت است.
حالت دیگر ارسال روی 8 بیت کم ارزش یا باارزش از دو پورت مختلف است.
به نظر شما در صورتی که نتوانیم از روش اول استفاده کنیم روش دوم بهتر است یا روش سوم؟
و اگر پایه ها روی چند پورت مختلف بود و پشت سر هم نبود چگونه باید این کار انجام شود؟
@armeducation
armeducation
پایه های ارسال دیتا از میکرو به ال سی دی کاراکتری، پشت سر هم انتخاب می شود : GPIOE->BSRR = C حال اگر این پایه ها پشت سر هم نبود مثلا : PA2 PB13 PC4 PD5 چگونه بایستی دیتا را قرار داد!؟ @armeducation
ارسال دیتا روی پورت های میکرو و پایه های دلخواه :
در مواقعی به دلیل محدودیت سخت افزار، لازم است دیتا روی پورت های مختلف و پایه های دلخواه قرار گیرد . به این ترتیب مانند قبل نمی توان با یک دستور ساده این ارسال دیتا را انجام داد:
GPIOC->ODR = Data;
—————————--
GPIOC->BSRR = Data & 0xff;
در اینجا با & و شیفت , ... لازم است به طور مناسب این انتقال بروی پایه های مورد نظر انجام شود. بهتر است بتوان در ابتدا پورت ها و پایه های مورد استفاده را دیفاین کرد که به سادگی بتوان آن را تغییر داد.
در سون سگمنت، ال سی دی کاراکتری،گرافیکی و TFT و ... این موضوع کاربرد دارد.
@armeducation
armeducation
در حالت معمولی با قرار دادن دیتا در پایه های a تا g و dat و فعال کردن سگمنت مربوطه، نمایش در سون سگمنت انجام می شود. ولی می توان با تغییر الگوریتم کار، به شکل دیگری عمل کرد 👇ادامه ... @armeducation
define :
با دیفاین کردن در ابتدای برنامه می توان بدون نیاز به تغییر در برنامه ، تغیرات لازم را اعمال کرد. به عنوان مثال این کار برای سون سگمنت سه تایی انجام شده است :

#define Katod1 8
#define Katod2 14
#define Katod3 12

#define GPIO_K1 LPC_GPIO2
#define GPIO_K2 LPC_GPIO0
#define GPIO_K3 LPC_GPIO1

#define GPIO_A LPC_GPIO1
#define GPIO_B LPC_GPIO2
#define GPIO_C LPC_GPIO1
#define GPIO_D LPC_GPIO0
#define GPIO_E LPC_GPIO3
#define GPIO_F LPC_GPIO2
#define GPIO_G LPC_GPIO0
#define GPIO_Dot LPC_GPIO1

#define PIN_A 5
#define PIN_B 1
#define PIN_C 3
#define PIN_D 8
#define PIN_E 2
#define PIN_F 5
#define PIN_G 23
#define PIN_Dot 14

@armeducation
مشاوره هزینه دارد حتی یک سوال!
در دفتر خدماتی یک موردی به چشمم خورد که نظرم را به خودش جلب کرد.
البته در جاهای دیگر نیز مشاهده شده که به همین شکل است.
مقایسه کردم با عملکرد حیطه کاری خودمان که گاهی یک ساعت در حال مکالمه و مشاوره با فردی هستیم بدون ...
کدام درست است؟
البته مسلما شما به جایی مراجعه کنید و بدون هزینه مشاوره و راهنمایی کنند یا حتی انجام کار، خیلی بیشتر مورد پسند است ولی باید خود را در آن طرف جایگاه هم قرار داد.
@armeducation
 
پیداش نمی کنه!
قبلا مطلبی خوانده بودم که گاهی معادلش برایمان پیش آمده.
این مطلب مکالمه تلفنی واقعی ضبط شده در مرکز خدمات مشاوره مایکروسافت در انگلستان است :
مشتری : سلام، عصرتون بخیر، من مارتا هستم، نمی تونم پرینت بگیرم. هر دفعه سعی می کنم میگه : "نمی تونم پرینتر رو پیدا کنم" من حتی پرینتر رو بلند کردم و جلوی مانیتور گذاشتم ، اما کامپیوتر هنوز میگه نمی تونه پیداش کنه… ☺️
----------------------
من نمی تونم بردم را پروگرام کنم
بعد کلی راهنمایی و ... میپرسی درایورش نصبه؟
-نه مگه درایور می خواد!؟
--------------------
.....
@armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی دانشگاه تموم میکنی و فکر میکنی کل مملکت منتظر مدرک تو بودن و یهو میخوری به غول بیکاری و نا امیدی😐

حالا اگه روی مطالب عملی وقت بیشتری بذارید فکر می کنید وقتی رسیدید به این غول بیکاری و نا امیدی،بتونید چند تا مشت بزنید!؟
@armeducation
در این سمپل راه اندازی TFT 2.8 اینچ هم با درایور ILI9325 در میکروکنترلر lpc1768 قرار داده شده است :
http://www.iranmicro.ir/forum/showthread.php?t=8285&p=77939&viewfull=1#post77939

@armeducation
armeducation
در این سمپل راه اندازی TFT 2.8 اینچ هم با درایور ILI9325 در میکروکنترلر lpc1768 قرار داده شده است : http://www.iranmicro.ir/forum/showthread.php?t=8285&p=77939&viewfull=1#post77939 @armeducation
This media is not supported in your browser
VIEW IN TELEGRAM
تغییر در کتابخانه TFT 2.8 برای استفاده در میکروی stm32
کتابخانه بایستی حتی الامکان به گونه ای باشد که به سادگی با تغییر دیفاین ها بتوان برای میکروهای دیگر قابل استفاده شود.
#define TFT_PORT GPIOB
#define TFT_CPORT GPIOC

#define TFT_CS 8
#define TFT_RS 9
#define TFT_WR 10
#define TFT_RD 11
#define LCD_CS(x) ((x) ? (TFT_CPORT->BSRR = PIN_CS) : TFT_CPORT->BRR = PIN_CS));
.....
@armeducation
armeducation
اجرای کیپد با تاچ خازنی در TFT LCD به نظر شما در این اجرای ساده چه جزئیاتی رعایت شده است؟ @armeducation
در این اجرا بایستی راه اندازی این موارد را از قبل انجام داده باشیم :
- رم خارجی
-TFT LCD
- SD Card
- I2C جهت راه اندازی تاچ خازنی
- تاچ خازنی
——————————————-
همچنین برای انجام کار بایستی به این جزییات توجه شود :
- تابعی که در ابتدا عکس های مشخص شده را به رم منتقل کند
- تابع صفحه اصلی که با فراخوانی آن صفحه اصلی مورد نظر نمایش داده شود
- تابع کیپد که با فراخوانی آن کیپد نمایش داده شود
- تابعی که تشخیص دهد چه نقطه ای در کیپد لمس شده است.
- تابعی که تشخیص دهد چه نقطه ای در صفحه اصلی لمس شده است.
***************************
-در تابع انتقال عکس از sd به رم :
در این تابع بایستی نقطه شروع اولیه در رم مشخص شود. همچنین اندازه عکس ذخیره شده را بایستی محاسبه کرد تا بتوان عکس بعدی را با توجه به نقطه شروع قبلی و اندازه عکس قبلی مشخص کرد:
Adress[n] = Adress_image[n-1]+Width[n-1]*Height[n-1]*2;
SD2RAM("1.bmp",Adress_image[n],&Width[n],&Height[n]);
-در نمایش عکس از رم :
تابعی که با دادن آدرش شروع عکس، آن را در TFT نمایش دهد.
برای سادگی می توان ابعاد تصویر را به ورودی این تابع اعمال کرد.
همچنین در تابع نمایش دیگری می توان زمینه سفید عکس را حذف کرد
@armeducation
Forwarded from armeducation (Mahdi Zarkoob)
فیلم آموزش STM32F1 مقدماتی متوسط
فروشگاه:
https://goo.gl/oMHSom
پاسخگویی به سوالات :
https://goo.gl/2Zr5Qg

فیلم پیشرفته
فروشگاه :
https://goo.gl/JBvEZg
سوالات :
https://goo.gl/XVsMBf
@armeducation