برد هوش مصنوعی Sipeed

راه اندازی و کار با برد Maixduino بخش پانزدهم: راه اندازی نمایشگر ST7789

getting-started-with-sipeed-m1-maixduino-step-fifteen-st7789-display-digsplay
نوشته شده توسط معین صابری

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

 


نمایشگر ST7789


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

راه اندازی ال سی دی نمایشگر st7789 در برد maixduino - دیجی اسپارک

 

جهت راه اندازی و کار با نمایشگر ST7789، کتابخانه تحت هسته Maixduino توسعه یافته است. به کمک این کتابخانه می توانیم در فرمی استاندارد و البته ساده، با برد ارتباط برقرار کنیم. در ادامه به بررسی اجمالی توابع این کتابخانه می پردازیم. در نهایت با ارائه دو مثال، کاربردهای توابع را خواهیم دید.

توجه: این کتابخانه به صورت پیشفرض در هسته آردوینو نصب است.

 


کتابخانه ST7789


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

 

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

 

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

 

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

 


اجرای نمونه برنامه شماره ۱


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

#include <Sipeed_ST7789.h>

SPIClass spi_(SPI0); //نمایشگر st7789 از رابط سریال SPI جهت ارتباط استفاده می کند.
Sipeed_ST7789 lcd(320, 240, spi_);  //تعریف یک شی از کلاس کتابخانه با ورودی تابع سازنده طول و عرض و پورت SPI


void func()
{
    lcd.fillScreen(COLOR_RED);
    lcd.drawRect(20, 20, 50, 50, COLOR_WHITE);
    lcd.fillCircle(100, 100, 40, COLOR_WHITE);
    lcd.fillTriangle(10, 200, 300, 200, 300, 150, COLOR_WHITE);
    lcd.setTextSize(2);
    lcd.setTextColor(COLOR_WHITE);
    lcd.setCursor(100,30);
    lcd.println("hello Sipeed Maix");
}

void func2()
{
    lcd.fillScreen(COLOR_RED);
    lcd.drawRect(20, 20, 50, 50, COLOR_WHITE);
    lcd.fillCircle(180, 50, 40, COLOR_WHITE);
    lcd.fillTriangle(10, 300, 200, 300, 200, 150, COLOR_WHITE);
    lcd.setTextSize(2);
    lcd.setTextColor(COLOR_WHITE);
    lcd.setCursor(1,100);
    lcd.println("hello Sipeed Maix");
}

void setup()
{
    lcd.begin(15000000, COLOR_RED);  
    lcd.setCursor(50,50);
    lcd.setTextSize(5);
    lcd.println("DIGISPARK");
    delay(5000);  
}

void loop()
{
    lcd.setRotation(0);
    func();
    delay(3000);
    lcd.invertDisplay(true);
    func();
    delay(3000);
    lcd.setRotation(1);
    func2();
    delay(3000);
    lcd.setRotation(2);
    func();
    delay(3000);
    lcd.setRotation(3);
    func2();
    delay(3000);
}

 

 در نهایت پس از اجرای برنامه، با تصویر زیر رو به رو خواهید شد.

نمایش تصویر در lcd نمایشگر st7789 - دیجی اسپارک

 

پس از اجرای این برنامه، به اجرای یک برنامه دیگر می پردازیم. در این برنامه تصاویر را از دوربین خوانده و بر روی نمایشگر ST7789 نمایش خواهیم داد.

 


اجرای نمونه برنامه شماره ۲: اتصال دوربین به نمایشگر


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

#include <Sipeed_OV2640.h>
#include <Sipeed_ST7789.h>

SPIClass spi_(SPI0); // تعریف شی از کلاس SPI جهت برقراری ارتباط با LCD
Sipeed_ST7789 lcd(320, 240, spi_);

Sipeed_OV2640 camera(FRAMESIZE_QVGA, PIXFORMAT_RGB565);


void setup()
{
  Serial.begin(115200);
  lcd.begin(15000000, COLOR_RED);
  if (!camera.begin())
    Serial.printf("camera init fail\n");
  else
    Serial.printf("camera init success\n");
  camera.run(true);
}

void loop()
{
  uint8_t*img = camera.snapshot();
  if (img == nullptr || img == 0)
  Serial.printf("snap fail\n");
  else
    lcd.drawImage(0, 0, camera.width(), camera.height(), (uint16_t*)img);
    }

 

پس از اجرای برنامه، می توانید تصاویر دیده شده توسط دوربین را روی نمایشگر مشاهده کنید. با توجه به سرعت بالای پردازش پردازنده K210، می توانید تصاویر را با سرعت بالایی روی نمایشگر مشاهده کنید.

نمایش تصویر دوربین در نمایشگر st7789 - دیجی اسپارک

 


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


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

برد Maixduino

 


جمع بندی


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

 

چنانچه هرگونه ابهامی در مطالب درج شده وجود دارد، می توانید با ثبت نظر در انتهای همین پست سوال خود را بپرسید. تاکنون در دیجی اسپارک بیش از ۲۶ هزار سوال و پاسخ ثبت شده است؛ پس نظرات بی جواب نمی مانند! همچنین اگر ایراد و یا اشکالی در مطالب درج شده وجود دارد، لطفا آن را با ثبت نظر، مطرح کنید. همچنین اگر مشکلی در کدها وجود داشته و یا اجرا نمی شوند، مورد را حتما در انتهای همین آموزش مطرح نمایید. نظرات شما برای ما بسیار ارزشمند هسنند!!

 

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

معین صابری

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

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

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