Isi kandungan:

Pengenalan Paparan OLED ESP32 Lora: 8 Langkah
Pengenalan Paparan OLED ESP32 Lora: 8 Langkah

Video: Pengenalan Paparan OLED ESP32 Lora: 8 Langkah

Video: Pengenalan Paparan OLED ESP32 Lora: 8 Langkah
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Julai
Anonim
Image
Image
Pengenalan Paparan OLED ESP32 Lora
Pengenalan Paparan OLED ESP32 Lora

Ini adalah video lain mengenai Pengenalan LoRa ESP32. Kali ini, kita akan bercakap secara khusus mengenai paparan grafik (128x64 piksel). Kami akan menggunakan perpustakaan SSD1306 untuk memaparkan maklumat mengenai paparan OLED ini dan menyajikan contoh animasi menggunakan gambar XBM.

Langkah 1: Sumber yang Digunakan

Sumber Yang Digunakan
Sumber Yang Digunakan

1 Heltec WiFi LoRa 32

Papan Protob

Langkah 2: Paparan

Paparan
Paparan
Paparan
Paparan

Paparan yang digunakan pada papan pengembangan berukuran OLED 0,96 inci.

Ia mempunyai 128x64 dan monokrom.

Ia mempunyai komunikasi I2C dan disambungkan ke ESP32 melalui 3 wayar:

SDA pada GPIO4 (untuk data)

SCL pada GPIO15 (untuk jam)

RST pada GPIO16 (untuk tetapan semula dan permulaan paparan)

Langkah 3: Perpustakaan SSD1306

Perpustakaan SSD1306
Perpustakaan SSD1306

Ini dapat dijumpai bersama dengan set perpustakaan yang disediakan oleh Heltec-Aaron-Lee.

Ia mempunyai beberapa fungsi untuk menulis rentetan, melukis garis, segi empat tepat, bulatan, dan menampilkan gambar.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

Langkah 4: Fail Animasi dan XBM

Fail Animasi dan XBM
Fail Animasi dan XBM
Fail Animasi dan XBM
Fail Animasi dan XBM
Fail Animasi dan XBM
Fail Animasi dan XBM

Kami akan menggunakan fungsi drawXbm perpustakaan untuk memaparkan animasi.

Format gambar XBM terdiri daripada pelbagai watak di mana setiap elemen secara teks mewakili satu set piksel monokrom (masing-masing 1 bit), melalui nilai heksadesimal. Ini bersamaan dengan satu bait.

Oleh kerana banyak watak digunakan untuk mewakili satu bait, fail ini cenderung lebih besar daripada format yang digunakan sekarang. Kelebihannya ialah mereka dapat disusun secara langsung tanpa memerlukan rawatan terlebih dahulu.

Selain array, dua tetapan yang menentukan ukuran gambar disertakan.

Untuk membina animasi, kita memerlukan gambar yang akan membentuk bingkai.

Kita boleh menggunakan perisian penyuntingan gambar untuk bekerja. Satu-satunya langkah berjaga-jaga yang harus kita lakukan adalah memastikan ukurannya tetap sesuai dengan paparan dan menggunakan fail monokrom.

Untuk menghasilkan fail, kita dapat melukisnya atau mengimport gambar. Di sini, kami memutuskan untuk mengedit gambar warna menggunakan PaintBrush, dan kami menggambar setiap bingkai

Gambar asal - 960x707 piksel - format PNG

Langkah seterusnya adalah menjadikannya monokrom dengan menyimpannya sebagai bitmap monokrom.

Kemudian, kami mengubah saiznya ke ukuran yang sesuai dengan paparan.

Perhatikan unit ukuran. Dalam kes ini, kami menyesuaikan gambar sehingga memenuhi keseluruhan ketinggian paparan (menegak = 64 piksel).

Dengan gambar dalam ukuran yang betul, kami akan menyuntingnya untuk membentuk bingkai. Di sini, kami memadamkan setiap arka tahap isyarat dan menyimpannya sebagai bingkai yang sesuai.

Sekarang, kita harus menukar fail BMP ke format XBM.

Terdapat beberapa pilihan perisian yang boleh melakukan penukaran ini. Kami juga memilih GIMP sebagai pilihan penyunting.

Dalam contoh kami, kami menggunakan PaintBrush untuk menghasilkan dan menyunting fail. Namun, setiap proses ini dapat dilakukan di Gimp (atau editor lain).

Untuk menukar, pertama kami membuka fail.

Dengan gambar terbuka, kita dapat memilih File => Eksport sebagai…

Di tetingkap Eksport Imej, kita mesti mengubah sambungan fail tujuan untuk XBM. Gimp akan bertanggungjawab untuk mengenal pasti format yang diinginkan dan memberikan lebih banyak pilihan…

Semasa mengeksport, Gimp akan memberikan pilihan lain. Kita boleh meninggalkan nilai lalai.

Setelah menukar semua fail, kami akan mempunyai empat fail XBM, satu untuk setiap bingkai.

Sekarang mari kita salin ke folder kod sumber dan namakan semula dengan menukar pelanjutannya ke.h.

Langkah 5: Keluar Fail XBM

Keluar Fail XBM
Keluar Fail XBM

Kita boleh membuka fail XBM di mana-mana editor teks, di mana kita akan melihat maklumat matriks gambar dan ukuran gambar yang sudah ditentukan.

Langkah 6: Kod Sumber

Kod Sumber: Penyataan

Kami akan memasukkan perpustakaan yang diperlukan, serta fail gambar. Kami menentukan kedudukan gambar dan selang peralihan. Kami juga menunjukkan pin OLED yang disambungkan ke ESP32. Akhirnya, kami membuat dan menyesuaikan objek Paparan.

// Incluindo sebagai bibliotecas requárias # include #include "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definições de posição da imagem e intervalo de transição #define posX 21 #define posY 0 #define interalo 500 // Pinos do OLED estão conctados ao ESP32: I2C // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // O RST deve ser controlado por perisian paparan SSD1306 (0x3c, SDA, SCL, RST); // Cria e ajusta o Paparan Objeto

Kod Sumber: Persediaan ()

Memulakan paparan dan membalikkan layar secara menegak. Tindakan adalah pilihan.

batal persediaan () {display.init (); // inicia o display display.flipScreenVertically (); // inverte verticalmente a tela (opsional)}

Kod Sumber: Gelung ()

Perkara pertama yang perlu dilakukan adalah membersihkan skrin. Kami memuat bingkai 1 ke dalam penyangga menggunakan posisi awal posX dan posY. Kami memaklumkan ukuran gambar dengan frame1_width dan frame1_height, dan nama array yang mengandungi bit gambar. Kami menunjukkan penyangga pada paparan dan menunggu selang sebelum menunjukkan bingkai seterusnya.

gelung kosong () {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 // informa o nome da matriz que contem os bits da imagem, no caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o buffer no display display.display (); // aguarda um interval antes de mostrar o próximo frame delay (intervalo);

Kami mengulangi proses untuk semua bingkai lain.

// repete o processo para todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); paparan.display (); kelewatan (interalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); paparan.display (); kelewatan (interalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); paparan.display (); kelewatan (interalo); }

Langkah 7: Melakukan Peningkatan Kod

Melakukan Peningkatan Kod
Melakukan Peningkatan Kod
Melakukan Peningkatan Kod
Melakukan Peningkatan Kod
Melakukan Peningkatan Kod
Melakukan Peningkatan Kod

Dengan IDE terbuka, buka fail dengan kod sumber dengan mengklik dua kali fail.ino, atau dengan pergi ke menu Fail.

Dengan Heltec disambungkan ke USB, pilih menu Tools => Card: "Heltec_WIFI_LoRa_32"

Masih di menu Tools, pilih port COM tempat Heltec disambungkan.

Klik butang UPLOAD…

… Dan tunggu kesimpulannya.

Langkah 8: Fail

Muat turun fail:

PDF

INO

Disyorkan: