Isi kandungan:

Grafik pada Paparan SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express: 13 Langkah (dengan Gambar)
Grafik pada Paparan SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express: 13 Langkah (dengan Gambar)

Video: Grafik pada Paparan SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express: 13 Langkah (dengan Gambar)

Video: Grafik pada Paparan SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express: 13 Langkah (dengan Gambar)
Video: Tutorial OLED I2C Display degan Arduino (Image & Animation) #Arduino 2024, Julai
Anonim
Grafik pada Paparan SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express
Grafik pada Paparan SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express

Paparan OLD SSD1306 berukuran kecil (0,96 ), murah, tersedia luas, I2C, paparan grafik monokrom dengan piksel 128x64, yang mudah dihubungkan (hanya 4 wayar) ke papan pengembangan mikropemproses seperti Raspberry Pi, Arduino atau Adafruit Itsybitsy M4 Express, CircuitPlayground Express atau peranti CircuitPython lain. Pemacu boleh dimuat turun dari internet.

Rutin grafik untuk Arduino telah tersedia untuk beberapa waktu tetapi tidak untuk sistem pembangunan lain.

Pemacu peranti asas membolehkan pengguna:

  • Kosongkan skrin menjadi hitam atau putih. oled.fill (c)
  • Tulis rentetan teks ke skrin pada kedudukan yang ditentukan (x, y) oled.text ("Teks", x, y, c)
  • Lukiskan titik pada kedudukan (x, y) yang ditentukan oled.pixel (x, y, c)
  • Muatkan fail gambar ke skrin. (Tidak digunakan dalam projek ini)
  • Kemas kini paparan oled.show ()

Instructable ini akan menunjukkan, dengan prosedur mudah, cara menggambar, secara interaktif:

  • garisan
  • bulatan
  • kotak berongga
  • bongkah pepejal
  • watak yang telah ditentukan

Saya akan menggunakan Adafruit Itsybitsy M4 Express untuk menunjukkan kaedah tetapi kodnya, di Python, dapat dengan mudah dibawa ke sistem pembangunan lain.

Saya memilih Itsybitsy M4 untuk demonstrasi ini kerana ia murah, hebat, mudah diprogramkan, termasuk Input / Output analog dan digital, mempunyai banyak memori, mempunyai dokumentasi dan forum bantuan dengan mudah di Internet, sangat mudah untuk disiapkan pada mulanya dan menyokong CircuitPython, versi Python yang sesuai untuk mereka yang baru dalam pengekodan.

Setelah anda menyiapkan Itsybitsy dan SSD1306, ini adalah binaan papan roti yang sangat mudah. Tidak ada menaip, semua fail boleh dimuat turun.

Ini adalah projek yang murah dan mudah dibina tetapi memperkenalkan beberapa idea pertengahan / maju. Saya harap anda akan mencubanya. Saya kagum dengan paparan kecil ini.

Langkah 1: Apa yang Kami Perlu untuk Projek ini

Apa yang Kami Perlu untuk Projek ini
Apa yang Kami Perlu untuk Projek ini

Perkakasan:

  • Paparan mono SSD1306 I2C 128x64 piksel
  • Itsybitsy M4 Express
  • kabel microUSB ke USB - untuk memprogram papan
  • Papan roti
  • Potensiometer 10m Ohm
  • Suis 1 butang
  • wayar penyambung - pelbagai warna dapat membantu
  • Komputer (untuk menulis kod dan memuat naiknya) - komputer riba yang sangat lama akan dilakukan.

Perisian:

Mu editor - untuk menulis kod dan memuat naik skrip ke Itsybitsy

Penyediaan Itsybitsy dijelaskan di sini:

Versi terbaru CircuitPython:

Perpustakaan CircuitPython:

Penyunting Mu:

Langkah 2: Litar

Litar
Litar

Ini adalah litar yang sangat mudah untuk disediakan. Halaman seterusnya menggambarkan papan roti yang sudah siap dengan wayar berwarna untuk memudahkan semuanya.

Langkah 3: Breadboard Versi Litar

Breadboard Versi Litar
Breadboard Versi Litar

Terdapat rel elektrik di bahagian atas dan bawah papan roti. Dengan wayar merah bergabung dengan rel + ve bersama-sama. Dengan wayar hitam bergabunglah rel -ve bersama.

Sambungkan pin 3V Itsybitsy ke rel bawah + ve - wayar merah. (Lajur 12)

Sambungkan pin G (GND) Itsybitsy ke rel atas - wayar hitam. (Lajur 12)

Pada lajur 33 dan 34, sambungkan pin VCC dan GND SSD1306 ke rel kuasa atas.

Dengan wayar merah jambu sertai pin SCL bersama.

Dengan wayar kelabu sertai pin SDA bersama.

Dengan wayar merah dan hitam sambungkan pin luar potensiometer ke rel kuasa atas dan dengan wayar hijau sambungkan pin tengah (pengelap) ke A5 di Itsybitsy.

Sambungkan satu sisi suis butang dengan wayar ungu ke pin 2 dan dengan wayar hitam sambungkan sisi lain ke rel GND.

Langkah 4: Memuatkan Fon

Memuatkan Fon
Memuatkan Fon

Muat turun fail fon dan seret ke pemacu CIRCUITPY. (Ini adalah Itsybitsy.)

Klik dua kali folder lib dan lihat senarai pemacu yang telah anda muatkan.

Langkah 5: Menambah Pemacu Tambahan

Menambah Pemandu Tambahan
Menambah Pemandu Tambahan

Anda memerlukan perkara berikut dalam folder lib:

  • simpleio.mpy
  • adafruit_bus_device
  • adafruit_framebuf.mpy
  • adafruit_ssd1306.mpy

Sekiranya tiada, seret ke dalam folder dari versi terbaru yang tersedia.

Anda kini bersedia memuat turun skrip.

Setelah dimuat ke dalam editor Mu, anda boleh menyimpannya ke Itsybitsy dengan nama main.py.

Program ini melalui siri demonstrasi garis, bulatan, grafik bar dinamik dan menampilkan watak yang ditentukan. Pusingkan periuk perlahan dan tekan dan tahan butang untuk mengawal paparan.

Halaman berikut memberikan lebih banyak maklumat mengenai bagaimana program ini berfungsi.

Langkah 6: Siapkan Peranti

Sediakan Peranti
Sediakan Peranti

Bahagian pertama ini memuatkan semua perpustakaan dan menyediakan suis SSD1306, potensiometer dan butang pada pin yang betul.

Langkah 7: Tentukan Watak dan Lukis Garisan Mendatar dan Vertikal

Tentukan Watak dan Lukis Garisan Mendatar dan Vertikal
Tentukan Watak dan Lukis Garisan Mendatar dan Vertikal
Tentukan Watak dan Lukis Garisan Mendatar dan Vertikal
Tentukan Watak dan Lukis Garisan Mendatar dan Vertikal

Bahagian ini menetapkan watak yang telah ditentukan. Lebarnya 5 titik dan tinggi 8 titik. Setiap titik dalam definisi menarik 4 titik di skrin sehingga kelihatan lebih baik.

Garisan mendatar dan menegak mudah dilukis dengan gelung. Anda hanya perlu ingat bahawa anda memerlukan titik tambahan pada akhir. Garis dari (0, 7) hingga (5, 7) akan memerlukan 6 titik: dengan x sama dengan 0, 1, 2, 3, 4 dan 5 secara bergiliran.

Perintah titik asas adalah oled.pixel (x, y, warna) - 0 berwarna hitam dan 1 berwarna putih.

Asal (0, 0) berada di kiri atas skrin, 0 - 127 piksel secara mendatar (kiri ke kanan) dan 0 - 63 secara menegak (atas ke bawah).

Langkah 8: Kotak, Blok dan Garisan miring

Kotak, Blok dan Garisan miring
Kotak, Blok dan Garisan miring

Kotak dibina dari garis mendatar dan menegak.

Blok dibina dari pelbagai garis mendatar.

Untuk garis miring, pertama-tama kita periksa koordinat diberikan paling kiri terlebih dahulu. Sekiranya tidak, kami menukarnya kerana garis akan ditarik dari kiri ke kanan.

Kami kemudian mengira cerun dan menggunakannya untuk menetapkan nilai y untuk setiap nilai x.

Prosedur paparan (t) menjadikan skrin yang diperbaharui dapat dilihat dan menunggu kelewatan yang singkat, t saat.

Langkah 9: Simbol Darjah, Anlgnment, Graf Bar dan Lingkaran

Simbol Ijazah, Anlgnment, Graf Bar dan Lingkaran
Simbol Ijazah, Anlgnment, Graf Bar dan Lingkaran

Simbol darjah dibuat dari 4 piksel.

Rutin lurus () menambah ruang tambahan di hadapan nombor untuk menjajarkan nilai pendek di ruang tetap.

Grafik (v) rutin melukis graf bar mendatar memberikan peratusan yang dipilih. Nilai ditulis di hujung kanan menggunakan 'T' untuk mewakili 100 (Ton atau Atas).

Lingkaran memerlukan beberapa trigonometri jadi kita perlu mengimport perpustakaan matematik pada awal skrip. Kami menggunakan sin, cos dan radian untuk mengira ofset x dan y dari pusat kerana radius diputar hingga 90 darjah. Titik ditunjukkan dalam setiap empat kuadran untuk setiap pengiraan ofset.

Langkah 10: Pengumpulan Sampah, Tajuk dan Bulatan

Pengumpulan Sampah, Tajuk dan Bulatan
Pengumpulan Sampah, Tajuk dan Bulatan

Arahan ini menunjukkan pembersihan skrin menjadi hitam putih, menulis teks ke skrin dan menggunakan rutin 'pengumpulan sampah' gc () untuk mengosongkan ruang. Nilai menunjukkan bahawa terdapat banyak ruang untuk skrip yang jauh lebih besar.

Program ini kemudian menarik bulatan dengan pusat umum dan pusat berpindah. Cukup rutin dengan mempertimbangkan jumlah pengiraan yang diperlukan.

Tajuk untuk demo baris ditulis seterusnya.

Langkah 11: Demo Garisan

Demo Garisan
Demo Garisan

Rutin ini benar-benar memberi latihan () rutin senaman. Garis jejari diambil dari setiap empat sudut paparan dengan corak pembentuk jarak yang berbeza.

Langkah 12: Gelung Utama: Graf Bar dan Watak yang Ditentukan

Gelung Utama: Graf Bar dan Watak yang Ditentukan
Gelung Utama: Graf Bar dan Watak yang Ditentukan

Ini adalah gelung utama program. Nilai dari potensiometer mengubah nilai yang ditunjukkan dan mengubah panjang graf bar.

Sekiranya butang ditekan ke bawah, watak yang ditentukan ditukar seperti 1/0 dan Betul / Salah. Gelung ini berjalan dengan perlahan kerana melukis watak yang telah ditentukan adalah proses yang perlahan. Anda boleh mempercepat dengan memberi komen kepada beberapa perkara.

Tidak ada sensor suhu yang dipasang, untuk memastikan demo ini sederhana, jadi '?' dipaparkan dan bukannya nilai pada baris 190.

Disyorkan: