فهرست مطالب:

معرفی ESP32 لورا OLED صفحه نمایش: 8 مرحله
معرفی ESP32 لورا OLED صفحه نمایش: 8 مرحله

تصویری: معرفی ESP32 لورا OLED صفحه نمایش: 8 مرحله

تصویری: معرفی ESP32 لورا OLED صفحه نمایش: 8 مرحله
تصویری: پکیج آموزشی جامع و تخصصی ماژول های LoRa 2024, جولای
Anonim
Image
Image
ESP32 صفحه نمایش OLED لورا
ESP32 صفحه نمایش OLED لورا

این یک ویدیوی دیگر در مورد معرفی ESP32 LoRa است. این بار ، ما به طور خاص در مورد یک صفحه نمایش گرافیکی (با ابعاد 128x64 پیکسل) صحبت خواهیم کرد. ما از کتابخانه SSD1306 برای نمایش اطلاعات روی این صفحه نمایش OLED و ارائه نمونه ای از انیمیشن با استفاده از تصاویر XBM استفاده خواهیم کرد.

مرحله 1: منابع مورد استفاده

منابع مورد استفاده
منابع مورد استفاده

1 Heltec WiFi LoRa 32

پروتو بورد

مرحله 2: صفحه نمایش

نمایشگر
نمایشگر
نمایشگر
نمایشگر

صفحه نمایش استفاده شده در صفحه توسعه از نوع OLED با اندازه 0.96 اینچ است.

دارای ابعاد 128x64 و تک رنگ است.

دارای ارتباط I2C است و از طریق 3 سیم به ESP32 متصل می شود:

SDA در GPIO4 (برای داده)

SCL در GPIO15 (برای ساعت)

RST در GPIO16 (برای بازنشانی و شروع نمایش)

مرحله 3: کتابخانه SSD1306

کتابخانه SSD1306
کتابخانه SSD1306

این را می توان به همراه مجموعه کتابخانه های ارائه شده توسط Heltec-Aaron-Lee یافت.

عملکردهای متعددی برای نوشتن رشته ، ترسیم خط ، مستطیل ، دایره و نمایش تصاویر دارد.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

مرحله 4: فایلهای متحرک و XBM

فایلهای متحرک و XBM
فایلهای متحرک و XBM
فایلهای متحرک و XBM
فایلهای متحرک و XBM
فایلهای متحرک و XBM
فایلهای متحرک و XBM

ما از تابع drawXbm کتابخانه برای نمایش یک انیمیشن استفاده می کنیم.

قالب تصویر XBM از مجموعه ای از کاراکترها تشکیل شده است که در آن هر عنصر به صورت متنی مجموعه ای از پیکسل های تک رنگ (هر کدام 1 بیت) را از طریق مقدار هگزادسیمال نشان می دهد. این معادل یک بایت است.

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

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

برای ساختن انیمیشن ، به تصاویری نیاز داریم که فریم ها را تشکیل می دهند.

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

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

تصویر اصلی - 960x707 پیکسل - فرمت PNG

مرحله بعدی این است که آن را تک رنگ کنید و آن را به عنوان یک نقشه بیت تک رنگ ذخیره کنید.

سپس ، اندازه آن را به اندازه سازگار با صفحه نمایش تغییر می دهیم.

به واحدهای اندازه گیری توجه ویژه ای داشته باشید. در این حالت ، ما تصویر را طوری تنظیم کردیم که کل ارتفاع نمایشگر (عمودی = 64 پیکسل) را اشغال کند.

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

اکنون ، ما باید فایل های BMP را به فرمت XBM تبدیل کنیم.

چندین گزینه نرم افزاری وجود دارد که می توانند این تبدیل را انجام دهند. ما همچنین GIMP را به عنوان گزینه ویرایشگر انتخاب کردیم.

در مثال ما ، ما از PaintBrush برای تولید و ویرایش فایل ها استفاده کردیم. با این حال ، هر یک از این مراحل می تواند در Gimp (یا هر ویرایشگر دیگر) انجام شود.

برای تبدیل ، ابتدا فایل را باز می کنیم.

با باز بودن تصویر ، می توانیم File => Export as… را انتخاب کنیم.

در پنجره Export Image ، باید پسوند فایل مقصد را برای XBM تغییر دهیم. Gimp مسئول تشخیص قالب مورد نظر و ارائه گزینه های بیشتر خواهد بود…

هنگام صادرات ، Gimp گزینه های دیگری را ارائه می دهد. ما می توانیم مقادیر پیش فرض را ترک کنیم.

پس از تبدیل همه فایل ها ، چهار فایل XBM خواهیم داشت ، یکی برای هر فریم.

حالا بیایید آنها را در پوشه کد منبع کپی کرده و نام آنها را با تغییر پسوند آنها به.h تغییر دهیم.

مرحله 5: خروج از فایل های XBM

خروج از فایل های XBM
خروج از فایل های XBM

ما می توانیم فایلهای XBM را در هر ویرایشگر متنی باز کنیم ، جایی که ماتریس تصویر و اطلاعات اندازه تصویر را که قبلاً تعریف شده است مشاهده می کنیم.

مرحله 6: کد منبع

کد منبع: بیانیه ها

ما کتابخانه های لازم و همچنین فایل های تصویری را شامل می شود. ما موقعیت های تصویر و فاصله انتقال را تعریف می کنیم. ما همچنین پین های OLED متصل به ESP32 را نشان می دهیم. در نهایت ، ما شیء Display را ایجاد و تنظیم می کنیم.

// شامل کتابخانه ای ضروری #شامل #شامل "SSD1306.h" // definições de posição da imagem e intervalo de transição #define posX 21 #define posY 0 #تعریف intervalo 500 // Pinos do OLED estão conctados ao ESP32: I2C // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLE - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // O RST deve ser controlado por software SSD1306 display (0x3c، SDA، SCL، RST)؛ // نمایش Cria e ajusta o Objeto

کد منبع: راه اندازی ()

صفحه را اولیه کنید و صفحه را به صورت عمودی وارونه کنید. اقدام اختیاری است.

void setup () {display.init ()؛ // inicia o display display.flipScreenVertically ()؛ // inverte verticalmente a tela (اختیاری)}

کد منبع: حلقه ()

اولین کاری که باید انجام دهید پاک کردن صفحه است. ما فریم 1 را با استفاده از موقعیت های اولیه posX و posY در بافر بارگذاری می کنیم. اندازه تصویر را با frame1_width و frame1_height و نام آرایه ای که حاوی بیت های تصویر است اطلاع می دهیم. ما بافر را روی صفحه نمایش می دهیم و قبل از نمایش فریم بعدی منتظر فاصله هستیم.

void loop () {display.clear ()؛ // limpa tela // carrega para o buffer o frame 1 // usando as posições iniciais posX e posY // informa o tamanho da imagem com frame1_width e frame1_height // informationa nome da matriz que cong os bits da imagem، no caso frame1_bits display.drawXbm (posX ، posY ، frame1_width ، frame1_height ، frame1_bits) ؛ // mostra o buffer no display.display ()؛ // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo)؛

ما این فرایند را برای تمام فریم های دیگر تکرار می کنیم.

// repete o processo para todos os outros frames frames.clear ()؛ display.drawXbm (posX ، posY ، frame2_width ، frame2_height ، frame2_bits) ؛ display.display ()؛ تاخیر (intervalo) ؛ display.clear ()؛ display.drawXbm (posX ، posY ، frame3_width ، frame3_height ، frame3_bits) ؛ display.display ()؛ تاخیر (intervalo) ؛ display.clear ()؛ display.drawXbm (posX ، posY ، frame4_width ، frame4_height ، frame4_bits) ؛ display.display ()؛ تاخیر (intervalo) ؛ }

مرحله 7: انجام UpLoad of Code

انجام UpLoad of Code
انجام UpLoad of Code
انجام UpLoad of Code
انجام UpLoad of Code
انجام UpLoad of Code
انجام UpLoad of Code

با باز بودن IDE ، فایل را با کد منبع با دوبار کلیک روی فایل.ino یا رفتن به منوی File باز کنید.

با اتصال Heltec به USB ، منو را انتخاب کنید Tools => Card: "Heltec_WIFI_LoRa_32"

هنوز در منوی Tools ، پورت COM را که Heltec به آن متصل است انتخاب کنید.

روی دکمه UPLOAD کلیک کنید…

… و منتظر نتیجه باشید.

مرحله 8: فایل ها

دانلود فایلها:

PDF

من نه

توصیه شده: