در مجموعه آموزش های برد Maixduino، قسمت پانزدهم را به نمایشگر و راه اندازی آن اختصاص می دهیم. همانطور که اطلاع دارید، برد Maixduino دارای سوکت نمایشگر است. این برد نمایشگر ST7789 را جهت اتصال، پشتیبانی می نماید. نمایشگرها یکی از اجزای مهم و کاربردی در پروژه ها به شمار می روند. به کمک نمایشگرها می توان به دریافت ورودی از کاربر و نمایش خروجی، اقدام نمود. نمایشگر ST7789 دارای قابلیت های فراوانی است. در این آموزش به راه اندازی و کار با نمایشگر ST7789 می پردازیم. در ادامه این آموزش با مرجع تخصصی برد هوش مصنوعی Sipeed به زبان فارسی، دیجی اسپارک همراه باشید.
نمایشگر ST7789
همانطور که پیشتر گفته شد، نمایشگرها یکی از مهم ترین و پرکاربردترین ابزارها جهت دریافت ورودی و نمایش خروجی به کاربر است. نمایشگر 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); }
در نهایت پس از اجرای برنامه، با تصویر زیر رو به رو خواهید شد.
پس از اجرای این برنامه، به اجرای یک برنامه دیگر می پردازیم. در این برنامه تصاویر را از دوربین خوانده و بر روی نمایشگر 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، می توانید تصاویر را با سرعت بالایی روی نمایشگر مشاهده کنید.
لوازم مورد نیاز
بردهای مبتنی بر هوش مصنوعی Sipeed
جمع بندی
در مجموعه آموزش های برد Maixduino، قسمت پانزدهم به نمایشگر این برد پرداختیم. برد Maixduino دارای توان پردازشی بسیار بالایی است. این برد می تواند به پردازش صوت و تصویر بپردازد. در کنار این سوکت اتصال LCD بر روی این برد تعبیه شده است. بدین ترتیب به کمک نمایشگر این برد، می توان به طراحی واسط کاربری پرداخت. همچنین می توان تصاویر دریافتی از دوربین را با سرعت بالا، روی نمایشگر مشاهده نمود. جهت راه اندازی و کار با این نمایشگر، کتابخانه توسعه یافته است. بدین ترتب به سادگی می توانیم این نمایشگر را راه اندازی کنیم. در این آموزش ابتدا به معرفی و بررسی نمایشگر ST7789 پرداختیم. سپس در ادامه توابع کلیدی و کاربردی این کتابخانه را مشاهده نمودیم. در نهایت با ارایه دو مثال، نحوه استفاده از توابع در برنامه های کاربردی را مشاهده کردیم.
چنانچه هرگونه ابهامی در مطالب درج شده وجود دارد، می توانید با ثبت نظر در انتهای همین پست سوال خود را بپرسید. تاکنون در دیجی اسپارک بیش از ۲۶ هزار سوال و پاسخ ثبت شده است؛ پس نظرات بی جواب نمی مانند! همچنین اگر ایراد و یا اشکالی در مطالب درج شده وجود دارد، لطفا آن را با ثبت نظر، مطرح کنید. همچنین اگر مشکلی در کدها وجود داشته و یا اجرا نمی شوند، مورد را حتما در انتهای همین آموزش مطرح نمایید. نظرات شما برای ما بسیار ارزشمند هسنند!!