Isi kandungan:

Cara Menambah Paparan E-Ink ke Projek Anda: 12 Langkah (dengan Gambar)
Cara Menambah Paparan E-Ink ke Projek Anda: 12 Langkah (dengan Gambar)

Video: Cara Menambah Paparan E-Ink ke Projek Anda: 12 Langkah (dengan Gambar)

Video: Cara Menambah Paparan E-Ink ke Projek Anda: 12 Langkah (dengan Gambar)
Video: Cara Mudah membuat Hyperlink pada PowerPoint 2024, November
Anonim
Cara Menambah Paparan E-Ink ke Projek Anda
Cara Menambah Paparan E-Ink ke Projek Anda
Cara Menambah Paparan E-Ink ke Projek Anda
Cara Menambah Paparan E-Ink ke Projek Anda

Banyak projek melibatkan pemantauan beberapa jenis data, seperti data lingkungan, yang sering menggunakan Arduino untuk dikendalikan. Dalam kes saya, saya ingin memantau tahap garam di pelembut air saya. Anda mungkin ingin mengakses data melalui rangkaian rumah anda, tetapi sama juga anda ingin memaparkannya di mana ia diukur. Atau anda boleh mempunyai paparan yang selalu disambungkan dari jarak jauh di lokasi yang lebih mudah.

Kini terdapat beberapa jenis paparan yang boleh anda gunakan, semuanya cukup murah, tetapi mempunyai kelebihan dan kekurangan yang berbeza:

  • Paparan LCD alfanumerik adalah yang paling murah tetapi juga yang paling terhad.
  • Paparan OLED boleh memaparkan grafik tetapi yang murah sangat kecil. Foto kedua menunjukkan paparan OLED 128x64 piksel di sebelah E-Ink.
  • Paparan E-Ink (atau E-Paper) agak lebih besar dan lebih mudah dibaca, dan mempunyai kelebihan bahawa paparan dapat dipertahankan walaupun dimatikan! Tetapi memerlukan beberapa saat untuk menggambar semula paparan.

Paparan E-Ink kelihatan sesuai untuk aplikasi saya kerana saya dapat memprogram Arduino untuk bangun setiap beberapa jam, membaca dan memaparkannya sebelum kembali tidur. Oleh itu, tidak perlu lagi mengambil masa beberapa saat untuk melukis semula paparan.

Dalam aplikasi seperti itu, penggunaan arus semasa dapat diatur sedemikian rendah sehingga bateri pengesan asap litium 9V dapat bertahan selama 10 tahun! Terlebih lagi, beberapa paparan ini akan memaparkan tiga warna: putih, hitam, dan merah (atau kuning). Sangat sesuai jika anda ingin memaparkan amaran atau amaran dengan warna merah.

Bekalan

Paparan E-Ink termurah yang saya dapati dijual oleh BuyDisplay, juga tersedia dari banyak penjual eBay. Sayangnya dokumentasi masih banyak yang dikehendaki, jadi saya terpaksa menulis tutorial - baca terus!

Bergantung pada keperluan dan anggaran anda, anda boleh memilih pelbagai saiz:

  • 1.54 "(152x152 = 23, 104 piksel)
  • 2.13 "(212x104 = 22, 048 piksel)
  • 2.6 "(296x152 = 44, 992 piksel)
  • 2.7 "(176x264 = 46, 464 piksel)
  • 2.9 "(296x128 = 37, 888 piksel)
  • 4.2 "(400x300 = 120, 000 piksel)
  • 5.83 "(640x480 = 307, 200 piksel)
  • 7.5 "(880x528 = 464, 640 piksel)

(Jangkauan telah meningkat sejak kali terakhir saya melihat jadi mungkin telah berkembang lebih jauh pada saat anda membaca ini.)

Ia boleh didapati sama ada 2 warna (hitam / putih) atau 3 warna (hitam / merah / putih atau hitam / kuning / putih). Instructable ini menganggap anda menggunakan warna merah, tetapi jika anda telah memilih versi kuning, cukup baca "kuning" untuk "merah" keseluruhannya.

Pilih versi SPI (4-wayar). Saya menggunakan model 1.54 , ukurannya sangat bagus.

Langkah 1: Menyambungkan Paparan Anda

Menyambungkan Paparan Anda
Menyambungkan Paparan Anda

Paparan ini dilengkapi dengan tajuk 2x4 pin. Nombor pin dilabel dengan jelas, pin 7, 5, 3 dan 1 (dari kiri ke kanan) di sepanjang baris atas dan 8, 6, 4, 2 di sepanjang bahagian bawah.

Paparan anda mungkin dilengkapi dengan kabel patch 8-arah, yang memudahkan sambungan. (Kabel tambalan saya mempunyai 2 wayar merah dan 2 coklat. Mereka tidak boleh ditukar ganti!

Jadual berikut memberikan sambungan, yang berlaku untuk kebanyakan jenis Arduino (termasuk Uno, Pro Mini, Pro Micro dan Nano).

Modul E-ink Arduino
Sematkan Nama Sematkan Nama
1 VDD Vcc 3.3 / 5V
2 VSS Gnd Gnd
3 Data Bersiri Dalam 11 MOSI
4 Jam Bersiri Di 13 SCK
5 / Pilih Cip 10
6 Data / Instr 9
7 Tetapkan semula 8
8 Peranti Sibuk 7

Langkah 2: Muat turun Perisian yang Disediakan

Anda boleh menggunakan perisian yang disediakan seperti yang dijelaskan dalam langkah ini, atau anda boleh menggunakan perpustakaan yang disempurnakan saya pada langkah seterusnya tetapi satu.

Cari peranti anda di BuyDisplay.com. Di bahagian bawah halaman anda akan menemui fail ZIP muat turun "Perpustakaan Arduino dan Contoh untuk SPI 4-wayar". Klik ini untuk memuat turun dan buka di Windows Explorer.

Penjelajah Windows akan menunjukkan ini sebagai mengandungi folder tingkat atas tunggal "Perpustakaan-Contoh_ER-EPM0154-1R". (Namanya akan sedikit berbeza jika nama anda bukan model 1.54 ".)

Salin folder tingkat atas ini ke dalam folder perpustakaan Arduino anda. Klik kanan untuk menamakan semula folder, dan hapus "Perpustakaan-Contoh_" dari namanya.

(Untuk mencari folder perpustakaan Arduino anda, di Arduino IDE, klik Fail … Preferences, dan perhatikan Lokasi Buku Lakaran. Navigasi ke ini, dan anda akan menemui folder "perpustakaan" Arduino di antara folder lakaran anda.)

Buka folder ini dan buka folder "Perpustakaan" di dalamnya. Seret dan lepaskan semua fail dalam folder ini ke folder induk satu tingkat ke atas ("ER-EPM0154-1R"). Padam folder (sekarang kosong) "Perpustakaan".

Anda kini telah memasang fail dan sketsa contoh sebagai perpustakaan Arduino. Perhatikan bahawa jika paparan anda bukan yang berukuran 1.54 , satu-satunya perbezaan adalah dua baris dalam ER-ERM * -1.h yang menentukan Luas dan TINGGI.

Di Arduino IDE, klik pada File … Exampes dan tatal ke bawah ke ER-EPM0154-1R untuk sketsa demo, yang seharusnya dapat anda susun dan jalankan sebaik sahaja anda menyambungkan paparan anda ke Arduino anda.

Langkah 3: Menjalankan Demo

Menjalankan Demo
Menjalankan Demo
Menjalankan Demo
Menjalankan Demo

Di Arduino IDE, klik Fail… Contoh… ER-EPM0154-1R.

Sambungkan Arduino ke komputer anda dengan kabel USB, atau seperti biasa.

Di bawah Alat, tetapkan Papan, Pemproses dan Pelabuhan.

Di bawah Sketsa, klik Muat naik.

Akan ada sedikit kelewatan setelah muat naik selesai, dan sepuluh kelewatan akan berkelip beberapa kali kerana melukis gambar pertama. Tonton semasa melalui demo.

Langkah 4: Menggunakan Perpustakaan yang Disempurnakan

Anda boleh memuat turun perpustakaan saya yang dipertingkatkan dari github di

N. B. Saya mempunyai keyakinan yang tinggi bahawa perpustakaan saya akan berfungsi dengan paparan yang bersesuaian dengan saiz apa pun, tetapi sebenarnya saya telah mengujinya dengan model 1.54 . Sekiranya anda menggunakan yang lain, beritahu saya di komen pada akhir Instructable ini, untuk mengesahkan bahawa ia berfungsi. Tetapi jika tidak, saya akan melakukan yang terbaik untuk membuat anda pergi.

Muat turun dan simpan fail zip. Di Arduino IDE, klik Sketsa … Sertakan Perpustakaan … Tambahkan. ZIP Library dan pilih fail zip yang disimpan.

Perpustakaan saya mengandungi beberapa tambahan kecil:

  • Ia membolehkan nombor pin Arduino berbeza digunakan (kecuali MOSI).
  • Perpustakaan yang sama boleh digunakan untuk semua ukuran peranti.
  • Isi teduhan 50% baru, dan isian berbintik (set piksel rawak) disediakan.

Perpustakaan dilengkapi sebagai fail Arduino yang dimampatkan (zip) standard. Muat turun ke folder Muat turun anda (atau di mana anda suka), dan di Arduino IDE, klik Sketsa … Sertakan Perpustakaan … Tambahkan Perpustakaan ZIP.

Di bawah Contoh, anda sekarang akan menemui E-ink_ER-EPM. Terdapat 3 contoh lakaran:

  • ER_EPM154-1R-Test: Demonstrasi yang disediakan oleh vendor asal
  • E-ink_demo: Sketsa dikembangkan pada langkah seterusnya
  • E-ink_rotate: Demonstrasi putaran gambar.

Langkah 5: Memprogramnya Sendiri

Sayangnya tidak ada dokumentasi dengan kod yang diberikan oleh vendor, dan juga kod contoh yang dikomentari dengan baik. Ini menjadikannya lebih sukar daripada yang seharusnya digunakan, dan tujuan utama Instruksional ini adalah meletakkan yang benar.

Konsep asas

Oleh kerana Arduino terhad dalam jumlah RAM yang tersedia, perpustakaan membolehkan anda melukis atau menulis dalam bahagian kecil skrin pada satu masa, menaikkannya secara individu ke memori intermal peranti. Hanya setelah anda memuat naik semua bahagian yang anda perlukan, anda akan memaklumkannya untuk memaparkan apa yang ada dalam ingatannya.

Bahagian skrin ini dikenali sebagai objek "Cat". Anda hanya memerlukan satu, dan untuk setiap bahagian skrin anda menentukan ketinggian, lebar dan putarannya. Apabila selesai, anda memuat naiknya, menentukan kedudukan di skrin untuk memuatkannya dan sama ada hitam dan putih atau merah dan putih.

Sudut kiri atas skrin mempunyai koordinat mendatar (x) dan menegak (y) (0, 0), kiri bawah adalah (0, 151) dan kanan atas adalah (151, 0).

Permulaan

Buka sketsa E-ink_demo di Arduino IDE dan ikuti ketika saya menerangkan cara menggunakan perpustakaan.

Di bahagian atas lakaran anda akan melihat baris berikut, yang selalu diperlukan:

#include <SPI.h #include "ER-ERM0154-1.h" #include "imagedata.h" #include "epdpaint.h" #define WARNA 0 #define UNCOLORED 1 Epd epd;

Garis #include menarik di perpustakaan yang diperlukan. SPI.h adalah perpustakaan Arduino standard tetapi yang lain menjadi sebahagian daripada pustaka e-ink.

Kami menentukan nama untuk piksel yang tidak berwarna (putih) dan berwarna (hitam atau merah). (Catatan untuk rakan-rakan Eropah: ejaan WARNA Amerika digunakan.)

The Epd epd; garis membuat objek peranti kertas elektronik, yang akan kami paparkan. Ini mesti berada di sini pada awal lakaran untuk menyediakannya dengan fungsi setup () dan loop ().

Sekiranya anda mempunyai paparan saiz yang berbeza, anda boleh mengganti garisan EPD dengan:

Epd epd (WIDTH, HEIGHT);

(sebelum mendefinisikan WIDTH dan HEIGHT dalam pernyataan #define.)

Dengan cara yang sama anda boleh menentukan nombor pin bukan lalai dengan:

Epd epd (WIDTH, HEIGHT, BUSY_PIN, RESET_PIN, DC_PIN, CS_PIN);

Dalam persediaan () kita perlu menginisialisasi perangkat seperti berikut:

Serial.begin (9600)

if (epd. Init ()! = 0) {Serial.print ("e-Paper init gagal"); kembali; }

(Sebenarnya, epd. Init () tidak pernah mengembalikan kesalahan, tetapi peningkatan masa depan mungkin mengesan ketiadaan paparan, atau yang tidak berfungsi.)

Langkah 6: Menulis Teks

Menulis Teks
Menulis Teks

Dalam E-ink_demo, alihkan perhatian anda ke gelung (). Pertama, mari kosongkan paparan:

epd. ClearFrame ()

(Ini sebenarnya tidak diperlukan jika anda hendak memaparkan gambar anda sendiri.)

Sebelum kita dapat melukis sesuatu (sama ada teks atau grafik) kita perlu membuat objek Cat untuk dilukis:

gambar char yang tidak ditandatangani [1024]

Cat cat (gambar, 152, 18); // lebar hendaklah gandaan 8

Ini menyimpan sedikit ruang (1024 byte) dan mengalokasikannya ke objek Paint, dipetik oleh baris kedua. Ini dikonfigurasi sementara sebagai lebar 152 piksel dan kedalaman 18 piksel. Kami dapat mengkonfigurasinya kemudian untuk digunakan semula jika perlu, tetapi perhatikan: lebarnya mestilah beraneka rangkap 8 kerana 8 piksel disimpan per bait dan kami tidak dapat membelah bait. (Ini sebenarnya akan melengkapkannya jika perlu, tetapi kemudian dapat membingungkan ketika tampilan anda tidak terlihat seperti seharusnya.

Sekarang kita mesti mengosongkan objek cat menjadi tidak berwarna (putih), kemudian pada posisi (x, y) = (22, 2) kita menulis "e-ink Demo" menggunakan font tinggi 16-piksel, dan WARNA (untuk menunjukkan terhadap Latar belakang yang tidak berwarna.

cat. Jernih (tidak berwarna)

cat. DrawStringAt (12, 2, "Demo e-kertas", & Font16, WARNA);

Perhatikan bahawa koordinat (22, 2) adalah sudut kiri atas watak pertama rentetan, dan 22 piksel ke dalam dan 2 piksel ke bawah berbanding dengan sudut kiri atas objek cat, bukan keseluruhan paparan. Teks kelihatan paling baik sekurang-kurangnya satu piksel ke bawah dari bahagian atas objek cat.

Fon berikut tersedia:

Font8 - 5x8 pikselFont12 - 7x12 pikselFont16 - 11x16 pikselFont20 - 14x20 pikselFont24 - 17x24 piksel

Kita sekarang hanya perlu menghantar objek cat ("cat") ke peranti ("epd"):

epd. SetPartialWindowBlack (paint. GetImage (), 0, 3, paint. GetWidth (), paint. GetHeight ());

SetPartialWindowBlack adalah kaedah yang kita terapkan pada objek epd, menggunakan gambar dan sifat lebar dan kedalaman objek cat. Kami menyuruhnya menulis gambar ini ke peranti di (x, y) = (0, 3). Dan kami mengatakan piksel WARNA berwarna hitam.

Itu tidak terlalu sukar, bukan? Mari cuba yang lain.

cat. Jernih (WARNA);

cat. DrawStringAt (20, 2, "(Putih pada warna)", & Font12, TANPA WARNA); epd. SetPartialWindowRed (paint. GetImage (), 0, 24, cat. GetWidth (), cat. GetHeight ());

Kami menggunakan semula objek cat yang sama, dan lebar dan ketinggian yang sama, tetapi kali ini, mari kita kosongkan menjadi WARNA dan tulis rentetan yang tidak berwarna. Untuk perubahan, kami akan menjadikan piksel WARNA berwarna merah dan menuliskannya ke peranti di (0, 24), tepat di bawah yang pertama.

Kami telah menuliskan dua objek cat tersebut ke memori peranti tetapi belum menyuruhnya memaparkannya. Kami melakukan ini dengan pernyataan berikut:

epd. DisplayFrame ();

(Dalam lakaran E-ink_demo kami sebenarnya membiarkannya hingga akhir, setelah melukis lebih banyak barang, tetapi anda boleh memasukkannya ke sini jika anda mahu, mybe diikuti dengan kelewatan (10000); untuk memberi anda masa untuk mengagumi hasil karya anda.

Langkah 7: Melukis Garisan dan Segi Empat

Melukis Garisan dan Segi Empat
Melukis Garisan dan Segi Empat

Mari lihat cara melukis garis dan segi empat tepat. Kita akan menggunakan objek cat yang sama, tetapi kita perlu mengkonfigurasinya selebar 40 piksel dan tinggi 36 piksel. Kami akan mengosongkannya tanpa warna.

cat. SetWidth (40);

cat. SetHeight (36); cat. Jernih (tidak berwarna);

Kita akan melukis sebuah segi empat (WARNA) dengan sudut kiri atas (5, 3) dan kanan bawah (35, 33), relatif terhadap objek cat, seperti biasa. Kami juga akan melukis pepenjuru sebagai garis dari (5, 3) hingga (35, 33) dan dari (35, 3) hingga (5, 33). Akhirnya, kami akan menuliskan keseluruhan objek cat (merah) ke skrin pada (32, 42).

//BARISAN TERATAS:

// Lekatkan cat. Jernih (tidak berwarna); cat. DrawRectangle (5, 3, 35, 33, WARNA;) cat. DrawLine (5, 3, 35, 33, WARNA); cat. DrawLine (35, 3, 5, 33, WARNA); epd. SetPartialWindowRed (cat. GetImage (), 32, 42, cat. GetWidth (), cat. GetHeight ());

Perpustakaan, ketika datang, juga menyediakan segi empat penuh, tapi hei, saya mahukan yang berlorek, jadi saya menambahkan kaedah baru. Kami akan melakukan dua lagi segi empat tepat, satu yang berlorek dan satu yang penuh, dan meletakkannya di sebelah kanan yang pertama, menggantikannya hitam dan merah.

// Cat Rectange Berbayang. Jernih (tidak berwarna); cat. DrawShadedRectangle (5, 3, 35, 33); epd. SetPartialWindowBlack (cat. GetImage (), 72, 42, cat. GetWidth (), cat. GetHeight ()); // Mengisi cat segi empat tepat. Jernih (tidak berwarna); cat. DrawFilledRectangle (5, 3, 35, 33, WARNA); epd. SetPartialWindowRed (cat. GetImage (), 112, 42, cat. GetWidth (), cat. GetHeight ());

Langkah 8: Melukis Bulatan

Melukis Bulatan
Melukis Bulatan

Lingkaran sama senang dilukis. Daripada koordinat dua sudut, kita harus meletakkan koordinat pusat, dan jejari. Kami akan membersihkan objek cat kemudian meletakkan bulatan pada (20, 15) (relatif dengan objek cat) dan jejari 15. Dan ulangi untuk bulatan yang berlorek dan penuh.

// Baris KEDUA

// Lingkaran cat. Jernih (tidak berwarna); cat. DrawCircle (20, 18, 15, WARNA); epd. SetPartialWindowBlack (cat. GetImage (), 32, 78, cat. GetWidth (), cat. GetHeight ()); // Cat Lingkaran Berlorek. Jernih (tidak berwarna); cat. DrawShadedCircle (20, 18, 15); epd. SetPartialWindowRed (cat. GetImage (), 72, 78, cat. GetWidth (), cat. GetHeight ()); // Cat bulatan yang diisi. Jernih (tidak berwarna); cat. DrawFilledCircle (20, 18, 15, WARNA); epd. SetPartialWindowBlack (cat. GetImage (), 112, 78, cat. GetWidth (), cat. GetHeight ());

Langkah 9: TANPA WARNA di Bckground WARNA

TANPA WARNA di Bckground WARNA
TANPA WARNA di Bckground WARNA

Kami mula terkenal di sini! Oleh itu, semasa kita berada dalam gulungan, mari kita lakukan 3 bulatan lagi pada baris di bawah ini, kali ini TANPA WARNA pada objek cat WARNA, seperti yang kita lakukan pada baris kedua teks.

// ROW KETIGA

// Lingkaran cat. Clear (WARNA); cat. DrawCircle (20, 18, 15, TANPA WARNA); epd. SetPartialWindowRed (cat. GetImage (), 32, 114, cat. GetWidth (), cat. GetHeight ()); // Cat Lingkaran Berlorek. Cat Cerah (WARNA). DrawShadedCircle (20, 18, 15); epd. SetPartialWindowBlack (cat. GetImage (), 72, 114, cat. GetWidth (), cat. GetHeight ()); // Cat bulatan yang diisi. Jernih (WARNA); cat. DrawFilledCircle (20, 18, 15, TANPA WARNA); epd. SetPartialWindowRed (cat. GetImage (), 112, 114, cat. GetWidth (), cat. GetHeight ());

Selain isi yang berlorek, ada juga isian berbintik-bintik, yang mewarnai piksel rawak. Oleh itu, bukannya bulatan berlorek di atas, kita boleh meletakkannya

cat. DrawSpeckledCircle (20, 18, 15, 25);

Parameter terakhir (25) adalah ketumpatan, iaitu peratusan piksel yang akan diwarnai. Sekiranya ditinggalkan, 50% dianggap.

Terdapat juga DrawSpeckledRectangle, dengan parameter tambahan pilihan yang menentukan kepadatan.

Langkah 10: Putaran

Putaran
Putaran
Putaran
Putaran

Apa sahaja yang boleh kita lukis, kita boleh berpusing hingga 90, 180 atau 270 darjah. (Kami mengira putaran mengikut arah jam.)

Kita boleh menggunakan harta ROTATE pada objek cat, tetapi penting untuk difahami bahawa bukan objek cat yang diputar tetapi semua yang anda tulis kepadanya. Oleh itu, jika anda mahukan teks menegak, anda perlu mengkonfigurasi objek cat anda dengan panjang dan nipis ke arah menegak dan bukannya secara mendatar.

Oleh itu, jika anda mahu teks anda diputar mengikut arah jam sebanyak 90 darjah sehingga terbaca dari atas ke bawah (bukannya kiri ke kanan), sudut kanan atas objek cat akan menjadi (0, 0) untuk tujuan apa sahaja yang anda tulis atau tarik ke dalamnya, dengan x terpaku dari sudut itu ke bawah, dan y dari sudut itu ke kiri.

Anda mungkin menyedari bahawa kami meninggalkan ruang di sebelah kiri paparan. Oleh itu, mari tuliskan beberapa teks di sana berputar 270 darjah, iaitu membaca dari bawah ke atas. Ini akan meletakkan (0, 0) di sudut kiri bawah.

Perhatikan bahawa bagaimanapun anda memutar objek cat, putaran hanya berlaku ketika anda menarik piksel ke atasnya. Apabila anda menulisnya ke peranti, masih merupakan koordinat sudut kiri atas yang harus anda berikan kepada SetPartialWindow.

Jadi untuk merakam, mari kita konfigurasikan objek cat kita untuk mempunyai lebar 32 dan tinggi 110, dan kita akan memberikannya ROTATE_270 harta. Bukan kita harus melakukan semua ini sebelum menulis atau menarik sesuatu.

cat. SetWidth (32);

cat. SetHeight (110); cat. SetRotate (ROTATE_270);

Kami akan mengosongkannya menjadi WARNA dan menulis rentetan yang tidak berwarna kepadanya, kemudian letakkan di (0, 42). (Itulah sudut kiri atas, ingat. Lupakan sebarang putaran piksel di dalamnya.)

cat. Jernih (WARNA); cat. DrawStringAt (8, 8, "Sideways!", & Font16, UNCOLORED); epd. SetPartialWindowBlack (cat. GetImage (), 0, 42, cat. GetWidth (), cat. GetHeight ());

Akhirnya, kita perlu memberitahu peranti untuk menunjukkan semua piksel yang telah kita berikan. Dan jika kita tidak mahu mengubahnya untuk sementara waktu dan ingin menjimatkan kuasa bateri, kita dapat mematikannya, dan mengapa tidak meletakkan Arduino juga tidur, untuk bangun ketika tiba waktunya untuk mengambil dan memaparkan yang lain pengukuran.

epd. DisplayFrame ();

epd. Sleep ();

Lakaran contoh kedua menunjukkan putaran hingga 90, 180 dan 270 darjah. Sekarang anda mesti dapat mengikutinya sendiri.

Langkah 11: Melukis Bitmap

Melukis Bitmap
Melukis Bitmap

Demo vendor merangkumi paparan beberapa gambar bitmap. Ini mudah dibuat menggunakan alat yang boleh dimuat turun dari

www.buydisplay.com/image2lcd

Ia datang sebagai fail zip yang mengandungi fail pemasangan.exe dan fail teks yang mengandungi kunci lesen. Kembangkan kemudian klik dua kali pada fail.exe untuk memasangnya.

Jelas sekali, terdapat sekatan yang agak teruk pada apa yang dapat anda paparkan kerana piksel E-ink hanya boleh hidup atau mati dan tidak boleh mewakili tahap kelabu. Tetapi ada kemungkinan untuk melapisi objek cat segi empat tepat pada gambar. Anda mungkin mahu memaparkan logo, simbol, atau teks tetap dalam fon mewah, di mana anda boleh meletakkan teks atau grafik berubah-ubah seperti bar atau carta pai, mungkin menunjukkan sesuatu seperti tahap cecair.

Anda boleh membuat gambar anda dengan perisian menggambar apa pun yang biasa anda ketahui, atau anda boleh mengimbas dalam lakaran atau gambar, tetapi dalam kedua-dua kes ini, anda mesti dapat mengurangkannya hanya pada 2 tahap. Simpan sebagai.gif,-j.webp

Lancarkan Image2Lcd. Di bahagian bawah, anda akan melihat tab Daftar. Klik pada ini dan masukkan kod pendaftaran yang terdapat dalam fail teks dalam fail zip yang anda muat turun. Ini akan membuang tindanan pada gambar.

Di Image2Lcd, buka fail gambar anda. Di panel sebelah kiri, pastikan anda memilikinya

  • Jenis fail output: C array
  • Mod imbasan: Imbasan Mendatar
  • BitsPixel: Monokrom
  • Lebar dan Tinggi Maksimum: ukuran paparan anda, dan
  • Sertakan data kepala mesti tidak dicentang.

Klik butang di sebelah Lebar dan Tinggi Maksimum untuk diproses. Hasil pemprosesan akan ditunjukkan. Anda mungkin perlu menyesuaikan slaid Kecerahan dan Kontras untuk mendapatkan hasil terbaik.

Klik kotak semak Warna terbalik di atas gelangsar Brightness, menjadikannya gambar negatif, yang mana perlu, kemudian klik Simpan untuk menyimpannya sebagai imagedata.cpp dalam folder yang mengandungi lakaran Arduino anda. Lain kali anda membuka lakaran dengan Arduino IDE anda akan melihatnya sebagai tab baru.

Langkah 12: Memaparkan Bitmap Anda

Memaparkan Bitmap Anda
Memaparkan Bitmap Anda

Dalam fail utama sketsa Arduino anda, segera mengikuti garis #include di bahagian atas, masukkan:

#sertakan "imagedata.h"

Buat tab baru (klik anak panah ke bawah di hujung baris tab) dan panggil ia imagedata.h. Masukkan 2 baris berikut di dalamnya:

char luaran yang tidak ditandatangani IMAGE_BLACK ;

char luaran yang tidak ditandatangani IMAGE_RED ;

Dalam fail imagedata.cpp anda, baris pertama akan bermula dengan

const unsigned char gImage_image [2888] = {

(Angka dalam tanda kurung persegi akan berbeza jika anda tidak menggunakan paparan 1.54 .) Ganti ini dengan

char char yang tidak ditandatangani IMAGE_BLACK PROGMEM = {

Ini untuk gambar hitam putih. Sekiranya anda menginginkannya merah dan putih, ubah menjadi

char yang tidak ditandatangani IMAGE_RED PROGMEM = {

Tepat sebelum baris ini, tambah

#sertakan

#sertakan "imagedata.h"

Anda kini bersedia untuk memaparkan gambar anda. Dalam gelung () dalam fail utama anda, tambah

epd. ClearFrame ();

epd. DisplayFrame (IMAGE_BLACK, NULL);

Atau, jika gambar merah yang anda buat, baris kedua mestilah

epd. DisplayFrame (NULL, IMAGE_RED);

Sebenarnya anda boleh membuat gabungan gambar merah dan hitam dengan menukar bahagian merah dan hitam secara berasingan dengan Image2Lcd, dan memaparkan kedua-duanya dengan

epd. DisplayFrame (IMAGE_BLACK, IMAGE_RED);

Walau bagaimanapun, setiap piksel yang dinyatakan sebagai hitam pada gambar hitam dan putih, dan merah dalam warna merah dan putih, akan keluar menjadi merah.

Akhirnya, anda boleh meletakkan gambar anda dengan fungsi teks atau grafik yang telah kami pelajari sebelumnya. Saya mahu menambah pegangan Twitter saya, jadi saya menambah

Cat cat (gambar, 20, 152); // lebar hendaklah gandaan 8

cat. SetRotate (ROTATE_270); cat. Jernih (tidak berwarna); cat. DrawStringAt (20, 2, "@pleriche", & Font16, WARNA); epd. SetPartialWindowRed (paint. GetImage (), 0, 0, paint. GetWidth (), paint. GetHeight ()); epd. SetPartialWindowRed (paint. GetImage (), 0, 0, paint. GetWidth (), paint. GetHeight ()); epd. DisplayFrame ();

Disyorkan: