Isi kandungan:
- Langkah 1: Sumber yang Digunakan
- Langkah 2: Paparan
- Langkah 3: Perpustakaan SSD1306
- Langkah 4: Fail Animasi dan XBM
- Langkah 5: Keluar Fail XBM
- Langkah 6: Kod Sumber
- Langkah 7: Melakukan Peningkatan Kod
- Langkah 8: Fail
Video: Pengenalan Paparan OLED ESP32 Lora: 8 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
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
1 Heltec WiFi LoRa 32
Papan Protob
Langkah 2: 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
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
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
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
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:
INO
Disyorkan:
Suhu Paparan Arduino pada Paparan LED TM1637: 7 Langkah
Suhu Paparan Arduino pada Paparan LED TM1637: Dalam tutorial ini kita akan belajar bagaimana menampilkan suhu menggunakan sensor LED Display TM1637 dan DHT11 dan Visuino. Tonton video
Waktu Paparan Arduino pada Paparan LED TM1637 Menggunakan RTC DS1307: 8 Langkah
Waktu Paparan Arduino pada Paparan LED TM1637 Menggunakan RTC DS1307: Dalam tutorial ini kita akan belajar bagaimana memaparkan waktu menggunakan modul RTC DS1307 dan Paparan LED TM1637 dan Visuino. Tonton video
Paparan LCD I2C / IIC - Gunakan LCD SPI ke Paparan LCD I2C Menggunakan Modul SPI hingga IIC Dengan Arduino: 5 Langkah
Paparan LCD I2C / IIC | Gunakan LCD SPI ke Paparan LCD I2C Menggunakan Modul SPI hingga IIC Dengan Arduino: Hai kawan kerana SPI LCD 1602 biasa mempunyai terlalu banyak wayar untuk disambungkan sehingga sangat sukar untuk menghubungkannya dengan arduino tetapi ada satu modul yang tersedia di pasaran yang boleh menukar paparan SPI menjadi paparan IIC jadi anda hanya perlu menyambungkan 4 wayar
Paparan LCD I2C / IIC - Tukarkan SPI LCD ke Paparan LCD I2C: 5 Langkah
Paparan LCD I2C / IIC | Tukar LCD SPI ke Paparan LCD I2C: menggunakan paparan spi lcd memerlukan terlalu banyak sambungan untuk dilakukan yang sangat sukar untuk dilakukan. Saya menjumpai modul yang dapat menukar lcd i2c ke lcd jadi mari kita mulakan
TOD: Pengenalan Diod Matrix ROM (Paparan 7 segmen): 7 Langkah
TOD: Pengenalan Diod Matrix ROM (Paparan 7 segmen): Ton Diod Satu siri instruksional baru yang akan menggunakan banyak dan banyak diod. Tidak ada IC yang kuat, satu-satunya konduktor separa adalah diod dan transistor. Satu-satunya komponen pasif yang kuat adalah kapasitor, perintang, suis, induktor, dan