KnowledgePlus.ir
5.47K subscribers
48 photos
11 videos
18 files
178 links
کانال مهندس اوژن کی نژاد
کلیه مطالب این کانال به جز مواردی که صریحا در متن آن ذکر شده باشد جنبه تالیفی دارد و از جایی کپی نشده است.
کانال اشتغال:
@KnowledgePlusir
@StepMotor
@MC3Delta
@FindChips
instagram.com/knowledgeplus.ir
aparat.com/KnowledgePlus
Download Telegram
در دهه ۷۰ و ۸۰ اکثر دانش آموختگان رشته الکترونیک از دانشگاه های درجه یک دولتی، افراد نخبه و توانمندی بودند و همین که یک نفر فارغ التحصیل این دانشگاه ها بود این اطمینان را تا حد بالایی ایجاد می کرد که در انجام کارهایی که از او انتظار می رود به لحاظ ضریب هوشی و سطح دانش مورد نیاز، مشکل چندانی نداشته باشد. اما اخیرا نقل هایی از میزان اطلاعات و توانمندی بعضی فارغ التحصیلان دانشگاه ها شنیده می شود که واقعا باور کردنی نیست که چطور ممکن است یک فارغ التحصیل دانشگاه خوب دولتی تا این حد فاقد اطلاعات اولیه باشد.

@KnowledgePlus
Forwarded from KnowledgePlus.ir
درباره برنامه نویسی حرفه ای و شباهت عملکرد مغز به عضلات:

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

@KnowledgePlus
معرفی قطعه:

سری 23LC1024 یک آی سی ۸ پین SRAM با ظرفیت 128KByte است که ارتباط با آن از طریق پروتکل های SPI/SDI/SQI و فقط با چند پین محدود قابل انجام است و در پروژه هایی می تواند مورد استفاده قرار بگیرد که حافظه SRAM داخلی میکروکنترلر جوابگوی نیاز مورد نظر نباشد.

@KnowledgePlus
اطلاع رسانی:

اخیرا از اکانت هایی با تیک آبی و تحت عنوان Support تلگرام پیام هایی را به افراد ارسال می کنند و از آنها درخواست هایی دارند و در متن پیام عنوان می شود که اگر این درخواست را انجام ندهید اکانت شما از طرف تلگرام غیر فعال می شود و مواردی از این قبیل.
دقت کنید که این پیام ها از جانب افراد کلاهبردار ارسال می شوند. در این مورد هشیار باشید.

@KnowledgePlus
کاربردهایی در الکترونیک وجود دارند که پیاده سازی آنها با میکروکنترلر نه به قابلیت پردازشی بالایی احتیاج دارد و نه سخت افزارهای جانبی چندان ویژه ای مورد نیاز است و حجم بخش اجرایی کد نوشته شده هم در حدی است که فلش میکروکنترلرهای ضعیف و ارزان هم برای ذخیره سازی جوابگو هستند. اما به علت وجود اطلاعات و دیتای از پیش محاسبه شده و Lookup Table های حجیم در آن کاربرد، سایزحافظه فلش مورد نیاز بسیار بزرگ است. بعضی طراحان در این شرایط فقط به واسطه دسترسی به حافظه فلش با ظرفیت بالا، از انواع گران قیمت خانواده stm32 استفاده می کنند. اما بجای این کار می توان از آی سی های فلش ارزان قیمت سریال مثل سری W25Qxx استفاده کرد که قابلیت اتصال به میکروکنترلر با ۴ پین از طریق ارتباط SPI را دارند و با قیمتی بسیار مناسب، ظرفیتی در حد مگا بایت را برای ذخیره سازی اطلاعات فراهم می کنند. در کارهای تولیدی و تعداد بالا که قیمت قطعات مهم است، چنین روشی می تواند صرفه جویی قابل توجهی در قیمت تمام شده ایجاد کند.

@KnowledgePlus
فرض کنید قرار باشد برای پروژه ای جدید با منطق عملکرد پیچیده، چندین هزار خط برنامه بنویسید. شما به کدام شیوه عمل می کنید؟
Final Results
74%
قبل از شروع برنامه نویسی، از فلوچارت یا شبه کد استفاده می کنم
26%
بدون استفاده از فلوچارت یا شبه کد نوشتن برنامه را شروع می کنم
KnowledgePlus.ir
فرض کنید قرار باشد برای پروژه ای جدید با منطق عملکرد پیچیده، چندین هزار خط برنامه بنویسید. شما به کدام شیوه عمل می کنید؟
نوشتن برنامه های بزرگ بدون استفاده از فلوچارت یا شبه کد علاوه بر طولانی شدن فرایند کد نویسی، احتمال ایجاد خطا در خروجی برنامه را هم بالا می برد و عموما روش درستی نیست.
در همین رابطه یک گام فراتر این است که در هنگام نوشتن برنامه، فهرست کلیه متغیرهای تعریف شده را پیش روی خود داشته باشیم و همیشه حواسمان باشد که هر متغیر یا فلگ در هر مرحله چه وضعیتی دارد؟ یکی از عوامل ایجاد باگ و عملکرد ناصحیح در خروجی برنامه ها این است که متغیرهایی برای رفع نیاز تعریف می شوند، اما بعدا تعیین تکلیف این متغیرها توسط برنامه نویس فراموش می شود و بعد از کلی وقت گذاشتن برای رفع اشکال تازه متوجه می شود که فلان متغیر یا فلگی که جایی تعریف کرده و بعدا به حال خود رها شده، موجب چنین مشکلی شده است. یک روش برای جلوگیری از چنین خطاهایی این است که کلیه متغیرهای تعریف شده را جایی کنار هم یادداشت کنیم و در هر مرحله از برنامه نویسی این سوال را مد نظر داشته باشیم که الان هر متغیر در این مرحله چه وضعیتی دارد و آیا مقدارش تاثیری در این بخش از کد دارد یا نه.

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

@KnowledgePlus
نقل یک تجربه:

در یک کنترلر صنعتی مبتنی بر میکروکنترلر با تعداد زیادی ورودی و خروجی که از طریق RS232 فرمان می گرفت، در مقطعی این نیاز ایجاد شد که امکانات برد از نظر تعداد ورودی و خروجی ها دو برابر و قدرت پردازشی و ظرفیت حافظه بیشتر شود. برای رفع این نیاز یک گزینه ممکن این بود که از میکروکنترلر قوی تری استفاده شود و برد مجددا از نو طراحی شود که این روش مستلزم صرف زمان و هزینه زیادی بود. اما روی این برد ۲ پین آزاد وجود داشت و کاری که عملا انجام شد این بود که با کد نویسی مناسب، دو برد مشابه با یک پروتکل ارتباط سریال به صورت Master-Slave به هم متصل شدند و کنترلر اول از طریق ارتباط RS232 دستورات لازم را دریافت و بخشی را که مربوط به خودش بود اجرا می کرد و بخشی که به کنترلر دیگر مربوط می شد از طریق ارتباط سریال به آن کنترلر منتقل می شد تا توسط میکروکنترلر دوم اجرا شود. با این روش بدون هیچ گونه صرف هزینه ای برای طراحی سخت افزار و PCB جدید، اولا نیاز موجود برای ورودی و خروجی های بیشتر برطرف گردید و دوم این که به علت وجود دو CPU در مجموعه و تقسیم وظایف پردازشی بین آنها، نیاز به میکروکنترلری با قدرت پردازش و حافظه بیشتر منتفی شد.

@KnowledgePlus
چند سال پیش در پست زیر به یکی از مواردی اشاره شد که می تواند منجر به ایجاد باگ در برنامه نویسی به زبان C شود:

T.me/KnowledgePlus/1141

اخیرا در جریان کدنویسی یک کنترلر صنعتی به زبان C و کامپایلر IAR که قرار بود محاسبات ریاضی متعددی در آن انجام شود، در عمل مشاهده شد که خروجی کنترلر گاهی عملکرد صحیحی ندارد و این در حالی بود که در ظاهر اشکالی در برنامه وجود نداشت. بعد از بررسی های متعدد و زمانبر مشخص شد که ریشه مشکل در نقطه ای از برنامه است که عملیات ریاضی بین متغیرهای علامت دار و بدون علامت انجام شده که این قضیه در حالت های خاص نتایج غلطی را در محاسبات ایجاد می کرد. در نهایت با اضافه کردن type casting به متغیر های بدون علامت، مشکل بر طرف گردید.

@KnowledgePlus
یک تجربه مهم که حاصل فعالیت طولانی در محیط های صنعتی مختلف است:

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

@KnowledgePlus
در تعدادی برد کنترلر صنعتی قدیمی، پدیده ای مشاهده شد به این ترتیب که بردها کارشان را به درستی انجام می دهند. اما گاهی دچار مشکلات اتفاقی می شوند و ممکن است روزها به درستی عمل کنند و ممکن است در یک روز، چند بار عملکردشان مختل شود. بعد از بررسی بسیار مشخص شد که این مشکل ناشی از خازن های موازی شده با کریستال میکروکنترلر برد است که زمان زیادی از تولیدشان گذشته است و بعد از چند سال کار، اخیرا چنین مسئله ای را ایجاد می کنند.

@KnowledgePlus
کانال قطعات:
@FindChips
دست به دست دادن عواملی مثل:

۱- مهاجرت یا بازنشسته شدن تعدادی از متخصصان صاحب تجربه

۲- کاهش تقاضا برای کارها و پروژه های الکترونیکی به علت رکود

۳- کم شدن اقبال جامعه به رشته های گرایش ریاضی و مهندسی و هجوم به سمت رشته های گروه پزشکی و انسانی و کاهش جمعیت فارغ التحصیلان

سبب شده که دسترسی به افراد متخصص و صاحب تجربه کافی در الکترونیک سخت تر از گذشته باشد.

@KnowledgePlus
نقل یک تجربه:

۱ - دو کارتن از طریق تیپاکس به شهرستان ارسال شد.
۲- موقع ارسال بابت اشتباهی که خودشان در ثبت ارزش بسته مرتکب شده بودند و بعدا مجبور به تصحیح شدند، با شخص فرستنده به نحو شدیدا توهین آمیزی رفتار کردند که از آنها شکایت شد.
۳- در مقصد گیرنده اعلام کرد که به محتوای یک کارتن آسیبی وارد شده و با این که بار بیمه شده بود اما در نهایت تیپاکس اعلام کرد که چون بار در همان زمان دریافت در حضور خودشان باز نشده، طبق ضوابط خسارتی پرداخت نمی کنند و پرداخت نکردند.

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

توصیه دو: از ارسال بار از طریق شرکت تیپاکس خوداری کنید.

@KnowledgePlus
عقب افتادن قدر و قیمت کار فنی و مهندسی از تورم به این شکل است که سه دهه پیش برای تعمیر یک برد معادل پول ۷.۵ سکه طلا را پرداخت کردند، ولی امروز حقوق یک مهندس الکترونیک در حد ارزش یک نیم سکه است:

T.me/KnowledgePlus/1398
در یک مدار الکترونیکی که قرار است در محیطی صنعتی کار کند، قطعه های زیادی وجود دارند که حتی اگر از مدار حذف شوند، خللی در عملکرد آن مدار در محیط آزمایشگاهی و کم نویز ایجاد نمی شود. در واقع وجود آن قطعات وقتی موضوعیت پیدا می کند که مدار وارد یک محیط صنعتی پر نویز و نوسان شود و تازه آنجا است که آن قطعات خود را نشان می دهند. یک فرق عمده مدارهای صنعتی و غیر صنعتی در وجود یا عدم وجود همین قطعات به ظاهر اضافه است.

@KnowledgePlus
Forwarded from KnowledgePlus.ir
محیط صنعتی:

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

@KnowledgePlus