Мазмұны:

Кіріспе ESP32 Lora OLED дисплейі: 8 қадам
Кіріспе ESP32 Lora OLED дисплейі: 8 қадам
Anonim
Image
Image
Кіріспе ESP32 Lora OLED дисплейі
Кіріспе ESP32 Lora OLED дисплейі

Бұл ESP32 LoRa -ға кіріспе туралы тағы бір бейне. Бұл жолы біз графикалық дисплей туралы айтатын боламыз (128x64 пиксель). Біз SSD1306 кітапханасын осы OLED дисплейінде ақпаратты көрсету үшін қолданамыз және XBM кескіндерін қолдана отырып анимация үлгісін ұсынамыз.

1 -қадам: Қолданылған ресурстар

Қолданылған ресурстар
Қолданылған ресурстар

1 Heltec WiFi LoRa 32

Protoboard

2 -қадам: Дисплей

Дисплей
Дисплей
Дисплей
Дисплей

Әзірлеу тақтасында қолданылатын дисплей - 0,96 дюймдік OLED.

Оның өлшемі 128х64 және монохромды.

Ол I2C байланысына ие және ESP32 -ге 3 сым арқылы қосылады:

GPIO4 бойынша SDA (деректер үшін)

GPIO15 бойынша SCL (сағат үшін)

GPIO16 бойынша RST (қалпына келтіру және дисплейдің басталуы үшін)

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 пиксель --p.webp

Келесі қадам - монохромды нүктелік кескін ретінде сақтау арқылы оны монохромды ету.

Содан кейін біз оны дисплейге сәйкес келетін өлшемге өзгертеміз.

Өлшем бірліктеріне ерекше назар аударыңыз. Бұл жағдайда біз кескінді дисплейдің бүкіл биіктігін алатындай етіп реттедік (тік = 64 пиксель).

Кескін дұрыс өлшемде болса, біз кадрларды қалыптастыру үшін оны өңдейміз. Мұнда біз сигнал деңгейінің әр доғасын өшіреміз және оларды сәйкес кадрлар ретінде сақтаймыз.

Енді біз BMP файлдарын XBM форматына түрлендіруіміз керек.

Бұл түрлендіруді жасай алатын бірнеше бағдарламалық жасақтама бар. Біз GIMP -ді редактор ретінде таңдадық.

Біздің мысалда біз файлдарды құру және өңдеу үшін PaintBrush қолдандық. Алайда, бұл процестердің әрқайсысы Gimp -те (немесе кез келген басқа редакторда) жасалуы мүмкін еді.

Түрлендіру үшін алдымен файлды ашамыз.

Сурет ашық болғанда, біз Файл => Экспорттауды таңдай аламыз …

Кескінді экспорттау терезесінде біз XBM үшін тағайындалған файл кеңейтімін өзгертуіміз керек. Gimp қалаған форматты анықтауға және қосымша опцияларды ұсынуға жауапты болады …

Экспорттау кезінде Gimp басқа опцияларды ұсынады. Біз әдепкі мәндерді қалдыра аламыз.

Барлық файлдарды түрлендіргеннен кейін бізде әрбір кадрға бір XBM форматындағы төрт файл болады.

Енді оларды бастапқы код қалтасына көшіріп, кеңейтімдерін.h деп өзгерту арқылы олардың атын өзгертейік.

5 -қадам: XBM файлдарынан шығу

XBM файлдарынан шығу
XBM файлдарынан шығу

Біз XBM файлдарын кез келген мәтіндік редакторда аша аламыз, онда біз бұрыннан анықталған сурет матрицасы мен сурет өлшемі туралы ақпаратты көреміз.

6 -қадам: бастапқы код

Бастапқы код: мәлімдемелер

Біз қажетті кітапханаларды, сонымен қатар сурет файлдарын қосамыз. Біз кескіннің орнын және ауысу аралығын анықтаймыз. Біз сондай -ақ ESP32 қосылған OLED түйреуіштерін көрсетеміз. Соңында біз Display объектісін құрамыз және реттейміз.

// Incluindo as bibliotecas needárias #include #include «SSD1306.h» // Incluindo os arquivos de imagem #include «frame1.h» #include «frame2.h» #include «frame3.h» #include «frame4.h» // анықтамалар posXão da imagem e intervalo de transição #define posX 21 #define posY 0 #fine interval 500 - GPIO16 #SDA 4 анықтаңыз #SCL 15 анықтаңыз #RST 16 анықтаңыз // SSD1306 дисплейінің бағдарламалық жасақтамасының бақылауы (0x3c, SDA, SCL, RST); // Объективті дисплей

Бастапқы код: Орнату ()

Дисплейді инициализациялаңыз және экранды тігінен төңкеріңіз. Әрекет міндетті емес.

void setup () {display.init (); // inicia o display display.flipScreenVertically (); // телевидениеге инвертті емес (міндетті емес)}

Бастапқы код: Loop ()

Циклда жасалатын бірінші нәрсе - экранды тазарту. 1 кадрды буферге posX және posY бастапқы позициялары арқылы жүктейміз. Кескіннің өлшемін frame1_width және frame1_height арқылы және кескіннің биттерін қамтитын массивтің атауымен хабарлаймыз. Біз дисплейде буферді көрсетеміз және келесі кадрды көрсетпес бұрын интервал күтеміз.

void loop () {display.clear (); // лимфа тела // каррега пара -буфер немесе кадр 1 // қолданба posX e posY // ақпараттың кеңістігі1_width e frame1_height // ақпарат o nome da matriz que contem os bits da imagem, caso frame1_bits жоқ display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o буферінде дисплей жоқ.display (); // жақтауды кешіктіру (интервал);

Біз барлық басқа кадрлар үшін процедураны қайталаймыз.

// display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); кідіріс (интервал); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); кідіріс (интервал); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); кідіріс (интервал); }

7 -қадам: кодтың жүктелуін жасау

Кодтың жүктелуін жасау
Кодтың жүктелуін жасау
Кодтың жүктелуін жасау
Кодтың жүктелуін жасау
Кодтың жүктелуін жасау
Кодтың жүктелуін жасау

IDE ашық болғанда,.ino файлын екі рет басу немесе Файл мәзіріне өту арқылы бастапқы коды бар файлды ашыңыз.

Heltec USB -ге қосылған кезде Tools => Card мәзірін таңдаңыз: «Heltec_WIFI_LoRa_32»

Құралдар мәзірінде Heltec қосылған COM портын таңдаңыз.

ЖҮКТЕУ түймесін басыңыз …

… Және қорытындысын күтіңіз.

8 -қадам: файлдар

Файлдарды жүктеңіз:

PDF

МЕН ЖОҚ

Ұсынылған: