تحلیل کتابخانه

تحلیل و بررسی کتابخانه XPT2046

XPT2046-arduino-library-digispark
نوشته شده توسط معین صابری

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

 


مراحل نصب کتابخانه XPT2046


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

مراحل نصب کتابخانه XPT2046 در آردوینو - دیجی اسپارک

 


الزامات و نکات فنی کتابخانه


پس از نصب کتابخانه، نوبت به بررسی الزامات و نکات فنی می رسد. در قدم اول توجه داشته باشید که این کتابخانه از پورت سریال SPI استفاده می کند. در کنار این، کتابخانه XPT2046  بر روی کلیه بردهای آردوینو قابل اجراست. به عبارت دیگر این کتابخانه مستقل از معماری بوده و بر روی بردهای آردوینو با تراشه AVR یا ESP، قابل اجراست.

 


توابع کلیدی و کاربردی کتابخانه XPT2046


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

شرح ورودی ها تابع
این تابع، تابع سازنده کلاس کتابخانه است. ورودی دوم جهت تعیین پایه برای وقفه است. در صورتیکه ۲۵۵ انتخاب شود، هیچ پایه ای برای وقفه انتخاب نشده است. ورودی اول تعیین پایه CS برای ارتباط SPI

ورودی دوم تعیین شماره پایه وقفه

XPT2046_Touchscreen(uint8_t cspin, uint8_t tirq=255)
این تابع موقعیت تاچ که توسط کاربرد در صفحه فشرده شده را در خروجی نمایش می دهد. خروجی به صورت X,Y,Z در خروجی تابع قرار می گیرد. خروجی تابع یک شی از کلاس کتابخانه است. بدون ورودی TS_Point getPoint()
این تابع در صورتیکه وقفه رخ داده باشد، خروجی خود را true خواهد کرد. بدون ورودی bool tirqTouched()
این تابع در صورتیکه تاچ تشخیص داده شده باشد، خروجی را TRUE خواهد کرد. بدون ورودی bool touched()
این تابع موقعیت تاچ فشرده شوده را در ورودی های خود قرار می دهد. در حقیقت با فراخوانی این تابع و تعریف متغیرهای ورودی، موقعیت تاچ تشخیص داده شده در ورودی ها قرار می گیرد. ورودی اول موقعیت X

ورودی دوم موقعیت Y

ورودی سوم موقعیت Z

void readData(uint16_t *x, uint16_t *y, uint8_t *z)
با فراخوانی این تابع، در صورتیکه بافر داده ها خالی باشد، خروجی true خواهد شد. بدون ورودی bool bufferEmpty()
این تابع حجم بافر را در خروجی خود قرار می دهد. بدون ورودی uint8_t bufferSize()
به کمک این تابع می توانیم چرخش را تعیین کنیم. جهت چرخش صفحه در ورودی قرار می گیرد. ورودی جهت تعیین چرخش void setRotation(uint8_t n)

 


اجرای یک نمونه برنامه


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

#include <XPT2046_Touchscreen.h>  //فراخوانی کتابخانه 
#include <SPI.h>  //کتابخانه SPI جهت ارتباط با تراشه 

#define CS_PIN  8  //انتخاب پایه CS
// MOSI=11, MISO=12, SCK=13   //پایه های  مربوط به ارتباط SPI در برد آردوینو UNO
XPT2046_Touchscreen ts(CS_PIN, 255);  // پایه اول برای CS، پایه دوم برای وقفه  که ۲۵۵ انتخاب شده و هیچ پایه ای برای وقفه در نظر گرفته نشده

void setup() {
  Serial.begin(38400);
  ts.begin();  //راه اندازی و ارتباط با تراشه 
  ts.setRotation(1);  //تنظیم چرخش صفحه
  while (!Serial && (millis() <= 1000));   
}

void loop() {
  if (ts.touched()) {
    TS_Point p = ts.getPoint();  //تعریفق شی از کلاس متابخانه جهت دریافت موقعیت در صفحه
    Serial.print("Pressure = ");
    Serial.print(p.z);   //موقعیت Z
    Serial.print(", x = ");
    Serial.print(p.x);  //موقعیت X
    Serial.print(", y = ");
    Serial.print(p.y);  //موقعیت Y
    delay(30);
    Serial.println();
  }
}

 


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


لینک خرید انواع برد آردوینو، کلیک کنید

تراشه تاچ اسکرین

 


جمع بندی


در این آموزش به تحلیل و بررسی کتابخانه XPT2046 پرداختیم. این کتابخانه که برای تراشه XPT2046 طراحی شده و توسعه یافته، راه اندازی و کار با این تراشه را بسیار آسان می کند. در این آموزش نخست به نصب کتابخانه پرداختیم. در ادامه الزامات و نکات فنی آن پرداختیم. سپس با ارایه توابع کلیدی و کاربردی و در ادامه اجرای یک مثال، به بحث خاتمه دادیم.

 

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

معین صابری

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

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

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