آردوینو آردوینو Arduino Uno آموزش آردوینو پروژه های آردوینو

طراحی و پیاده سازی تاچ پنل با آردوینو و شیلد نمایشگر TFT

نوشته شده توسط معین صابری

تاچ پنل ها یکی از مهم ترین ابزارها در صنایع و پروژه های مختلف به شمار می روند. به کمک این ابزار می توان با فرم گرافیکی کاربر پسند، دستگاه های کنترلی مختلفی را طراحی نموده و توسعه داد. از مهم ترین کاربردهای تاچ پنل ها، می توان به خانه های هوشمند جهت کنترل امکانات منزل اشاره نمود. همچنین، از این ابزار در صنایع مختلف، جهت کنترل آسان فرایند ها استفاده می شود. در کنار این، در دستگاه های خود پرداز، کارتخوان ها و… می توان صفحه های لمسی را نیز، مشاهده نمود. در این آموزش به کمک شیلد نمایشگر TFT 2.4 مخصوص آردوینو، به طراحی یک تاچ پنل ساده می پردازیم. در این پروژه ۳ رله تعریف شده که نام هر یک بر روی نمایشگر به نمایش در می آید. با لمس هر یک از این نام ها، وضعیت رله نسبت به حالت قبلی، تغییر خواهد نمود.  به لطف استفاده از شیلد  نمایشگر، این قطعه به سادگی و بدون نیاز به هیچ سیم کشی اضافه بر روی برد آردوینو قرار می گیرد. همچنین در این آموزش از برد آردوینو MEGAWIFI استفاده نموده ایم. پیشتر در آموزشی جامع، راه اندازی و کار با این شیلد را مورد بررسی قرار داده ایم این آموزش می تواند در طراحی بسیاری از سیستم ها کاربردی واقع شود. بنابراین در ادامه، با مرجع تخصصی رزبری پای و آردوینو به زبان فارسی، دیجی اسپارک، همراه باشید.

 


شیلد نمایشگر TFT با اندازه ۲٫۴


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

شیوه اتصال شیلد درایور موتور L293D روی آردوینو - دیجی اسپارک

 

در این آموزش، از شیلد نمایشگر مخصوص آردوینو استفاده می کنیم. همانطور که پیشتر بیان شد، این شیلد به سادگی و بدون نیاز به هیچ سیم کشی اضافه، بر روی بردهای آردوینو UNO، MEGA و MEGAWIFI سوار می شود. از دیگر مزایای این شیلد، وجود سوکت کارت SD بر روی آن است. به کمک این قابلیت می توانید علاوه بر استفاده از قابلیت تاچ و نمایش داده بر روی نمایشگر، بر روی کارت SD داده ذخیره کنید. همچنین  می توان داده های ذخیره شده در کارت SD را در برنامه خود بخوانید. به عنوان یک مثال کاربردی، می توان تصاویر ذخیره شده در کارت SD را بر روی نمایشگر نشان داد.

 

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

 


برد آردوینو MEGAWIFI


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

در این پروژه ما از برد آردوینو MEGAWIFI جهت پردازش و فرمان به رله ها استفاده می کنیم.  این برد که در حقیقت شکل توسعه یافته برد آردوینو MEGA به شمار می رود، از تراشه وای فای ESP8266 بهره می برد. بدین ترتیب به سادگی می توانید برد را به کمک مودم، به شبکه اینترنت متصل کنید. حتی می توان برد را در حالت نقطه دسترسی(AP) جهت اتصال سایر دستکاه ها به آن، قرار داد. از طرف دیگر، با توجه با قابلیت پروگرام  ماژول ESP از طریق آردوینو و حافظه ۴ مگابلیت و کلاک ۱۶۰ مگاهرتزی آن، در کنار تعداد بیشمار پایه های GPIO و ورودی آنالوگ میکروکنترلر MEGA2560، این برد را به یک برد فوق العاده قدرتمند(هیولا!!) تبدیل کرده است.

 

