#نکته #طراحی #تجربه
طراحی سیستم یعنی پیدا کردن راه حل مسئله که معمولا فارغ از سخت افزار و نرم افزار هست و شامل چگونگی و راه حل مسئله هست. یک مثال ساده شاید بتواند بیشتر کمک کند.
مثلا برای اینکه چطور می شود یه ربات تعقیب خط ساخت؟
اینکه اول بدانیم مکانیزم های مختلف مکانیکی یک ربات به چه شکلی است.
یا مثلاً سیستم حرکتی آن دو موتور باشد یا چهار موتور یا حتی تسمه ای.
کدام مکانیزم برای کاربرد ما بهتر عمل می کند و نقاط ضعف آنها چیست.
چه سنسورهایی لازم است. نحوه چیدمان سنسورها، رابطه سنسورها با فرمان به مکانیزم موتورها و ...
حال یک مثال عینی خوب می زنیم.
مثلاً کسی که به عنوان طراح سیستم کار طراحی ماشین هوشمند گوگل را انجام می دهد، اصلا به این معنی نیست که دنبال این باید باشد که مدار کنترل این ماشین حتماً میکروکنترلر ARM مثلاً شرکت ST یا PHILIPS باشد.
چون ممکن است اصلاً خودش برد کنترل را نسازد. اما این را می داند که یک برد کنترل دقیقاً با چه امکانات و ویژگی هایی مورد نیاز است، چه نوع سنسوری لازم است و ... همانطور که در مورد بدنه و موتور می داند چه نیازهایی را لازم دارد.
در آخر اگر پروژه محدود و کوچک باشد و قابلیت پیاده سازی توسط خودش فراهم باشد، خودش دست به کار می شود، ولی اگر پروژه بزرگ باشد تقسیم بندی کرده و همه قسمت ها را برون سپاری می کند تا مجموعه های دیگر انجام دهند و خودش مدیریت می کند.
بنابراین می توانیم مراحل طراحی را با ترتیب زیر پیش ببریم:
1- طراحی مفهومی
2- طراحی سیستمی
3- طراحی جزئی
انتخاب نوع میکروکنترلر و سنسورها و قطعات و ... در مرحله طراحی جزئی انجام می شود.
@taksuntec
@khoshfekran
طراحی سیستم یعنی پیدا کردن راه حل مسئله که معمولا فارغ از سخت افزار و نرم افزار هست و شامل چگونگی و راه حل مسئله هست. یک مثال ساده شاید بتواند بیشتر کمک کند.
مثلا برای اینکه چطور می شود یه ربات تعقیب خط ساخت؟
اینکه اول بدانیم مکانیزم های مختلف مکانیکی یک ربات به چه شکلی است.
یا مثلاً سیستم حرکتی آن دو موتور باشد یا چهار موتور یا حتی تسمه ای.
کدام مکانیزم برای کاربرد ما بهتر عمل می کند و نقاط ضعف آنها چیست.
چه سنسورهایی لازم است. نحوه چیدمان سنسورها، رابطه سنسورها با فرمان به مکانیزم موتورها و ...
حال یک مثال عینی خوب می زنیم.
مثلاً کسی که به عنوان طراح سیستم کار طراحی ماشین هوشمند گوگل را انجام می دهد، اصلا به این معنی نیست که دنبال این باید باشد که مدار کنترل این ماشین حتماً میکروکنترلر ARM مثلاً شرکت ST یا PHILIPS باشد.
چون ممکن است اصلاً خودش برد کنترل را نسازد. اما این را می داند که یک برد کنترل دقیقاً با چه امکانات و ویژگی هایی مورد نیاز است، چه نوع سنسوری لازم است و ... همانطور که در مورد بدنه و موتور می داند چه نیازهایی را لازم دارد.
در آخر اگر پروژه محدود و کوچک باشد و قابلیت پیاده سازی توسط خودش فراهم باشد، خودش دست به کار می شود، ولی اگر پروژه بزرگ باشد تقسیم بندی کرده و همه قسمت ها را برون سپاری می کند تا مجموعه های دیگر انجام دهند و خودش مدیریت می کند.
بنابراین می توانیم مراحل طراحی را با ترتیب زیر پیش ببریم:
1- طراحی مفهومی
2- طراحی سیستمی
3- طراحی جزئی
انتخاب نوع میکروکنترلر و سنسورها و قطعات و ... در مرحله طراحی جزئی انجام می شود.
@taksuntec
@khoshfekran
Forwarded from 🔹🔶 خوشفکران برق 🔶🔹
#آموزشی #نکته #CRC
در هر پروژه ی صنعتی که مساله ی انتقال دیتا بین دستگاه های مختلف وجود دارد ، لازم است دیتا را در هر ارسال کدبندی کرده و همراه با پکت اصلی ارسال کنیم و در مقصد با کدگشایی از صحت آنها اطمینان حاصل کنیم. یدک کشیدن واژه ی "صنعتی" به معنای ضریب اطمینان صد در صد است که چیزی فراتر از مثالهای آموزشی برای راه اندازی بخشی از مدار است. چه بسا دریافت اطلاعاتی اشتباه از دستگاهی دیگر به نشانه ی بکار افتادن بخشی از سیستم ، یا قطع عملیاتی بسیار مهم باشد. بنابراین طراح باید جایی برای ریسک غیرمنطقی باقی نگذارد و موظف به پیشبینی احتمالات می شود.
یک راه حل مطمئن که در پروتکل های صنعتی مانند مدباس ، فیلد باس و ... نیز مجبور به استفاده از ان هستیم ، ارسال کد CRC همراه با PDU است که توابع آنرا در زیر مشاهده می کنید:
پ.ن:
PDU:Packet Data Unit
CRC: Cyclic Redundancy Check
@khoshfekran
در هر پروژه ی صنعتی که مساله ی انتقال دیتا بین دستگاه های مختلف وجود دارد ، لازم است دیتا را در هر ارسال کدبندی کرده و همراه با پکت اصلی ارسال کنیم و در مقصد با کدگشایی از صحت آنها اطمینان حاصل کنیم. یدک کشیدن واژه ی "صنعتی" به معنای ضریب اطمینان صد در صد است که چیزی فراتر از مثالهای آموزشی برای راه اندازی بخشی از مدار است. چه بسا دریافت اطلاعاتی اشتباه از دستگاهی دیگر به نشانه ی بکار افتادن بخشی از سیستم ، یا قطع عملیاتی بسیار مهم باشد. بنابراین طراح باید جایی برای ریسک غیرمنطقی باقی نگذارد و موظف به پیشبینی احتمالات می شود.
یک راه حل مطمئن که در پروتکل های صنعتی مانند مدباس ، فیلد باس و ... نیز مجبور به استفاده از ان هستیم ، ارسال کد CRC همراه با PDU است که توابع آنرا در زیر مشاهده می کنید:
static unsigned char crc8_table[256]; /* 8-bit table */
static int made_table=0;
static void init_crc8()
{
int i,j;
unsigned char crc;
if (!made_table)
{
for (i=0; i<256; i++)
{
crc = i;
for (j=0; j<8; j++)
crc = (crc << 1) ^ ((crc & 0x80) ? DI : 0);
crc8_table[i] = crc & 0xFF;
/* printf("table[%d] = %d (0x%X)\n", i, crc, crc); */
}
made_table=1;
}
}
void crc8(unsigned char *crc, unsigned char m)
{
if (!made_table)
init_crc8();
*crc = crc8_table[(*crc) ^ m];
*crc &= 0xFF;
}
پ.ن:
PDU:Packet Data Unit
CRC: Cyclic Redundancy Check
@khoshfekran
Forwarded from 🔹🔶 خوشفکران برق 🔶🔹
#طراحی #نکته #pcb
با استفاده از قابلیت Teardrop که در بسیاری از نرم افزارها موجود است، می توان استحکام اتصال مسیرها به پد المان ها یا Via را بهبود بخشید. این موضوع به ویژه در بردهای با تراکم بالاکه عرض مسیرها و ابعاد سوراخ ها اندک است، اهمیت دارد. مزیت دیگر این کار آنست که احتمال کنده شدن یا آسیب دیدن مسیر ها در محل اتصال به Via یا پد المان به هنگام اعمال حرارت به برد را کاهش می دهد.
@khoshfekran
با استفاده از قابلیت Teardrop که در بسیاری از نرم افزارها موجود است، می توان استحکام اتصال مسیرها به پد المان ها یا Via را بهبود بخشید. این موضوع به ویژه در بردهای با تراکم بالاکه عرض مسیرها و ابعاد سوراخ ها اندک است، اهمیت دارد. مزیت دیگر این کار آنست که احتمال کنده شدن یا آسیب دیدن مسیر ها در محل اتصال به Via یا پد المان به هنگام اعمال حرارت به برد را کاهش می دهد.
@khoshfekran
Forwarded from 🔹🔶 خوشفکران برق 🔶🔹
#pcb #طراحی #نکته #altium
از گزینه ی Tools در نرم افزار آلتیوم ، میتوانیم به بخش Teardrop دسترسی پیدا کنیم.
دقت کنید که از Teardrop در آخرین مرحله رسم PCB استفاده می شود.
@khoshfekran
از گزینه ی Tools در نرم افزار آلتیوم ، میتوانیم به بخش Teardrop دسترسی پیدا کنیم.
دقت کنید که از Teardrop در آخرین مرحله رسم PCB استفاده می شود.
@khoshfekran
Forwarded from 🔹🔶 خوشفکران برق 🔶🔹
#نکته #سنکرون #کلاک #skew
سنکرون به معنای اعمال کلاک همزمان به ادوات دیجیتال
در طراحی های سنکرون، اگر توزیع سیگنال کلاک بدرستی انجام نشود ، تاثیر ناشی از خازن مسیرها و بافرها باعث ایجاد تفاوت در وضعیت سیگنالِ نقاط مختلف (به اصطلاح جابه جایی کلاک یا Skew) می شود.
@khoshfekran
سنکرون به معنای اعمال کلاک همزمان به ادوات دیجیتال
در طراحی های سنکرون، اگر توزیع سیگنال کلاک بدرستی انجام نشود ، تاثیر ناشی از خازن مسیرها و بافرها باعث ایجاد تفاوت در وضعیت سیگنالِ نقاط مختلف (به اصطلاح جابه جایی کلاک یا Skew) می شود.
@khoshfekran
Forwarded from 🔹🔶 خوشفکران برق 🔶🔹
Forwarded from Embedded Academy