صفحه قبل

ماهنامه نویز شماره ۱۵

صفحه بعد

ماهنامه نویز شماره 15

ماهنامه نویز شماره 15

‫ردیسونم روتوم‬ ‫نشریه تخصصی الکترونیک ‪ECA‬‬ ‫آموزش سریع‬ ‫شماره ‪15‬‬ ‫بهمن ‪96‬‬ ‫ میکروکنترلر‪STM8S‬‬ ‫آشنایی با محیط برنامه‌نویسی‬ ‫گرافیکی رزبری پای‬ ‫‪NODE-RED‬‬ ‫‪ 42‬دستور از پرکاربردترین‬ ‫دستورهای رزبری پای‬ ‫‪ LED‬های رنگی‬ ‫روش های خطایابی و ر فع مشکالت‬ ‫‪GSM SIM800‬‬ ‫تعمیر آسیب ناشی از نشت‬ ‫باتری‌های قلیایی‬ ‫‪ @ECAir  @ECA.ir‬‬ ‫ ‪www.ECA.ir/noisemagazine‬‬ ‫ایمپلنت نوری‬ ‫مجرای حلزون گوش‬ ‫‪1‬‬
‫بلاطم تسرهف‬ ‫‪www.ECA.ir‬‬ ‫گروه فنی و مهندسی ‪ECA‬‬ ‫نشریه تخصصی الکترونیک ‪ECA‬‬ ‫شماره ‪ - 15‬بهمن ‪1396‬‬ ‫صاحب امتیاز‪ :‬وبسایت تخصصی برق و الکترونیک ‪ECA‬‬ ‫سردبیر‪ :‬امیر‌علی بلورچیان‬ ‫مدیر اجرایی‪ :‬فرشاد اکرمی‬ ‫مدیر هنری‪ :‬مصطفی احمدیان‬ ‫مترجم‪ :‬اکبر صیّادی‬ ‫صفحه اختصاصی مجله‪www.ECA.ir/noisemagazine :‬‬ ‫منشور مجله نویز‬ ‫فهرست‬ ‫ایمپلنت نوری مجرای حلزون گوش‬ ‫‪4‬‬ ‫تعمیر آسیب ناشی از نشت باتری‌های قلیایی‬ ‫‪6‬‬ ‫آشنایی با محیط برنامه‌نویسی گرافیکی ‪Node-red‬‬ ‫‪9‬‬ ‫روش‌های خطایابی و رفع مشکالت ‪GSM SIM800‬‬ ‫‪18‬‬ ‫ •معرفی‬ ‫ماهنامــه نویــز‪ ،‬نشــریه‌ای اســت علمــی‪ ،‬خبــری‪ ،‬آموزشــی کــه ‪42‬دستور از پرکاربردترین دستورهای رزبری پای‬ ‫بــا تکیــه بــر خالقیــت و نــوآوری کارشناســان ایرانــی و انجــام کار‬ ‫گروهــی آنــان بــه مخاطبــان خــود کمــک می‌کنــد تــا نیازهــای‬ ‫خــود را در شــکل مکتــوب در ایــن نشــریه محقــق شــده بیابنــد‪.‬‬ ‫ •اهداف‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪1‬پیشبرد فرهنگ علم گرایی در کشور‬ ‫‪2‬ایجاد روحیه تالش و امید در نسل جوان‬ ‫‪3‬توســعه کمــی و کیفــی روزافــزون بــه ســوی نشــریه ای وزیــن‪،‬‬ ‫فراگیــر و کــم اشــکال‬ ‫‪4‬اطالع رسانی به روز علوم مرتبط‬ ‫‪.1‬‬ ‫‪.2‬‬ ‫‪.3‬‬ ‫‪.4‬‬ ‫‪1‬احترام به مخاطب‬ ‫‪2‬راستی در گفتار و رفتار میان دست اندر کاران نشریه‬ ‫‪3‬تالش مستمر برای بهبود‬ ‫‪4‬استفاده از پتانسیل موجود در قشر تحصیل کرده کشور‬ ‫‪.4‬‬ ‫ •اصول و ارزش ها‬ ‫ •حوزه های فعالیت (موضوعات کلیدی)‬ ‫‪1 .1‬آموزش مبانی علوم برق و الکترونیک‬ ‫‪2 .2‬آشنایی با تکنولوژی های نوین دنیای فناوری‬ ‫‪3 .3‬طراحی مدارات آنالوگ و دیجیتال‬ ‫‪4 .4‬آموزش و معرفی نکات کاربردی پردازنده ها‬ ‫‪5 .5‬مدارات مجتمع‬ ‫‪6 .6‬آموزش کاربردی نرم افزارهای تخصصی‬ ‫‪7 .7‬اینترنت اشیا‬ ‫‪8 .8‬رایانه های کوچک مبتنی بر لینوکس و ویندوز‬ ‫‪9 .9‬معرفی مشاهیر برق‬ ‫‪1010‬موارد کاربردی و عملی علم الکترونیک‬ ‫‪1111‬بخش های متنوع مرتبط با موضوعات برق و الکترونیک‬ ‫‪2‬‬ ‫‪22‬‬ ‫‪ LED‬های رنگی‬ ‫‪26‬‬ ‫آموزش سریع میکروکنترلر ‪STM8S‬‬ ‫‪34‬‬ ‫شروع به کار با ‪MOJO Plus‬‬ ‫‪48‬‬ ‫کاربرد رگرسیون خطی در کالیبره کردن سنسورها‬ ‫‪55‬‬ ‫* اســتفاده از مقالــه هــای مجلــه‪ ،‬بــا ذکــر مأخــذ و رعایــت حقــوق‬ ‫نویســنده بالمانــع اســت‪.‬‬ ‫* مجلــه نویــز آمــاده دریافــت آثــار و مقــاالت ارســالی متخصصیــن و‬ ‫مهندســین اســت‪.‬‬ ‫* لطفــا مقالــه هــای خــود را بصــورت تایــپ شــده بــه همــراه ضمیمــه‬ ‫عکســی هــای مــورد اســتفاده ارســال نماییــد‪.‬‬ ‫* نشریه در ویرایش و اصالح مطالب رسیده‪ ،‬آزاد است‪.‬‬ ‫* چنانچــه مطالــب ارســالی ترجمــه اســت‪ ،‬کپــی اصــل آن را ضمیمــه‬ ‫نماییــد‪.‬‬ ‫صندوق پست الکترونیکی مجله‪:‬‬ ‫‪noisemagazine.eca@gmail.com‬‬ ‫آپلود مستقیم مقاالت‬ ‫‪http://link.eca.ir/1369‬‬
‫بلاطم تسرهف‬ http://link.eca.ir/1077 3
‫ یسدنهم و ینف هورگورگ‬ ‫ایمپلنت نوری مجرای‬ ‫حلزون گوش به دنیای‬ ‫ناشنوایی روشنایی می‌بخشد‬ ‫به‌زودی می‌توان از چراغ‌های چشمک‌زن برای منظوری کاملاً جدید‬ ‫استفاده کرد‪ .‬یافته‌های جدید‪ ،‬محققین آلمانی و سوئیسی و اتریشی را به‬ ‫سمت ساخت یک ایمپلنت ناشنوایی اولیه هدایت کرده است که با تابش‬ ‫یک سری پرتو لیزری و با کمک سلول‌های مویی موجود در داخل گوش‬ ‫درونی باعث تحریک و ایجاد سیگنال‌های شنوایی می‌شود‪.‬‬ ‫محققین معتقدند یک پرتو لیزری نزدیک به طول‌موج مادون‌قرمز‬ ‫می‌تواند با استفاده از فرایندی که تأثیر نوری صدایی نامیده می‌شود‪ ،‬یک‬ ‫موج صوتی تولید کند‪ .‬ابزار ساخته‌شده توسط این محققین‪ ،‬پرتوهای‬ ‫لیزری عمودی باریکی به قطر ‪ 1.4‬تا ‪ 1.9‬میکرون ارسال می‌کند که بر‬ ‫روی مایع درون مجرای حلزونی اثر می‌گذارد‪ .‬در ابتدا اشعه مادون‌قرمز‬ ‫توسط مایع درون مجرای حلزونی جذب می‌شود‪ .‬به خاطر گرمای حاصله‬ ‫مقداری شکست میعانی صورت می‌گیرد‪ .‬اگر این فرایند به‌اندازه کافی‬ ‫سریع رخ دهد باعث ایجاد یک موج صوتی درون مجرای حلزونی می‌شود‪.‬‬ ‫این موج صوتی سلول‌های مویی کوچکی که در داخل مجرای حلزونی‬ ‫وجود دارد را تحریک کرده یا جابجا می‌کند که با این تحریک یا جابجایی‬ ‫یک سیگنال صوتی به سمت عصب شنوایی فرستاده می‌شود و بدین‬ ‫ترتیب مغز صدا را درک می‌کند‪.‬‬ ‫در طی سه سال اخیر‪ ،‬محققین رشته‌های لیزری بسیار باریکی‬ ‫ساخته‌اند و با انجام آزمایش‌هایی بر روی خوکچه‌های هندی دریافته‌اند‬ ‫که می‌توانند با استفاده از پرتوهای عمودی لیزر و اثر نوری صوتی‪،‬‬ ‫سیگنال‌هایی ایجاد کنند که توسط عصب شنوایی به مغز منتقل شود‪.‬‬ ‫دانشمندان تحریک‌های ناشی از پرتو لیزر و تحریک‌های ناشی از‬ ‫یک‌صدای کلیک را در خوکچه‌های هندی باهم مقایسه کردند‪ .‬هر دو‬ ‫محرک‪ ،‬سیگنال‌های عصبی تولید کردند که ازلحاظ شکل و شدت باهم‬ ‫مطابقت داشتند‪ .‬بنا بر گفته‌های مارک فرتز این طرح هنوز در مراحل‬ ‫اولیه است ولی امید می‌رود که با استفاده از این تکنولوژی بتوان ابزارهای‬ ‫شنوایی کمکی و ایمپلنت‌های مجرای حلزونی را بهبود بخشید و یا با‬ ‫تکنولوژی جدید جایگزین نمود‪ .‬مارک فرتز یک فیزیکدان و مدیر پروژه‬ ‫در مرکز الکترونیک میکروتک سوئیس است که یک مرکز غیرانتفاعی‬ ‫کاربردی تکنولوژی و تحقیقات (‪ )CSEM‬در الپانچ سوئیس می‌باشد‪.‬‬ ‫قدم‌های بعدی این پروژه‪ ،‬بهبود مصرف انرژی دستگاه و کاهش اندازه‬ ‫‪4‬‬ ‫تصویر‪ :1‬دو لیزر عمودی باریک موثر بر روی مایع درون مجرای حلزونی‬ ‫که در یک ایمپلنت نوری استفاده شده‪ ،‬در مقایسه با یک چوب کبریت‬ ‫ هر لیزر داخل یک پکیج یاقوت کبود جایگذاری شده است‬‫آن است‪ .‬قطعات ساخته‌شده برای نمونه اولیه این پروژه (قطعاتی از قبیل‬ ‫یک جعبه سیلیکاتی برای درزگیری سنسورهای کاشته شده در بدن و‬ ‫طراحی پیشرفته لنز لیزر) می‌تواند کاربردهای دیگری نیز داشته باشد؛‬ ‫مثالً می‌توان با تاباندن پرتو لیزر در داخل گوش‪ ،‬تعادل را بهبود بخشید‪.‬‬ ‫تکنولوژی کنونی ایمپلنت مجرای حلزونی‪ ،‬به دسته‌ای از الکترودها‬ ‫وابسته است که از طریق جمجمه در گوش داخلی نصب می‌شوند‪ .‬این‬ ‫الکترودها یک میدان الکتریکی تولید می‌کنند که عصب مجرای حلزونی‬ ‫را تحریک کرده و صدا را تبدیل به سیگنال‌های الکتریکی می‌کند که‬ ‫عصب به مغز می‌رساند‪ .‬تمرکز بر میدان الکتریکی سخت است که باعث‬ ‫می‌شود که مسائل دیگری از قبیل تولید نویز رخ دهد‪.‬‬ ‫فرتز و ‪ CSEM‬از اعضای یک گروه شامل تعدادی از محققین درزمینه‬ ‫صوت و لیزر می‌باشند‪ .‬این گروه در مرکز تحقیقات پیشرفته هانوفر آلمان‬ ‫مشغول به فعالیت هستند‪ .‬تیمی حرفه‌ای از متخصصین‪ ،‬از قبیل شرکت‬ ‫‪ Verilas‬که از سازنده‌های آلمانی لیزر است است و شرکت میکرو اپتیک‬ ‫‪ SUSS‬که از سازنده‌های لنزها و تاباننده‌های دقیق است ‪ ،‬این گروه را‬ ‫پشتیبانی می‌کنند‪.‬‬
‫شوگ نوزلح یارجم یرون تنلپمیا‬ ‫شرکت ‪ MED-EL‬اینزبروک که یکی از بزرگ‌ترین تولیدکننده‌های‬ ‫ایمپلنت‌های مجرای حلزونی است نیز در این طرح شرکت دارد‪ .‬شرکت‬ ‫‪ STMicroelectronics‬سخت‌افزار الزم برای این کار را طراحی کرده‬ ‫است و مرکز تحقیقات فنی ‪ VTT‬فنالند‪ ،‬یک روکش ضد رسوب ساخته‬ ‫تا مانع خورده شدن ایمپلنت توسط رشد بی‌رویه فیبروز شود‪.‬‬ ‫البته هنوز چالش‌هایی در طراحی نمونه اولیه وجود دارد‪ .‬چالش‌هایی‬ ‫از قبیل این مسئله که مصرف انرژی به چه صورت انجام شود و چطور‬ ‫قطعات را کوچک کرد‪ .‬ایمپلنت بدنی یا نمی‌تواند گرمای زیادی تولید‬ ‫کند و یا اگر بتوانند گرمای زیادی تولید کنند‪ ،‬باعث نابودی سلول‌ها‬ ‫و بافت‌های اطراف خود می‌شود‪ .‬محققین دریافتند که با ایجاد تعداد‬ ‫بسیار زیادی از پالس‌های ‪ 50‬نانوثانیه‌ای که هرکدام فقط یک انفجار ‪50‬‬ ‫نانوثانیه‌ای تولید می‌کنند می‌توان به دمایی کمتر از دمایی که با تابش‬ ‫پیوسته تولید می‌شود دست پیدا کرد‪ .‬این انفجارها همان چیزی است که‬ ‫برای ایجاد پالس صوتی که از مجرای عصب شنوایی عبور کند‪ ،‬نیاز است‪.‬‬ ‫این محققین از جعبه‌های سیلیکاتی برای درزبندی لیزر و دیگر قطعات‬ ‫استفاده کردند تا مانع از رسوب و خوردگی در بدن شوند‪ .‬سپس این‬ ‫مجموعه را به نوارهای پالتینیومی متصل کرده و آن را به‌صورت کامل در‬ ‫یک پوشش سیلیکونی قراردادند‪ .‬در تست‌هایی که بر روی خوکچه‌های‬ ‫هندی صورت گرفت‪ ،‬محققین از یک نمونه افزونه‌ای از دستگاهی که‬ ‫ساخته بودند استفاده کردند‪ ،‬ولی در نمونه‌های اولیه بعدی‪ ،‬آن‌ها‬ ‫موفق به کاهش اندازه لیزر به ابعاد دو در یک میلی‌متر شدند‪.‬‬ ‫بعدازاین تغییرات‪ ،‬کل ابزار شبیه به یک باطری ‪ 9‬ولت کتابی‬ ‫ولی در اندازه‌های بسیار کمتر بود که می‌توانست در کف یک‬ ‫دست قرار گیرد‪ .‬فرتز بیان کرد برای ساخت ایمپلنت به‌صورت‬ ‫تجاری باید هنوز هم دستگاه کوچک‌تر از این شود که امکان‌پذیر‬ ‫نیز هست‪.‬‬ ‫کالوس پیتر ریشتر‪ ،‬نایب‌رئیس تحقیقات در بخش گوش و‬ ‫حلق و بینی از دانشگاه ‪ Northwestern‬که از ابتدا در‬ ‫این فعالیت حضورداشته است‪ ،‬می‌گوید استفاده از‬ ‫نور برای انتقال سیگنال‌های صوتی موضوعی است‬ ‫که در سال‌های اخیر بسیار موردبحث قرارگرفته‬ ‫است و بارها آزمایش گردیده و پیشرفت‌های‬ ‫زیادی در این حیطه صورت گرفته است‪.‬‬ ‫در یک روش جدید تالش شده‬ ‫است که به‌صورت مستقیم اعصاب‬ ‫شنوایی با نور تحریک شود‪ .‬گروهی‬ ‫دیگر تالش داشته‌اند که سلول‌ها‬ ‫را به نحوی به‌صورت ژنتیکی تغییر‬ ‫دهند که این سلول‌ها به نور واکنش‬ ‫نشان دهند‪ .‬این ایده توسط اد بایدون‬ ‫در انستیتوی تکنولوژی ماساچوست و تیم‬ ‫توبیاس موزر در دانشگاه گوتنینگ آلمان‬ ‫مطرح‌شده است‪.‬‬ ‫تصویر‪ Chittka :2‬و ‪Brockman، PloS Biology‬‬ ‫این نمودار نشان دهنده گوش داخلی و قشر شنوایی مغز است‪.‬‬ ‫ده سال پیش تیم ریشتر هر بار ساعت‌ها تالش می‌کردند تا با استفاده‬ ‫از پرتو لیزر مستقیماً اعصاب شنوایی را تحریک کنند‪ .‬در سال ‪2013‬‬ ‫آن‌ها توانستند از این تکنولوژی برای انجام تست‌هایی بر روی گربه‌هایی‬ ‫که ناشنوا بودند و یا از ابزارهای شنوایی کمکی استفاده می‌کردند تا ‪6‬‬ ‫هفته بهره ببرند‪ .‬این ابزارها در کوله‌پشتی‌هایی قرار داشت که گربه‌ها‬ ‫آن‌ها را می‌پوشیدند‪.‬‬ ‫در حال حاضر چندین پروژه دیگر با محوریت استفاده‬ ‫از نور برای بهبود ابزارهای شنوایی در حال انجام است‪:‬‬ ‫• جنتینا ونزل در دانشگاه سارلند هامبورگ در حال‬ ‫آزمایش استفاده از لیزر سبز است که برای فرکانس‌های‬ ‫صوتی کدگذاری شده تا گوش داخلی را فعال نماید‪.‬‬ ‫• ارتش امریکا به دنبال مشکالت شنوایی ایجادشده‬ ‫در جنگ‌های دهه‌های اخیر‪ ،‬یک مرکز تحقیقات‬ ‫ایمپلنت‌های لیزری ایجاد کرده است و همچنین‬ ‫انستیتوی ملی آمریکا درزمینه ناشنوایی و‬ ‫دیگر مشکالت ارتباطی نیز در این زمینه‬ ‫فعالیت دارند‪.‬‬ ‫به دست آوردن همه سیگنال‌های‬ ‫صوتی از یک محیط پر از نویز و تبدیل‬ ‫آن‌ها به سیگنال‌های الکتریکی کاری بس‬ ‫حساس و مشکل است‪ .‬ریشتر نیز بیان‬ ‫می‌کند که تحقیقاتی که تابه‌حال برای‬ ‫ارزیابی این تکنولوژی بر روی حیوانات‬ ‫صورت گرفته دارای محدودیت‌هایی‬ ‫است‪« :‬تنها کاری که شما با گربه‌ها‬ ‫می‌توانید انجام دهید اندازه‌گیری مقدار‬ ‫سیگنال‌ها است‪ ،‬اما گربه‌ها نمی‌توانند بگویند که‬ ‫من این را شنیدم یا آن را نشنیدم‪».‬‬ ‫‪5‬‬
‫ یسدنهم و ینف هورگورگ‬ ‫تعمیر آسیب ناشی از نشت‬ ‫باتری‌های قلیایی‬ ‫یکی دیگر از راه‌حل‌های بسیار کاربردی که مطمئناً زندگی هر عالقه‌مند به‬ ‫الکترونیک را بسیار آسان‌تر خواهد کرد‪.‬‬ ‫حتماً شما هم با این مشکل آشنا هستید که وقتی‌که به سمت کشو‬ ‫می‌روید تا چراغ‌قوه‪ ،‬رادیو یا مسواک برقی‌تان را که برای مدتی استفاده‬ ‫نکرده‌اید بردارید‪ ،‬می‌بینید که باتری‌شان ازکارافتاده است‪ .‬بدتر اینکه‬ ‫آن‌ها نشت کرده و جای باتری را کثیف و آلوده کرده‌اند‪ .‬اگر می‌خواهید‬ ‫محل تماس باتری‌ها را تقریباً به حالت تازه و اولیه خود برگردانید پس‬ ‫به خواندن ادامه دهید! بدوبیراه گفتن ممکن است که حرص و استرس‬ ‫شمارا برطرف کند؛ اما بر روی باتری‌ها تأثیری نخواهد داشت‪ .‬باتری‌های‬ ‫قلیایی‪-‬منگنز تاریخ گذشته‪ ،‬عمدتاً بسیار مشکل‌ساز هستند‪ .‬وقتی‌که‬ ‫انرژی این باتری‌ها تمام می‌شود‪ ،‬فشار داخلی‌شان به علت فرایندهای‬ ‫الکتریکی‪-‬شیمیایی باال رفته و دریچه امنیتی را منهدم می‌سازند‪ .‬به‬ ‫همین ترتیب‪ ،‬مواد الکترولیتی (پتاس سوزآور) از دو سوراخ گاز زدا در‬ ‫قطب منفی خارج می‌شوند‪ .‬تولیدکنندگان باتری قادر یا مایل به ساخت‬ ‫باتری‌های عایق به فشار گاز نیستند‪ .‬اگر این بال سر شما هم بیاید و‬ ‫وسیله شما را خراب کند‪ ،‬شما هم احتماالً با من هم‌رأی خواهید بود‪:‬‬ ‫یک محصولی که می‌تواند خسارت احتمالی زیادی را ایجاد کند واقعاً‬ ‫نباید در بازار موجود باشد! اگر وضعیت خیلی بد نباشد‪ ،‬می‌توان مشکل‬ ‫را برطرف کرد‪.‬‬ ‫در تصویر شماره ‪ 1‬می‌توانید ببینید که چراغ پشتی دوچرخه من بعد از‬ ‫بدون استفاده ماندن به مدت دو سال در کشو‪ ،‬به چه شکلی درآمدهاست‪.‬‬ ‫واکنش شیمیایی در باتری با ایجاد انرژی الکتریکی سبب شکافته شدن‬ ‫الکترولیت مایع (هیدروکسید پتاسیم) و تولید گاز هیدروژن شده است‪.‬‬ ‫نهایتاً فشار گاز دریچه‌های باتری را تخریب کرده و خارج می‌شود که این‬ ‫امر باعث نشتی الکترولیت به بیرون می‌شود‪ .‬درنتیجه‌ی تماس با ‪CO2‬‬ ‫موجود در هوا‪ ،‬پتاسیم کربنات (‪ )K2CO3‬تشکیل می‌دهد که همان‬ ‫پوسته‌ی بلورین سفیدی (نم‌گیر) است که مشاهده می‌کنید‪ .‬برای ایمن‬ ‫بودن‪ ،‬شما باید دستکش‌های پالستیکی پوشیده و گردوغبار پخش‌شده‬ ‫را تنفس نکنید‪ .‬این ترکیب قلیایی هر چیز فلزی که با آن در تماس باشد‬ ‫را تخریب می‌کند که معموالً شامل فنرهای نگه‌دارنده‌ی باتری‪ ،‬هرگونه‬ ‫سیم‌کشی و تخته مدار چاپی (‪ )PCB‬می‌شود‪ .‬بدتر از این‪ ،‬رسوب‌های‬ ‫نمک خشک‪ ،‬خاصیت هادی بودن را بسیار تضعیف می‌کند‪ .‬درنتیجه‬ ‫صرفاً عوض کردن باتری‌ها با باتری‌های نو و تمیز کردن رسوبات نمکی‪،‬‬ ‫کافی نخواهد بود‪ .‬هر آسیبی که به سیم‌ها و شیارهای بورد واردشده با‬ ‫لحیم‌کاری سیم آهنی و مسی قابل تعمیر است اما تا زمانی که مواد چرب‬ ‫و کثیف تمیزکاری نشوند‪ ،‬فنرها همیشه اتصال تکه‌تکه‌ای خواهند داشت‬ ‫که این منجر به عملکرد ضعیف دستگاه خواهد شد‪ .‬من توصیه‌هایی در‬ ‫مورد استفاده از جوهر سرکه یا گونه‌ی دیگری از اسید جهت پاک‌سازی‬ ‫فنرهای اتصال با پوشش‌های کروم‪ ،‬نیکل‪ ،‬یا طال دیده‌ام اما این امر‬ ‫ممکن است باعث تخریب بیشتر شود‪ .‬این کار را انجام ندهید‪ ،‬یک راه‌حل‬ ‫مناسب‌تر وجود دارد‪...‬‬ ‫محدود کردن آسیب‬ ‫هنگام تماشای یک نمایش علمی تلویزیونی در مورد بازها و اسیدها‪،‬‬ ‫این فکر را در سر داشتم که این رسوبات قلیایی را از یک باتری قلیایی‬ ‫توسط یک محلول قلیایی مثل مایع معمولی ظرف‌شویی از بین ببرم‪ .‬بعد‬ ‫از اولین آزمایشم من واقعاً متحیر بودم‪ ،‬بازیافت وسایل آسیب‌دیده بسیار‬ ‫آسان است‪ ،‬فکر بکار بردن مایع ظرف‌شویی کار را حل می‌کند‪.‬‬ ‫تصویر ‪.1‬بعد از دو سال فراموشی‪ ،‬باتری‌های قلیایی در این چراغ پشتی‬ ‫دوچرخه تمام‌شده و نشت کرده‌اند‪.‬‬ ‫‪6‬‬
‫یرتاب تشن زا یشان بیسآ ریمعت‬ ‫تصویر ‪ 3‬را به‌عنوان یک مدرک مشاهده کنید‪ .‬فقط کافی است که آن‬ ‫را جاگذاری کنید و چراغ پشتی آماده‌ی استفاده است‪ .‬چیزی که اآلن‬ ‫نیاز داریم یک جفت باتری نو است‪.‬‬ ‫دیگر چه؟‬ ‫پیشگیری‪ ،‬همان‌طور که می‌گویند‪ ،‬بهتر از درمان است بنابراین من‬ ‫می‌خواهم از باتری‌های قابل شارژ ‪ NiMH‬به‌جای باتری‌های معمولی‬ ‫استفاده کنم‪ .‬آن چیزی که من ترجیح می‌دهم‪ ،‬نوع «آماده‌ی استفاده»‬ ‫است که دارای خاصیت خود‪-‬دشارژی (همچنین باتری‌های معروف‬ ‫‪ Eneloop‬ساخت پاناسونیک) کمتری هستند‪ .‬این باتری‌ها قادر به بهتر‬ ‫نگه‌داشتن شارژ بوده و برای یک سال دوام می‌آورند‪ .‬حتی بعدازاین یک‬ ‫سال نیز فقط بسته‌ی باتری خراب خواهد شد نه خود باتری‪ .‬باتری‌های‬ ‫تصویر ‪ .2‬محل اتصال باتری‌ها و محل آلوده‌ی بورد ‪ PCB‬به مایع‬ ‫ظرف‌شویی آغشته شده‌اند‪.‬‬ ‫اگر به من اطمینان ندارید‪ ،‬پس خودتان این را امتحان کنید‪ .‬این امر‬ ‫حائض اهمیت است که محتویات مایع ظرف‌شویی شامل مقدار کمی‬ ‫روکنشگر آنیونی (آندگرا) باشد (که اکثر مایع ظرف‌شویی‌ها ذاتاً این ماده‬ ‫را دارند)‪ .‬من با استفاده از یک صابون مایع ارزان برای شستن دست‌ها به‬ ‫نام آلو ورا نتیجه‌ی خوبی گرفتم که در مغازه‌های محله‌ها نیز به فروش‬ ‫می‌رسد‪ .‬برای جلوگیری از فرسایش هرچه بیشتر‪ ،‬مایع ظرف‌شویی باید‬ ‫پی‌اچ پایینی داشته باشد‪ .‬این کار را می‌توانید با آزمایش ساده چشیدن‬ ‫انجام دهید‪ ،‬باید بی‌مزه بوده و ترش نباشد‪ .‬محل اتصاالت پوشیده شده‌ی‬ ‫باتری‌ها یا کل نگه‌دارنده باتری (تصویر ‪ )2‬را می‌توانیم در کاسه‌ای از‬ ‫مایع ظرف‌شویی قرار دهیم‪ .‬محلول مایع ظرف‌شویی را نباید زیاد رقیق‬ ‫کنیم‪ .‬بعد از حدوداً یک روز غوطه‌ور ساختن در این محلول‪ ،‬رسوبات حل‬ ‫می‌شوند و محلول در طی این فرایند غلیظ‌تر می‌شود‪ .‬اکنون آن را با آب‬ ‫تمیز شستشو دهید‪ ،‬بگذارید خشک شود و یووهوو!!! تقریباً نو شده‌اند‪.‬‬ ‫تصویر ‪ .4‬چراغ پشتی تعمیر شده‪ ،‬آماده‌ی جاگذاری یک جفت باتری نو‬ ‫می‌باشد‪ .‬باتری‌های قابل شارژ گزینه بهتری خواهد بود‪.‬‬ ‫قابل شارژ استاندارد ‪ NiMH‬نیز همین‌طور هستند فقط مدت‌زمان‬ ‫سالم ماندنشان کمتر از باتری‌های پاناسونیک می‌باشد‪ .‬بعضی مواقع‬ ‫باتری‌ها کالً با مواد آلوده پوشیده می‌شوند و تمیزکاری‌شان بدون آسیب‬ ‫رساندن به آن‌ها کاری دشوار است‪ .‬راه چاره در این مواقع این است‬ ‫که نگه‌دارنده‌ی باتری را همراه با خود باتری‌ها در داخل کاسه‌ای از‬ ‫محلول تمیزکننده (ظرف‌شویی) بیندازیم‪ .‬برای آسان کردن این فرایند‪،‬‬ ‫در صورت امکان می‌توانید لحیم‌کاری سرهای نگه‌دارنده باتری را از بورد‬ ‫اصلی پی‌سی‌بی جدا کنید‪ .‬جای نگرانی نیست اگر این کار امکان‌پذیر‬ ‫نباشد‪ ،‬من به‌صورت موفقیت‌آمیزی‪ ،‬کل بورد پی سی بی شامل باتری‌ها‬ ‫و قطعاتش را در محلول ظرف‌شویی بدون هیچ آسیب ظاهری فروکرده‌ام‪.‬‬ ‫پی‌سی‌بی بعدازاین فرایند‪ ،‬برق می‌زند‪ .‬از اینکه هیچ پتانسیومتر‪ ،‬سویچ یا‬ ‫دکمه فشاری‌ای که با محلول تمیزکننده تماس پیدا کند وجود نداشته‬ ‫باشد‪ ،‬اطمینان حاصل کنید‪ .‬تمیز کردن محلول باقی‌مانده در گوشه و‬ ‫کنار این قطعات‪ ،‬کار دشواری است پس در صورت تماس‪ ،‬کمی رطوبت و‬ ‫باقی‌مانده محلول بر جای خواهد ماند‪ .‬می‌توانید امتحانش کنید‪ ...‬ریسکی‬ ‫تصویر‪ .3‬نتیجه کار تمیز و براق‪ :‬محل اتصاالت تقریباً نو به نظر می‌رسند‪ .‬ندارد اما جالب هم نخواهد بود‪.‬‬ ‫‪7‬‬
‫ یاه تیک رتراتساتسا‬ ‫‪8‬‬
‫ یسدنهم و ینف هورگورگ‬ ‫نویسنده‬ ‫علی عزتی‬ ‫آشنایی با محیط برنامه‌نویسی گرافیکی رزبری پای ‪Node-red‬‬ ‫معرفی ‪Node-red‬‬ ‫‪ Node-red‬زبان برنامه‌نویس بر اساس فلوچارت است که توسط‬ ‫بخش مهندسی فناوری ‪ IBM‬توسط ‪ Paul Morrison‬در سال ‪1970‬‬ ‫توسعه داده شد‪.‬‬ ‫در سال ‪ 2013‬شرکت ‪ IBM‬نود رد را برای راحتی و سهولت در‬ ‫اتصال ابزارهای الکترونیک به اینترنت منتشر کرد‪ .‬این نرم‌افزار بر روی‬ ‫سخت‌افزارهایی همچون کامپیوترهای تک بردی مانند رزبری پای‪ ،‬بیگل‬ ‫بن و همچنین سرویس‌های ابری مثل ‪ IBM‬آمازون (‪Amazon Web‬‬ ‫‪ )Service‬و مایکروسافت (‪ )Microsft Azure‬قابل‌استفاده است‪.‬‬ ‫برنامه‌نویسی فلوچارت روشی برای شرح یک برنامه به‌وسیله جعبه‌ها‬ ‫و شبکه‌های مابین آن‌ها بوده که ‪ Node-red‬نامیده می‌شوند‪ .‬هر‬ ‫‪ Node-red‬برای یک هدف خاص کاربرد دارد‪ .‬اطالعاتی به ‪Node-‬‬ ‫‪ red‬داده می‌شود‪ ،‬عملیاتی بر روی آن اطالعات در ‪ Node-red‬انجام‬ ‫می‌شود و به شبکه برگردانده می‌شود‪ .‬شبکه مسئول جریان یافتن‬ ‫اطالعات مابین ‪ Node‬های مختلف است‪ .‬هرکس بتواند یک مسئله را‬ ‫به قسمت‌های کوچک‌تر تقسیم کند‪ ،‬می‌تواند با نگاه کردن به فلوچارت‪،‬‬ ‫بدون اینکه نیاز باشد تا کدهای مربوط به هر یک از ‪ Node‬ها را درک‬ ‫کند‪ ،‬هدف کلی برنامه را متوجه شود‪.‬‬ ‫‪ Node-red‬بر پایه پلتفرم برنامه‌نویسی نود جی اس (‪)Node.js‬‬ ‫نوشته‌شده است‪ .‬برای طراحی برنامه با ‪ Node-red‬کافی است به فلو‬ ‫ادیتور دسترسی داشته باشید‪ .‬از طریق یک مرورگر وب می‌توانید به این‬ ‫محیط دسترسی داشته باشید و برنامه خود را با کشیدن ‪Node-red‬‬ ‫ها از پالت ‪ Node‬ها و رها کردن آن‌ها در ‪ Workspace‬و وصل کردن‬ ‫آن‌ها به هم با یک کلیک طراحی کنید‪.‬‬ ‫پالت ‪ node‬ها را می‌توان با نصب ‪ node‬های جدید گسترش داد‪.‬‬ ‫بیش از هزار ‪ Node‬آماده که توسط جامعه کاربری توسعه داده‌شده در‬ ‫وب‌سایت ‪ Node-red‬به‌صورت رایگان در اختیار شماست که هرروز‬ ‫به تعداد آن‌ها افزوده می‌شود‪ .‬همچنین برنامه نوشته‌شده را می‌توان‬ ‫به‌راحتی به‌وسیله فایل‌های ‪ JSON‬با دیگران به اشتراک گذاشت‪.‬‬ ‫محیط کاربری ساده ‪ Node-red‬باعث شده که مبتدی‌ترین افراد تا‬ ‫خبره‌ترین آن‌ها بتوانند رزبری پای را به یک ابزار هوشمند و کارآمد تبدیل‬ ‫کنند‪ .‬قدرت و انعطاف‌پذیری ‪ Node-red‬امکان نوشتن پیچیده‌ترین‬ ‫کدها را برای توسعه‌دهندگان محیا می‌کند و هزینه برنامه‌نویسی و‬ ‫طراحی سخت‌افزار را کاهش می‌دهد‪.‬‬ ‫‪ Node-red‬بر روی رزبری پای‬ ‫دو روش برای اجرای ‪ Node-red‬بر روی رزبری پای وجود دارد‪.‬‬ ‫یکی نصب دستی از طریق اسکریپت نصاب برای توزیع‌هایی که به‌صورت‬ ‫پیش‌فرض ‪ Node-red‬بر روی آن‌ها نصب نیست؛ و دومی استفاده از‬ ‫نسخه پیش‌فرض نصب‌شده بر روی توزیع رزبین می‌باشد‪ .‬از نوامبر ‪2105‬‬ ‫نود رد بر روی ‪ image‬رزبین به‌صورت نصب‌شده آماده استفاده است‪.‬‬ ‫اجرای ‪Node-red‬‬ ‫برای اجرای ‪ Node-red‬در رزبین بر روی آیکن رزبری پای کلیک‬ ‫کنید و از منوی ‪ Programing‬گزینه ‪ Node-red‬را انتخاب کنید‪.‬‬ ‫‪9‬‬
‫‪Node Red‬‬ ‫دسترسی به محیط ‪Node-red‬‬ ‫آشنایی با محیط ‪Node-red‬‬ ‫بعد از اجرای ‪ Node-red‬با پنجره ترمینال زیر روبه‌رو می‌شوید‪.‬‬ ‫اگر می‌خواهید در محیط دسکتاب رزبری پای با ‪ Node-red‬کارکنید‬ ‫مرورگر وب را بازکنید و آدرسی که در ترمینال مشخص‌شده را بازکنید‪.‬‬ ‫و یا برای دسترسی به محیط نود رد در کامپیوتر دیگر‪ ،‬کافی است‬ ‫آدرس ‪ IP‬دیگری که در ادامه مشخص‌شده را در هر سیستمی که در یک‬ ‫شبکه مشترک با رزبری پای است بازکنید‪.‬‬ ‫توجه شود که به هنگام کار با ‪ Node-red‬نباید صفحه ترمینال‬ ‫بازشده را ببندید‪.‬‬ ‫محیط ‪ Node-red‬از ‪ 3‬قسمت تشکیل‌شده‬ ‫قسمت ‪ 1‬مربوط به پالت ‪ Node‬ها می‌باشد‪ Node .‬ها را از این‬ ‫قسمت و با کشیدن و رها کردن در قسمت ‪ workspace‬می‌توانید‬ ‫انتخاب کنید‪.‬‬ ‫قسمت ‪ 2‬در این ناحیه با وصل کردن نودها به یکدیگر به برنامه خود‬ ‫شکل می‌دهید‪.‬‬ ‫قسمت ‪ 3‬در این قسمت اطالعات هر نودی که روی آن کیلک شده‬ ‫باشد نمایش داده می‌شود‪ .‬زبانه ‪ debug‬مربوط به دیباگ و رفع عیوب‬ ‫برنامه می‌باشد‪.‬‬ ‫تبلیغات‬ ‫شیلد ‪ SIM800‬رزبری پای‬ ‫شیلد ماژول ‪ SIM800‬برای ‪ Raspberry Pi‬با‬ ‫قابلیت پشتیبانی از باندهای فرکانسی ‪1900MHz-850‬‬ ‫شبکه ‪ GSM‬بوده و ارتباط با این ماژول از طریق پورت‬ ‫سریال صورت گرفته‪ ،‬با این شیلد عالوه بر استفاده از‬ ‫امکانات ‪ ،SIM800‬می توانید از پایه های ‪ GPIO‬رزبری‬ ‫پای نیز استفاده نمایید‪.‬‬ ‫‪10‬‬ ‫‪Quad-Band 850/ 900/ 1800/ 1900 MHz‬‬ ‫‪GPRS multislot class 12‬‬ ‫ ‪Operation Temp:‬‬ ‫‪-40°C to +85 °C‬‬ ‫ ‪Operation Level:‬‬ ‫‪Digital 3.3V DC‬‬ ‫‪Interface: UART‬‬ ‫ ‪Baud rate:‬‬ ‫)‪9600(default‬‬ ‫‪http://link.eca.ir/1358‬‬
‫‪Node Red‬‬ ‫معرفی نودهای پرکاربرد و اجرای‬ ‫برنامه ساده کنترل ‪GPIO‬‬ ‫نود ‪Inject‬‬ ‫نود ‪rpi gpio‬‬ ‫برای دسترسی به ‪ GPIO‬رزبری پای باید از نود ‪ rpi gpio‬استفاده‬ ‫شود برای اضافه کردن این نود به شاخه ‪ RASPBERRY_PI‬بروید‪.‬‬ ‫توجه کنید که دو نوع خروجی و ورودی از این نود وجود دارد که با توجه‬ ‫به نوع استفاده ما باید نود ورودی ‪ rpi gpio‬را انتخاب کنید‪.‬‬ ‫نود ‪ ،Inject‬نود ورودی است‪ .‬این نود را از شاخه ‪ input‬انتخاب‬ ‫کنید و در قسمت ‪ workspace‬رها کنید‪ .‬روی نود دوبل کلیک کنید‬ ‫تا قسمت تنظیمات ‪ Node‬برای شما باز شود‪ .‬روی گزینه ‪payload‬‬ ‫کلیک کنید و آن را روی حالت ‪ Number‬قرار دهید و مقدار ‪ 1‬را به‬ ‫آن بدهید مانند شکل زیر‪ .‬در قسمت ‪ ،topic‬عبارت ‪ LED_ON‬را‬ ‫وارد کنید‪.‬‬ ‫بعد از اضافه کردن آن به ‪ workspace‬روی آن دوبل کلیک کنید و‬ ‫پایه موردنظر خودتان را انتخاب کنید‪.‬‬ ‫برای خاموش کردن ‪ LED‬نیاز به یک نود ‪ Inject‬دیگر داریم آن را‬ ‫انتخاب کرده و سپس در قسمت ‪ Payload‬مقدار ‪ 0‬را به آن بدهید‪.‬‬ ‫‪11‬‬
‫‪Node Red‬‬ ‫نود ‪Template‬‬ ‫نود ‪Debug‬‬ ‫برای مشاهده نتیجه اجرای برنامه در قسمت دیباگ از این نود استفاده‬ ‫می‌کنیم این نود از شاخه ‪ output‬در دسترس می‌باشد‪ .‬نودها را همانند‬ ‫تصویر باال به یکدیگر اتصال دهید‪.‬‬ ‫از نود ‪ Template‬برای نمایش متن استفاده می‌شود‪ .‬این نود از‬ ‫شاخه ‪ function‬در پالت ‪ Node Red‬قابل انتخاب می‌باشد‪ .‬از این‬ ‫نود برای نمایش متن در قسمت دیباگ استفاده می‌کنیم به این صورت‬ ‫که وقتی ‪ LED‬روشن می‌شود عبارت !‪ LED IS ON‬و هنگام خاموش‬ ‫شدن ‪ LED‬عبارت !‪ LED IS OFF‬نشان داده می‌شود‪.‬‬ ‫‪12‬‬ ‫و در آخر دکمه ‪ Deploy‬را برای اجرای برنامه بزنید‪.‬‬ ‫کلیک بر روی هر یک از نودهای ‪ inject‬باعث روشن و خاموش شدن‬ ‫‪ LED‬متصل به پایه‌ای که انتخاب کردید می‌شود‪.‬‬
‫‪Node Red‬‬ ‫آموزش نصب ‪ Node‬های جدید ‬ ‫در ‪Node-red‬‬ ‫توسط این گزینه می‌توانید نود جدید اضافه کنید یا ‪ Node‬های‬ ‫موجود را مدیریت کنید‪.‬‬ ‫برای نصب ‪ Node‬های جدید در رزبری پای نیاز داریم تا ‪Node-‬‬ ‫‪ red‬را به آخرین نسخه آن آپدیت کنیم برای شروع اول دستورات زیر‬ ‫را برای آپدیت برنامه‌های سیستم در ترمینال رزبری پای وارد می‌کنیم‬ ‫‪sudo apt-get update‬‬ ‫‪sudo apt-get upgrade‬‬ ‫سپس برای آپدیت ‪ Node-red‬دستور زیر را در ترمینال رزبری پای‬ ‫وارد کنید‪ ،‬توجه کنید که اجرای فرایند آپدیت بسته به‌سرعت اینترنت و‬ ‫سرعت حافظه فلش شما شاید ‪ 20‬الی ‪ 30‬دقیقه زمان ببرد‪.‬‬ ‫‪update-nodejs-and-nodered‬‬ ‫بعد از آپدیت دوباره ‪ Node-red‬را اجرا کنید‪ .‬مشاهده می‌کنید که‬ ‫ورژن ‪ Node-red‬و ‪ Node.js‬به آخرین نسخه ارتقا یافته است‪.‬‬ ‫تبلیغات‬ ‫رزبری پای زیرو‬ ‫رزبری پای زیرو کوچک‌ترین و باریک‌ترین برد رزبری پای است و‬ ‫ابعاد کوچک آن بزرگ‌ترین مزیت آن محسوب می شود‪.‬‬ ‫این برد در دو نوع زیر موجود می باشد‪:‬‬ ‫‪Raspberry Pi Zero‬‬ ‫‪Raspberry Pi Zero W‬‬ ‫رزبری پای دابلیو در واقع نسخه‌ی آپدیت شده‌ای از‬ ‫«‪ »Raspberry Pi Zero‬است که به وای‌فای ‪802.11b/g/n‬‬ ‫(فقط روی فرکانس ‪ ۲.۴‬گیگاهرتز) و همچنین بلوتوث ‪ ۴.۰‬مجهز‬ ‫شده است‪.‬‬ ‫بعد از آپدیت ‪ Manage palette‬به منوی ‪ Node-red‬افزوده‬ ‫می‌شود‪.‬‬ ‫‪http://link.eca.ir/1360‬‬ ‫‪13‬‬
‫‪Node Red‬‬ ‫توسط تب ‪ Nodes‬می‌توانید ‪ Node‬های نصب‌شده را غیرفعال کنید‬ ‫و یا برای نصب ‪ Node‬جدید از تب ‪ install‬استفاده کنید‪ .‬برای مثال در‬ ‫ادامه قصد نصب ‪ Node‬های ‪ UI‬را بر روی ‪ Node-red‬داریم‪ .‬عبارت‬ ‫‪ node-red-contrib-ui‬در قسمت جست‌وجو وارد کنید و دکمه‬ ‫‪ install‬را بزنید منتظر بمانید تا ‪ Node‬های ‪ UI‬بر روی ‪Node-red‬‬ ‫نصب شود توجه کنید که بعد از پایان نصب هیچ پیامی درباره اتمام نصب‬ ‫داده نمی‌شود‪.‬‬ ‫بعد از اتمام نصب باید یک‌بار‬ ‫صفحه ‪ Node-red‬ریستارت‬ ‫شود تا بتوانید به ‪ Node‬هایی ‪UI‬‬ ‫دسترسی داشته باشید‪.‬‬ ‫تبلیغات‬ ‫شیلد درایور موتور رزبری پای‬ ‫شیلد درایور موتور رزبری پای با رابط ‪ I2C‬قابلیت راه اندازی‬ ‫‪ 4‬موتور ‪ DC‬یا ‪ 2‬استپر موتور و یا ‪ 4‬سروو موتور‬ ‫‪14‬‬ ‫‪http://link.eca.ir/1362‬‬
‫‪Node Red‬‬ ‫نمایش دمای ‪ CPU‬رزبری پای به‌صورت‬ ‫گرافیکی در محیط ‪Node-red‬‬ ‫تنظیمات به‌صورت زیر انجام می‌شود‪.‬‬ ‫برای به دست آوردن دمای ‪ CPU‬رزبری پای می‌توانید از دستور‬ ‫‪/opt/vc/bin/vcgencmd measure_temp‬‬ ‫استفاده کنید‪ .‬حال می‌خواهیم توسط این دستور هر ‪ 2‬ثانیه یک‌بار‬ ‫دمای ‪ CPU‬رزبری پای را بر روی یک گیج آپدیت کنیم‪ .‬به این منظور‬ ‫از ‪ node inject‬استفاده می‌کنیم‪ ،‬تنظیمات ‪ node inject‬را مانند‬ ‫تصویر زیر انجام دهید‪.‬‬ ‫برای اجرای دستور به دست آوردن دما از قسمت ‪ advance‬نود‬ ‫‪ exec‬را انتخاب کنید و مانند تصویر زیر تنظیمات را انجام دهید‪.‬‬ ‫برای نمایش صحیح دما نیاز داریم تا فقط اعداد بزرگ‌تر از صفر بر‬ ‫روی ‪ gauge‬نمایش داده شود به این منظور از نود ‪ switch‬استفاده‬ ‫می‌کنیم که از قسمت ‪ function‬در دسترس است‪ .‬مثل تصویر زیر این‬ ‫نود تنظیم کنید‪.‬‬ ‫خروجی این نود به‌صورت ‪ temp=53.7'C‬خواهد بود درصورتی‌که‬ ‫نود ‪ gauge‬فقط ورودی عددی قبول می‌کند‪ .‬به این منظور از نود ‪split‬‬ ‫برای حذف عبارت‌های ‪ =temp‬و ‪ 'C‬استفاده می‌کنیم‪.‬‬ ‫‪15‬‬
‫‪Node Red‬‬ ‫برای اجرا دکمه ‪ deploy‬را زده و برای مشاهده خروجی به آخر آدرس‬ ‫برای نمایش دما به نود ‪ gauge‬از قسمت ‪ UI‬نیاز داریم‪ .‬آن را به‬ ‫‪ IP‬خود ‪ /ui‬اضافه کنید به‌عنوان‌مثال‬ ‫برنامه اضافه کنید و مقدار حداکثر ‪ 100‬را تنظیم می‌کنیم‪.‬‬ ‫‪192.168.1.5:1880/ui‬‬ ‫و درنهایت دمای ‪ CPU‬به‌صورت گرافیکی نمایش داده خواهد شد‪.‬‬ ‫درنهایت نمودار به شکل زیر خواهد شد‪.‬‬ ‫در این شماره آشنایی کلی با محیط برنامه‌نویسی ‪ Node-red‬ارائه‬ ‫شد‪ .‬شما می‌توانید با اتکا به توانایی‌های ‪ Node-red‬و برد رزبری پای‬ ‫پروژه‌های کوچک و بزرگی را طراحی کنید‪ .‬در این محیط هیچ‌چیز مانع‬ ‫روند خالقیت و طراحی شما نیست‪.‬‬ ‫تبلیغات‬ ‫برد رسپبری پای ‪ 3‬ساخت ‪UK‬‬ ‫مشخصات فنی ‪ Raspberry Pi 3‬مدل ‪B‬‬ ‫‪. .‬پردازنده‌ی‪ARM Cortex A53 Quad-Core-64bit-1.2Ghz‬‬ ‫‪. .‬سرعت پردازنده‌ی گرافیکی ‪ ۴۰۰‬مگاهرتز‪Dual Core VideoCore IV GPU ،‬‬ ‫(‪Bluetooth (BT 4.1‬‬ ‫‪ 802.11n Wi-Fi. .‬‬ ‫‪. .‬پشتیبانی از ‪ 1080p video at 60fps‬با استفاده از فرمت ‪ ،H.264‬باالتر از ‪30fps‬‬ ‫‪. .‬یک گیگابایت رم‬ ‫‪. .‬سوکت ‪MicroSD‬‬ ‫‪. .‬سیستم‌عامل‪ :‬سیستم‌عامل از کارت ‪ MicroSD‬بارگذاری شده و یک نسخه از سیستم‌عامل های‬ ‫لینوکس را اجرا می‌کند‪.‬‬ ‫‪. .‬سرعت اتصال اترنت ‪100Mbps‬‬ ‫‪. .‬ورودی‪ 5‬ولت ‪ ۲٫۵ - DC‬آمپر‬ ‫‪. .‬خروجی ویدئو‪)HDMI rev 1.3 & 1.4Composite RCA (PAL and NTSC :‬‬ ‫‪. .‬خروجی صوتی‪ :‬جک ‪ ۳٫۵‬میلی‌متری‬ ‫‪. .‬مجهز به ‪HDMI‬‬ ‫‪. .‬مجهز به چهار پورت ‪USB2‬‬ ‫‪16‬‬ ‫‪http://link.eca.ir/1361‬‬ ‫ساخ‬ ‫تک‬ ‫شور ‬ ‫انگ‬ ‫ل‬ ‫ستان‬
Node Red www.link.eca.ir/684 17
‫ یسدنهم و ینف هورگورگ‬ ‫روش‌های خطایابی و رفع مشکالت‬ ‫کار با ماژول‌های ‪GSM SIM800‬‬ ‫نویسنده‬ ‫فرشاد اکرمی‬ ‫ماژول‌های ‪ SIMCOM‬یکی از پرکاربردترین ماژول‌های ‪GSM‬‬ ‫موجود در بازار هستند‪ .‬متأسفانه بسیاری از کاربران در هنگام کار با این‬ ‫ماژول‌ها دچار مشکل شده و نمی‌توانند با ماژول ارتباط برقرار کنند‪.‬‬ ‫باوجوداینکه این ماژول‌ها به‌گونه‌ای طراحی‌شده‌اند که با کمترین‬ ‫قطعات جانبی شروع به کار کنند‪ ،‬اما رعایت نکردن چند نکته ساده‬ ‫می‌تواند باعث شود راه‌اندازی ماژول با مشکل مواجه گردد‪.‬‬ ‫در صورت رعایت کردن تمامی نکات ذکرشده در‬ ‫اسناد ارائه‌شده توسط شرکت سازنده‪ ،‬این ماژول‬ ‫می‌تواند به یکی از دقیق‌ترین و بهترین‬ ‫ماژول‌های ‪ GSM‬تبدیل شود‪.‬‬ ‫در این مقاله سعی داریم تا انواع‬ ‫روش‌های تست و خطایابی نرم‌افزاری‬ ‫و سخت‌افزاری ماژول را آموزش دهیم‪.‬‬ ‫تقریباً بیشتر اطالعات ارائه‌شده در این نوشتار‬ ‫در اسناد منتشرشده توسط شرکت سازنده موجود‬ ‫بوده و تنها چند نکته خاص که به‌صورت تجربی‬ ‫به‌دست‌آمده است به آن افزوده‌شده است‪ .‬همیشه بهترین‬ ‫منبع برای راه‌اندازی و کار با هر نوع وسیله‌ای‪ ،‬اسناد منتشرشده‬ ‫توسط شرکت سازنده آن بوده و بهتر است قبل از هر کاری اسناد مربوط‬ ‫به ماژول را مطالعه کنید‪.‬‬ ‫الزم به ذکر است در این مطلب از ماژول ‪ SIM800C‬استفاده‌شده‬ ‫است‪.‬‬ ‫درصورتی‌که شما نتوانید ولتاژ و جریان موردنیاز ماژول را تأمین کنید‪،‬‬ ‫کارکرد ماژول با مشکل مواجه خواهد شد‪ .‬بسیاری از کاربران در هنگام‬ ‫کار با دستگاه‌های الکترونیکی تنها به فکر تنظیم ولتاژ برای ماژول خود‬ ‫هستند و هیچ‌گاه نسبت به تأمین جریان موردنیاز اقدامی نمی‌کنند‪ .‬در‬ ‫مورد ماژول‌های ‪ SIM‬شما عالوه بر تأمین ولتاژ دقیق نیاز به تأمین‬ ‫جریان موردنیاز ماژول را نیز خواهید داشت‪ .‬ماژول در حالت عادی‬ ‫جهت روشن شدن نیاز به جریان پایینی دارد‪ ،‬ولی در هنگان‬ ‫اتصال به شبکه جریان موردنیاز ماژول تا ‪ 2/5‬آمپر‬ ‫افزایش می‌یابد‪ .‬درنتیجه اگر منبع تغذیه شما‬ ‫قادر به تأمین این جریان نباشد‪ ،‬ماژول‬ ‫کارکرد صحیحی نخواهد داشت‪.‬‬ ‫در حالت اولیه نشانگر ‪ NET‬ماژول‬ ‫به‌صورت مستمر چشمک می‌زند و بعد‬ ‫از یافتن شبکه‪ ،‬سرعت چشمک زدن ماژول‬ ‫تغییر می‌کند‪ .‬همان‌گونه که ذکر شد‪ ،‬ماژول‌های‬ ‫‪ SIMCOM‬در هنگام اتصال به شبکه و یا ارسال‬ ‫‪ SMS‬تا ‪ 2/5‬آمپر به‌صورت لحظه‌ای جریان می‌کشند‪.‬‬ ‫درصورتی‌که منبع تغذیه شما قادر به تأمین جریان نباشد‪ ،‬ماژول‬ ‫ریست شده و به‌صورت مداوم چشمک می‌زند‪.‬‬ ‫استفاده از منابع تغذیه جریان آزمایشگاهی به علت محدود کردن‬ ‫جریان‪ ،‬رگالتورهای جریان پایین مثل ‪ 7805‬و یا باتری‌های ضعیف‬ ‫همگی باعث عدم اتصال ماژول به شبکه می‌شوند‪.‬‬ ‫تقریباً تمامی مشکالت به وجود آمده با این ماژول‌ها‪ ،‬به سه‬ ‫دسته تقسیم می‌شوند‬ ‫الف) تأمین تغذیه ماژول‬ ‫ب) نحوه ارتباط بین ماژول و پردازنده‬ ‫ج) اتصال به شبکه‬ ‫چون ولتاژ کاری ماژول غیر استاندارد می‌باشد‪ ،‬جهت تأمین آن‬ ‫می‌بایست از رگالتورهای پیشنهاد شده در دیتاشیت ماژول استفاده کنید‪.‬‬ ‫طی تست‌های انجام‌شده‪ ،‬بهترین راندمان کاری ماژول ‪ SIM800‬در‬ ‫ولتاژی بین ‪ 4/1‬الی ‪ 4/4‬ولت می‌باشد‪.‬‬ ‫در تصویر زیر مدار پیشنهاد شده برای استفاده در قسمت تغذیه ماژول‬ ‫را مشاهده می‌کنید‪.‬‬ ‫‪18‬‬
‫قطعه ‪ LM2596‬یک کاهنده ولتاژ با قابلیت تعیین ولتاژ خروجی بوده‬ ‫که مهم‌ترین مزیت آن به رگالتورهای دیگر‪ ،‬قابلیت تأمین جریان تا ‪3‬‬ ‫آمپر می‌باشد‪ .‬البته الزم به ذکر است که شما فقط ملزم به استفاده از این‬ ‫قطعه نیستید‪ ،‬ولی باید به این نکته توجه داشته باشید که مبدل شما‬ ‫می‌بایست ولتاژی بین ‪ 4/1‬الی ‪ 4/4‬ولت را با قابلیت تأمین جریان ‪2/5‬‬ ‫آمپر داشته باشد‪.‬‬ ‫ اب راک و یبایاطخ یاهشوریاهشور‬ ‫ماژول ‪ CP2102‬یکی از بهترین ماژول‌ها برای مبدل سریال به‬ ‫‪ USB‬می‌باشد‪.‬‬ ‫نزدیک‌ترین مدار به این ماژول‪ ،‬کاهنده معروف‬ ‫‪ LM2596‬موجود در فروشگاه ‪ ECA‬می‌باشد‪.‬‬ ‫‪http://link.eca.ir/1250‬‬ ‫در بعضی مواقع به علت محدودیت‌های موجود‪ ،‬نمی‌توان جریان‬ ‫موردنیاز ‪ 2‬آمپری ماژول را تأمین کرد‪ ،‬در این‌گونه موارد با قرار دادن‬ ‫چند خازن ظرفیت باال به‌صورت موازی در مسیر ولتاژ ماژول‪ ،‬می‌توان‬ ‫تا حد زیادی کمبود جریان در هنگام پیک جریان ماژول را تأمین کرد‪.‬‬ ‫همچنین از طریق ارسال دستور ‪ AT+CBC‬نیز می‌توان مقدار ولتاژ‬ ‫اعمالی به ماژول را مشاهده نمود‪.‬‬ ‫مثال‪:‬‬ ‫]‪AT+CBC [Enter‬‬ ‫‪+CBC: 0,100,4263‬‬ ‫‪OK‬‬ ‫قسمت سوم (عدد ‪ 4263‬در این مثال) همان ولتاژ دوسر ماژول بر‬ ‫اساس میلی ولت می‌باشد‪ ،‬یعنی ‪ 4.263‬ولت (این ولتاژ در هنگام تست‬ ‫برای شما شاید متفاوت باشد)‬ ‫رایج‌ترین مشکل بعدی مربوط به کابل سریال می‌باشد‪ .‬علی‌الخصوص‬ ‫در مواقعی که از مبدل‌های کابل سریال به ‪ USB‬استفاده می‌شود‪ ،‬این‬ ‫مشکل بیشتر نمایان می‌شود‪.‬‬ ‫در ابتدا از یک نرم‌افزار مناسب برای مشاهده ترمینال سریال استفاده‬ ‫کنید‪ .‬نرم‌افزار ‪ Termite‬به‌عنوان یک نرم‌افزار رایگان و کاربری ساده‬ ‫پیشنهاد می‌شود‪.‬‬ ‫برای تست پورت سریال‪ ،‬پورت ‪ RX‬و ‪ TX‬را به هم متصل کنید‪.‬‬ ‫درصورتی‌که درایور پورت سریال شما درست نصب‌شده باشد و اتصاالت‬ ‫به‌درستی برقرارشده باشند‪ ،‬با تایپ هر کاراکتر‪ ،‬باید در ترمینال برگشت‬ ‫داده شود‪.‬‬ ‫بعد از تست سریال‪ ،‬به سراغ ماژول می‌رویم‪ .‬پس از اتصال تغذیه و‬ ‫چشمک زدن ماژول‪ ،‬در صورت درست بودن اتصال سریال‪ ،‬می‌توانید‬ ‫دستورات را به ماژول ارسال کنید‪.‬‬ ‫معموالً تنظیمات سریال ماژول ‪ AUTO BAUD RATE‬بوده و‬ ‫نیازی به انجام تنظیم خاصی نیست؛ ولی بهتر است برای راحتی کار‬ ‫تنظیمات سریال در نرم‌افزار سریال خود را روی ‪ 9600‬تنظیم کنید‪.‬‬ ‫در هنگام اتصال به میکروکنترلر‪ ،‬یا باید بیت ریت ماژول را بر روی عدد‬ ‫خاصی فیکس کنید و یا اینکه با ارسال چندین‌باره کاراکتر ‪ A‬بیت ریت‬ ‫را تنظیم کنید‪ .‬پیشنهاد من فیکس کردن عدد بیت ریت بر روی عددی‬ ‫خاص است‪ .‬برای این کار یک‌بار ماژول را باید به رایانه متصل کرده و‬ ‫سپس با ارسال یکی از دستورات زیر عدد را ثابت کنید‪.‬‬ ‫‪AT+IPR=0 // Enable auto bauding, this is enabled by default‬‬ ‫‪AT+IPR=1200 // Set baud rate to 1200 bps‬‬ ‫‪AT+IPR=2400 // Set baud rate to 2400 bps‬‬ ‫‪AT+IPR=9600 // Set baud rate to 9600 bps‬‬ ‫‪AT+IPR=19200 // Set baud rate to 19200 bps‬‬ ‫‪AT+IPR=38400 // Set baud rate to 38400 bps‬‬ ‫‪AT+IPR=57600 // Set baud rate to 57600 bps‬‬ ‫‪AT+IPR=115200 // Set baud rate to 115200 bps‬‬ ‫الزم به ذکر است که بعد از تغییر‪ ،‬این عدد در حافظه ماژول ذخیره‌شده‬ ‫و فقط در همین فرکانس امکان اتصال به ماژول میسر می‌باشد‪ .‬در صورت‬ ‫تایپ اشتباه یا فراموش کردن‪ ،‬ماژول غیرقابل استفاده می‌شود!‬ ‫درصورتی‌که در ترمینال‪ ،‬بعد از ارسال کاراکترها‪ ،‬اطالعات برگشتی‬ ‫نامفهوم بود‪ ،‬یعنی اینکه اطالعات بیت ریت شما درست تنظیم نشده‬ ‫است‪.‬‬ ‫بهترین کار در هنگام اتصال ماژول به پردازنده‪ ،‬هماهنگ‌سازی ولتاژ‬ ‫بین ماژول و میکروکنترلر می‌باشد‪ .‬بااین‌حال که در هنگام تست‪ ،‬اتصال‬ ‫پورت سریال ‪ 5‬ولت به ماژول باعث بروز مشکل نمی‌شود‪ ،‬ولی بهتر‬ ‫است مقاومت‌های محدودکننده جریان (حدود ‪ 100‬اهم) در مسیر‬ ‫میکروکنترلر به ماژول قرار گیرد‪.‬‬ ‫‪19‬‬
CME ERROR: 0 Phone failure CME ERROR: 1 No connection to phone CME ERROR: 2 Phone adapter link reserved CME ERROR: 3 Operation not allowed CME ERROR: 4 Operation not supported CME ERROR: 5 PH_SIM PIN required CME ERROR: 6 PH_FSIM PIN required CME ERROR: 7 PH_FSIM PUK required CME ERROR: 10 SIM not inserted CME ERROR: 11 SIM PIN required CME ERROR: 12 SIM PUK required CME ERROR: 13 SIM failure CME ERROR: 14 SIM busy CME ERROR: 15 SIM wrong CME ERROR: 16 Incorrect password CME ERROR: 17 SIM PIN2 required CME ERROR: 18 SIM PUK2 required CME ERROR: 20 Memory full CME ERROR: 21 Invalid index CME ERROR: 22 Not found CME ERROR: 23 Memory failure CME ERROR: 24 Text string too long CME ERROR: 25 Invalid characters in text string CME ERROR: 26 Dial string too long CME ERROR: 27 Invalid characters in dial string CME ERROR: 30 No network service CME ERROR: 31 Network timeout CME ERROR: 32 Network not allowed, emergency calls only CME ERROR: 40 Network personalization PIN required CME ERROR: 41 Network personalization PUK required CME ERROR: 42 Network subset personalization PIN required CME ERROR: 43 Network subset personalization PUK required CME ERROR: 44 Service provider personalization PIN required CME ERROR: 45 Service provider personalization PUK required CME ERROR: 46 Corporate personalization PIN required CME ERROR: 47 Corporate personalization PUK required CME ERROR: 48 PH-SIM PUK required CME ERROR: 100 Unknown error CME ERROR: 103 Illegal MS CME ERROR: 106 Illegal ME CME ERROR: 107 GPRS services not allowed CME ERROR: 111 PLMN not allowed ‫ اب راک و یبایاطخ یاهشوریاهشور‬ ‫بعضاً مشاهده‌شده است در هنگام تبادل دستورات بین ماژول و‬ ‫ ماژول دستورات‬،‫ به علت باال بودن سرعت باالی پاسخ پردازنده‬،‫پردازنده‬ ‫ به‌شخصه در هنگام‬.‫را به‌درستی دریافت نکرده و با خطا مواجه می‌شود‬ ‫ تنها‬.‫ بارها با این مشکل مواجه شده‌ام‬،‫ یا میکروکنترلر‬Labview ‫کار با‬ )‫ میلی‌ثانیه‬5 ‫ قرار دادن یک تأخیر بسیار کوتاه (در حد‬،‫راه رفع این مشکل‬ .‫بین دریافت و ارسال دستور به ماژول می‌باشد‬ ‫ اگر پین کد سیم‌کارت فعال‬.‫مورد بعدی پین کد سیم‌کارت می‌باشد‬ ‫ برای این کار می‌توانید توسط یک‬.‫ ماژول به شبکه متصل نمی‌شود‬،‫باشد‬ ‫گوشی موبایل پین کد را غیرفعال کنید‬ .‫و یا اینکه توسط دستورات زیر کد را غیرفعال کنید‬ AT+CPIN? >>> +CPIN: SIM PIN // pin codes need to be entered >>> OK AT+CPIN=”9546” >>>; OK AT+CLCK=”SC”,0,”9546” // disable pin code >>> OK AT+CPIN? >>> +CPIN: READY ‫درصورتی‌که تمامی موارد را تست کردید ولی باز هم نتوانستید به‬ ‫ می‌بایست اتصاالت مربوط به آنتن و سیم‌کارت را‬،‫شبکه متصل شوید‬ ‫ روش سریع برای یافتن ایراد استفاده از دستور خطایابی ماژول‬.‫چک کنید‬ ‫ با ارسال دستور زیر در صورت بروز مشکل خطای مربوطه گزارش‬.‫می‌باشد‬ .‫داده می‌شود‬ AT+CMEE=1 ‫ مبنی بر فعال شدن گزارش خطا برای‬ok ‫ عبارت‬،‫با ارسال این دستور‬ .‫شما ارسال می‌شود‬ ،‫ اعالم به‌صورت کد برگشتی گزارش داده می‌شود‬،‫در صورت وجود خطا‬ .‫در لیست مقابل می‌توانید خطای مربوط به کد خود را مشاهده کنید‬ ‫ شماره پایه‌های سیم‌کارت‬:2‫تصویر‬ 20
‫‪CME ERROR: 112 Location area not allowed‬‬ ‫ ‪CME ERROR: 113 Roaming not allowed in this‬‬ ‫‪ location area‬‬ ‫ ‪CME ERROR: 126 Operation temporary‬‬ ‫‪ not allowed‬‬ ‫ ‪CME ERROR: 132 Service operation not‬‬ ‫‪ supported‬‬ ‫ ‪CME ERROR: 133 Requested service option not‬‬ ‫‪ subscribed‬‬ ‫ ‪CME ERROR: 134 Service option temporary out‬‬ ‫‪ of order‬‬ ‫‪CME ERROR: 148 Unspecified GPRS error‬‬ ‫‪CME ERROR: 149 PDP authentication failure‬‬ ‫‪CME ERROR: 150 Invalid mobile class‬‬ ‫ ‪CME ERROR: 256 Operation temporarily‬‬ ‫‪ not allowed‬‬ ‫‪CME ERROR: 257 Call barred‬‬ ‫‪CME ERROR: 258 Phone is busy‬‬ ‫‪CME ERROR: 259 User abort‬‬ ‫‪CME ERROR: 260 Invalid dial string‬‬ ‫‪CME ERROR: 261 SS not executed‬‬ ‫‪CME ERROR: 262 SIM Blocked‬‬ ‫‪CME ERROR: 263 Invalid block‬‬ ‫‪CME ERROR: 772 SIM powered down‬‬ ‫بعد از تست ولتاژ و پین کد‪ ،‬تعدادی تست دیگر نیز موجود می‌باشد که‬ ‫در ادامه آن‌ها را انجام خواهیم داد‪.‬‬ ‫در ابتدا اتصال سیم‌کارت به ماژول را با ارسال دستور ?‪AT+CPIN‬‬ ‫تست می‌کنیم‬ ‫در صورت سالم بودن‪:‬‬ ‫?‪AT+CPIN‬‬ ‫‪+CPIN: READY‬‬ ‫‪OK‬‬ ‫درصورتی‌که سیم‌کارت به هر دلیلی به ماژول وصل نباشد‪:‬‬ ‫ اب راک و یبایاطخ یاهشوریاهشور‬ ‫در این تست‪ ،‬سیم‌کارت به ماژول متصل نبوده و خطایابی ماژول از‬ ‫طریق دستور ‪ AT+CMEE=1‬فعال‌شده است‪.‬‬ ‫در صورت جستجو در لیست خطاهای ماژول‪ ،‬مشاهده خواهید کرد که‬ ‫خطای شماره ‪ 10‬مربوط به متصل نبودن سیم‌کارت به ماژول می‌باشد‪.‬‬ ‫دستور بعدی‪ ،‬تست میزان قدرت سیگنال می‌باشد‪ .‬با ارسال دستور‬ ‫‪ AT+CSQ‬شما می‌توانید از درست بودن مدار مربوط به آنتن‪ ،‬کیفیت‬ ‫آنتن و میزان سیگنال مخابرات در محل ماژول مطلع شوید‪.‬‬ ‫مثال‪:‬‬ ‫‪AT+CSQ‬‬ ‫‪+CSQ: 16,0‬‬ ‫‪OK‬‬ ‫در پاسخ دستور ‪ CSQ‬در صورت درست بودن اتصاالت آنتن‪ 2 ،‬عدد‬ ‫به شما بازگردانده می‌شود‪ ،‬عدد سمت چپ قدرت سیگنال دریافتی ماژول‬ ‫می‌باشد که می‌بایست عددی مابین ‪ 2‬و ‪ 30‬را نمایش دهد‪ .‬بدیهی است‬ ‫هرچه میزان این عدد پایین باشد‪ ،‬قدرت سیگنال پایین و درنتیجه احتمال‬ ‫کارکرد درست و سرعت تبادل اطالعات ماژول پایین‌تر خواهد بود‪.‬‬ ‫جهت دسترسی به‌تمامی دستورات‪ ،‬شما می‌توانید به اسناد مربوط به‬ ‫‪ AT Command‬ماژول مراجعه کنید‪ .‬دستورات بسیار زیادی هستند‬ ‫که شما می‌توانید از طریق آن‌ها تمامی قسمت‌های ماژول را تست کنید‪.‬‬ ‫و در آخر‪ ،‬نهایت دقت را در هنگام کار با این ماژول‌ها داشته باشید‪،‬‬ ‫ولتاژ بسیار باال‪ ،‬اتصال کوتاه بین پایه‌های مختلف و … باعث سوختن‬ ‫ماژول می‌شوند‪ .‬مواردی همچون داغ شدن بیش‌ازحد ماژول‪ ،‬اتصال کوتاه‬ ‫بین پایه‌های تغذیه‪ ،‬خاموش نشدن چراغ‌های ماژول از عالئم سوختن‬ ‫ماژول هستند‪.‬‬ ‫در این مطلب‪ ،‬انواع روش‌های رایج خطایابی ماژول‌های ‪Sim800‬‬ ‫آموزش داده شد‪ ،‬شما می‌توانید از همین دستورات برای ماژول ‪Sim808‬‬ ‫نیز استفاده کنید‪ .‬درصورتی‌که می‌خواهید مداری برای این ماژول طراحی‬ ‫کنید‪ ،‬سعی کنید برای طراحی برد از شماتیک پیشنهادی موجود در‬ ‫اسناد مخصوص ماژول استفاده کنید‪.‬‬ ‫?‪AT+CPIN‬‬ ‫‪+CME ERROR: 10‬‬ ‫تصویر‪:3‬یکی از ماژول‌های بسیار کوچک ‪SIM800‬‬ ‫‪21‬‬
‫ یسدنهم و ینف هورگورگ‬ ‫دستور از پرکاربردترین دستورهای رزبری پای‬ ‫‪22‬‬ ‫برخی از اوقات به یــادآوردن همه دستورهای رزبری پای که شما از آن‌ها‬ ‫استفاده می‌کنید‪ ،‬بسیار مشکل می‌شود‪ .‬به همین خاطر فهرستی از پرکاربردترین‬ ‫و مهم‌ترین دستورات رزبری پای گردآوری کرده‌ایم که باعث سهولت استفاده از‬ ‫دستورات لینوکس روی رزبری پای می‌شود‪ .‬اما در ابتدا مطلب کوچکی در مورد حق‬ ‫دسترسی‌ها بگوییم‪.‬‬ ‫دو حالت کاربری وجود دارد که شما می‌توانید در این دو حالت با لینوکس کارکنید‪.‬‬ ‫یکی از آن‌ها یک حالت کاربری است که حق دسترسی‌های ابتدایی را به شما‬ ‫می‌دهد و دیگری حالت کاربری مدیریت (سوپر یوزر ‪AKA=Administrative‬‬ ‫‪ ،Access Privilage‬یا ریشه) است‪ .‬برخی از دستورها را نمی‌توان با حالت اول‬ ‫اجرا نمود‪ .‬ازاین‌رو نیاز است که شما این دستورات را با حالت کاربری سوپر یوزر وارد‬ ‫کنید تا انجام بشوند‪ .‬شما اغلب پیشوند ‪ sudo‬رو قبل از دستورات می‌بینید؛ این‬ ‫دستور به این معنا است که شما به کامپیوتر می‌گویید دستور را با سطح دسترسی‬ ‫سوپر یوزر اجرا کند‪.‬‬ ‫راه‌حل جایگزین به‌جای استفاده از ‪ sudo‬قبل از هر دستور‪ ،‬دسترسی به خط‬ ‫فرمان سطح ریشه است که هر دستوری که داده شود را با سطح دسترسی سوپر‬ ‫یوزر اجرا می‌کند‪ .‬شما می‌توانید با نوشتن ‪ sudo su‬در خط فرمان و اجرای آن به‬ ‫سطح دسترسی ریشه دست پیدا کنید‪ .‬با اجرای دستور ‪ sudo su‬شما خط فرمان‬ ‫را به‌صورت زیر مشاهده خواهید کرد‪:‬‬ ‫‪root@raspberrypi:/home/pi#‬‬ ‫از این به بعد هر دستوری که داده شود با سطح کاربری سوپر یوزر اجرا می‌شود‪.‬‬ ‫بیشتر دستورهایی که در زیر آورده شده‌اند‪ ،‬تعداد زیادی گزینه‌های مفید دیگر نیز‬ ‫دارند که در مطلب گنجانده نشده است‪ .‬برای دیدن لیست دیگر گزینه‌های موجود‬ ‫برای هر دستور‪ ،‬بعد از نوشتن دستور بنویسید‪:‬‬ ‫‪--help‬‬ ‫دستورات عمومی‪:‬‬ ‫‪ : apt-get update. .‬لیست بسته‌های موجود در سیستم شما را با لیست‬ ‫بسته‌های موجود در مخازن هماهنگ می‌کند ‪ .‬قبل از نصب هر بسته جدید از این‬ ‫دستور استفاده کنید تا مطمئن شوید که آخرین نسخه بسته‌ها را نصب‌کرده‌اید‪.‬‬ ‫‪ : apt-get upgrade. .‬همه بسته‌های نرم‌افزاری که نصب‌کرده‌اید را به‌روزرسانی‬ ‫می‌کند‪.‬‬ ‫‪ :clear. .‬متن‌ها و دستورات قبلی که وارد کرده‌اید را از صفحه‌نمایش پاک می‌کند‪.‬‬ ‫‪ : date. .‬تاریخ کنونی را بر روی صفحه‌نمایش نشان می‌دهد‪.‬‬ ‫‪ : find / -name example.txt . .‬در کل سیستم فایلی به نام ‪example.txt‬‬ ‫را جستجو کرده و لیستی از همه پوشه‌هایی که چنین فایلی در آن‌ها وجود دارد‪،‬‬ ‫ارائه می‌دهد‪.‬‬ ‫‪ : nano example.txt . .‬فایل ‪ example.txt‬را در ویرایشگر متن ‪ nano‬باز‬ ‫می‌کند‪.‬‬ ‫‪ : poweroff . .‬برای خاموش کردن سریع استفاده می‌شود‪.‬‬ ‫‪ : raspi-config . .‬منوی تنظیمات پیکربندی را باز می‌کند‪.‬‬ ‫‪ : reboot . .‬برای ریبوت کردن سریع استفاده می‌شود‪.‬‬ ‫‪ : shutdown –h now . .‬برای خاموش‌کردن سریع سیستم استفاده می‌شود‪.‬‬ ‫‪ : shutdown –h 01:22. .‬سیستم را در ساعت ‪ 1:22‬صبح خاموش می‌کند‪.‬‬ ‫‪ : startx. .‬حالت کاربری گرافیکی را باز می‌کند‪.‬‬
‫‪42‬پ یرپزر دربراکرپ روتسد ‪42‬‬ ‫تاریخ ویرایش و دسترسی‌ها ارائه می‌دهد‪.‬‬ ‫‪ :mkdir example_directory. .‬در دایرکتوری کنونی یک‬ ‫دایرکتوری با نام ‪ example_directory‬ایجاد می‌کند‪.‬‬ ‫‪ : mv XXX. .‬فایل یا دایرکتوری ‪ XXX‬را به مکان مشخص‌شده انتقال‬ ‫می‌دهد؛ مثالً دستور زیر‬ ‫‪mv examplefile.txt /home/pi/office/‬‬ ‫فایل ‪ examplefile.txt‬را از پوشه کنونی به ‪/home/pi/office/‬‬ ‫انتقال می‌دهد‪ .‬اگر فایل در دایرکتوری کنونی موجود نباشد باید آدرس‬ ‫محل فایل را نیز به این دستور اضافه کنید مثالً دستور زیر‪:‬‬ ‫‪mv /home/pi/documents/examplefile.txt /home/pi/office/‬‬ ‫دستورات فایل و دایرکتوری‬ ‫‪ :cat example.txt. .‬محتوای فایل ‪ example.txt‬را نشان می‌دهد‬ ‫‪ :cd /abc/xyz. .‬دایرکتوری کنونی را به دایرکتوری ‪ /abc/xyz‬تغییر‬ ‫می‌دهد‪.‬‬ ‫‪ :cp XXX. .‬فایل یا دایرکتوری ‪ XXX‬را کپی کرده و آن را در مکان‬ ‫مشخص‌شده بازنشانی می‌کند؛ یعنی مثالً دستور روبرو‪ :‬‬ ‫‪cp examplefile.txt /home/pi/office/‬‬ ‫فایل ‪ examplefile.txt‬را از پوشه کنونی کپی کرده و در پوشه‬ ‫‪ /home/pi/office/‬بازنشانی می‌کند‪ .‬اگر فایل در دایرکتوری کنونی‬ ‫موجود نباشد باید آدرس محل فایل را نیز به این دستور اضافه کنید مثالً‬ ‫دستور زیر‪:‬‬ ‫‪cp /home/pi/documents/examplefile.txt /home/pi/office/‬‬ ‫فایل را از دایرکتوری ‪ documents‬کپی کرده و در دایرکتوری‬ ‫‪ office‬بازنشانی می‌کند‪.‬‬ ‫‪ : ls –l. .‬لیست فایل‌های دایرکتوری کنونی را همراه با اندازه فایل ‪،‬‬ ‫فایل را از دایرکتوری ‪ documents‬به دایرکتوری ‪ office‬منتقل‬ ‫می‌کند‪ .‬از این دستور می‌توان برای تغییر نام فایل‌ها نیز استفاده کرد‬ ‫(البته فقط در داخل همان دایرکتوری) مثالً دستور ‪mv example.txt‬‬ ‫‪ newfile.txt‬فایل ‪ example.txt‬را به ‪ newfile.txt‬تغییر نام داده و‬ ‫آن را در همان دایرکتوری نگه می‌دارد‪.‬‬ ‫‪ : rm example.txt. .‬فایل ‪ example.txt‬را حذف می‌کند‪.‬‬ ‫‪ : rmdir example_directory. .‬دایرکتوری ‪ example_directory‬‬ ‫را (فقط در صورت خالی بودن) حذف می‌کند‪.‬‬ ‫‪ : scp user@10.0.0.32:/some/path/file.txt. .‬یک فایل‬ ‫را بر روی پروتکل ‪ SSH‬منتقل می‌کند‪ .‬از این دستور می‌توان برای‬ ‫جابجایی و دانلود یک فایل از یک کامپیوتر بر روی رزبری پای استفاده‬ ‫کرد‪ user@10.0.0.32 .‬نام کاربری و آدرس آی پی کامپیوتر است و‬ ‫‪ /some/path/file.txt‬آدرس و نام فایل موجود در کامپیوتر می‌باشد‪.‬‬ ‫‪: touch example.txt. .‬یک فایل خالی جدید به‌نام‌ ‪example.txt‬‬ ‫در دایرکتوری کنونی ایجاد می‌کند‪.‬‬ ‫تبلیغات‬ ‫نمایشگر ‪ 10.1‬اینچ رنگی ‪ IPS‬با تاچ خازنی‬ ‫مشخصات فنی ‪:‬‬ ‫‪ . .‬تکنولوژی صفحه نمایش‪IPS :‬‬ ‫‪ . .‬رزولوشن ‪800×1280 :‬‬ ‫‪ . .‬ابعاد ‪ 10/1 :‬اینچ‬ ‫‪ . .‬پشتیبانی از مینی کامپیوترهای متعدد و سیستم ها‬ ‫‪ . .‬پشتیبانی از سیستم عامل های ویندوز ‪7/8/8.1/10 :‬‬ ‫‪ . .‬پشتیانی از سیستم های ‪ Raspbian‬و ‪Ubuntu‬‬ ‫‪ . .‬پشتیبانی از ‪ Banana Pi‬و ‪ Banana Pro‬با ایمیج های ‪ Lubuntu‬و ‪Raspbian‬‬ ‫‪ . .‬پشتیبانی از ‪ BB Black‬همراه با ایمیج های آنگستروم‬ ‫‪ . .‬ارتباط ‪ HDMI‬برای نمایش و ارتباط ‪ USB‬برای کنترل لمسی‬ ‫‪ . .‬دارای ‪ 5‬سطح تنظیم نور پس زمینه‬ ‫‪http://link.eca.ir/1230‬‬ ‫‪23‬‬
‫‪42‬پ یرپزر دربراکرپ روتسد ‪42‬‬ ‫دستورات اینترنت و شبکه‬ ‫‪ : ifconfig. .‬برای بررسی وضعیت اتصال بی‌سیمی که در حال استفاده‬ ‫هستید مورداستفاده قرار می‌گیرد (تا مشخص شود که آیا ‪ wlan0‬آی‬ ‫پی گرفته است یا نه)‬ ‫‪ : Iwconfig. .‬برای مشخص کردن اینکه آداپتور وایرلس از کدام شبکه‬ ‫در حال استفاده است‪.‬‬ ‫‪ : iwlist wlan0 scan. .‬فهرستی از شبکه‌های بی‌سیم موجود چاپ‬ ‫می‌کند‪.‬‬ ‫‪ : iwlist wlan0 scan | grep ESSID. .‬از دستور ‪ grep‬همراه با‬ ‫نام یک فیلد استفاده می‌کند تا تنها فیلدهایی که موردنیاز شما است را‬ ‫پیدا کند‪( .‬برای مثال فقط فهرست ‪ ESSID‬ها را لیست کند)‬ ‫‪ : Nmap. .‬شبکه شما را جستجو می‌کند و دستگاه‌های متصل شده‪،‬‬ ‫شماره پورت‌ها‪ ،‬پروتکل‪ ،‬وضعیت (باز یا بسته بودن) سیستم‌عامل‪ ،‬مک‬ ‫آدرس و دیگر اطالعات را فهرست می‌کند‪.‬‬ ‫‪ : ping. .‬برای تست اتصال بین دو دستگاه متصل به شبکه به کار‬ ‫می‌رود‪ .‬مثالً ‪ ping 10.0.0.32‬بسته‌ای به آدرس آی پی ‪10.0.0.32‬‬ ‫می‌فرستد و منتظر پاسخ می‌شود ‪ .‬این دستور با آدرس وب‌سایت‌ها نیز‬ ‫کار می‌کند‪.‬‬ ‫‪ : wget http://www.website.com/example.txt. .‬فایل ‬ ‫‪ example.txt‬را از وب دانلود کرده و در دایرکتوری کنونی ذخیره‬ ‫می‌کند‪.‬‬ ‫‪ : cat /proc/version. .‬ورژن رزبری پای مور استفاده قرارگرفته‬ ‫توسط شما را نشان می‌دهد‪.‬‬ ‫‪ : df –h. .‬اطالعاتی در مورد فضای موجود دیسک‌ها نشان می‌دهد‪.‬‬ ‫‪ : df /. .‬مقدار فضای خالی دیسک‌ها را نشان می‌دهد‪.‬‬ ‫‪ : dpkg – –get–selections | grep XXX. .‬همه بسته‌های‬ ‫نصب‌شده مرتبط با ‪ XXX‬را نشان می‌دهد‪.‬‬ ‫‪ : dpkg – –get–selections. .‬همه بسته‌های نصب‌شده شما را به‬ ‫نمایش درمی‌آورد‪.‬‬ ‫‪ :Free. .‬مقدار حافظه آزاد را نشان می‌دهد‪.‬‬ ‫‪ : hostname –I. .‬آدرس آی پی رزبری پای شما را نشان می‌دهد‪.‬‬ ‫‪ : Lsusb. .‬سخت‌افزارهای ‪ USB‬متصل شده به رزبری پای شما را‬ ‫نشان می‌دهد‪.‬‬ ‫‪ :UP key. .‬با فشار دادن دکمه جهت نمای باال آخرین دستور واردشده‬ ‫توسط شما در خط فرمان نمایش داده می‌شود‪ .‬این کار روشی سریع برای‬ ‫تکرار دستورات قبلی یا تصحیح دستورات است‪.‬‬ ‫‪ : vcgencmd measure_temp. .‬دمای سی‌پی‌یو را نشان می‌دهد‪.‬‬ ‫‪vcgencmd get_mem arm && vcgencmd get_mem gpu . .‬‬ ‫تقسیم حافظه بین سی پی یو و پردازنده کارت گرافیک را نشان می‌دهد‪.‬‬ ‫این دستورات استفاده از لینوکس بر روی رزبری پای شما را لذت‌بخش‌تر‬ ‫و مؤثرتر خواهد کرد‪ .‬سیستم‌عامل لینوکس دارای هزاران دستور دیگر‬ ‫است که می‌توانید از طریق راهنمای موجود در اینترنت و یا سایر منابع به‬ ‫دستورات اطالعات سیستمی‬ ‫آن‌ها دسترسی داشته باشد‪ .‬کاربران حرفه‌ای لینوکس‪ ،‬برخالف ویندوز‪،‬‬ ‫‪ : cat /proc/meminfo. .‬اطالعاتی در مورد مموری سیستم شما به‬ ‫تمامی کارهای خود را از طریق ترمینال لینوکس انجام می‌دهند‪ .‬شما‬ ‫نمایش درمی‌آورد‪.‬‬ ‫نیز می‌توانید با تمرین و کار کردن از طریق ترمینال‪ ،‬تمامی دستورات را‬ ‫‪ : cat /proc/partitions. .‬اندازه و تعداد پارتیشن‌های موجود بر روی‬ ‫به‌مرور فراگرفته و درزمینه کار با لینوکس حرفه‌ای شوید‪.‬‬ ‫کارت ‪ SD‬یا دیسک سخت شما را به نمایش درمی‌آورد‪.‬‬ ‫تبلیغات‬ ‫ماژول دوربین رزبری پای ‪ 8‬مگا پیکسل‬ ‫‪ Sony IMX219‬تولید انگلستان‬ ‫‪ IMX219‬یک حسگر فوکوس ثابت دارد و می‌تواند عکس‌هایی با‬ ‫کیفیت ‪ 3280‬در ‪ 2464‬پیکسل و همچنین ویدئوهای ‪ 1080p HD‬با نرخ ‪ 30‬فریم‬ ‫بر ثانیه از سوژه‌هایش بگیرد‪ .‬حسگر سونی به خاطر کیفیت تصویر باال‪ ،‬طراوت و‬ ‫تازگی رنگ ها و عملکرد خوبش در نور کم انتخاب شده که بعد از بهینه‌سازی‌های‬ ‫الزم‪ ،‬عملکرد خوبی را با واحد پردازش گرافیکی ‪ Videocore IV‬رزبری پای از‬ ‫خود به نمایش گذاشته است‪.‬‬ ‫‪http://link.eca.ir/1363‬‬ ‫‪24‬‬
‫‪42‬پ یرپزر دربراکرپ روتسد ‪42‬‬ ‫‪http://link.eca.ir/1076‬‬ ‫‪25‬‬
‫ یسدنهم و ینف هورگورگ‬ ‫‪ LED‬های رنگی‬ ‫گذشته‪ ،‬حال و آینده‬ ‫حدود صدسال است که از فرایند انتشار نور هنگام عبور جریان از مقدار‬ ‫مشخصی از مواد غیر آلی مطلع هستیم و ‪ LED‬ها نیز حدود پنجاه سال‬ ‫است که در این زمینه موردتوجه قرارگرفته‌اند‪ .‬این المپ‌های نشانگر‬ ‫رنگی که فاقد هرگونه فیالمان (عنصر گرم شونده) یا گاز هستند‪ ،‬به‌تدریج‬ ‫دچار تغییراتی شده‌اند و امروزه در تنوع بیشتر و رنگ‌های پرنورتر در‬ ‫دسترس هستند‪ .‬راندمان این المپ‌ها تا حدی افزایش‌یافته که حتی‬ ‫تکنولوژی ‪ LED‬در حال جایگزین شدن با المپ‌های فلورسنت می‌باشد‪.‬‬ ‫‪ 33‬سال پس از اختراع یک‌سوساز کریستالی توسط ‪Karl Ferdinand‬‬ ‫‪ Braun‬در سال ‪ ،1874‬آقای ‪ Henry Joseph Round‬کشف‬ ‫کرد که محل اتصال بین سیم فلزی و کریستال با توجه به میزان ولتاژ‬ ‫اعمال‌شده‪ ،‬می‌تواند برای انتشار نور به رنگ‌های زرد‪ ،‬قرمز و حتی آبی به‬ ‫کار رود؛ بنابراین آقای ‪ Round‬به‌عنوان اولین مخترع اثر الکترولومینانس‬ ‫و ‪ LED‬در نیمه‌هادی‌ها شناخته می‌شود و به‌افتخار ایشان این پدیده به‬ ‫اثر ‪ Round‬نام‌گذاری شده و داستان ما دقیقاً از اینجا شروع می‌شود‪.‬‬ ‫تکامل آهسته‬ ‫ساخت اولین ‪ LED‬مدرن در شرکت ‪ RCA‬انجام شد‪ .‬این محصول‬ ‫که از نوع مادون‌قرمز بود در سال ‪ 1955‬و توسط آقای ‪Rubin‬‬ ‫‪ Braunstein‬اختراع شد‪ .‬شرکت ‪ Texas Instruments‬از سال‬ ‫‪ 1962‬افتخار داشتن عنوان اولین تولیدکننده انبوه ‪ LED‬ها را دارد‪.‬‬ ‫‪ LED‬های مادون‌قرمز شرکت ‪ TI‬تنها ‪ 1/1‬درصد راندمان داشتند!‬ ‫اولین ‪ LED‬قرمزرنگ توسط شرکت ‪ General Electric‬در سال‬ ‫‪ 1962‬ساخته شد و حدود ‪ 10‬سال بعد اولین ‪ LED‬زردرنگ نیز در‬ ‫این شرکت ساخته شد‪ .‬در دهه ‪ 1970‬به‌تدریج ‪ LED‬های قرمزرنگ‬ ‫بهبود پیدا کردند‪ .‬راندمان ‪ LED‬ها به حدود ‪ 5‬درصد نزدیک شد و‬ ‫استفاده از آن به‌عنوان المپ نشانگر رواج یافت‪ LED .‬های پالستیکی‬ ‫در سطح مقطع ‪ 3‬میلی‌متر یا ‪ 5‬میلی‌متر و با توان حدود ‪ 40‬میلی وات‬ ‫ساخته می‌شدند‪ .‬این ‪ LED‬ها مزایای زیادی نسبت به المپ‌های حبابی‬ ‫با فیالمان تنگستن داشتند که شامل عدم حساسیت به لرزش‌ها و داشتن‬ ‫طول عمر بسیار طوالنی‌تر بود‪ .‬المپ‌های نئون‪ ،‬با ولتاژ کاری از حدود‬ ‫‪ 70V‬تا ‪ ،100V‬مسیر المپ‌های خأل را دنبال می‌کردند‪ LED .‬ها‪ ،‬با‬ ‫محدوده ولتاژ بین ‪ 1.2V‬تا ‪( 4V‬جدول ولتاژ و رنگ را مشاهده کنید)‬ ‫دارای رفتار بسیار بهتری در مدارات ترانزیستوری هستند‪ .‬همچنین در‬ ‫دهه ‪ 1970‬نمایشگرهای هفت قطعه (سون سگمنت) با استفاده از ‪LED‬‬ ‫‪26‬‬ ‫شکل ‪ .3‬از کلکسیون عتیقه‌ها‪ ،‬یک نمایشگر هفت قطعه‌ای قرمز با ارتفاع‬ ‫کاراکتر ‪ 10‬میلی‌متر‬ ‫های قرمزرنگ رواج زیادی پیدا کردند‪( .‬شکل ‪)3‬‬ ‫احتماالً برخی از خوانندگان می‌توانند اولین ماشین‌حساب جیبی که در‬ ‫شکل ‪ 4‬نشان داده‌شده است را به یاد آورند که نمایشگرهای قرمزرنگ‬ ‫آن‌ها دارای توان مصرفی بیشتری از تراشه اصلی ماشین‌حساب بود‪.‬‬ ‫ماشین‌حساب ‪ TI-59‬من از سال ‪ ،1977‬یکی از اولین ماشین‌حساب‌های‬ ‫قابل‌برنامه‌ریزی‪ ،‬دارای کارکردهای بسیار بیشتری نسبت به مثال ارائه‌شده‬ ‫بود اما همچنان دارای یک نمایشگر بسیار کوچک بود و هزینه آن نیز‬ ‫برای یک بچه‌ی دبستانی بسیار زیاد به نظر می‌رسید‪.‬‬ ‫شکل ‪ .4‬اولین ماشین‌حساب جیبی تولیدی در رنج انبوه که در آن از‬ ‫نمایشگرهای هفت قطعه‌ای کوچک استفاده شد‪( .‬منبع ‪ ،Erhaka‬ویکی‌پدیا)‬
‫ تک‬ ‫میل‬ ‫ی‪1‬‬ ‫‪LED‬ر یاه ‪LED‬‬ ‫ ‬ ‫اط‬ ‫العا‬ ‫ت‬ ‫ولتاژ و رنگ‬ ‫‪ LED‬های غیر آلی وابسته به میزان ناخالصی نیمه‌هادی آن‌ها می‌باشند‬ ‫و اغلب شامل عناصری مانند آلومینیوم‪ ،‬آرسنیک‪ ،‬گالیم‪ ،‬ایندیم‪ ،‬فسفر‬ ‫و نیتروژن می‌شوند‪ .‬اخیراً تحقیقات در این زمینه بر روی ساخت ‪LED‬‬ ‫های شامل کربن (به شکل الماس)‪ ،‬سیلیسیم و روی متمرکز شده است‪.‬‬ ‫ترکیب‪ ،‬میزان تمرکز و ساختمان‪ ،‬نه‌تنها بر روی راندمان بلکه به شکل‬ ‫مستقیمی بر روی رنگ ‪ LED‬نیز تأثیرگذار است‪ .‬انرژی منتشرشده از‬ ‫فوتون‌ها وابسته به نوار ممنوعه یا گاف انرژی‪ ،‬یعنی حدفاصل باند هدایت‬ ‫و باند ظرفیت‪ ،‬مربوط به نیمه‌هادی می‌باشد‪ .‬هرچه گاف انرژی بزرگتر‬ ‫باشد‪ ،‬انرژی فوتون‌ها بیشتر شده و طول‌موج نور ساطع‌شده نیز کوچک‌تر‬ ‫می‌شود‪ .‬گاف انرژی همچنین اثر مستقیمی بر روی ولتاژ آستانه (حداقل‬ ‫ولتاژ الزم برای هدایت و انتشار الکترون‌ها از باند هدایت و درنتیجه انتشار‬ ‫فوتون‌ها) نیز دارد‪ .‬روابط تئوری در شکل ‪ 1‬نشان داده‌شده است‪.‬‬ ‫پس مشخص می‌شود ازآنجایی‌که فرکانس نور با انرژی فوتون‌ها‬ ‫رابطه دارد‪ ،‬ولتاژ موافق ‪ LED‬های آبی‌رنگ تقریباً دو برابر ‪ LED‬های‬ ‫قرمزرنگ می‌باشد‪.‬‬ ‫جدول ‪ 1‬نیمه‌هادی متناسب با هر رنگ به همراه طول‌موج و ولتاژ‬ ‫موافق مربوط به هر مورد را نشان می‌دهد‪ .‬در عمل ولتاژ موافق الزم برای‬ ‫هدایت ‪ LED‬عالوه بر گاف انرژی به موارد دیگری مانند مقاومت ماده‬ ‫مورداستفاده‪ ،‬پایه‌ها و پیوند نیز بستگی دارد‪ .‬همچنین ولتاژ دو سر ‪LED‬‬ ‫با افزایش جریان نیز افزایش پیدا خواهد کرد‪.‬‬ ‫ ‬ ‫‪Voltage‬‬ ‫ولتاژ (‪)V‬‬ ‫)‪(v‬‬ ‫‪less than 1.6‬‬ ‫‪1.6 to 1.9‬‬ ‫‪1.8 to 2.2‬‬ ‫‪2.0 to 2.4‬‬ ‫‪2.2 to 2.7‬‬ ‫‪2.6 to 3.3‬‬ ‫‪3.2 to 3.6‬‬ ‫‪3.5 to 4.2‬‬ ‫جدول ‪1‬‬ ‫‪Table 1‬‬ ‫‪Wavelength‬‬ ‫ماده‬ ‫‪Material‬‬ ‫طول‌موج (‪)nm‬‬ ‫)‪(nm‬‬ ‫‪gallium arsenide‬‬ ‫‪GaAs‬‬ ‫‪aluminum gallium arsenide‬‬ ‫‪AlGaAs‬‬ ‫‪aluminum gallium arsenide‬‬ ‫‪AlGaAs‬‬ ‫‪gallium arsenide phosphide‬‬ ‫‪GaAsP‬‬ ‫‪aluminum gallium indium phosphide‬‬ ‫‪AlGaInP‬‬ ‫‪gallium phosphide‬‬ ‫‪GaP‬‬ ‫‪gallium arsenide phosphide‬‬ ‫‪GaAsP‬‬ ‫‪aluminum gallium indium phosphide‬‬ ‫‪AlGaInP‬‬ ‫‪gallium phosphide‬‬ ‫‪GaP‬‬ ‫‪gallium arsenide phosphide‬‬ ‫‪GaAsP‬‬ ‫‪aluminum gallium indium phosphide‬‬ ‫‪AlGaInP‬‬ ‫‪gallium phosphide‬‬ ‫‪GaP‬‬ ‫‪indium gallium nitride‬‬ ‫‪InGaN‬‬ ‫‪gallium nitride‬‬ ‫‪GaN‬‬ ‫‪gallium phosphide‬‬ ‫‪GaP‬‬ ‫‪aluminum gallium indium phosphide‬‬ ‫‪AlGaInP‬‬ ‫‪aluminum gallium phosphide‬‬ ‫‪AlGaP‬‬ ‫‪zinc selenide‬‬ ‫‪ZnSe‬‬ ‫‪indium gallium nitride‬‬ ‫‪InGaN‬‬ ‫‪silicon carbide‬‬ ‫‪SiC‬‬ ‫‪indium gallium nitride‬‬ ‫علت این مسئله که عبور از وضعیت هدایت جریان به عدم هدایت‬ ‫جریان دقت الزم را ندارد‪ ،‬رفتار آماری الکترون‌های ناحیه گذر می‌باشد‬ ‫که دارای یک احتمال معین برای غالب شدن بر گاف انرژی است که خود‬ ‫با افزایش ولتاژ موافق افزایش پیدا می‌کند‪ .‬طیف نور منتشرشده از ‪LED‬‬ ‫نیز با افزایش دما به‌تدریج به سمت طول‌موج‌های بلندتر حرکت می‌کند‪.‬‬ ‫(رنگ‌های گرم‌تر)‬ ‫البته این مسئله جای تعجب ندارد‪ ،‬زیرا ولتاژ موافق با افزایش دما‬ ‫کاهش پیدا می‌کند‪ .‬اگر در کاربرد خود نیاز به رنگ ثابت داریم‪ ،‬باید درجه‬ ‫حرارت سطح تراشه را ثابت نگه‌داریم‪ .‬میزان خالص بودن رنگ ‪ LED‬ها‬ ‫در محدوده بین المپ‌های رشته‌ای و لیزر قرار می‌گیرد‪ .‬به‌عبارت‌دیگر‬ ‫‪ LED‬ها مانند لیزرها دارای باند باریکی نیستند که بتوانند نور خود را‬ ‫با طول‌موج مشخصی انتشار دهند و از طرفی محدوده طول‌موج آن‌ها‬ ‫به‌اندازه المپ‌های رشته‌ای نیز گسترده نیست‪.‬‬ ‫مطابق شکل ‪ LED 2‬ها به‌خصوص در طول‌موج‌های بلندتر دارای باند‬ ‫نسبتاً باریکی هستند‪.‬‬ ‫از طرفی طیف نور ‪ LED‬های آبی‌رنگ مقداری گسترده‌تر است‪ .‬در‬ ‫‪ LED‬های سفید از ترکیب رنگ آبی و یک الیه فسفر استفاده‌شده است‬ ‫و نتیجه آن دارا بودن طیف نوری یکپارچه‌تر و نور طبیعی‌تر (مشابه نور‬ ‫خورشید) می‌شود‪ .‬کیفیت نور ‪ LED‬های سفید به «شاخص ارائه رنگ»‬ ‫یا ‪ CRI, Ra‬بستگی دارد‪ .‬مقادیر این شاخص با توجه به نور خورشید‬ ‫تعیین می‌شود که دارای ‪ CRI‬برابر ‪ 100‬می‌باشد‪ LED .‬های سفید‬ ‫دارای مقادیر ‪ CRI‬بین ‪ 75‬تا ‪ 95‬می‌باشند‪.‬‬ ‫‪InGaN‬‬ ‫‪aluminum nitride‬‬ ‫‪AlN‬‬ ‫‪aluminum gallium nitride‬‬ ‫‪AlGaN‬‬ ‫‪aluminum gallium indium nitride‬‬ ‫‪AlGaInN‬‬ ‫‪over 760‬‬ ‫‪610 to 760‬‬ ‫‪590 to 610‬‬ ‫‪570 to 590‬‬ ‫‪500 to 570‬‬ ‫‪450 to 500‬‬ ‫‪400 to 450‬‬ ‫‪230 to 400‬‬ ‫رنگ‬ ‫‪Color‬‬ ‫‌قرمز‬ ‫مادون‬ ‫‪infrared‬‬ ‫قرمز‪red‬‬ ‫نارنجی‬ ‫‪orange‬‬ ‫زرد‬ ‫‪yellow‬‬ ‫شــکل ‪ .1‬رابطــه بیــن ولتــاژ موافــق (گاف انــرژی) و‬ ‫رنــگ ‪ LED‬هــا‪ .‬ولتــاژ و طول‌مــوج دارای رابطــه‌ی‬ ‫عکــس هســتند‪.‬‬ ‫‪green‬‬ ‫سبز‬ ‫آبی‪blue‬‬ ‫بنفش‬ ‫‪violet‬‬ ‫ماورای‬ ‫بنفش‬ ‫‪ultraviolet‬‬ ‫شــکل ‪ .2‬طیــف ‪ LED‬بــا رنگ‌هــای مختلــف‪ .‬هرچــه‬ ‫طول‌مــوج کوتاه‌تــر باشــد طیــف نــوری گســترده‌تر‬ ‫می‌باشــد‪ .‬در زیــر بــرای مقایســه طیــف نــور خورشــید‬ ‫نشــان داده‌شــده اســت‪.‬‬ ‫‪27‬‬
‫‪LED‬ر یاه ‪LED‬‬ ‫شکل ‪ .5‬یک ‪ LED‬با مدل متفرقه‪ .‬سطر باال‪ ،‬از چپ به راست‪ :‬قرمز‪ ،‬زرد و ‪LED 4‬‬ ‫سبزرنگ مختلف مربوط به محصوالت دهه ‪ ،1970‬در مقایسه باال ‪ LED‬های مدرن‬ ‫آبی‌رنگ امروزی که شدت درخشندگی آن باعث شده است که سنسور دوربین اشباع‬ ‫شود‪ .‬سطر پایین‪ LED :‬های سبز مدرن در ابعاد ‪ 10‬میلی‌متر و ‪ 20‬میلی‌متر در‬ ‫رنگ‌های ‪ ،RGB‬سفید و ‪ LED‬های مادون‌قرمز‬ ‫شکل ‪ .6‬چهار ‪ LED‬سبزرنگ متفاوت‪ :‬هریک رنگ متفاوتی دارند‪LED .‬‬ ‫باال سمت چپ یک مدل مدرن با روشنایی بسیار باال (‪ )superbright‬است‬ ‫که سنسور دوربین را اشباع کرده است‪ .‬بقیه ‪ LED‬های ‪ 5‬میلی‌متری مشابه‬ ‫شکل ‪ 5‬هستند‪.‬‬ ‫استفاده از ترکیب رنگ زرد ایجادشده با رنگ آبی باقی‌مانده رنگ سفید‬ ‫حاصل می‌شود‪ .‬این ایده توسط آقای ‪ Jürgen Schneider‬در موسسه‬ ‫‪ Fraunhofer‬ابداع شد و تقریباً پایه همه‌ی ‪ LED‬های مدرن امروزی‬ ‫‪ LED‬ها با رنگ‌های متنوع در دهه ‪ 1970‬رواج یافتند‪ .‬رنگ‌های قرمز‪ ،‬را تشکیل می‌دهد‪ .‬امروزه ‪ LED‬های سفیدرنگ فروش بیشتری در بازار‬ ‫زرد و سبز ازجمله این رنگ‌ها بودند‪ .‬ردیف باال در شکل ‪( 5‬به‌غیراز نسبت به ‪ LED‬های رنگی دارند‪ .‬برای مطالعه بیشتر در مورد ‪ LED‬های‬ ‫‪ LED‬آبی‌رنگ سمت راست) تعدادی از ‪ LED‬های‪ .‬بسیار قدیمی را سفیدرنگ می‌توانید به مقاله زیر مراجعه فرمایید‪:‬‬ ‫نشان می‌دهد‪ .‬این ‪ LED‬ها عموماً بسیار درخشان نبوده و پرتو نوری‬ ‫’‪Let There Be LED‬‬ ‫‪ LED‬های رنگ قرمز و زرد برای هر مدل متفاوت بوده و رنگ سبز‬ ‫‪in the January/February 2016 issue of‬‬ ‫نیز راضی‌کننده نبود‪ .‬شکل ‪ 6‬تغییر در درخشش و رنگ ‪ LED‬های‬ ‫‪Elektor [1].‬‬ ‫سبزرنگ آن زمان را نشان می‌دهد‪ .‬همه‌ی چهار ‪ LED‬به‌صورت سری‬ ‫در باال سمت راست شکل ‪ 5‬می‌توانید ‪ LED‬آبی‌رنگ با بسته‌بندی‬ ‫متصل شده و جریان آن‌ها حدود ‪ 5‬میلی‌آمپر است‪.‬‬ ‫شفاف را مشاهده کنید‪ .‬جریان این ‪ 5 LED‬میلی‌آمپر است‪ .‬به دلیل‬ ‫در شکل‪ 6‬یک نمونه مدل مدرن با بازده باال برای مقایسه نشان شدت روشنایی سنسور دوربین اشباع‌شده و به‌اشتباه به رنگی شبیه آبی‬ ‫داده‌شده است‪ .‬شدت نور ‪ LED‬آن‌قدر زیاد است که سنسور دوربین مایل به سفید دیده می‌شود‪ .‬در پایین سمت چپ همین شکل ‪LED‬‬ ‫را اشباع می‌کند‪ LED .‬های قدیمی بیشتر از نوع زرد‪-‬سبز هستند تا های سبزرنگ در ابعاد ‪ 10‬میلی‌متر و ‪ 20‬میلی‌متر مشاهده می‌شوند‪.‬‬ ‫سبز تنها‪ LED .‬های قرمزرنگ و زردرنگ نیز دارای این ضعف می‌باشند‪ .‬بزرگ‌ترین آن‌ها یک پکیج شامل ‪ LED 4‬به‌صورت سری هست‪ .‬سمت‬ ‫خوشبختانه ‪ LED‬های مدرن امروزی با بسته‌بندی‌های ‪ 5‬میلی‌متر یا راست آن یک ‪ LED‬آند مشترک ‪ RGB‬دیده می‌شود که دارای ‪ 4‬پایه‬ ‫نصب سطحی دارای راندمان باال و رنگ‌های زیبا و عمیقی هستند و زمانی هست‪ .‬سه ‪ LED‬دارای رنگ‌های اصلی در این پکیج را می‌توان به‌منظور‬ ‫که به‌عنوان نشانگر از آن‌ها استفاده می‌شود‪ ،‬باید به محدوده جریان آن‌ها رنگ‌های دلخواه دیگر ترکیب کرد‪ LED .‬شفاف نشان داده‌شده در سمت‬ ‫نیز دقت شود که باعث تابش خیره‌کننده نشود‪.‬‬ ‫راست آن نیز یک نمونه ‪ LED‬سفید مدرن هست و در دورترین بخش‬ ‫وضعیت فعلی‬ ‫مدت‌زمان زیادی بود که جای ‪ LED‬آبی‌رنگ خالی بود‪ .‬این ‪ LED‬ها‬ ‫برای اولین بار در دهه ‪ 1990‬توسط شرکت ‪ Nichia‬وارد بازار شدند‪.‬‬ ‫مخترع این ‪ LED‬ها ‪ Shuji Nakamura، Isamu Akasaki‬و‬ ‫‪ Hiroshi Amano‬نیز در سال ‪ 2014‬به خاطر این کار ارزشمند جایزه‬ ‫نوبل را دریافت کردند که افتخاری بزرگ برای چنین قطعه‌ی کوچکی‬ ‫محسوب می‌شود‪ .‬دریافت جایزه برای این اختراع به این دلیل بود که‬ ‫‪ LED‬های آبی‌رنگ با راندمان باال پایه الزم برای ساخت ‪ LED‬های‬ ‫سفیدرنگ هستند که در آن‌ها از یک ‌الیه فسفر به‌منظور حذف رنگ‬ ‫آبی فرکانس باال و تبدیل آن به رنگ زرد استفاده می‌شود‪ .‬درنهایت با‬ ‫‪28‬‬ ‫سمت راست یک ‪ LED‬مادون‌قرمز را مشاهده می‌کنید‪ .‬پکیج این قطعه‬ ‫نسبت به نور مادون‌قرمز شفاف است‪.‬‬ ‫شکل ‪ .7‬حداکثر شدت نور خروجی تئوری ‪ LED‬وابسته به نوع رنگ‪ .‬توجه‬ ‫شود که واحد لومن نشان‌دهنده میزان حساسیت چشم انسان به رنگ‌های‬ ‫متفاوت است‪.‬‬
‫ تک‬ ‫میل‬ ‫ی‪2‬‬ ‫‪LED‬ر یاه ‪LED‬‬ ‫اط‬ ‫العا‬ ‫ت‬ ‫ ‬ ‫کیفیت را احساس کن‬ ‫المپ‌های ‪ LED‬که از تعداد زیادی ‪ LED‬تکی تشکیل می‌شوند تا نور‬ ‫کافی در خروجی را ایجاد کنند‪ ،‬برای مدت‌زمانی در دسترس بودند‪ .‬از‬ ‫اواسط دهه ‪ 1990‬سازندگان خودرو از رشته‌های ‪ LED‬برای چراغ‌ترمز‬ ‫سوم حتی برای ماشین‌های رده میانی استفاده می‌کردند‪.‬‬ ‫در آن زمان ‪ LED‬ها برای این کاربرد ازنظر شدت روشنایی و قیمت‬ ‫مناسب بودند‪ .‬مشتریان راضی بودند چون طول عمر این ‪ LED‬ها در‬ ‫مقابل المپ‌های رشته‌ای بسیار زیاد بوده و گاهی اوقات از طول عمر مفید‬ ‫خود ماشین نیز بیشتر بود‪ .‬چراغ‌های ترمز یکی از بخش‌های حفاظتی‬ ‫مهم در خودرو است و طول عمر آن‌ها نیز اهمیت زیادی دارد‪ .‬تا اینجا‬ ‫همه‌چیز خوب به نظر می‌رسد اما در عمل مشکالتی وجود دارد‪.‬‬ ‫درواقع دو پدیده باعث می‌شوند که وضعیت از حالت ایده‌آل خود خارج‬ ‫شود‪ .‬در تئوری چراغ‌های ترمز ‪ LED‬دارای عمری بالغ‌بر ‪ 50000‬ساعت‬ ‫هستند اما در عمل و در هنگام استفاده در محیط خودرو معموالً به‬ ‫دلیل لرزش‌ها‪ ،‬شرایط آب و هوایی بد و رطوبت باال (که باعث خوردگی‬ ‫مسیرهای برد مدار چاپی می‌شود) و تغییرات زیادی درجه حرارت‪ ،‬نتیجه‬ ‫متفاوتی مشاهده می‌شود‪ .‬این موارد باعث اعمال فشار مکانیکی بر روی‬ ‫پکیج ‪ LED‬ها‪ ،‬تراشه‌ها و سیم‌های اتصال‌دهنده می‌شود و در عمل‬ ‫مدت‌زمان ‪ 50000‬ساعت در این شرایط چیزی شبیه به رویا است!‬ ‫درجه حرارت بدنه ماشین در مقابل نور خورشید افزایش پیدا می‌کند و‬ ‫درجه حرارت ایجادشده توسط ‪ LED‬ها نیز به مقدار این درجه حرارت‬ ‫می‌افزاید‪ .‬نتیجه این‌که طول عمر چراغ‌های ‪ LED‬در خودرو از المپ‌های‬ ‫رشته‌ای بسیار بیشتر است اما نه به‌اندازه‌ای که ما تصور می‌کنیم‪ .‬عالوه بر‬ ‫این پدیده‌ی «اثر چند ‪ »LED‬نیز باید در نظر گرفته شود‪.‬‬ ‫طبق نتایج آماری اگر چندین ‪ LED‬حتی در شرایط بهینه نیز‬ ‫به‌کارگیری شوند‪ ،‬در عمل از طول عمر ‪ LED‬ها کاسته می‌شود‪.‬‬ ‫به‌عنوان‌مثال یک چراغ شامل ‪ 10‬عدد ‪ LED‬دارای طول عمر ‪15000‬‬ ‫ساعت است درصورتی‌که شاید تصور شود باید دارای طول عمر ‪50000‬‬ ‫ساعت باشد‪ .‬در عمل زمانی که این ‪ LED‬ها در محیط اتومبیل استفاده‬ ‫می‌شوند ساعت کاری هریک به مقدار ‪ 10000‬کاهش پیدا می‌کند و هر‬ ‫‪ LED‬درون چراغ ممکن است بعد از تنها ‪ 3000‬ساعت بسوزد؛ اما این‬ ‫پایان داستان نیست‪ .‬در چراغ‌های ‪ LED‬که درون اتومبیل با ولتاژ ‪12V‬‬ ‫استفاده مورداستفاده قرار می‌گیرند معموالً به شکل سری بسته می‌شوند‬ ‫و آسیب دیدن یک ‪ LED‬بر روی ‪ LED‬های دیگر نیز تأثیر می‌گذارد‪.‬‬ ‫مشکل دیگر این است که ‪ LED‬های استفاده‌شده در خودرو معموالً‬ ‫با استحکام باالیی مونتاژ شده‌اند و درنتیجه قابل‌جایگزینی نیستند‪ .‬در‬ ‫این صورت باید چراغ ‪ 2‬دالری خریداری و به‌طور کامل با چراغ فعلی‬ ‫جایگزین شود‪.‬‬ ‫این موارد فقط ملاحظات دانشگاهی نیست‪ ،‬بلکه حاصل تجربیات‬ ‫شخصی من است‪ .‬به‌عنوان‌مثال چراغ‌ترمز ماشین خود من‪ ،‬فیات مدل‬ ‫‪ ،1996‬مشابه توضیحات گفته‌شده در باال پس از تنها سه سال آسیب‬ ‫دید و جایگزینی و تعمیر آن نیز کم‌هزینه نبود‪ .‬شاید شما فکر کنید‬ ‫خوب این مدل فیات که تو داشتی این‌طور بوده ولی من به شما میگویم‬ ‫علیرغم این‌که ماشین‌های تویوتا به قابلیت اطمینان معروف هستند‪ ،‬اما‬ ‫‪ LED‬ماشین پریوس من دقیقه مشابه همین روش آسیب دید‪ .‬در این‬ ‫مورد‪ ،‬چراغ عقب سمت چپ آسیب دید که تعداد زیادی ‪ LED‬به‌صورت‬ ‫ثابت در آن قرار داشتند‪ .‬در سال یازدهم (درواقع درزمانی که دیسک‌های‬ ‫ترمز نیاز به تعویض داشتند) یکی از چراغ‌های آن سوخت‪ .‬خوشبختانه‬ ‫یک مدل جایگزین نیز برای آن وجود داشت اما قیمت آن زیاد بود‪.‬‬ ‫قطعاً اگر چراغ جلوی یک ماشین امروزی دچار آسیب شود احتماالً خرج‬ ‫زیادی روی دست شما خواهد گذاشت‪ .‬تکنولوژی جدید هزینه خود را‬ ‫نیز می‌طلبد!‬ ‫این عیب ‪ LED‬های خوشه‌ای زمانی که به‌عنوان روشنایی محلی نیز‬ ‫استفاده می‌شوند‪ ،‬مشکل بزرگی ایجاد می‌کند‪ .‬اگرچه تغییرات درجه‬ ‫حرارت و رطوبت نقش کمی در این محیط‌ها دارند‪ ،‬اما همچنان در مورد‬ ‫کیفیت قطعات به‌کاررفته باید تردید داشت‪.‬‬ ‫رشته‌های ‪ LED‬که برای تزیین جشن کریسمس یا مراسم مختلف‬ ‫استفاده می‌شود مناسب هستند‪ ،‬اما در بسیاری از موارد قیمت‌های‬ ‫اعالمی مقداری دور از انتظار است‪ .‬گاهی اوقات قیمت کل یک رشته‬ ‫‪ LED‬از قیمت مجموع تک‌تک ‪ LED‬های روی آن ارزان‌تر است! چه‬ ‫جوری این کار را انجام می‌دهند؟‬ ‫ساده‌ترین جواب این است که قیمت پایین به دلیل کیفیت پایین‬ ‫محصول است‪ .‬در کاربردهای زیباسازی در مورد مدت‌زمان کارکرد ‪LED‬‬ ‫ها نمی‌توان اظهارنظر کرد و معموالً کیفیت پایین رشته‌های ‪( LED‬یا‬ ‫حداقل برخی از آن‌ها) مشکل‌ساز است‪.‬‬ ‫تبلیغات‬ ‫ماژول ‪LED RGB WS2812‬‬ ‫ماژول ‪ LED RGB‬تکی ‪ WS2812‬از سه رنگ قرمز‪ ،‬سبز‬ ‫و آبی تشکیل شده به‌طوری‌که به آی‌سی ‪ WS2811‬متصل است‪.‬‬ ‫آی‌سی ‪ WS2811‬دیجیتال می‌باشد که همراه ‪ LED RGB‬هفت‌رنگ‬ ‫آن‌را به فولکالر ‪ 16‬میلیون رنگ تبدیل می‌کند‪.‬‬ ‫‪http://link.eca.ir/1363‬‬ ‫‪29‬‬
‫‪LED‬ر یاه ‪LED‬‬ ‫از اواسط دهه هفدهم‪ ،‬به‌خصوص در اوایل هزاره اخیر‪ ،‬خروجی نور‬ ‫‪ LED‬ها شروع به افزایش سریعی کرد و به راندمان ‪ lm/W 100‬رسید‪.‬‬ ‫در این مقطع زمانی‪ LED ،‬های سفیدرنگ به جایگاهی رسیده‌اند که‬ ‫در حال رقابت با المپ‌های فلورسنت هستند که عالوه بر خروجی شدت‬ ‫نور قابل‌مقایسه‪ ،‬دارای طول عمر بیشتر و فاقد عنصر جیوه هستند‪ .‬در‬ ‫بررسی‌های آزمایشگاهی‪ LED ،‬های سفیدرنگ دارای راندمان باالی‬ ‫‪ lm/W 300‬هستند که تنها مقدار کمی پایین‌تر از مقدار تئوری ‪‌350‬‬ ‫‪ lm/W‬در درجه حرارت رنگی ‪ 6600‬کلوین می‌باشد‪ .‬شکل ‪ 7‬حداکثر‬ ‫مقدار ممکن تئوری خروجی شدت روشنایی را با توجه به نور ‪LED‬‬ ‫نشان می‌دهد‪.‬‬ ‫شکل ‪ LED .8‬المپ شمعی‪.‬‬ ‫‪ LED‬قرارگرفته به شکل‬ ‫رشته در حباب ‪ E14‬مشابه‬ ‫فیالمان‌های سنتی عمل می‌کند‪.‬‬ ‫یک تناقض جالب در اینجا وجود دارد‪:‬‬ ‫اگرچه ‪ LED‬های آبی‌رنگ که پایه ‪ LED‬های سفیدرنگ هستند‬ ‫دارای حداکثر راندمان ‪ lm/W 200‬هستند اما ‪ LED‬های سفیدرنگ‬ ‫راندمان باالتری دارند‪ .‬توضیح این مسئله مربوط به نحوه تعریف لومن‬ ‫(‪ )lumen‬و حساسیت متفاوت چشم انسان نسبت به رنگ‌های مختلف‬ ‫می‌شود‪ .‬رنگ سبز در چشم انسان در یک توان یکسان دارای روشنایی‬ ‫بیشتری نسبت به رنگ‌های دیگر است؛ و همچنین اگرچه هنگام تولید‬ ‫رنگ زرد با استفاده از فسفر مقدار کمی انرژی از دست می‌رود (در‬ ‫حقیقت تبدیل به گرما می‌شود)‪ ،‬برای ما رنگ سفید نسبت به رنگ آبی‬ ‫مستقیم از تراشه زیر فسفر درخشان‌تر به نظر می‌رسد‪.‬‬ ‫ذکر این نکته نیز خالی از لطف نیست که تالش‌ها در آزمایشگاه برای‬ ‫افزایش این راندمان اغلب به نتیجه‌ای نرسیده است و امید کمی برای‬ ‫افزایش راندمان به بیش از این مقدار وجود دارد‪ .‬اگرچه برای تبدیل این‬ ‫نمونه‌های اولیه به محصوالت واقعی راه طوالنی در پیش است‪ .‬موارد‬ ‫بهینه‌سازی مختلفی وجود دارد که برای تولید انبوه باید در نظر گرفته‬ ‫شود تا تولیدکننده امکان تولید قطعاتی با راندمان مشابه در آزمایشگاه و‬ ‫با قیمتی مناسب را داشته باشد‪.‬‬ ‫شکل ‪ .9‬بیشتر از ‪ LED‬های ‪ RGB: LED‬های مدل ‪OSTAR‬‬ ‫‪ OSRAM‬در پکیج ‪ SMD‬شامل یک تراشه سفید ‪ LED‬به همراه‬ ‫تراشه‌های دیگر در رنگ‌های اصلی‪.‬‬ ‫تبلیغات‬ ‫انواع ‪ LED‬و تجهیزات مرتبط‬ ‫فروش انواع ‪ LED‬در رنگ ها و سایزهای گوناگون‬ ‫‪Power LED. .‬‬ ‫‪. .‬درایور ‪LED‬‬ ‫‪SMD LED. .‬‬ ‫‪COB. .‬‬ ‫‪. .‬لنز های ‪LED‬‬ ‫‪ LED. .‬های نواری و بلوکی‬ ‫‪http://link.eca.ir/1365‬‬ ‫‪30‬‬
‫‪LED‬ر یاه ‪LED‬‬ ‫بدون شک این اتفاق در دهه آینده رخ خواهد داد و ما در آن زمان‬ ‫دارای یک تکنولوژی روشنایی با راندمان انرژی بسیار باال بر مبنای‬ ‫نیمه‌هادی‌های مدرن خواهیم بود که عالوه بر طول عمر زیاد‪ ،‬دارای ابعاد‬ ‫و ردپای کربنی نسبتاً کوچکی خواهد بود‪.‬‬ ‫‪ LED‬های رنگی‬ ‫در سال‌های اخیر به‌واسطه افزایش راندمان‪ ،‬تولید انبوه و قیمت پایین‪،‬‬ ‫‪ LED‬ها در حال جایگزین شدن با المپ‌های دارای فیالمان هستند‪.‬‬ ‫درگذشته المپ‌های ‪ LED‬واحدهایی فاقد بهره مناسب و شامل تعداد‬ ‫زیادی تراشه ‪ SMD‬بودند اما امروزه می‌توانید المپ‌هایی را خریداری‬ ‫کنید که ساختار ‪ LED‬داخلی آن‌ها رفتاری مشابه المپ‌های سنتی شمع‬ ‫شکل فیالمانی را دارا می‌باشند (شکل ‪ .)8‬بنابراین اکنون می‌توانید در‬ ‫لوستر خود از المپ‌های مدرن و با راندمان باال استفاده کنید و همچنان‬ ‫سلیقه موردنظر خود را نیز اعمال کنید‪ .‬در حال حاضر المپ‌های ‪LED‬‬ ‫تقریباً در هر شکل‪ ،‬اندازه و رنگی که تصور کنید وجود دارند‪.‬‬ ‫‪ LED‬های مادون‌قرمز برای سال‌ها در کنترل از راه دور استفاده‌شده‌اند‬ ‫و اخیراً در تأمین روشنایی شب برای دوربین‌های امنیتی و کاربردهای‬ ‫نظامی نیز استفاده می‌شوند‪ .‬یکی از کاربردهای جالب دیگر استفاده از‬ ‫‪ LED‬ها در صنعت المپ‌های مادون‌قرمز است که شامل صدها ‪LED‬‬ ‫نوع ‪ SMD‬با توان خروجی ‪ 100W‬می‌شود و به‌عنوان یکی از اجزای‬ ‫پروژکتورها به‌منظور تابیدن شبکه‌ای از نورهای مادون‌قرمز بر روی یک‬ ‫قطعه از خط تولید یا بر روی ایستگاه مونتاژ استفاده می‌شوند‪ .‬ایده این‬ ‫کاربرد در این نهفته است که علیرغم چشم انسان که وظیفه اپراتور را‬ ‫دارد‪ ،‬چشم یک ربات به‌راحتی می‌تواند سیستم عملیاتی شده را ببینید و‬ ‫درنتیجه موقعیت مکانی خود را متناسب با آن تغییر داده و مکان واحدها‬ ‫را در خط تولید بهتر تشخیص دهد‪ .‬در این روش نور مادون‌قرمز بر‬ ‫انسان‌هایی که در کنار ربات‌ها کار می‌کنند و بر عملکرد ربات‌ها نظارت‬ ‫دارند تأثیری ندارد‪.‬‬ ‫‪ LED‬های سفید تنها راه تولید نور نیستند‪ .‬یک راهکار گران‌تر‪ ،‬اما با‬ ‫کیفیت یکسان اگر نگوییم بهتر‪ ،‬استفاده از ‪ LED‬های ‪ RGB‬است‪ .‬این‬ ‫‪ LED‬ها شامل تراشه‌هایی (حداقل) به رنگ‌های اصلی است که بر روی‬ ‫یک بسته‌بندی قرارگرفته‌اند‪ .‬با عبور جریان‌های مختلف از تراشه‌های‬ ‫مختلف می‌توان رنگ آن‌ها را ترکیب کرده و به رنگ موردنظر دست‬ ‫پیدا کرد‪ .‬شکل ‪ 9‬یک مثال را نشان می‌دهد‪ LED .‬های ‪ SMD‬نوع‬ ‫‪ ،OSTAR‬عالوه بر ‪ LED‬های قرمز (‪ 625‬نانومتر)‪ ،‬سبز (‪ 530‬نانومتر)‬ ‫و آبی (‪ 453‬نانومتر) یک ‪ LED‬سفیدرنگ نیز به آن‌ها اضافه شده است‪.‬‬ ‫این قطعه برای استفاده در کاربردهای ویژه که نیاز به روشنایی دقیقی‬ ‫دارند مانند جراحی‌های پزشکی و کاربردهای دیگر که دقت رنگ اهمیت‬ ‫دارد استفاده می‌شود‪ .‬علیرغم اندازه کوچک‪ ،‬این قطعه ‪ SMD‬دارای توان‬ ‫خروجی روشنایی بیش از ‪ lm 500‬در جریان ‪ 1.4A‬است‪.‬‬ ‫در حال حاضر به‌طور گسترده از ‪ LED‬ها در مراسم و جشن‌ها استفاده‬ ‫می‌شود‪ .‬در گذشته در نقاط تزیینی سالن‌ها (‪ )PAR cans‬از المپ‌های‬ ‫رشته‌ای با توان‌های چند صد وات و فیلترهای رنگی استفاده می‌شده‬ ‫است‪ .‬امروزه ‪ LED‬ها به‌طور گسترده‌ای جایگزین این المپ‌ها شده‌اند‬ ‫(شکل ‪ .)10‬اگرچه همچنان ‪ LED‬ها در همه‌ی جنبه‌ها دقیقه عملکرد‬ ‫این المپ‌ها را ندارند اما درخشندگی بسیار زیاد ‪ LED‬ها در حال کم‬ ‫کردن این شکاف است‪ .‬طول عمر‪ ،‬استحکام‪ ،‬انرژی حرارتی کمتر‪ ،‬احتمال‬ ‫آسیب رساندن کمتر (المپ‌های تزیینی سالن‌ها احتمال منفجرشدن‬ ‫دارند) و کنترل لحظه‌ای الکترونیکی‪ ،‬همه و همه توسط ‪ LED‬ها برآورده‬ ‫می‌شود‪.‬‬ ‫شــکل ‪ .10‬مــدل ‪ Cameo‬شــماره ‪ CLP56RGB05PS‬بــرای‬ ‫ســالن‌ها بــا ‪ LED 151‬رنگــی و تــوان حــدود ‪ 30‬وات در ولتــاژ ‪230‬‬ ‫ولــت‪ .‬بــرای روشــنایی ورزشــی‪ ،‬دارای واســط ‪ DMX‬بــرای کنتــرل از‬ ‫راه دور‪ ،‬دارای میکروفــن داخلــی بــرای فعال‌ســازی خاصیــت نــور اعضــا‬ ‫(‪)light organ‬‬ ‫شــکل ‪ .11‬محصــول ‪ LivingColors‬شــرکت ‪ :Philips‬محصولی‬ ‫موفــق شــامل رنــگ قابــل تنظیــم از راه دور و ‪ LED‬هــای ســفید‪،‬‬ ‫بدنــه پالســتیکی‪.‬‬ ‫‪31‬‬
‫‪LED‬ر یاه ‪LED‬‬ ‫البته نیازی نیست که ‪ LED‬های رنگی حتماً به همراه موزیک‬ ‫استفاده شوند! در همان اوایل کار شرکت ‪ Philips‬متوجه شد که‬ ‫برخی افراد مشتاق هستند که روشنایی منازلشان قابل‌برنامه‌ریزی باشد‪.‬‬ ‫چند سالی است که شرکت ‪ Dutch electronics giant‬تحت برند‬ ‫‪ LivingColors‬در حال بازاریابی برای المپ‌های میزی و سقفی است‬ ‫(شکل ‪ .)11‬این المپ‌های ‪ LED‬قابل‌کنترل از راه دور‪ ،‬قابلیت تنظیم‬ ‫در محدوده وسیعی از رنگ‌ها را دارند‪ .‬هر المپ شامل تعدادی ‪LED‬‬ ‫های رنگی و سفید است که می‌تواند رنگ‌های ترکیبی‪ ،‬ثابت یا الگوهای‬ ‫چشمک‌زن ایجاد کند و قابلیت تنظیم شدت نور (دیمر) را نیز دارد‪.‬‬ ‫موفقیت این محصوالت‪ ،‬شرکت ‪ Philips‬را برای ساخت محصوالت‬ ‫‪ Hue‬ترغیب کرد (شکل ‪ .)12‬این برند نه‌تنها شامل المپ‌ها بلکه شامل‬ ‫رشته‌های ‪ LED‬و المپ‌های رنگی معمولی برای ابعاد ‪ E27‬و کنترل از‬ ‫راه دور توسط پل نیز می‌شود‪.‬‬ ‫برند ‪ Hue Go‬نیز شامل المپ‌هایی با باطری‌های داخلی لیتیومی‬ ‫می‌شود‪ .‬تابه‌حال این سیستم‌های روشنایی برای شرکت ‪ Philips‬سود‬ ‫زیادی داشته است و بدون شک در آینده شاهد نسخه‌های دیگری از‬ ‫این محصوالت در بازار نیز خواهیم بود‪ .‬اگر شما دنبال یک انتخاب‬ ‫اقتصادی‌تر هستید‪ ،‬ناامید نخواهید شد‪ .‬نسخه‌های ‪ DIY sheds‬در‬ ‫حال ارائه بسته‌هایی از ‪ LED‬های رنگی ارزان برای کاربردهای مختلف‬ ‫است (شکل ‪ )13‬که قیمت آن کسری از قیمت محصوالت برندهای‬ ‫بزرگ است‬ ‫‪ LED‬های ماورای بنفش نیز کاربرد خود را دارند‪ ،‬مانند کاربردهای‬ ‫ویژه‌ای که در آن‌ها از الک حساس به نور بر روی برد مدار چاپی‬ ‫استفاده‌شده یا ساختن نورهای مشکی ازجمله این کاربردها هستند‪.‬‬ ‫کاربرد دیگر ‪ LED‬های ماورای بنفش نورافشانی لوله‌های آب شفاف‬ ‫است که کاربرد آن برای جلوگیری از رشد جلبک در آکواریوم‌ها و‬ ‫استخرها می‌باشد‪ .‬از دیگر کاربردهای ‪ LED‬های ماورای بنفش می‌توان‬ ‫به اصالح وارنیش ها و بررسی مقاومت اجسام در برابر نور ماورای بنفش‬ ‫نیز اشاره کرد‪.‬‬ ‫استفاده از تکنولوژی پرینترهای امروزی‪ ،‬پیکسل‌های ‪ OLED‬را توسط‬ ‫سیم‌های اتصال‌دهنده ایجاد کرد‪ .‬نمایشگرهای ‪ OLED‬مدل ‪RGB‬‬ ‫دارای شدت نور و کنتراست مناسبی هستند‪ .‬ساخت نمایشگرهای مشابه‬ ‫توسط نیمه‌هادی‌ها بسیار پیچیده‌تر و گران‌تر خواهد بود‪.‬‬ ‫شــکل ‪ .12‬ســری ‪ Hue‬از شــرکت ‪ Philips‬شــامل المپ‌هــای ‪LED‬‬ ‫رنگــی بــا ابعــاد ‪ E27‬و کنتــرل از راه دور توســط پــل‬ ‫شــکل ‪ .13‬ایــن روزهــا می‌تــوان تنــوع زیــادی از رشــته‌های ‪،LED‬‬ ‫المپ‌هــا و چراغ‌هــا همــراه بــا کنتــرل از راه دور (یــا بــدون آن) را در ‪DIY‬‬ ‫‪ shed‬پیــدا کنیــد‪.‬‬ ‫‪ OLED‬ها‬ ‫‪ LED‬های آلی (‪ )OLED‬مدتی پس از ‪ LED‬های معمولی کشف‬ ‫شدند و درنتیجه در حال حاضر برای ‪ LED‬های معمولی ازنظر میزان‬ ‫شدت نور و طول عمر نمی‌توانند رقیب جدی محسوب شوند‪ .‬بااین‌حال‬ ‫شیب رشد سریعی برای این ‪ LED‬ها وجود دارد‪ .‬از مزایای این ‪LED‬‬ ‫ها قیمت پایین مواد اولیه و قیمت پایین تولید به دلیل عدم نیاز به‬ ‫شرایط اتاق پاکیزه است‪ OLED .‬ها را می‌توان بر روی صفحات مسطح‬ ‫تولید کرد و ازآنجایی‌که این صفحات می‌توانند قابل‌انعطاف باشند‪ ،‬در‬ ‫بسیاری از کاربردهای روشنایی به‌عنوان یک مزیت محسوب می‌شود و‬ ‫ساخت المپ‌های قابل‌انعطاف نیز امکان‌پذیر می‌شود‪ .‬برای مدت‌زمانی‬ ‫طوالنی ساخت ‪ OLED‬ها در خارج از محیط آزمایشگاه کار سختی‬ ‫بود ولی در حال حاضر این شرایط تغییر کرده است‪ .‬استفاده از ‪OLED‬‬ ‫ها بسیار ساده است‪ .‬به‌عنوان‌مثال‪ ،‬می‌توان برای ساخت نمایشگرها‪ ،‬با‬ ‫‪32‬‬ ‫شــکل ‪ .14‬محصــول ‪ 6p Nexus‬شــرکت ‪ ،Google‬نمایشــگر‬ ‫‪ OLED‬در یــک گوشــی هوشــمند بــا قیمتــی مناســب دارای رزولوشــن‬ ‫‪ 2560x1440‬پیکســل‬
‫میل‬ ‫ی‪3‬‬ ‫رشته‌های ‪ LED‬ارزان‌قیمت که دارای بخش چسبنده ‬ ‫ ‬ ‫‪ .‬هستند و به‌صورت غیرمستقیم از یک منبع ولتاژ کوچک تغذیه‬ ‫می‌شوند‪ ،‬اغلب برای کارهای تزییناتی در کنار وسایل منازل استفاده‬ ‫می‌شود و معموالً دارای این مشکل هستند‪.‬‬ ‫تجربه شخصی من نیز این مسئله را تأیید می‌کند‪ .‬به‌عنوان‌مثال‬ ‫دو رشته ‪ LED‬هر یک به طول ‪ 2‬متر و تعداد ‪ LED 120‬به یک‬ ‫بخش آلومینیومی متصل بود‪ .‬تخمین من برای طول عمر این ‪LED‬‬ ‫ها حدود ‪ 4500‬ساعت بود اما بعد از شش ماه و حدود ‪ 600‬ساعت‬ ‫کارکرد ‪ 8‬عدد از ‪ LED‬ها سوخت و مجبور شدم آن‌ها را دمونتاژ‬ ‫کرده و با ‪ LED‬های ‪ SMD‬با رنگ مشابه جایگزین کنم؛ اما مجدداً‬ ‫دو ماه بعد دو ‪ LED‬دیگر هم سوخت (شکل ‪ )15‬و قطعاً این داستان‬ ‫ادامه دارد‪!...‬‬ ‫روشنایی‌های معمولی ‪ LED‬ممکن است مدت‌زمان کارکردشان‬ ‫از این مقدار هم کمتر باشد‪ .‬تجربه شخصی من در مورد چهار المپ‬ ‫‪ LED‬با ابعاد ‪ E27‬و دو عدد چراغ مربوط به جلوی سالن مدل‬ ‫‪ GU10‬هست‪ .‬مثالً در مورد المپ ‪ ،E27‬آن را به یک منبع تغذیه‬ ‫سوییچینگ متصل کردم و موجب آسیب رسیدن به سیم‌پیچ منبع‬ ‫تغذیه شد و در مورد المپ ‪ GU10‬هم در اثر افزایش درجه حرارت‬ ‫به تاریخ پیوست!‬ ‫در مورد دو لوله ‪ LED‬نیز که جایگزین المپ‌های فلورسنت‬ ‫شده بودند‪ ،‬مهندسان ‪ LG‬از فیوز مناسبی در بخش منبع تغذیه‬ ‫سوییچینگ استفاده نکرده بودند و تعویض آن با یک نمونه مناسب‬ ‫مشکل را حل کرد و تا به امروز در حال کار کردن است‪ .‬المپ‬ ‫دست‌ساز خودم هم (شکل ‪ )16‬که در آن از ‪ 13‬عدد ‪ LED‬با‬ ‫کیفیت باال استفاده کردم پس از گذشته بیش از یک دهه به‌خوبی‬ ‫کار می‌کند‪.‬‬ ‫اط‬ ‫العا‬ ‫ت‬ ‫ تک‬ ‫نمایشگرهای ‪ OLED‬در حال رقابت با نمایشگرهای ‪LCD‬‬ ‫هستند و ‪ OLED‬ها تقریباً در همه‌ی عرصه‌ها پیروز شده است‪.‬‬ ‫ازآنجایی‌که در ‪ OLED‬خود پیکسل‌ها تولیدکننده نور هستند‪،‬‬ ‫نور پس‌زمینه و مشکالت مربوط به آن وجود ندارد‪ .‬توان مصرفی‬ ‫نیز در ‪ OLED‬ها پایین‌تر است چون در نمایشگرهای ‪LCD‬‬ ‫بخش زیادی از نور پس‌زمینه ‪ LCD‬در بخش منتشرکننده و فیلترهای‬ ‫پالریزاسیون تلف می‌شود‪ .‬تغییر رنگ متناسب با زاویه دید ازجمله‬ ‫مشکالت اولیه ‪ OLED‬ها درگذشته بوده است‪ ،‬ولی درنهایت میزان‬ ‫کنتراست در نمایشگرهای ‪ OLED‬نیز از کیفیت باالتری برخوردار‬ ‫است و رنگ مشکی واقعاً مشکی است!‬ ‫‪LED‬ر یاه ‪LED‬‬ ‫باوجود همه این مزیت‌ها شاید این سؤال برای شما پیش بیاید‬ ‫که پس چرا ‪ OLED‬ها هنوز کاربرد زیادی پیدا نکرده‌اند؟‬ ‫مشکل در مراحل تولید نسبتاً پیچیده است‪ .‬همه‌ی ‪ LED‬های‬ ‫قرارگرفته بر روی صفحه‌نمایش باید دارای شدت روشنایی یکسانی‬ ‫باشند (نه‌فقط لبه‌ها) و باید در مدت‌زمانی طوالنی نیز وضعیت خود‬ ‫را حفظ کنند‪ .‬نتیجه آن نیز باال بودن قیمت صفحه‌نمایش‌ها حتی در‬ ‫ابعاد کوچک است‪.‬‬ ‫در سال ‪ 2016‬شرکت ‪ ،LG‬پیشرو در بازار تلویزیون‌های ‪،OLDE‬‬ ‫مدل ‪ 55‬اینچی خود را با قیمت مناسب ‪ 1500‬دالر رونمایی کرد‪.‬‬ ‫صفحه‌نمایش‌های ‪ OLED‬برای گوشی‌های هوشمند نیز مدتی در بازار‬ ‫رواج پیداکرده‌اند و اخیراً نیز قیمت آن‌ها در مقایسه با نمایشگرهای‬ ‫‪ LCD‬قابل‌رقابت شده است‪ .‬به‌عنوان‌مثال محصول ‪ Nexus 6p‬با‬ ‫قیمتی مناسب از شرکت ‪( Huawei‬شکل ‪ )14‬دارای یک صفحه‌نمایش‬ ‫‪ 2560x1440‬پیکسل با ‪ 11‬میلیون ‪ OLED‬است‪.‬‬ ‫آینده‬ ‫به‌زودی ‪ OLED‬در همه‌ی گجت‌ها و وسایل دیگر که نیاز به یک‬ ‫صفحه‌نمایش دارند استفاده خواهد شد‪ .‬اغراق نیست اگر بگوییم به‌زودی‬ ‫تکنولوژی‌های موجود برای صفحه‌نمایش‌ها به انتهای عمر خود خواهند‬ ‫رسید‪ OLED .‬ها در عرصه روشنایی نیز به‌زودی رشد چشمگیری‬ ‫خواهند داشت‪ .‬زمانی که ازلحاظ اقتصادی توجیه وجود داشته باشد‪،‬‬ ‫تولیدکنندگان زیادی استفاده از محصوالت ‪ bandwagon‬را شروع‬ ‫خواهند کرد‪ .‬در المپ‌هایی که برای کاربردهای معمولی استفاده می‌شود‬ ‫ممکن است همچنان از المپ‌های معمولی استفاده شود چون احتماالً‪،‬‬ ‫حداقل در آینده نزدیک‪ OLED ،‬ها رقیبی برای این المپ‌ها ازنظر‬ ‫شدت نور نخواهند بود‪ .‬به‌غیراز طاقچه‌ها و کاربردهای ویژه‪ LED ،‬های‬ ‫غیر آلی نیز تقریباً جایگزین همه‌ی انواع دیگر تکنولوژی‌های روشنایی‬ ‫خواهند شد‪.‬‬ ‫شکل ‪ .15‬یک رشته ‪ LED‬خراب‌شده‪ .‬احتماالً تا حدودی اشتباه من‬ ‫نیز بوده است که ‪ LED L30‬را در کنار دیگر ‪ LED‬ها قرار داده‌ام‪ .‬به‬ ‫دلیل پیچ خوردن در رشته این ‪ LED‬به‌خوبی خنک نشده است و هنگام‬ ‫سوختن نیز به‌جای اتصال باز‪ ،‬اتصال کوتاه شده است‪ LED .‬های دیگر‬ ‫نیز ظاهراً بدون دلیل خاصی سوخته‌اند‪.‬‬ ‫شــکل ‪ .16‬اولیــن المــپ ‪LED‬‬ ‫دست‌ســاز خانگــی بــا برنــد‬ ‫«‪ »Scherer-brand‬در ســال‬ ‫‪ 2015‬ســاخته شــد و تــا اآلن‬ ‫حــدود ‪ 10000‬ســاعت کارکــرده‬ ‫اســت و همچنــان ســالم اســت‪.‬‬ ‫‪33‬‬
‫ یسدنهم و ینف هورگورگ‬ ‫آموزش سریع‬ ‫میکروکنترلر‪STM8S‬‬ ‫نویسنده‬ ‫علی‌محمد شفیعی‬ ‫‪alimohammad_shafiei@yahoo.com‬‬ ‫در این مقاله آموزشی سعی شده است از بیان مطالب اضافی خودداری شود و بیشتر بر روی مسائل عملی و راه‌اندازی میکروکنترلر تمرکز شود‪.‬‬ ‫سه کامپایلر برای این میکروکنترلر وجود دارد‪:‬‬ ‫‪.. ST Visual Develop (STVD) – STMicroelectronics‬‬ ‫‪.. IAR-EWSTM8 – STMicroelectronics‬‬ ‫‪.. Raisonance-RIDE - STMicroelectronics‬‬ ‫در این آموزش از کامپایلر ‪ IAR‬و میکروکنترلر ‪ STM8S003K3‬استفاده‌شده است‪ .‬مطالب ارائه‌شده به‌صورت پایه‌ای بوده که شما می‌توانید‬ ‫از هر میکروکنترلر دیگری نیز استفاده کنید‪.‬‬ ‫مطالب ارائه‌شده در این مقاله آموزشی به‬ ‫شرح زیر است‪:‬‬ ‫‪. .‬آشنایی با محیط کامپایلر ‪ IAR‬و ایجاد پروژه جدید‬ ‫‪. .‬توضیحات مختصر درباره موارد الزم برای راه‌اندازی‬ ‫‪. .‬نحوه پروگرام کردن میکروکنترلر‬ ‫‪. .‬راه‌اندازی ‪I/O‬‬ ‫‪. .‬راه‌اندازی ‪ lcd‬کاراکتری‬ ‫‪. .‬راه‌اندازی ‪watch dog timer‬‬ ‫‪. .‬راه‌اندازی وقفه‬ ‫‪. .‬راه‌اندازی تایمر‬ ‫‪. .‬راه‌اندازی ‪ADC‬‬ ‫از مشخصات قابل‌توجه این میکروکنترلرها‬ ‫می‌توان به موارد زیر اشاره کرد‪:‬‬ ‫‪. .‬قیمت ارزان‌تر نسبت به میکروکنترلرهای مشابه‬ ‫‪. .‬ساخته‌شده توسط تکنولوژی ‪ 130‬نانومتری‬ ‫‪up to 20 MIPS at 24 MHz. .‬‬ ‫‪bit ADC 10. .‬‬ ‫‪SWIM debuge module. .‬‬ ‫‪Small size package. .‬‬ ‫‪Voltage supply 2.95 V ~ 5.5 V. .‬‬ ‫میکروکنترلر ‪ STM8S‬محصول ‪ 8‬بیتی شرکت ‪ST‬‬ ‫هست که در شکل روبرو می‌توان مدل‌های مختلف از‬ ‫محصوالت این شرکت را با یکدیگر مقایسه کرد‪.‬‬ ‫‪34‬‬
‫ عیرس شزومآشزومآ‬ ‫میکروکنترلرهای ‪ STM8S‬دارای چهار گروه مختلف هست‪:‬‬ ‫‪.. The STM8S003/005/007 Value line is the entry-level series with a basic feature set.‬‬ ‫‪.. The STM8S103/105 Access line offers more features and a larger variety of packages.‬‬ ‫‪.. The STM8S207/208 Performance line features a full set of peripherals and provides performance for‬‬ ‫‪medium- to higher-end applications.‬‬ ‫‪.. The STM8S Application specific line provides more analog features and dedicated firmware solutions.‬‬ ‫آشنایی با محیط کامپایلر ‪ IAR‬و ایجاد پروژه جدید‪:‬‬ ‫در اولین قدم‪ ،‬می‌بایست یک پروژه جدید تعریف کنید‪ .‬برای این کار‬ ‫شما می‌توانید یک پروژه را خودتان ساخته و یا از یک پروژه ‪template‬‬ ‫استفاده نمایید‪ .‬در صورت تمایل به استفاده از پروژه ‪ tempalte‬و‬ ‫کتابخانه‪ ،‬می‌توانید آن را از آدرس زیر دانلود کنید‪.‬‬ ‫در قسمت بعد‬ ‫زبان برنامه‌نویسی را‬ ‫انتخاب کرده و کلید‬ ‫‪ Ok‬را فشار دهید‪.‬‬ ‫_‪http://uplod.ir/3zyunmtxs9h3/STM8S‬‬ ‫‪StdPeriph_Lib2015JAN16.rar.htm‬‬ ‫یا‬ ‫‪https://www.4shared.com/rar/‬‬ ‫‪vFrHtE24ce/STM8S_StdPeriph_Lib‬‬‫‪2015JAN16.html‬‬ ‫در این قسمت مسیری برای ‪ save‬کردن پروژه انتخاب نموده و گزینه‬ ‫‪ save‬را انتخاب کنید‪.‬‬ ‫بعد از نصب نرم‌افزار و باز کردن آن‪ ،‬با محیط زیر روبرو می‌شوید‪.‬‬ ‫بــرای ساخت پــروژه مطابق‬ ‫شکل از منوی ‪ project‬گزینه‬ ‫‪ Create New Project‬را‬ ‫انتخاب نمایید‪.‬‬ ‫شما باید تمامی فایل‌ها و‬ ‫‪ workspace‬را نیز ‪ save‬کنید‪.‬‬ ‫برای این کار از منوی ‪ file‬گزینه‬ ‫‪ save All‬را انتخاب نمایید‪ .‬و‬ ‫تمامی فایل‌ها و ‪ workspace‬را‬ ‫‪ save‬نمایید‪.‬‬ ‫‪35‬‬
‫ عیرس شزومآشزومآ‬ ‫همچنین از سربرگ ‪ Stack/Heap‬می‌توانید فضای مربوط به حافظه‬ ‫در ادامه برای انتخاب نوع میکروکنترلر و تنظیمات پروژه از منوی‬ ‫پشته مقداردهی نمایید‪.‬‬ ‫‪ project‬گزینه ‪ Options‬را انتخاب کنید‪.‬‬ ‫در قسمت ‪ c/c++ compiler‬و از سربرگ ‪،preprocessor‬‬ ‫از قسمت ‪ General option‬و سربرگ ‪ Target‬در قسمت ‪ Device‬درصورتی‌که از فایل و هدر فایل غیر از هدرفایل‌های کامپایلر استفاده‬ ‫می‌کنید مسیر آن را معرفی نمایید‪ .‬شما اگر از پروژه‌های ‪template‬‬ ‫میکروکنترلر موردنظر خود را انتخاب نمایید‪.‬‬ ‫استفاده کنید در این قسمت می‌توانید مسیرهای معرفی‌شده را مشاهده‬ ‫کنید‪.‬‬ ‫تبلیغات‬ ‫پروگرامر و دیباگر ‪ST-LINK V2‬‬ ‫پروگرامر و دیباگر ‪ ST-LINK V2‬مخصوص تراشه های‬ ‫‪ STM8‬و ‪STM32‬‬ ‫قابلیت کار با کامپایلرهای ‪KEIL,IAR‬‬ ‫‪36‬‬ ‫‪http://link.eca.ir/1366‬‬
‫ عیرس شزومآشزومآ‬ ‫برای تست کامپایلر و اطمینان پیدا کردن از درستی نصب نرم‌افزار‬ ‫ پروژه خود کرده و گزینه کامپایل را‬main.c ‫کدهای زیر را وارد فایل‬ .‫ در قسمت‌های بعد در مورد کدهای واردشده توضیح داده می‌شود‬.‫بزید‬ ‫ و‬Output Converter ‫ باید در قسمت‬hex ‫برای ساخت فایل‬ ‫ را زده و در قسمت‬Generate dditional ‫ تیک‬Output ‫سربرگ‬ .‫ را انتخاب نمایید‬intel extended ‫ گزینه‬Output format #include <iostm8s003f3.h> void delay_ms(unsigned long int n) { unsigned long int x=0; unsigned long fCPU=2000000; // HSI RC =16 MHz ----- HSIDIV=8 ------CPUDIV=1 fCPU=16 / 8 / 1 Mhz x=fCPU/1000; x=x/50; n=n*x; while (n-- > 0); } //main entry point int main( void ) { CLK_ICKR=1; // High-speed internal RC on = 16 Mhz CLK_CKDIVR = 24; //fHSI RC output/8 & fCPU=f ‫ و یا‬Debuge‌ ‫ خود می‌توانید گزینه‬workspace ‫همچنین در‬ .‫ را انتخاب نمایید‬Release MASTER/1 PD_ODR = 0; //Turn off all pins PD_DDR_DDR3 = 1; //PortD, Bit 3 is output (PD3- Data Direction Register) PD_CR1_C13 = 1; //PortD, Control Register 1, Bit 3 (PD3) set to Push-Pull PD_CR2_C23 = 1; //PortD, Control Register 2, Bit 3 while (1) { } } 37 (PD3) Output speed up to 10MHz //Turn on and off the output and then delay PD_ODR_bit.ODR3 = !PD_ODR_bit.ODR3; delay_ms(500); ‫ نوبت به کامپایل کردن‬،‫بعد از ساخت پروژه و نوشتن کد موردنظر‬ ‫ یا‬compile ‫ شما برای این کار می‌توانید از گزینه‬.‫برنامه می‌رسد‬ ‫ و یا‬F7 ‫ در نرم‌افزار خود مطابق شکل زیر و یا از کلیدهای میانبر‬make .‫ استفاده نمایید‬Ctrl+F7
‫ عیرس شزومآشزومآ‬ ‫درصورتی‌که مراحل ساخت پروژه را به‌درستی انجام داده‬ ‫باشید و برنامه نوشته‌شده نیز مشکلی نداشته باشد‪ ،‬بعد از‬ ‫کامپایل برنامه‪ ،‬در قسمت ‪ Messages‬باید مطابق شکل‬ ‫هیچ‌گونه ‪ error‬و ‪ warning‬وجود نداشته و همچنین‬ ‫فایل ‪ hex‬درون پوشه پروژه موجود باشد‪.‬‬ ‫اکنون ساخت پروژه و تنظیمات مربوط به آن به پایان‬ ‫رسیده و در صورت نبود مشکل به مرحله بعد می‌رویم‪.‬‬ ‫توضیحاتی مختصر و موارد الزم برای راه‌اندازی‪:‬‬ ‫در این آموزش کلیه مثال‌ها توسط برد و پروگرامر ‪ ST-LINK‬موجود‬ ‫در شکل راه‌اندازی شده است‪ .‬شما برای راه‌اندازی و کار با میکروکنترلرهای‬ ‫‪ STM8S‬باید به چندین مسئله مهم توجه کنید‪.‬‬ ‫‪. .‬تغذیه میکروکنترلر‬ ‫‪. .‬پایه ریست‬ ‫‪Clock. .‬‬ ‫پایه ‪ NRST‬میکروکنترلر را توسط یک مقاومت بین ‪ 1K-10K‬اهم‬ ‫به تغذیه ‪ VCC‬متصل نمایید‪ .‬این میکروکنترلر دارای یک رگوالتور‬ ‫داخلی بوده که نیاز به یک خازن خارجی دارد‪.‬‬ ‫همچنین بــرای پروگرام‬ ‫کردن میکروکنترلر توسط‬ ‫پروتکل ‪ SWIM‬می‌بایست‬ ‫پایه‌های موردنظر را به‬ ‫پروگرامر‪ ،‬همانند شماتیک‪،‬‬ ‫متصل نمایید‪.‬‬ ‫‪38‬‬ ‫در تمامی مثال‌ها از اسیالتور داخلی ‪ 16Mhz‬استفاده‌شده است؛ که‬ ‫باید در ابتدای برنامه توسط رجیسترها تنظیم شود‪.‬‬
‫ عیرس شزومآشزومآ‬ ‫تبلیغات‬ ‫پروگرام کردن‪:‬‬ ‫شما برای پروگرام کردن می‌توانید از نرم‌افزار ‪ IAR‬و یا از نرم‌افزار‬ ‫ارائه‌شده توسط خود شرکت ‪ ST‬استفاده نمایید‪ .‬توسط لینک زیر‬ ‫می‌توانید این نرم‌افزار را دانلود و نصب کنید‪ .‬در هنگام نصب نرم‌افزار‬ ‫‪ ST Visual Developl‬نرم‌افزار ‪ ST Visual Programmer‬نیز‬ ‫نصب می‌شود‪.‬‬ ‫‪http://link.eca.ir/1260‬‬ ‫در ابتدا سخت‌افزار خود را توسط شماتیک صفحه‬ ‫قبل به پروگرامر متصل کرده و سپس پروگرامر را به‬ ‫کامپیوتر متصل نمایید و منتظر بمانید تا درایور پروگرامر نصب شود‪.‬‬ ‫بعد از اجرای نرم‌افزار ‪ ST Visual Programmer‬با صفحه زیر‬ ‫روبرو می‌شوید‪ .‬از منوی ‪ configure‬گزینه ‪Configure ST Visual‬‬ ‫‪ Programmer‬را انتخاب نمایید‪.‬‬ ‫بردهای کاتالیست‬ ‫بردهای کاتالیست در واقع نسل جدید بردهای راه انداز شرکت‬ ‫‪ ECA‬می‌باشند که این بار با ظاهری متفاوت‌تر از همیشه و امکانات‬ ‫و دید کاربردی به مراتب گسترده‌تر طراحی و تولید شده­‌اند‪ .‬این‬ ‫بردها به دلیل پشتوانه علمی و برنامه‌های نمونه جامعی که در‬ ‫نظر گرفته شده‌است می­‌توانند منبعی مناسب برای افراد عالقمند‬ ‫و کسانی باشند که قصد مهاجرت به نسل جدید میکروکنترلرهای‬ ‫‪ ARM‬را دارند‪ .‬در حال حاضر ‪ 3‬نمونه از بردهای کاتالیست‬ ‫برای میکروکنترلرهای سری ‪ F2 ، F1‬و ‪ F4‬شرکت ‪ ST‬و یک‬ ‫نمونه برای میکروکنترلر‪ LPC1768‬شرکت ‪ NXP‬تولید شده‬ ‫و به تدریج برای سایر خانواده‌ها و دیگر شرکت‌ها نیز محصوالت‬ ‫متنوعی ارائه خواهد شد‪.‬‬ ‫برد کاتالیست‬ ‫‪STM32F103ZET6‬‬ ‫برد کاتالیست‬ ‫‪LPC1768‬‬ ‫در این قسمت با انتخاب سخت‌افزار مورداستفاده‪ ،‬پورت آن‪ ،‬پروتکل‬ ‫پروگرام کردن و میکروکنترلر موردنظر به قسمت بعد بروید‪.‬‬ ‫برد کاتالیست‬ ‫‪STM32F407ZGT6‬‬ ‫‪http://link.eca.ir/1249‬‬ ‫‪39‬‬
‫ عیرس شزومآشزومآ‬ ‫برای پروگرام کردن میکرو در ابتدا باید فایل ‪ hex‬خود را از منوی راه‌اندازی ‪I/O‬‬ ‫‪ file-open‬انتخاب و به نرم‌افزار معرفی نمایید‪.‬‬ ‫برای کار با پایه‌ها به‌صورت ورودی و یا خروجی دیجیتال‪ 5 ،‬رجیستر‬ ‫وجود دارد که هر یک به‌صورت خالصه و کاربردی توضیح داده می‌شود‪.‬‬ ‫برای توضیحات تکمیلی می‌توانید به ‪ datasheet‬مراجعه کنید‪.‬‬ ‫بعد از انتخاب فایل ‪ hex‬با کلیک بر روی گزینه —‪Programm‬‬ ‫‪ current tab‬و یا از طریق گزینه مشخص‌شده در شکل می‌توانید‬ ‫میکروکنترلر خود را پروگرام کنید و در قسمت ‪ message‬می‌توانید‬ ‫وضعیت اتصال و پروگرام شدن میکروکنترلر را مشاهده نمایید‪.‬‬ ‫‪GPIO registers‬‬ ‫)‪.. Port x data direction register (Px_DDR‬‬ ‫)‪.. Port x control register 1 (Px_CR1‬‬ ‫)‪.. Port x control register 2 (Px_CR2‬‬ ‫)‪.. Port x output data register (Px_ODR‬‬ ‫)‪.. Port x pin input register (Px_IDR‬‬ ‫با انتخاب گزینه ‪ option byte‬می‌توانید به قسمت پیکربندی مربوط‬ ‫به سخت‌افزار میکروکنترلر دست پیدا کنید‪.‬‬ ‫مسائلی از قبیل ‪ Watchdog timer, oscillator read protection‬و‬ ‫دیگر موارد را می‌توانید پیکربندی نمایید‪.‬‬ ‫‪40‬‬ ‫)‪1. Port x data direction register (Px_DDR‬‬ ‫توسط این رجیستر می‌توانید ورودی یا خروجی بودن پین موردنظر را‬ ‫مشخص کنید‪ .‬اگر درون این رجیستر مقدار یک قرار گیرد پین متناظر‬ ‫با بیت رجیستر به‌عنوان خروجی و اگر مقدار صفر قرار گیرد به‌صورت‬ ‫ورودی پیکربندی خواهد شد‪.‬‬
‫ عیرس شزومآشزومآ‬ ‫)‪ 2. Port x control register 1 (Px_CR1‬رجیستر مقدار خروجی را تعیین کنید‪.‬‬ ‫اگر پین موردنظر به‌صورت ورودی تعریف‌شده باشد‪ ،‬می‌توان توسط‬ ‫)‪5. Port x pin input register (Px_IDR‬‬ ‫این رجیستر مقاومت ‪ pullup‬آن را فعال یا غیرفعال کرد و اگر به‌صورت‬ ‫اگر پین را به‌صورت وردی تعریف کرده باشید می‌توانید وضعیت‬ ‫خروجی تعریف‌شده باشد‪ ،‬توسط این رجیستر می‌توان یکی از دو حالت وردی را توسط این رجیستر بخوانید‪ .‬همان‌طور که در شکل زیر مشاهده‬ ‫‪ open drain‬یا ‪ Push-pull‬برای خروجی انتخاب کرد که می‌توانید‬ ‫ساختار آن را در ‪ blocK diagram‬قسمت ‪ GPIO‬ببینید‪.‬‬ ‫)‪3. Port x control register 2 (Px_CR2‬‬ ‫عملکرد این رجیستر همانند رجیستر ‪ Px_CR1‬تابع ورودی یا‬ ‫خروجی بودن پین موردنظر هست‪ .‬اگر این پین به‌صورت ورودی باشد‬ ‫می‌توانید توسط این رجیستر‪ ،‬وقفه خارجی آن را فعال یا غیرفعال کنید‬ ‫و اگر به‌صورت خروجی باشد می‌توانید ‪ mode fast‬یا مد ‪ slow‬را‬ ‫انتخاب نمایید‪.‬‬ ‫تبلیغات‬ ‫هدر برد ‪STM8‬‬ ‫می‌نمایید این‬ ‫فقط‬ ‫رجیستر‬ ‫قــابــل‌خــوانــدن‬ ‫هست‪.‬‬ ‫در زیــر می‌توانید خالصه‌ای از وضعیت‬ ‫رجیسترها را مشاهده نمایید‪.‬‬ ‫‪http://link.eca.ir/1104‬‬ ‫)‪4. Port x output data register (Px_ODR‬‬ ‫اگر پین را به‌صورت خروجی تعریف کرده باشید می‌توانید توسط این‬ ‫خانواده ‪ STM8‬از سری میکروکنترلرهای ‪ 8‬بیتی با معماری‬ ‫هاروارد می‌باشد که با هدف ایجاد انعطاف بیشتر جهت استفاده از‬ ‫میکروکنترلرهای ‪ 8‬بیتی که پیش‌تر توسط شرکت‌هایی همچون‬ ‫‪ Atmel‬تولید می‌شد ارائه گشته است‪.‬‬ ‫‪41‬‬
‫چند مثال‬ ‫ عیرس شزومآشزومآ‬ ‫در این مثال و مثال‌های بعد توضیح برای هر رجیستر در جلوی آن‬ :‫ مثال شماره یک‬ ‫ همچنین از یک تابع برای ایجاد تأخیر استفاده‌شده‬.‫ نوشته‌شده است‬mode fast ‫ را درحالت‬PORTD ‫ از‬PIN3 ‫ می‌خواهیم وضعیت‬ ‫ در این تابع را تغییر‬cpu ‫ مقدار فرکانس‬،‫ در صورت تغییر فرکانس‬.‫ از اسیالتور است‬.‫به‌صورت خروجی قرار داده و هر یک ثانیه یک‌بار چشمک بزند‬ .‫ همچنین می‌توانید کتابخانه‌ها را از آدرس زیر دانلود نمایید‬.‫دهید‬ .‫ به‌عنوان منبع کالک میکروکنترلر استفاده نمایید‬16Mhz ‫داخلی‬ http://s6.picofile.com/file/8267114792/lib. rar.html ‫یا‬ http://www.4shared.com/rar/m3qojt0ece/ lib.html :‫مثال شماره دو‬ ‫ را‬PORTD ‫ از‬PIN2 ‫ را خروجی و‬PORTD ‫ از‬PIN3 ‫وضعیت‬ ‫ را برای حالت‬pull up ‫ برای خروجی و‬mode fast ‫ورودی قرار داده از‬ ‫ به‌عنوان منبع کالک‬16Mhz ‫ از اسیالتور داخلی‬.‫ورودی استفاده نمایید‬ ‫ با فشردن کلید وضعیت پین خروجی تغییر‬.‫ میکروکنترلر استفاده کنید‬#include <iostm8s003f3.h> .‫ حالت دهد‬void delay_ms(unsigned long int n) { unsigned long int x=0; unsigned long fCPU=2000000; // HSI RC =16 MHz ----- HSIDIV=8 ------CPUDIV=1 x=fCPU/1000; x=x/50; n=n*x; while (n-- > 0); fCPU=16 / 8 / 1 Mhz } //main entry point int main( void ) { // High-speed internal RC on = 16 Mhz CLK_ICKR=1; CLK_CKDIVR = 24; //fHSI RC output/8 & fCPU=fMASTER/1 PD_ODR = 0; //Turn off all pins PD_DDR_DDR3 = 1; //PortD, Bit 3 is output #include <iostm8s003f3.h> #include "delay.h" #define led PD_ODR_bit.ODR3 (PD3 - Data Direction Register) #define key PD_IDR_bit.IDR2 PD_CR1_C13 = 1; //PortD, Control Register 1, //main entry point Bit 3 (PD3) set to Push-Pull int main( void ) PD_CR2_C23 = 1; //PortD, Control Register 2, { Bit 3 (PD3) Output speed up to 10 MHz // High-speed internal RC on = 16 Mhz CLK_ICKR=1; while (1) CLK_CKDIVR=24; //fHSI RC output/8 & fCPU=fMASTER/1 { PD_DDR_DDR3 = 1; //PortD, Bit 3 is output (PD3 - Data Direction Register) PD_CR1_C13 = 1; //PortD, Control Register 1, Bit 3 (PD3) set to Push-Pull PD_CR2_C23 = 1; //PortD, Control Register 2, Bit 3 (PD3) Output speed up to 10 MHz } } //Turn on and off the output and then delay PD_ODR_bit.ODR3 = !PD_ODR_bit.ODR3; delay_ms(1000); 42
‫چند مثال‬ ‫ عیرس شزومآشزومآ‬ lcd_enable(); LCDPort = 16*(cmd & 0x0F); lcd_enable(); Delay(2); } :‫مثال شماره سه‬ ‫ معرفی‬lcd ‫پایه‌های میکروکنترلر را مطابق شکل زیر برای راه‌اندازی‬ .‫ متنی دلخواه روی آن نمایش دهید‬lcd ‫نمایید و برای تست‬ #include <iostm8s003k3.h> #include <intrinsics.h> #include "lcd.h" #include "delay.h" void InitMCU(void) { CLK_CKDIVR = 0x00; PC_DDR = 0xF0; PC_CR1 = 0xF0; PC_ODR = 0x00; PD_DDR_DDR4 = 1; PD_CR1_C14 = 1; PD_ODR_ODR4 = 0; PD_DDR_DDR5 = 1; PD_CR1_C15 = 1; PD_ODR_ODR5 = 0; } void main(void) { InitMCU(); lcd_init(); lcd_string(1,1,"be name KHODA "); lcd_string(2,3,"TEST "); for(;;); } 43 PD_DDR_DDR2 = 0; //PortD, Bit 2 is INPUT (PD2 - Data Direction Register) PD_CR1_C12 = 0; //PortD, Control Register 1, Bit 2 (PD2) Input with pull-up PD_CR2_C22 = 0; //PortD, Control Register 2, Bit 2 (PD2) External interrupt disabled while (1) { //Turn on and off the output and then key pressure if(key==0){ led = !led; while(key==0); delay_ms(100); } } } lcd ‫حال که با پایه‌های میکروکنترلر آشنا شدید به سراغ راه‌اندازی‬ ‫ را در برنامه‬lcd ‫ شما در ابتدا باید کتابخانه‬.‫ می‌رویم‬2×16 ‫کاراکتری‬ ‫ با باز کردن‬.‫ را به میکروکنترلر معرفی کنید‬lcd ‫معرفی و پایه‌های‬ ‫ این کتابخانه برای‬.‫ را معرفی نمایید‬lcd ‫ پایه‌های‬،‫ در ابتدا‬lcd.h ‫فایل‬ ‫ حتماً به‬.‫ استفاده می‌کند‬lcd ‫ بیتی برای راه‌اندازی‬4 ‫راه‌اندازی از مدل‬ ‫ را به پروژه‬lcd ‫این موضوع توجه داشته باشید که فایل‌های مربوط به‬ .‫خود اضافه نمایید‬ #define LCD_Enable PD_ODR_ODR4 #define LCD_RS PD_ODR_ODR5 #define LCDPort PC_ODR ،STM8S003F3 ‫به خاطر کامل نبودن پورت‌های میکروکنترلر‬ ‫ همچنین پورتی‬.‫مجبور هستیم از دو پورت برای راه‌اندازی استفاده نماییم‬ ‫ استفاده می‌شود باید به بیت‌های پر ارزش پورت‬data ‫که برای پایه‌های‬ ‫ به‌صورت پیش‌فرض‬lcd.c ‫ در فایل‬lcd_command ‫ تابع‬.‫متصل شود‬ ‫ هر‬7-4 ‫ (پایه‌های‬.‫ استفاده می‌کند‬data ‫از پایه‌های پر ارزش بیت برای‬ )‫پورت‬ void lcd_command(unsigned char cmd) { LCD_RS = 0; LCDPort= 16*((cmd >> 4) & 0x0F); lcd_enable(); LCDPort = 16*(cmd & 0x0F); lcd_enable(); Delay(2); } ‫ پورت استفاده نمایید از‬3-0 ‫درصورتی‌که مایل هستید از پین‌های‬ .‫ استفاده نمایید‬lcd.c ‫ در فایل‬lcd_command ‫کدهای زیر برای تابع‬ void lcd_command(unsigned char cmd) { LCD_RS = 0; LCDPort= 16*((cmd >> 4) & 0x0F);
‫ عیرس شزومآشزومآ‬ ‫چند مثال‬ ‫‪Watchdog timer‬‬ ‫‪ WDT‬به تایمری خاص اشاره دارد که وظیفه آن نگهداری و‬ ‫نظارت بر کار میکروکنترلر است‪ .‬این تایمر مجهز به اسیالتور ‪ RC‬داخلی‬ ‫برای خود بوده که پس از شمارش و سرریز شدن‪ ،‬میکروکنترلر را به‌صورت‬ ‫داخلی ریست می‌کند‪ .‬این تایمر در مواردی کاربرد دارد که امکان قفل‌کردن‬ ‫تراشه وجود داشته و به این وسیله پس از قفل‌کردن میکروکنترلر‪ ،‬دیگر‬ ‫امکان ریست کردن ‪ WDT‬وجود ندارد و به همین دلیل ‪ WDT‬شمارش‬ ‫خود را انجام داده‪ ،‬سرریز شده و درنتیجه میکروکنترلر را ریست می‌کند‬ ‫تا از حالت قفل خارج شود‪ .‬برنامه میکروکنترلر باید به‌گونه‌ای باشد که در‬ ‫حین اجرا‪ ،‬تایمر سگ نگهبان (‪ )Watch Dog Timer‬به‌صورت مداوم‬ ‫قبل از سرریز شدن‪ ،‬صفر شود‪.‬‬ ‫در زیر می‌توانید رجیستر مربوط به ‪ watchdog timer‬را مشاهده‬ ‫نماید‪ .‬با یک شدن بیت شماره ‪ 7‬این رجیستر تایمر فعال‌شده و توسط‬ ‫مابقی بیت‌ها مقدار تایمر مشخص می‌شود‪ .‬در صورت سرریز این تایمر‬ ‫میکروکنترلر ‪ reset‬می‌شود‪ .‬به همین منظور شما بعد از فعال کردن این‬ ‫تایمر باید در برنامه خود مقدار این تایمر را صفر کنید‪.‬‬ ‫مثال شماره چهار‪:‬‬ ‫>‪#include <iostm8s003f3.h‬‬ ‫”‪#include “delay.h‬‬ ‫‪#define led PD_ODR_bit.ODR3‬‬ ‫‪#define key PD_IDR_bit.IDR2‬‬ ‫;‪unsigned char i‬‬ ‫‪//main entry point‬‬ ‫) ‪int main( void‬‬ ‫{‬ ‫‪CLK_ICKR=1; // High-speed internal RC on = 16 Mhz‬‬ ‫ & ‪CLK_CKDIVR = 24; //fHSI RC output/8‬‬ ‫‪ fCPU=fMASTER/1‬‬ ‫ ‪PD_DDR_DDR3 = 1; //PortD, Bit 3 is output‬‬ ‫ ‬ ‫)‪(PD3 - Data Direction Register‬‬ ‫ ‪PD_CR1_C13 = 1; //PortD, Control Register 1,‬‬ ‫ ‬ ‫‪Bit 3 (PD3) set to Push-Pull‬‬ ‫ ‪PD_CR2_C23 = 1; //PortD, Control Register 2,‬‬ ‫ ‬ ‫‪Bit 3 (PD3) Output speed up to 10 MHz‬‬ ‫{)‪for(i=0;i<10;i++‬‬ ‫;‪PD_ODR_bit.ODR3 = !PD_ODR_bit.ODR3‬‬ ‫;)‪delay_ms(500‬‬ ‫}‬ ‫‪WWDG_CR=255; // Watchdog enabled‬‬ ‫)‪while (1‬‬ ‫{‬ ‫‪WWDG_CR=255; //reset value of Watchdog‬‬ ‫‪//Turn on and off the output and then delay‬‬ ‫;‪PD_ODR_bit.ODR3 = !PD_ODR_bit.ODR3‬‬ ‫;)‪delay_ms(1000‬‬ ‫}‬ ‫}‬ ‫}‬ ‫‪ wachdog timer‬میکروکنترلر را فعال و در برنامه اصلی مقدار آن راه‌اندازی وقفه‬ ‫را صفر کرده تا مانع از ‪ reset‬شدن میکروکنترلر شود‪ .‬در برنامه اصلی‬ ‫در زبان رایانه‪ ،‬وقفه یا ‪ Interrupt‬یک سیگنال به ریزپردازنده است که‬ ‫‪ led‬مربوط به شکل زیر‪ ،‬به‌صورت چشمک‌زن باشد‪.‬‬ ‫به توجه و پاسخ سریع ‪ CPU‬نیاز دارد‪ .‬هنگامی‌که یک وقفه رخ می‌دهد‪،‬‬ ‫پردازنده عملیات جاری خود را متوقف می‌کند تا به درخواست وقفه‬ ‫رسیدگی کند‪ .‬در هر میکروکنترلر تعدادی وقفه وجود دارد که کاربر‬ ‫بسته به نوع نیاز خود از آن‌ها می‌تواند استفاده کند‪ .‬هر وقفه دارای آدرس‬ ‫منحصربه‌فردی است که با اتفاق افتادن آن ‪ cpu‬برنامه اصلی خود را رها‬ ‫کرده و به آن آدرس می‌رود و برنامه وقفه موردنظر را اجرا کرده و سپس‬ ‫به برنامه اصلی برمی‌گردد‪.‬‬ ‫با باز کردن فایل ‪ iostm8s003F3.h‬می‌توانید در قسمت آخر این‬ ‫فایل‪ ،‬در قسمت ‪ Interrupt vector numbers‬آدرس مربوط به هر‬ ‫وقفه را مشاهده و از آن استفاده نمایید‪ .‬همچنین برای فعال کردن وقفه‬ ‫سراسری می‌توانید از فایل ‪ intrinsics.h‬و دستورات آن استفاده نمایید‪.‬‬ ‫‪44‬‬
‫ عیرس شزومآشزومآ‬ ‫‪ External interrupt‬مربوط به ‪ PIN2‬از ‪ PORTD‬به‌صورت فعال‬ ‫با لبه پایین‌رونده فعال کرده و با هر بار فشردن کلید متصل به آن در‬ ‫برنامه‪ ،‬وقفه ‪ LED‬متصل به میکروکنترلر را تغییر وضعیت دهید‪.‬‬ ‫چند مثال‬ ‫مثال شماره پنج‪:‬‬ ‫;‪PD_DDR = 0xff‬‬ ‫‪// All pins are outputs.‬‬ ‫;‪PD_CR1 = 0xff‬‬ ‫‪// Push-Pull outputs.‬‬ ‫‪// Output speeds up to 10 MHz.‬‬ ‫;‪PD_CR2 = 0xff‬‬ ‫‪PD_DDR_DDR2 = 0; // PD4 is input.‬‬ ‫;‪PD_CR1_C12 = 1‬‬ ‫‪// PD4 is floating input.‬‬ ‫‪// Set up the interrupt.‬‬ ‫‪// Interrupt on falling edge.‬‬ ‫;‪EXTI_CR1_PDIS = 2‬‬ ‫;‪EXTI_CR2_TLIS = 0‬‬ ‫‪// Falling edge only.‬‬ ‫;)(‪__enable_interrupt‬‬ ‫)‪while (1‬‬ ‫{‬ ‫;)(‪__wait_for_interrupt‬‬ ‫}‬ ‫تایمر‬ ‫}‬ ‫میکروکنترلر ‪ STM8S‬دارای تایمرهای ‪ 8‬و ‪ 16‬بیتی هست که‬ ‫راه‌اندازی آن‌ها تفاوت زیادی با یکدیگر ندارند‪ ،‬بعضی از این تایمرها‪،‬‬ ‫دارای نقش‌های دیگری به‌جز تایمر می‌باشند‪ .‬در این آموزش سعی شده‬ ‫>‪ #include <iostm8s003F3.h‬است از مسائل اولیه خودداری شده و با ارائه مثال از تایمر استفاده شود‪.‬‬ ‫>‪ #include <intrinsics.h‬برای درک بهتر از عملکرد تایمرها می‌توانید به ‪ datasheet‬مراجعه‬ ‫”‪ #include “delay.h‬نمایید‪.‬‬ ‫‪#pragma vector = 8‬‬ ‫)‪__interrupt void EXTI_PORTD_2(void‬‬ ‫{‬ ‫ ;‪PD_ODR_ODR3 = !PD_ODR_ODR3‬‬ ‫‪ // Toggle Port D, pin 3.‬‬ ‫}‬ ‫)(‪void main‬‬ ‫{‬ ‫‪// High-speed internal RC on = 16 Mhz‬‬ ‫;‪CLK_ICKR=1‬‬ ‫ & ‪CLK_CKDIVR = 24; //fHSI RC output/8‬‬ ‫‪fCPU=fMASTER/1‬‬ ‫ ‬ ‫;)(‪__disable_interrupt‬‬ ‫;‪PD_ODR = 0‬‬ ‫‪// All pins are turned off.‬‬ ‫تبلیغات‬ ‫برد آموزشی حرفه ای ‪STM32‬‬ ‫برد آموزشی صنعتی ‪ ARM‬با میکروکنترلر‬ ‫‪STM32F103ZET6‬‬ ‫امکانات فراوان این برد باعث می‌شود تا‬ ‫به راحتی و بدون نیاز به ابزار جانبی دیگری‬ ‫پروژه‌های مختلف و گوناگونی را انجام دهید‪.‬‬ ‫‪http://link.eca.ir/1263‬‬ ‫‪45‬‬
TIM4_PSCR=7; TIM4_CR1=1; // prescaler=128 // timer4 enable __enable_interrupt(); while (1) { __wait_for_interrupt(); } } :‫مثال شماره شش‬ ‫چند مثال‬ ‫ عیرس شزومآشزومآ‬ ‫ یک‌زمان یک‌ثانیه‌ای‬،‫ بیتی شماره چهار و وقفه تایم‬8 ‫به‌وسیله تایمر‬ .‫ متصل به میکروکنترلر بسازید‬led ‫ایجاد کرده و یک چشمک‌زن برای‬ ‫آدرس وقفه تایمر شماره چهار را می‌توانید از کتابخانه توضیح داده‌شده‬ ‫ توضیحات مربوط به هر رجیستر در جلوی آن داده‌شده‬.‫استخراج نمایید‬ .‫است‬ Analog/digital converter (ADC( ‫راه‌اندازی‬ ‫ بیتی بهره‬10 ‫ از یک مبدل آنالوگ به دیجیتال‬STM8S ‫میکروکنترلر‬ .‫ در زیر می‌توانید مشخصات کلی این ماژول را مشاهده نمایید‬.‫می‌برد‬ ‫همان‌طور که در شکل زیر مشاهده می‌نمایید پایه‌ای آنالوگ با اسم‬ .‫ مشخص‌شده‌اند‬AINx ‫ این میکروکنترلر دارای چندین رجیستر هست که توضیح‬ADC ‫تک‌تک آن‌ها از حوصله این بحث خارج بوده و می‌توانید توضیحات آن‬ ‫ در زیر با ارائه یک مثال و با‬.‫ میکروکنترلر بخوانید‬datasheet ‫را از‬ ‫ مثالی نوشته‌شده است که می‌توانید از آن‬،‫استفاده از رجیسترهای مهم‬ .‫بهره ببرید‬ #include <iostm8s003f3.h> #include <intrinsics.h> #include “delay.h” unsigned int count=0; // toggle pin every 1 seconde #pragma vector = 0x19 __interrupt void timer4_interrupt(void){ count++; if(count>60){ PD_ODR_bit.ODR3=!PD_ODR_bit.ODR3; count=0; } TIM4_SR_bit.UIF=0; // timer4 interrupt flage=0 } //main entry point int main( void ) { CLK_ICKR=1; // High-speed internal RC on = 16 Mhz CLK_CKDIVR = 24; //fHSI RC output/8 & fCPU=fMASTER/1 PD_ODR = 0; //Turn off all pins PD_DDR_DDR3 = 1; //PortD, Bit 3 is output (PD3 - Data Direction Register) PD_CR1_C13 = 1; //PortD, Control Register 1, Bit 3 (PD3) set to Push-Pull PD_CR2_C23 = 1; //PortD, Control Register 2, Bit 3 (PD3) Output speed up to 10 MHz TIM4_IER_bit.UIE=1; // timer4 interrupt enable TIM4_SR=0; // timer4 interrupt flage=0 TIM4_CNTR=0; // timer4_value=0 46
‫ عیرس شزومآشزومآ‬ ‫مطابق شکل زیر با اتصال یک پتانسیومتر به ورودی ‪ AIN6‬مقدار‬ ‫ولتاژ ورودی را به یک عدد دیجیتال تبدیل کرده و بر روی ‪ LCD‬نمایش‬ ‫دهید‪.‬‬ ‫چند مثال‬ ‫تمرین شماره هفت‪:‬‬ ‫‪ADC_CSR=0x06; // ADC on AIN6‬‬ ‫‪ADC_CR2=0X38; // right Right alignment‬‬ ‫‪ADC_CR1=0x01; // Turn ADC on & triger‬‬ ‫;)‪//while(ADC_CSR_EOC==0‬‬ ‫;‪l=ADC_DRL‬‬ ‫;‪h=ADC_DRH‬‬ ‫;‪value=h*256‬‬ ‫;‪value=value+l‬‬ ‫;)“ =‪lcd_string(1,1,”ADC6‬‬ ‫;)‪sprintf(a,”%d “,value‬‬ ‫;)‪lcd_string(1,6,a‬‬ ‫;)‪delay_ms(100‬‬ ‫}‬ ‫}‬ ‫در این آموزش سعی شد‪ ،‬مسائل مهم و کاربردی برای راه‌اندازی‬ ‫میکروکنترلر ‪ STM8S‬ارائه شود و از بیان جزئیات خودداری شده است‪.‬‬ ‫همچنین‪ ،‬شما می‌توانید از کتابخانه‌های ارائه‌شده توسط کامپایلر نیز‬ ‫استفاده نمایید‪ ،‬اما در این آموزش برای درک بهتر از این میکروکنترلر‬ ‫>‪ #include <iostm8s003F3.h‬از رجیسترها برای آموزش استفاده شد‪ .‬امید است با خواندن این‬ ‫>‪ #include <stdio.h‬مطالب توانسته باشم خدمتی بسیار کوچک در زمینه علم الکترونیک به‬ ‫”‪ #include “delay.h‬عالقه‌مندان این علم زیبا کرده باشم‪.‬‬ ‫”‪#include “lcd.h‬‬ ‫;]‪char a[4‬‬ ‫;‪signed int l,h,value‬‬ ‫)‪void InitMCU(void‬‬ ‫{‬ ‫;‪CLK_CKDIVR = 1‬‬ ‫;‪PC_DDR = 0xFF‬‬ ‫;‪PC_CR1 = 0xFF‬‬ ‫;‪PC_ODR = 0x00‬‬ ‫;‪PD_DDR_DDR4 = 1‬‬ ‫;‪PD_CR1_C14 = 1‬‬ ‫;‪PD_ODR_ODR4 = 0‬‬ ‫;‪PD_DDR_DDR5 = 1‬‬ ‫;‪PD_CR1_C15 = 1‬‬ ‫;‪PD_ODR_ODR5 = 0‬‬ ‫}‬ ‫‪//PortB, Bit 0 is input‬‬ ‫)‪void main(void‬‬ ‫{‬ ‫;‪PB_DDR_DDR0 = 0‬‬ ‫;)(‪InitMCU‬‬ ‫;)(‪lcd_init‬‬ ‫)‪while(1‬‬ ‫{‬ ‫تبلیغات‬ ‫مینی کامپیوتر ‪W8 Wintel PRO‬‬ ‫‪http://link.eca.ir/1328‬‬ ‫این مینی کامپیوتر با معماری ‪ x86‬می‌باشد بدین معنی که تمامی‬ ‫نرم افزار‌هایی که روی ویندوز‌های واقعی قابل نصب هستند‪ ،‬روی آن‬ ‫نیز نصب می‌شود‪ .‬همچنین با پشتیبانی از زبان فارسی‪ ،‬دیگر نیازی به‬ ‫نصب فارسی ساز ها و‪ ...‬نمی‌باشد‬ ‫‪ CPU‬این مینی کیس ‪ Intel Z8300‬چهار هسته‌ای می‌باشد با‬ ‫‪ 2‬گیگ رم و ‪ 32‬گیگ حافظه ‪ EMMC‬که سرعت بسیار باالیی به‬ ‫آن بخشیده است‪.‬‬ ‫مشخصات ‪:‬‬ ‫ یک پورت ‪ - USB2.0‬یک عدد پورت ‪USB3.0‬‬‫ یک عدد ‪ - Micro usb‬اتصال ‪Micro SD‬‬‫ وای فای باند ‪ 5 , 2.4‬گیگاهرتز‬‫ ‬ ‫ بلوتوث ‪4.0‬‬‫ ‪ 32 -‬گیگ حافظه ‪Emmc‬‬ ‫ ‬ ‫‪2‬گیگ رم‬ ‫ ‬ ‫‬‫ ‪ -‬پورت ‪LAN‬‬ ‫‪ -‬خروجی ‪ HDMI‬‬ ‫‪47‬‬
‫ یسدنهم و ینف هورگورگ‬ ‫شروع به کار با ‪MOJO Plus‬‬ ‫مقدمه‬ ‫اگر شما هرگز چیزی راجع به ‪ FPGA‬نشنیده‌اید یا تجربه‌ای در استفاده از آن ندارید‪ ،‬مشکل شما در حال حل شدن است! ‪ FPGA‬مخفف عبارت‬ ‫‪ Field Programmable Gate Arrays‬می‌باشد که در نگاه اول کمی گنگ به نظر می‌رسد‪ .‬درهرصورت نگران نباشید‪ ،‬در حقیقت استفاده از‬ ‫‪ FPGA‬آن‌طور که نشان می‌دهند پیچیده نیست‪ .‬به بیان ساده ‪ FPGA‬سخت‌افزاری است که شما می‌توانید به‌وسیله‌ی آن اقدام به طراحی مدارات‬ ‫دیجیتال کنید‪ .‬درواقع ‪ FPGA‬ها می‌توانند مشابه میکروکنترلرها یا کامپیوترها (میکروپروسسورها) به‌آسانی از یک فایل پیکره‌بندی‪ ،‬بازپیکربندی‬ ‫شوند (پروگرام شوند)‪ ،‬با این تفاوت که عمل پیکر‌بندی در میکروکنترلرها به‌واسطه‌ی کد نویسی و در ‪ FPGA‬ها به‌واسطه‌ی طراحی دیجیتال صورت‬ ‫می‌گیرد‪ .‬البته ناگفته نماند که برخی شرکت‌های فعال در این زمینه امکان طراحی دیجیتال ‪ FPGA‬را بازهم در قالب کد نویسی محقق ساخته‌اند‪.‬‬ ‫قابلیت طراحی مدارات دیجیتال سفارشی بدون ایجاد تغییرات فیزیکی واقعاً مفید خواهد بود‪ .‬در ابتدا پروژه‌هایی را در حد اتصال یک ‪ LED‬یا شستی‬ ‫به ‪ FPGA‬خواهید ساخت و نهایتاً اقدام به طراحی‌های گسترده‌تر می‌کنید‪.‬‬ ‫ابتدا پروژه‌هایی را در حد اتصال یک ‪ LED‬یا شستی به ‪ FPGA‬خواهید‬ ‫ساخت و نهایتاً اقدام به طراحی‌های گسترده‌تر می‌کنید‪.‬‬ ‫‪ FPGA‬در ابتدا توسط شرکت‌های بزرگ سازنده‌ی نیمه‌هادی همچون‬ ‫اینتل به‌عنوان یک نمونه‌ی اولیه‌ برای طراحی ساختار داخلی تراشه‌های‬ ‫خود قبل از تولید میلیون‌ها نسخه از آن‌ها استفاده می‌شد‪ .‬باالخره این‬ ‫فناوری به حدی ارزان شد که بتوان از آن در کاربردهای اختصاصی توسط‬ ‫عامه عالقه‌مندان نیز بهره برد‪ .‬خبر بهتر اینکه بردهای ‪ ،Mojo‬کار با‬ ‫‪ FPGA‬را چندین برابر راحت‌تر کرده‌اند و به‌واسطه‌ی این بردها روند‬ ‫یادگیری و توسعه برای شما تسریع خواهد یافت‪.‬‬ ‫‪48‬‬
‫ اب راک هب عورشک هب عورش‬ ‫مقایسه‌ی اجمالی ‪ FPGA‬با ‪Microcontroller‬‬ ‫تفاوت اصلی این دو در نوع پیکربندی است‪ .‬روش کار با یک‬ ‫میکروکنترلر بدین‌صورت است که شما مجموعه دستورات محدودی که‬ ‫در قالب یک زبان برنامه‌نویسی استاندارد نوشته‌اید را روی آن بارگذاری‬ ‫می‌کنید‪ ،‬طی عملیات بارگذاری دستورالعمل‌های تعریف‌شده در قسمتی‬ ‫معین از میکروکنترلر ذخیره می‌شوند و میکرو وظیفه دارد که بر اساس‬ ‫آن‌ها عمل کند‪ .‬بدنه‌ی برنامه‌ی نوشته‌شده‪ ،‬یک حلقه‌ی نامتناهی است و‬ ‫دستورات در آن به‌صورت پشت‌سرهم‪ ،‬خط به خط و با یک نرخ سرعت بر‬ ‫مبنای کالک سیستم توسط میکرو اجرا می‌شوند و امکان اجرای موازی‬ ‫دستورات وجود ندارد‪ .‬البته اخیراً برخی از میکروکنترلرهای پیشرفته با‬ ‫مجهز بودن به سیستم‌عامل بالدرنگ تا حدودی موفق به اجرای موازی‬ ‫چندین حلقه‌ی نامتناهی به‌طور هم‌زمان می‌شوند؛ اما بازهم این به معنای‬ ‫ویژگی ذاتی آن‌ها شناخته نمی‌شود‪ ،‬بلکه فقط می‌توان از آن به‌عنوان یک‬ ‫قابلیت افزوده‌شده یاد کرد‪ .‬در ‪ FPGA‬هر گیت یا مجموعه‌ای از گیت‌ها‬ ‫وظیفه‌ی محوله‌ی خود را به‌صورت مستقل انجام می‌دهند‪ ،‬در این صورت‬ ‫هیچ خبری از اجرای پشت سر هم دستورات یا پالس کالک موردنیاز برای‬ ‫اجرای هر قطعه کد نیست‪ .‬درواقع علت سرعت باالی ‪ FPGA‬نسبت‬ ‫به ‪ MCU‬همان عملکرد موازی آن است‪ .‬همچنین در میکروکنترلر شما‬ ‫اقدام به پیکره‌بندی یک سری واحدهای داخلی از پیش تعریف‌شده و‬ ‫بسته که توسط شرکت سازنده‌ی میکروکنترلر طراحی‌شده است می‌کنید‪،‬‬ ‫حال‌آنکه در ‪ FPGA‬شما مستقیماً پیکره‌بندی خود را روی سخت‌افزار‬ ‫انجام می‌دهید‪ .‬به‌عبارت‌دیگر عمل پیکره‌بندی با تعیین نحوه‌ی اتصال‬ ‫گیت‌های منطقی موجود در داخل تراشه به یکدیگر تحقق می‌یابد‪ .‬فرض‬ ‫کنید اندازه‌ی فیزیکی گیت‌های منطقی داخل تراشه‌ی ‪ FPGA‬در یک‬ ‫مقیاس سانتی‌متری در دسترس شما باشد در این صورت پیکره‌بندی‬ ‫‪ FPGA‬چیزی نیست جز اتصال دادن ورودی‪-‬خروجی گیت‌ها برای‬ ‫طراحی یک مدار منطقی‪ ،‬در واقعیت نیز شما همین عمل را به‌راحتی و‬ ‫به‌واسطه‌ی نرم‌افزارهای رابط مناسب انجام می‌دهید‪.‬‬ ‫اما ‪ MCU‬ها نیز برتری‌هایی نسبی دارند که ازجمله‌ی آن‌ها می‌توان‬ ‫به آماده بودن واحدهای پیچیده از قبیل تایمرها‪ ،‬پروتکل‌های انتقال‬ ‫داده همچون ‪ USB, I2C, SPI, UART‬و ‪ ...‬اشاره کرد که موجب‬ ‫سهولت در استفاده از آن‌ها گشته است‪ .‬بااین‌وجود برخی شرکت‌های‬ ‫فعال درزمینه‌ی ‪ FPGA‬اقدام به طراحی و انتشار بردهای توسعه‌ی‬ ‫‪ FPGA‬به همراه برخی کتابخانه‌های نرم‌افزاری آماده‌ی مربوط به‬ ‫واحدهای جانبی کرده‌اند که تا حد زیادی این نارسایی را نیز حل کرده‬ ‫است‪ .‬مضاف بر این برخی واحدهای پیچیده‌تر نظیر ‪ HDMI‬که نیاز به‬ ‫قدرت پردازش باال دارند ‪ -‬که امکان راه‌اندازی آن‌ها فقط در ‪ MCU‬های‬ ‫پیشرفته ممکن است ‪ -‬به‌راحتی قابل پشتیبانی توسط این قبیل بردها‬ ‫می‌باشد‪ Mojo .‬را می‌توان یک نمونه‌ی بارز و متداول از بردهای توسعه‬ ‫مبتنی بر ‪ FPGA‬دانست که پشتیبانی علمی مناسبی دارند‪.‬‬ ‫‪ Lucid‬روشی پویاتر برای طراحی دیجیتال‬ ‫‪ Lucid‬یک نوع زبان توصیف سخت‌افزار (‪ )HDL‬است که برای راحتی‬ ‫کار با ‪ FPGA‬ساخته شده است‪ .‬این زبان بر مبنای زبان برنامه‌نویسی‬ ‫‪ - Verilog‬که نسبت به زبان ‪ VHDL‬ساده‌تر است ‪ -‬پایه‌ریزی شده‬ ‫است اما در آن از برخی ‪ syntax‬های زبان‌های ‪ ++C‬و ‪ Java‬نیز‬ ‫استفاده‌شده است‪ .‬هدف ‪ Lucid‬ساده‌سازی هرچه بیشتر کار با ‪FPGA‬‬ ‫از طریق کاهش کدهای نامفهوم‪ ،‬ارائه‌ی الگوهای دستوری قابل‌فهم‌تر‬ ‫و اجتناب از درگیری بیشتر با زبان ‌برنامه‌نویسی بجای تمرکز روی‬ ‫طراحی ‪ FPGA‬است‪ .‬هر دو زبان برنامه‌نویسی ‪ Lucid‬و ‪Verilog‬‬ ‫توسط ‪ Mojo IDE‬پشتیبانی می‌شوند و در طی برنامه‌نویسی ابزارهای‬ ‫مفیدی همچون قابلیت ‪ real time error checking‬شما را در امر‬ ‫برنامه‌نویسی یاری خواهند کرد‪.‬‬ ‫‪49‬‬
‫ اب راک هب عورشک هب عورش‬ ‫برد ‪Mojo‬‬ ‫‪ Mojo‬یک برد توسعه مبتنی بر ‪ FPGA‬می‌باشد که برای انجام‬ ‫کارهای خارق‌العاده طراحی‌شده است‪ .‬فقط شروع کنید‪ ،‬بدون اینکه‬ ‫چیزی در مورد ‪ FPGA‬بدانید‪ .‬نگران نباشید! ‪ Mojo‬یک منبع غنی‬ ‫برای یادگیری شما دارد‪.‬‬ ‫‪ Mojo‬را می‌توان یک هنر یا تمرینی برای اجرای وردهای جادویی‬ ‫دانست‪ .‬با برد ‪ Mojo‬شما قطعاً خواهید توانست تا به هر معجزه‌ای تحقق‬ ‫دهید‪ Mojo .‬یک برد توسعه بر مبنای ‪ FPGA‬می‌باشد‪ ،‬شما می‌توانید‬ ‫با بهره‌گیری از این برد لذت یک طراحی دیجیتال با خالقیت خودتان را‬ ‫داشته باشید‪ .‬چیزی که این برد را از سایر بردهای مشابه متمایز می‌کند‪،‬‬ ‫سهولت استفاده از آن و منابع آموزشی جامع آن می‌باشد‪ .‬برتری ‪Mojo‬‬ ‫در سوق دادن شما به پیشرفت از طریق یادگیری ‪ FPGA‬به ساده‌ترین‬ ‫وجه ممکن می‌باشد‪.‬‬ ‫برد ‪ Mojo‬از یک تراشه‌ی مرکزی بهینه یافته به نام ‪Spartan‬‬ ‫‪ XC6SLX9‬در کنار یک میکروکنترلر مجهز به رابط ‪ USB‬بهره می‌برد‪.‬‬ ‫الزم به اشاره نیست که این برد به سبب بهره‌گیری از تراشه ‪FPGA‬‬ ‫کمبودی از نظر قدرت پردازش ندارد‪ .‬با استفاده از کانکتور ‪USB‬‬ ‫تعبیه‌شده روی برد‪ ،‬می‌توانید بدون نیاز به پروگرامر خارجی و به‌واسطه‌ی‬ ‫میکروکنترلر تراشه‌ی ‪ FPGA‬خود را پروگرام کنید‪ .‬با هر بار اتصال‬ ‫تغذیه برد‪ ،‬برنامه‌ی نوشته‌شده توسط کاربر که طی عملیات پروگرام‪،‬‬ ‫در حافظه‌ی ‪ Flash‬موجود روی برد ذخیره‌شده است‪ ،‬به‌وسیله‌ی‬ ‫میکروکنترلر روی ‪ FPGA‬بارگذاری می‌شود و پس از موفقیت‌آمیز‬ ‫بودن این روند‪ ،‬میکروکنترلر به وضعیت ‪ slave‬سوئیچ می‌شود‪ .‬در این‬ ‫وضعیت این بار ‪( FPGA‬طراحی ‪ FPGA‬شما) اجازه دارد تا از امکانات‬ ‫میکرو از قبیل دسترسی به پورت سریال یا ورودی‌های آنالوگ استفاده‬ ‫کند؛ بنابراین میکروکنترلر روی برد ‪ Mojo‬دارای دو نقش اساسی است‪.‬‬ ‫اول اینکه ازیک‌طرف به‌عنوان بارگذار (پروگرامر) تراشه‌ی ‪ FPGA‬عمل‬ ‫می‌کند و از طرف دیگر امکانات مفیدی را در اختیار ‪ FPGA‬قرار داده و‬ ‫کارایی آن را افزایش می‌دهد‪.‬‬ ‫مقایسه برد ‪ Mojo‬با ‪Mojo Plus‬‬ ‫برد ‪ Mojo‬پایه دارای امکانات زیر می‌باشد که البته با اتصال شیلدهای‬ ‫متنوع قابل‌گسترش می‌باشد‪:‬‬ ‫‪. .‬تراشه اصلی ‪Spartan 6 XC6SLX9 FPGA‬‬ ‫‪ 84. .‬عدد ورودی‪-‬خروجی دیجیتال‬ ‫‪ 8. .‬ورودی آنالوگ‬ ‫‪ 8. .‬خروجی ‪ LED‬با کاربری عمومی‬ ‫‪. .‬ولتاژ رگوالتور روی برد با امکان تأمین تغذیه از ورودی ‪ 4/8‬الی‪ 12‬ولت‬ ‫‪. .‬میکروی ‪ ATmega32U4‬چندمنظوره برای کانفیگ ‪،FPGA‬‬ ‫ارتباط ‪ USB‬و ‪...‬‬ ‫‪ 2. .‬مگابیت حافظه فلش روی برد برای ذخیره فایل کانفیگ ‪FPGA‬‬ ‫با توجه به ضعف‌هایی که در برد موجوی وارداتی به کشور وجود داشت‪،‬‬ ‫نسخه داخلی برد موجو با اسم ‪ Mojo Plus‬توسط مهندسین داخلی‬ ‫کشور طراحی و توسعه داده‌شده است که امکانات به‌مراتب کاملی را در‬ ‫مقایسه با نمونه خارجی در دسترس قرار می‌دهند‪.‬‬ ‫تجربه فنی داری؟تو انجمن نشر بده‪،‬‬ ‫بین ‪ 300‬هزار نفر طالیی شو‪...‬‬ ‫بذار همه بدونند با چه مهندسی طرف هستند!‬ ‫‪https://www.eca.ir/forums/‬‬ ‫‪50‬‬
‫ اب راک هب عورشک هب عورش‬ ‫‪ IDE‬یا محیط توسعه‌ی مجتمع استاندارد برای کد نویسی ‪ FPGA‬و‬ ‫درنهایت ترجمه کدهای نوشته‌شده در قالب یک فایل خروجی ارائه‌شده‬ ‫است‪ .‬نرم‌افزار بعدی موسوم به ‪ Mojo Loader‬وظیفه‌ی بارگذاری فایل‬ ‫خروجی تولیدشده توسط نرم‌افزار ‪ ISE‬روی برد ‪ Mojo‬را داراست‪.‬‬ ‫اما پیشنهاد می‌شود برای محیط توسعه از نرم‌افزار ‪ Mojo IDE‬استفاده‬ ‫کنید‪ .‬در این صورت دیگر نیازی به نصب ‪ Mojo Loader‬نخواهید‬ ‫داشت‪ ،‬همچنین محیط برنامه‌نویسی این نرم‌افزار نسبت به ‪ ISE‬ساده‌تر‬ ‫و به‌روزتر می‌باشد و امکانات نرم‌افزاری جالبی مانند ابزار آنالیز سیگنال در‬ ‫اختیار شما قرار می‌دهد‪ ،‬بااین‌وجود به علت پیچیده و منحصربه‌فرد بودن‬ ‫عمل کامپایل کد به زبان ماشین در ‪ FPGA، Mojo IDE‬قادر به انجام‬ ‫از تغییرات عمده این نسخه می‌توان به جایگزینی میکروکنترلر برد از این مهم نخواهد بود‪ ،‬بنابراین حداقل فقط به خاطر اجرای عمل سنتز و‬ ‫هسته ‪ AVR‬با هسته ‪ ARM Cortex M3‬اشاره کرد که سبب افزایش ‪ ...‬مجبور به استفاده از برنامه‌ی حجیم ‪ ISE‬خواهید شد‪.‬‬ ‫قابل‌مالحظه کارایی برد شده است‪ .‬به‌طور مثال در برد ‪ Mojo Plus‬به‬ ‫لطف پردازنده و رابط ‪ USB‬قوی‌تر سرعت کانفیگ ‪ FPGA‬بیش از‬ ‫‪ 2.5‬برابر بهبودیافته است و یا دقت ‪ 12‬بیتی برای ورودی‌های آنالوگ‬ ‫در دسترس شده است که در نمونه قدیمی ‪ 10‬بیت بود‪ .‬در جدول زیر‬ ‫مقایسه کاملی از بهبودهای صورت پذیرفته در برد ‪ Mojo Plus‬لیست‬ ‫شده است‪:‬‬ ‫‪Mojo‬‬ ‫هسته‬ ‫تراشه برنامه‌ریز‬ ‫‪Mojo Plus‬‬ ‫‪Spartan 6 XC6SLX9 FPGA‬‬ ‫‪ATmega32U4‬‬ ‫‪STM32F103CBT6‬‬ ‫ورودی‪ ،‬خروجی‬ ‫دیجیتال‬ ‫‪ 84‬عدد‬ ‫ورودی آنالوگ‬ ‫‪ 8‬عدد‬ ‫دانلود نرم‌افزار ‪ISE Design Suite‬‬ ‫‪http://p30download.com/fa/entry/49796/‬‬ ‫دقت ورودی‌های‬ ‫آنالوگ‬ ‫‪ 10‬بیتی‬ ‫رابط بی‌سیم‬ ‫ندارد‬ ‫حافظه ‪SRAM‬‬ ‫ندارد‬ ‫با شیلد خارجی‬ ‫دارد‬ ‫امکان مونتاژ روی برد‬ ‫حافظه برنامه‬ ‫‪2Mbit‬‬ ‫‪32Mbit‬‬ ‫کشور سازنده‬ ‫آمریکا (ساخت چین)‬ ‫ایران‬ ‫‪ 12‬بیتی‬ ‫دارد – تراشه‬ ‫‪NRF24L01‬‬ ‫دانلود نرم‌افزار ‪Mojo IDE‬‬ ‫‪https://embeddedmicro.com/ide/mojo‬‬‫‪ide-B1.3.6.exe‬‬ ‫دانلود نرم‌افزار ‪Mojo Loader‬‬ ‫‪https://embeddedmicro.com/media/wysi‬‬‫‪wyg/mojo-loader/mojo-loader-1.3.0.exe‬‬ ‫ابزارهای موردنیاز برای شروع کار با برد ‪Mojo‬‬ ‫برای شروع کار ابتدا باید یک برد ‪ Mojo Plus‬تهیه کنید‪ ،‬همچنین‬ ‫شما به یک کابل میکرو ‪ USB‬جهت اتصال برد به سایر عناصر‬ ‫سخت‌افزاری به‌منظور پروگرام کردن برد‪ ،‬تبادل اطالعات و ‪ ...‬نیاز پیدا‬ ‫خواهید کرد‪.‬‬ ‫دو نرم‌افزار وجود دارند که شما برای کار با ‪ Mojo‬به آن‌ها نیاز پیدا‬ ‫خواهید کرد‪ .‬اولین نرم‌افزار ‪ ISE‬هست‪ ISE .‬نرم‌افزاری است ساخت‬ ‫شرکت ‪( Xilinx‬یک شرکت فعال درزمینه‌ی ‪ )FPGA‬که به‌عنوان یک‬ ‫‪51‬‬
‫ اب راک هب عورشک هب عورش‬ ‫اولین پروژه ‪ FPGA‬با ‪Mojo‬‬ ‫در این بخش نحوه ایجاد یک پروژه نمونه‪ ،‬سنتز و درنهایت پروگرام آن‬ ‫روی برد ‪ Mojo‬آموزش داده می‌شود‪ .‬در ابتدا از نصب بودن دو نرم‌افزار‬ ‫‪ ISE Design Suite‬و ‪ Mojo IDE‬روی سیستم خود اطمینان‬ ‫حاصل نمایید و نرم‌افزار ‪ Mojo IDE‬را اجرا نمایید‪ .‬برای شناسایی ‪ISE‬‬ ‫‪ DS‬توسط محیط توسعه ‪ Mojo‬نیاز به مسیردهی دستی پوشه نصب آن‬ ‫داریم‪ .‬به منوی ‪ Settings‬نرم‌افزار رفته و گزینه ‪… ISE Location‬‬ ‫را انتخاب کرده و در پنجره بازشده مسیر پوشه نصب را انتخاب می‌نماییم‪.‬‬ ‫به‌عنوان‌مثال این مسیر می‌تواند به این شکل باشد‪:‬‬ ‫برای راحتی کار فایل پیش‌فرض تولیدی شامل تمام پین‌های‬ ‫استفاده‌شده ورودی‪ ،‬خروجی تراشه ‪ FPGA‬روی برد ‪ Mojo‬می‌باشد و‬ ‫می‌توان به‌راحتی از آن‌ها در داخل برنامه استفاده کرد‪.‬‬ ‫در این بخش به بررسی محتویات و اجزای فایل ‪mojo_top.luc‬‬ ‫می‌پردازیم و درنهایت به‌عنوان یک پروژه ابتدایی در دنیای ‪ FPGA‬طرح‬ ‫را برای کنترل ‪ LED‬اول روی برد موجو توسط شستی ‪ rst‬پیکربندی‬ ‫می‌نماییم‪.‬‬ ‫ماژول‌ها‬ ‫منوی ‪ File->New Project‬را انتخاب کرده و مشخصات پروژه‬ ‫ماژول‌ها یک راهکار بهینه برای مدیریت پروژه در تکه‌های کوچک و‬ ‫جدید را مشابه شکل زیر وارد می‌نماییم‪.‬‬ ‫جدا از هم هستند‪ .‬این مفهوم بسیار مشابه اصطالح توابع در زبان‌های‬ ‫برنامه‌نویسی نظیر ‪ C‬است که در آن با استفاده از توابع برنامه‌های حجیم‬ ‫به تکه‌های کوچک‌تر و قابل‌فهم‌تر با امکان استفاده مجدد تقسیم‌شده و‬ ‫تبادل اطالعات بین توابع با ارسال و دریافت پارامترهای ورودی و خروجی‬ ‫انجام می‌شود‪ .‬نقطه جذاب ماژول‌ها نیز به‌صورت مشابه قابلیت استفاده‬ ‫مجدد از آن‌ها در جای‌جای پروژه می‌باشد‪ .‬تعریف یک ماژول به‌صورت‬ ‫زیر انجام می‌شود‪.‬‬ ‫در بخش ‪ Language‬می‌توان زبان برنامه‌نویسی را مشخص کرد که‬ ‫می‌تواند ‪ Verilog‬یا ‪ Lucid‬باشد‪ .‬درصورتی‌که زبان ‪ Lucid‬انتخاب‬ ‫شود می‌توان از پروژه‌های آماده که در زیر آن مشخص می‌شود‪ ،‬استفاده‬ ‫نمود‪ .‬با زدن کلید ‪ Create‬به پنجره اصلی ‪ IDE‬برمی‌گردیم و فایل‬ ‫‪ mojo_top.luc‬در بخش ‪ Source‬منوی درختی سمت چپ ‪IDE‬‬ ‫را باز می‌کنیم‪ .‬این فایل شامل تمام ورودی‪ ،‬خروجی‌های خارجی طرح‬ ‫می‌باشد‪ .‬هر پروژه می‌تواند شامل چندین ماژول با ورودی‪ ،‬خروجی‌های‬ ‫مختلف باشد ولی درنهایت همه آن‌ها در این فایل به‌صورت زیر‪-‬مازول‬ ‫قرار می‌گیرند‪.‬‬ ‫‪52‬‬ ‫( ‪module mojo_top‬‬ ‫‪input clk,‬‬ ‫‪// 50MHz clock‬‬ ‫‪input rst_n,‬‬ ‫)‪// reset button (active low‬‬ ‫‪output led [8],‬‬ ‫‪// 8 user controllable LEDs‬‬ ‫‪input cclk, // configuration clock, AVR ready when high‬‬ ‫‪output spi_miso,‬‬ ‫‪// AVR SPI MISO‬‬ ‫‪input spi_ss,‬‬ ‫‪// AVR SPI Slave Select‬‬ ‫‪input spi_mosi,‬‬ ‫‪// AVR SPI MOSI‬‬ ‫‪input spi_sck,‬‬ ‫‪// AVR SPI Clock‬‬ ‫ ‪output spi_channel [4], // AVR general purpose‬‬ ‫ ‬ ‫)‪pins (used by default to select ADC channel‬‬ ‫‪input avr_tx,‬‬ ‫)‪// AVR TX (FPGA RX‬‬ ‫‪output avr_rx,‬‬ ‫)‪// AVR RX (FPGA TX‬‬ ‫‪input avr_rx_busy‬‬ ‫‪// AVR RX buffer full‬‬ ‫)‬
‫ اب راک هب عورشک هب عورش‬ ‫مسئله مهمی که باید در نظر گرفت این است که برخالف پیش‌زمینه‌های‬ ‫این تعریف همواره با کلمه کلیدی ‪ module‬و بعدازآن نام ماژول‬ ‫شروع می‌شود که در مثال فوق ‪ mojo_top‬است‪ .‬به‌صورت قراردادی ذهنی که در مورد زبان‌های برنامه‌نویسی نظیر ‪ C‬در ذهن داریم‪ ،‬در‬ ‫اسم ماژول و اسم فایل را یکسان در نظر می‌گیرند‪ .‬بعد از تعریف اسم زبان‌های توصیف سخت‌افزاری رفتار بلوک شبیه‌سازی می‌شود و نه صرفاً‬ ‫ماژول یک بخش اختیاری تعریف پارامترها قرار می‌گیرد که در مثال فوق سطر به سطر برنامه‪ .‬برای واضح شدن مسئله به مثال زیر دقت کنیم‪.‬‬ ‫{ ‪always‬‬ ‫وجود ندارد‪ .‬بعدازآن بخش مهم تعریف پورت‌ها قرار می‌گیرد که در آن‬ ‫ ‬ ‫ ;‪led = 8h00‬‬ ‫ ‬ ‫تمام پین‌های ورودی‪ ،‬خروجی و دو جهته ماژول تعریف می‌شوند‪ .‬در ‪// turn LEDs off‬‬ ‫ ‬ ‫ ;‪led = 8hFF‬‬ ‫ ‬ ‫‪// turn LEDs on‬‬ ‫مثال فوق اکثر پورت‌ها به‌صورت بیتی تعریف‌شده‌اند ولی به‌عنوان‌مثال‬ ‫}‬ ‫پورت ‪ led‬که به‌صورت خروجی تعریف‌شده‪ ،‬شامل ‪ 8‬پین خروجی است‬ ‫این بلوک طبق دیدگاه‌های رایج قبلی به نظر قرار است ‪ LED‬های‬ ‫که به‌صورت مستقیم به ‪ 8‬عدد ‪ LED‬روی برد ‪ Mojo‬متصل شده است‪.‬‬ ‫روی برد را به‌صورت متناوب روشن و خاموش کند‪ .‬ولی در عمل این‌گونه‬ ‫بلوک ‪Always‬‬ ‫نبوده و برخالف برنامه‌نویسی سیستم‌عاملی یا میکروکنترلری‪ ،‬پردازنده‌ای‬ ‫چند مورد قبل از بلوک ‪ always‬قرار دارند که فعالً نیازی به آن‌ها‬ ‫برای اجرای سطر به سطر برنامه وجود ندارد‪ .‬زمانی که ابزار سنتز برنامه‬ ‫نداریم و از توضیح در مورد آن‌ها صرف‌نظر می‌کنیم‪ .‬بلوک‌های ‪Always‬‬ ‫‪ FPGA‬با این بلوک مواجه می‌شود سطر اول را کاملاً نادیده در نظر‬ ‫بخشی از برنامه هستند که منطق برنامه در آن‌ها اتفاق می‌افتد‪ .‬اینجا‬ ‫می‌گیرد؛ زیرا سطر دوم از اولویت باالیی برخوردار بوده و درنتیجه تمام‬ ‫جایی است که عملیات محاسباتی یا خواندن و نوشتن سیگنال‌ها انجام‬ ‫‪ LED‬های روی برد به‌صورت مستقیم به منطق ‪ 1‬وصل شده و پیوسته‬ ‫می‌شوند‪ .‬نام این بلوک نیز به همان معنی «همیشگی» است‪ ،‬زیرا‬ ‫روشن خواهند بود‪.‬‬ ‫پردازش‌های آن به‌صورت دائم و همیشگی اتفاق می‌افتند‪ .‬زمانی که‬ ‫اتصال شستی ریست به یک ‪LED‬‬ ‫ابزارهای تحلیل کد سخت‌افزاری با یک بلوک ‪ Always‬مواجه می‌شوند‬ ‫در این بخش می‌خواهیم ماژول ‪ TOP‬را به نحوی ویرایش کنیم تا‬ ‫یک مدار دیجیتالی برای شبیه‌سازی رفتار بلوک تولید می‌کنند‪ .‬بلوک‬ ‫کلید ریست روی برد ‪ Mojo‬به ‪ LED‬اول وصل شود و با فشردن شستی‬ ‫‪ Always‬پروژه تولیدی به‌صورت زیر است‪:‬‬ ‫این ‪ LED‬روشن شود‪ .‬برای این کار سطر ‪ 28‬ماژول رو به‌صورت زیر‬ ‫{ ‪always‬‬ ‫تغییر می‌دهیم‪:‬‬ ‫‪reset_cond.in = ~rst_n; // input raw inverted reset signal‬‬ ‫‪// connect rst to the first LED‬‬ ‫‪rst = reset_cond.out; // conditioned reset‬‬ ‫ ;‪led = 8h00‬‬ ‫‪// turn LEDs off‬‬ ‫;‪spi_miso = bz‬‬ ‫‪// not using SPI‬‬ ‫‪spi_channel = bzzzz; // not using flags‬‬ ‫;‪avr_rx = bz‬‬ ‫‪// not using serial port‬‬ ‫{‬ ‫;}‪led = c{7h00, rst‬‬ ‫با قطعه کد باال ‪ 7‬عدد ‪ LED‬باارزش‌تر به سطح منطقی ‪ 0‬و ‪LED‬‬ ‫اول مستقیماً به ورودی ‪ rst‬که در حقیقت ‪ not‬ورودی ‪ rst_n‬می‌باشد‬ ‫متصل می‌شود‪ .‬در مقداردهی ‪ 7h00‬عدد ‪ 7‬نمایانگر طول‪ h ،‬نمایانگر‬ ‫واحد عددی (در اینجا هگزادسیمال یا ‪ 16‬تایی) و ‪ 00‬نمایانگر مقدار‬ ‫می‌باشد‪.‬‬ ‫تبلیغات‬ ‫برد ‪MOJO PLUS‬‬ ‫برد ‪ Mojo Plus‬مبتنی بر اسپارتان ‪ 6‬و سازگار با بردهای ‪ Mojo‬طراحی گشته‌است‬ ‫که امکانات بیشتری نسبت به نسخه قبلی خود دارد‪ .‬این برد از دو تراشه در ساختار خود‬ ‫بهره می برد‪ .‬تراشه اسپارتان ‪ 6‬مدل ‪ XC6SLX9‬به عنوان تراشه مرکزی عمل می‌کند و‬ ‫تراشه ‪ STM32F103‬برای آپدیت فریمور و ارتباط ‪ usb‬به سریال و بیسیم استفاده می‌شود‪.‬‬ ‫مشخصات‪:‬‬ ‫ هسته ‪ FPGA XC6SLX9 6 Spartan‬‬‫ ‬ ‫ ‬ ‫دیجیتال‬ ‫ ‬ ‫ ‪ 84‬ورودی خروجی‬‫ ‬ ‫ ‬ ‫‪ LED‬عمومی ‬ ‫ ‪ 8‬خروجی ‬‫ ‬ ‫ ‬ ‫سرعت باال ‬ ‫ رابط ‪ USB‬‬‫‪ -‬بدون نیاز به پروگرامر و امکان پروگرام با ‪USB‬‬ ‫ پردازنده کمکی ‪ARM Cortex M3‬‬‫ ‪ 8‬ورودی آنالوگ ‪ ۱۰‬یا ‪ ۱۲‬بیتی‬‫ ‪ 32‬مگابیت حافظه فلش‬‫ رابط بیسیم ‪NRF24L01‬‬‫‪http://link.eca.ir/1262‬‬ ‫‪53‬‬
‫ اب راک هب عورشک هب عورش‬ ‫ساخت پروژه‬ ‫پس از نهایی کردن فایل‌های سورس پروژه نیاز داریم تا پروژه را ساخت‬ ‫یا در اصطالح ‪ Build‬نماییم‪ .‬این کار به‌صورت عامیانه مشابه پروسه‬ ‫‪ compile‬در زبان ‪ C‬می‌باشد ولی در واقعیت عملیات بسیار پیچیده‌تری‬ ‫نظیر سنتز مدار‪ ،‬پیاده‌سازی‪ ،‬مپینگ و مسیریابی و ‪ ...‬انجام می‌شود که‬ ‫زمان‌بر است و گاهی چندین دقیقه طول می‌کشد‪ .‬عملیات ساخت با‬ ‫زدن گزینه ‪ Build Project‬در ابزار منوی باالی ‪ Mojo IDE‬شروع‬ ‫می‌شود‪ .‬پس از خاتمه عملیات ساخت فایل ‪ bit‬تولید می‌شود که بایستی‬ ‫روی ‪ FPGA‬لود شود‪ .‬برای لود برنامه روی ‪ FPGA‬در حالت عادی‬ ‫نیاز به پروگرامر ‪ JTAG‬داریم که به لطف امکان لود مستقیم ‪ USB‬برد‬ ‫‪ Mojo‬از این بابت مشکلی نخواهیم داشت و لود برنامه به‌سادگی انجام‬ ‫می‌شود‪ .‬لود برنامه به دو طریق انجام می‌شود که در حالت اول به‌صورت‬ ‫موقت بوده و در حالت دوم به‌صورت دائمی یا ‪ Flash‬است‪ .‬تفاوت این‬ ‫دو حالت در این مورد است که با لود موقت برنامه روی ‪ FPGA‬این‬ ‫برنامه تنها یک‌بار قابل‌استفاده می‌باشد و با ریست تغذیه ‪ FPGA‬برنامه‬ ‫از بین خواهد رفت و نیاز به لود مجدد دارد‪ .‬ولی ازآنجایی‌که سرعت لود‬ ‫در این حالت بیشتر است برای عملیات دیباگ و تست موقت برنامه مفید‬ ‫خواهد بود‪.‬‬ ‫در حالت دوم اما برنامه ابتدا روی حافظه ‪ Flash‬روی برد ذخیره‬ ‫می‌شود و بعداً روی ‪ FPGA‬لود می‌شود‪ .‬درنهایت با هر بار ریست‪،‬‬ ‫‪ FPGA‬به‌صورت خودکار با آخرین برنامه دوباره لود می‌گردد‪ .‬برای‬ ‫تست برنامه نوشته‌شده گزینه لود موقت (‪ )Temporary‬از منوی ابزار‬ ‫باالیی را انتخاب نمایید‪.‬‬ ‫نتیجه‌گیری نهایی‬ ‫در این پروژه پس‌ازاینکه کلید فشرده شود‪ ،‬مدت‌زمانی که طول‬ ‫می‌کشد تا ‪ LED‬روشن شود چقدر است؟ برای این کار اگر به‌جای‬ ‫‪ FPGA‬از یک پردازنده استفاده کنیم‪ ،‬پردازنده داخل یک حلقه قرار‬ ‫می‌گیرد و به‌صورت متناوب وضعیت کلید را رصد کرده و بر مبنای آن‬ ‫‪ LED‬را کنترل می‌نماید‪ .‬زمان مابین فشار کلید و روشن شدن ‪LED‬‬ ‫متناسب با فرکانس کاری پردازنده و میزان تأخیر اجرای دستورات خواهد‬ ‫بود و اگر کدهای دیگری در داخل همین حلقه قرار گیرند زمان بیشتری‬ ‫صرف خواهد شد‪.‬‬ ‫اما در ‪ FPGA‬وضعیت فرق می‌کند‪ .‬در این حالت یا طرح ورودی‬ ‫شستی به‌صورت مستقیم به خروجی ‪ LED‬متصل می‌شود‪ .‬در ذهن‬ ‫می‌توان یک سیم مسی بین ورودی شستی و خروجی ‪ LED‬در نظر‬ ‫گرفت ولی در عمل مجموعه‌ای از سوئیچ‌ها و مالتی پلکسرها بین‬ ‫ورودی و خروجی نقش مسیریابی سیگنال ورودی به خروجی را بر عهده‬ ‫می‌گیرند‪ .‬ازآنجایی‌که سیگنال ورودی نیازی به انتظار برای پردازنده ندارد‬ ‫با حداکثر سرعت ممکن از طریق سیلیکون به ‪ LED‬منتقل می‌شود‪ .‬از‬ ‫همه جالب‌تر اینکه بقیه ‪ FPGA‬نیز خالی بوده و می‌توان فرایندهای‬ ‫دیگری را به‌صورت هم‌زمان درآن‌واحد و بدون تأثیر منفی در بلوک فعلی‬ ‫اجرا نمود‪.‬‬ ‫حال به برد ‪ Mojo‬خود نگاه کنید‪ .‬باید ‪ LED‬با برچسب ‪DONE‬‬ ‫کنار کانکتور ورودی روشن شود‪ .‬این ‪ LED‬نشانگر صحت لود برنامه روی‬ ‫‪ FPGA‬می‌باشد و درصورتی‌که به هر نحوی اطالعات لود شده توسط‬ ‫‪ CRC‬تصدیق نشود این ‪ LED‬روشن نخواهد شد‪.‬‬ ‫حال با فشردن شستی ریست بالفاصله ‪ LED‬اول روشن خواهد شد و‬ ‫با رها کردن آن خاموش می‌شود‪.‬‬ ‫مقایسه پیشرفت کارایی ‪ FPGA‬در مقابل ‪ CPU‬درگذر زمان‬ ‫‪54‬‬
‫ یسدنهم و ینف هورگورگ‬ ‫کاربرد رگرسیون خطی در ‬ ‫کالیبره کردن سنسورها در ‬ ‫الکترونیک و برنامه‌نویسی‬ ‫با توجه به خطی یا غیرخطی بودن سنسورها در الکترونیک و مشکالت‬ ‫ناشی از خطای سنسورها و همچنین مشکالتی در برنامه‌نویسی‪ ،‬احتیاج‬ ‫به یک روش علمی و کارآمد برای حل این مشکل احساس می‌شود‪ .‬در‬ ‫این آموزش ساده و مختصر به کمک نرم‌افزار ‪ Excel‬به حل این مشکل‬ ‫می‌پردازیم‪ .‬در این آموزش فقط مسائل کلی بحث می‌شود که در صورت‬ ‫نیاز به موارد تخصصی‌تر می‌توان با تغییراتی درروند محاسبات به آن‌ها‬ ‫دست پیدا کرد‪.‬‬ ‫برای مثال یک سنسور دارای خروجی آنالوگ بوده که توسط‬ ‫میکروکنترلر این مقادیر به دیجیتال تبدیل‌شده است‪ .‬با توجه به خطای‬ ‫سنسور احتیاج به کالیبره شدن دقیق آن هست‪ .‬با توجه به غیرخطی‬ ‫بودن سنسورها نمی‌توان یک مقدار ثابت از آن‌ها کم یا اضافه کنیم و در‬ ‫این حالت باید به کمک معادالت خط اقدام به حل این مشکل کرد‪ .‬به‬ ‫همین دلیل با به دست آوردن یک معادله و قرار دادن آن در برنامه خود‪،‬‬ ‫می‌توانیم تا اندازه بسیار زیادی این خطاها را کم کنیم و به‌اندازه واقعی‬ ‫نزدیک شویم‪ .‬در زیر به‌صورت خالصه روند انجام این کار بررسی می‌شود‪.‬‬ ‫برای این کار در ابتدا شما باید داده‌های خام را از سنسور در بازه‌های‬ ‫مختلف خوانده و در جدولی در ‪ Excel‬وارد کنید‪ .‬به‌عنوان‌مثال شما‬ ‫مقدار عددی یک سنسور را خوانده و انتظار شما این است که آن عدد‬ ‫مثالً ‪ 50‬باشد؛ ولی در عمل این عدد ممکن است بیشتر یا کمتر باشد‪.‬‬ ‫در یک ستون اعداد ایده آل و مورد انتظار وارد می‌شود و در ستون دیگر‬ ‫اعداد واقعی که از سنسور خوانده‌ایم را وارد می‌کنیم؛ مانند تصویر زیر‪ .‬هر‬ ‫چه قدر بازه اعداد کمتر و تعداد آن‌ها بیشتر باشد دقت کار باالتر می‌رود‪.‬‬ ‫نویسنده‬ ‫علی محمد شغیعی‬ ‫‪alimohammad_shafiei@yahoo.com‬‬ ‫همین‌طور که در تصویر مشاهده می‌نمایید یک نمودار برحسب اعداد‬ ‫واردشده رسم می‌شود؛ اما برای استفاده آن در برنامه‌نویسی احتیاج به‬ ‫معادله‌ای هست که بتوان آن را درون برنامه خود قرار دهیم‪.‬‬ ‫در این مرحله با راست کلیک کردن بر روی نمودار و انتخاب گزینه‬ ‫‪ Add Trendline‬به مرحله بعد می‌رویم‪.‬‬ ‫در این مرحله با انتخاب کل اعداد در قسمت پایین جدول یک گزینه‬ ‫آشکار می‌شود؛ که در قسمت ‪ chart‬گزینه ‪ scatter‬را انتخاب می‌کنیم‪.‬‬ ‫‪55‬‬
‫یسیون همانرب و کینورتکلا رد یطخ نویسرگر‬ ‫یکی از اساسی‌ترین مراحل کار مشخص کردن رفتار سنسور موردنظر‬ ‫شما می‌باشد‪ .‬در قسمت ‪ Trendline Option‬می‌توان با توجه به‬ ‫خطی یا غیرخطی بودن و همچنین رفتار سنسور گزینه‌های متناسب با‬ ‫آن را انتخاب کرد‪.‬‬ ‫در آخرین مرحله برای دیدن معادله و استفاده آن در برنامه باید گزینه‬ ‫زیر را انتخاب نمایید‪.‬‬ ‫در این مرحله شما معادله را در کنار نمودار خواهید دید که می‌توان‬ ‫از این معادله در برنامه استفاده کنیم‪ .‬اعداد ورودی از سنسور ‪ x‬و اعداد‬ ‫خروجی ‪ y‬هستند‪ .‬این‌ یکی از کاربردهای بسیار کوچک علم ریاضی در‬ ‫کارهای عملی می‌باشد‪ .‬با توجه به کاربرد شما می‌توان از دیگر امکانات‬ ‫این نرم‌افزار و همچنین نرم‌افزار ‪ Matlab‬برای این امر بهره برد‪ .‬در این‬ ‫آموزش سعی شد مطالب به زبان ساده و قابل‌درک بیان شود‪ .‬امید است‬ ‫که این آموزش راهگشای شما دوستان عزیز باشد‪.‬‬ ‫تبلیغات‬ ‫‪ ECA‬را در شبکه های اجتماعی دنبال کنید‬ ‫اینستاگرام‬ ‫‪@ECA.ir‬‬ ‫‪56‬‬ ‫کانال تلگرام‬ ‫‪@ECAir‬‬
‫هب تالاقم لاسراسرا‬ ‫ایمیل‬ ‫آپلود مستقیم مقاالت‬ ‫تلگرام‬  noisemagazine.eca@gmail.com  http://link.eca.ir/1369 57  @ECA_pr

آخرین شماره های ماهنامه نویز

ثبت نشریه در مگ لند

شما صاحب نشریه هستید ؟

با عضویت در مگ لند امکانات متنوعی را در اختیار خواهید داشت
ثبت نام ناشر
لطفا کمی صبر کنید !!