جهت راه اندازی و کار با برد MEGAWIFI، آموزشی جامع و کامل پیشتر در دیجی اسپارک منتشر شده است. این آموزش را می توانید با کیلک بر روی این لینک دنبال کنید.

توجه: برای راه اندازی این پروژه می توانید از برد آردوینو MEGA نیز استفاده نمایید. کدها و شیوه قرار گیری شیلد نمایشگر بر روی برد، دقیقا یکسان خواهد بود.

 


ماژول رله Relay


رله یک سوییچ مکانیکی با قابلیت کنترل از طریق پالس الکترونیکی است. این سوییچ که در سال ۱۸۳۵ توسط جوزف هانری اختراع گردید، امروزه یکی از قطعات بسیار پرکاربرد در صنایع الکترونیک، اتوماسیون صنعتی، خودرو و…. به شمار می رود. در این پروژه نیز، با لمس صفحه، می توان رله ها را فعال و یا غیر فعال نمود.

 

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

 


نصب کتابخانه های شیلد نمایشگر


جهت راه اندازی و کار با شیلد نمایشگر، می بایست در ابتدا به نصب کتابخانه آن بپردازیم. در اینجا ما از کتابخانه mcufriend استفاده می کنیم. این کتابخانه به سادگی با شیلد نمایشگر ارتباط برقرار می سازد. پیشتر در آموزشی، به تحلیل و بررسی این کتابخانه پرداخته ایم. در آموزش تحلیل، بردهای مورد پشتیبانی، نحوه نصب و توابع کلیدی و کاربردی آن مورد بررسی کامل قرار گرفته است. جهت مطالعه این آموزش، می توانید با کلیک بر روی این لینک، آن را مطالعه نمایید. برای نصب کتابخانه شیلد نمایشگر در آردویینو، ابتدا در نرم افزار آردویینو، بر روی منوی Tools و سپس Manage Libraries مطابق تصویر زیر، کلیک کنید.

 

سپس در منوی ظاهر شده، در قسمت کادر جستجو، عبارت MCUFRIEND_kbv را وارد کرده و کتابخانه MCUFRIEND_kbv.h مربوط به شیلد ال سی دی را مطابق تصویر زیر، نصب کنید.

 

یکی دیگر از کتابخانه های کاربردی، کتابخانه TouchScreen است. این کتابخانه جهت شناسایی و کار با تاچ نمایشگر به کار می رود. انتظار می رود که این کتابخانه به طور خودکار بر روی آردوینو نصب باشد. اما جهت اطمینان، می توانید در کادر جستجوی کتابخانه ها، با تایپ عبارت TouchScreen.h این کتابخانه را یافته و نصب کنید.

 


شماتیک و اتصالات پروژه


در این قسمت به بررسی شماتیک و اتصالات پروژه می پردازیم. توجه داشته باشید که شیلد نمایشگر به سادگی و بدون نیاز به هیچ ابزار و یا سیم اضافه، بر روی برد آردوینو قرار می گیرد. جهت قرار گیری این شیلد بر روی آردوینو، پایه های شیلد را به صورت نظیر به نظیر بر روی آردوینو جا بزنید. برای این موضوع، ابتدا پایه ۳V3 شیلد را بر روی پایه ۳V3 آردوینو قرار دهید. سپس سایر پایه های نمایشگر را درون آردوینو قرار دهید. پس از اتصال شیلد بر روی برد، نوبت به بررسی شماتیک و اتصالات می رسد. تصویر زیر فرم کلی اتصالات را نشان می دهد.

 

برای اتصال ماژول های رله به برد آردوینو MEGA، پایه ۵ ولت تمام رله ها به پایه ۵ ولت آردوینو مگا متصل می گردد. به طریق مشابه، پایه GND ماول های رله نیز می بایست به پایه GND آردوینو مگا متصل شود. در نهایت، پایه های سیگنال رله ها به پایه های ۲۵، ۲۷ و ۲۹، مطابق تصویر فوق متصل می شوند.

توجه: نحوه قرار گیری شیلد بر روی برد و اتصال و سیم کشی رله ها، بین دو برد آردوینو MEGA و MEGAWIFI دقیقا یکسان است.

 


کدهای پروژه تاچ پنل با آردوینو


در این قسمت کدهای پروژه تاچ پنل جهت تعیین وضعیت ۳ رله را مشاهده می کنید. این کدها برای دو برد MEGA و MEGA2560WIFI دقیقا یکسان هستند. بنابراین، به سادگی می توانید کدها را بر روی هر دو برد آپلود نمایید. در صورتیکه برد شما MEGAWIFI است، می توانید کلیدهای سلکتور را هم برای آپلود کد بر روی MEGA2560 و هم اجرای برنامه، تنظیم کنید. برای این مورد کافیست ۴ کلید نخست از سمت چپ ON و مابقی، OFF باشند. در ادامه، با کلیک بر روی گزینه Tools->Boards، برد MEGA2560 را انتخاب نموده و کدهای زیر را آپلود نمایید.

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 


اجرای پروژه


در این قسمت به اجرای پروژه می پردازیم. جهت اجرای پروژه با برد MEGA2560WIFI، کلیدهای سلکتور باید در همان حالت آپلود کد باقی بمانند. در اینجا جهت سادگی کار، به جای رله از LED استفاده می نماییم. با اجرای برنامه، چنانچه هریک از عبارات مربوط به رله را لمس کنید، وضعیت رله نسبت به حالت قبلی آن تغییر خواهد کرد. 

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

توجه۲: پس از تشخیص تاچ شدن رله، برنامه جهت جلوگیری از اختلال(دیبانسینگ) برای دو ثانیه صبر می کند. بنابراین پس از تاچ هر یک از رله ها، جهت تاچ همان رله و یا رله های دیگر، برای دو ثانیه صبر کنید.

 


تحلیل کدهای پروژه


در این قسمت به تحلیل و بررسی کدهای به کار رفته در پروژه می پردازیم. در نظر داشته باشید که کدهای پروژه به صورت خط به خط کامنت شده اند. به عبارت دیگر، برای هر دسترو و قسمت توضیح قرار گرفته است. بنابراین در اینجا به صورت خلاصه به بررسی کدها می پردازیم. در ابتدا می بایست کتابخانه های مربوط به نمایشگر TFT و TOUCH را به صورت زیر فراخوانی کنیم.

#include <MCUFRIEND_kbv.h>  //فراخوانی کتابخانه شیلد نمایشگر
#include <TouchScreen.h>   //فراخوانی کتابخانه تاچ

پس از این مرحله، به ایجاد یک نمونه شی از کلاس های تاچ و TFT می پردازیم. در نظر داشته باشید که جهت تشخیص تاچ، پایه های مخصوص با فرمت خاص تعیین شده است. این مورد را در کد زیر می توانید مشاهده کنید.

TouchScreen t_s = TouchScreen(XP, YP, XM, YM, 300);

در رابطه با ورودی های فوق، در کد برنامه به طور کامل صحبت کرده ایم. پس از این مرحله، در قسمت setup، پایه های ۲۵، ۲۷ و ۲۹ به عنوان خروجی تعریف می شود. بعد از اتمام تنظیمات اولیه، در حلقه اصلی برنامه، وضعیت تاچ را می خوانیم. چنانچه در موقعیتی که متن touch relay مربوط به هر رله در صفحه فشرده شود، وضعیت رله آن نسبت به حالت قبلی، تغییر خواهد کرد.

 


لوازم مورد نیاز


شیلد تاچ TFT مخصوص آردوینو

برد آردوینو مگا

برد آردوینو MEGAWIFI

 


جمع بندی


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

 

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

 

درباره نویسنده

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۶ دیدگاه