Daftar Isi:
- Langkah 1: Apa yang Kami Butuhkan untuk Proyek Ini
- Langkah 2: Sirkuit
- Langkah 3: Versi Papan Tempat Memotong Roti dari Sirkuit
- Langkah 4: Memuat Font
- Langkah 5: Menambahkan Driver Ekstra
- Langkah 6: Siapkan Perangkat
- Langkah 7: Tentukan Karakter dan Gambar Garis Horizontal dan Vertikal
- Langkah 8: Kotak, Balok dan Garis Miring
- Langkah 9: Simbol Derajat, Sudut, Grafik Batang dan Lingkaran
- Langkah 10: Pengumpulan Sampah, Judul dan Lingkaran
- Langkah 11: Demo Garis
- Langkah 12: Loop Utama: Grafik Batang dan Karakter yang Ditetapkan
Video: Grafik pada Layar SSD1306 I2C OLED 128x64 Dengan CircuitPython Menggunakan Itsybitsy M4 Express: 13 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:56
Layar OLED SSD1306 adalah layar grafis monokrom kecil (0,96 ), murah, tersedia secara luas, I2C dengan 128x64 piksel, yang mudah dihubungkan (hanya 4 kabel) ke papan pengembangan mikroprosesor seperti Raspberry Pi, Arduino, atau Adafruit Itsybitsy M4 Express, CircuitPlayground Express atau perangkat CircuitPython lainnya Driver dapat diunduh dari internet.
Rutinitas grafis untuk Arduino telah tersedia untuk beberapa waktu tetapi tidak untuk sistem pengembangan lainnya.
Driver perangkat dasar memungkinkan pengguna untuk:
- Kosongkan layar menjadi hitam atau putih. oled.isi(c)
- Tulis string teks ke layar pada posisi (x, y) yang ditentukan oled.text("Text", x, y, c)
- Gambar sebuah titik pada posisi tertentu (x, y) oled.pixel(x, y, c)
- Muat file gambar ke layar. (Tidak digunakan dalam proyek ini)
- Perbarui tampilan oled.show()
Instruksi ini akan menunjukkan, dengan prosedur sederhana, cara menggambar, secara interaktif:
- garis
- lingkaran
- kotak berongga
- blok padat
- karakter yang telah ditentukan sebelumnya
Saya akan menggunakan Adafruit Itsybitsy M4 Express untuk mendemonstrasikan metodenya tetapi kodenya, dengan Python, dapat dengan mudah dipindahkan ke sistem pengembangan lain.
Saya memilih Itsybitsy M4 untuk demonstrasi ini karena murah, kuat, mudah diprogram, termasuk Input/Output analog dan digital, memiliki banyak memori, memiliki dokumentasi yang mudah ditemukan dan forum bantuan di Internet, sangat mudah untuk diatur pada awalnya dan mendukung CircuitPython, versi Python yang ideal bagi mereka yang baru mengenal pengkodean.
Setelah Anda mengatur Itsybitsy dan SSD1306 Anda, ini adalah pembuatan papan tempat memotong roti yang sangat sederhana. Tidak ada pengetikan, semua file dapat diunduh.
Ini adalah proyek yang murah dan mudah untuk dibangun tetapi memperkenalkan beberapa ide menengah/lanjutan. Saya harap Anda akan mencobanya. Saya terkesan dengan tampilan kecil ini.
Langkah 1: Apa yang Kami Butuhkan untuk Proyek Ini
Perangkat keras:
- SSD1306 I2C mono layar 128x64 piksel
- Itsybitsy M4 Express
- microUSB ke kabel USB - untuk memprogram papan
- Papan tempat memotong roti
- 1 10K Ohm potensiometer
- 1 tombol sakelar
- menghubungkan kawat - berbagai warna dapat membantu
- Komputer (untuk menulis kode dan mengunggahnya) - laptop yang sangat tua bisa digunakan.
Perangkat lunak:
Mu editor - untuk menulis kode dan mengunggah skrip ke Itsybitsy
Menyiapkan Itsybitsy dijelaskan di sini:
Versi terbaru dari CircuitPython:
Pustaka CircuitPython:
Mu Editor:
Langkah 2: Sirkuit
Ini adalah rangkaian yang sangat sederhana untuk diatur. Halaman berikutnya mengilustrasikan papan tempat memotong roti yang sudah jadi dengan kabel berwarna untuk mempermudah.
Langkah 3: Versi Papan Tempat Memotong Roti dari Sirkuit
Ada rel listrik di bagian atas dan bawah papan tempat memotong roti. Dengan kabel merah, gabungkan rel +ve menjadi satu. Dengan kabel hitam, gabungkan rel -ve menjadi satu.
Bergabunglah dengan pin 3V Itsybitsy ke rel +ve bawah - kabel merah. (Kolom 12)
Bergabunglah dengan pin G (GND) Itsybitsy ke rel atas - kabel hitam. (Kolom 12)
Di kolom 33 dan 34, sambungkan pin SSD1306 VCC dan GND ke rel daya atas.
Dengan kabel merah muda, gabungkan pin SCL bersama-sama.
Dengan kabel abu-abu, gabungkan pin SDA menjadi satu.
Dengan kabel merah dan hitam sambungkan pin luar potensiometer ke rel daya atas dan dengan kabel hijau sambungkan pin tengah (penghapus) ke A5 pada Itsybitsy.
Hubungkan satu sisi sakelar tombol dengan kabel ungu ke pin 2 dan dengan kabel hitam sambungkan sisi lainnya ke rel GND.
Langkah 4: Memuat Font
Unduh file font dan seret ke drive CIRCUITPY. (Ini adalah Itsybitsy.)
Klik dua kali folder lib dan lihat daftar driver yang telah Anda muat.
Langkah 5: Menambahkan Driver Ekstra
Anda akan membutuhkan yang berikut ini di folder lib:
- simpleio.mpy
- adafruit_bus_device
- adafruit_framebuf.mpy
- adafruit_ssd1306.mpy
Jika tidak ada, seret ke folder dari versi terbaru yang tersedia.
Anda sekarang siap untuk mengunduh skrip.
Setelah dimuat ke editor Mu, Anda dapat menyimpannya ke Itsybitsy dengan nama main.py.
Program ini berjalan melalui serangkaian demonstrasi garis, lingkaran, grafik batang dinamis dan menampilkan karakter yang ditentukan. Putar panci secara perlahan dan tekan dan tahan tombol untuk mengontrol tampilan.
Halaman berikut memberikan informasi lebih lanjut tentang cara kerja program.
Langkah 6: Siapkan Perangkat
Bagian pertama ini memuat semua pustaka dan menyiapkan SSD1306, potensiometer, dan sakelar tombol pada pin yang benar.
Langkah 7: Tentukan Karakter dan Gambar Garis Horizontal dan Vertikal
Bagian ini mengatur karakter yang telah ditentukan sebelumnya. Mereka adalah 5 titik lebar dan 8 titik tinggi. Setiap titik dalam definisi menggambar 4 titik di layar sehingga terlihat lebih baik.
Garis horizontal dan vertikal mudah digambar dengan lingkaran. Anda hanya perlu ingat bahwa Anda memerlukan titik ekstra di akhir. Garis dari (0, 7) ke (5, 7) akan membutuhkan 6 titik: dengan x sama dengan 0, 1, 2, 3, 4 dan 5 secara bergantian.
Perintah titik dasar adalah oled.pixel(x, y, color) - 0 hitam dan 1 putih.
Asal (0, 0) berada di kiri atas layar, 0 - 127 piksel secara horizontal (kiri ke kanan) dan 0 - 63 secara vertikal (atas ke bawah).
Langkah 8: Kotak, Balok dan Garis Miring
Kotak dibangun dari garis horizontal dan vertikal.
Blok dibangun dari beberapa garis horizontal.
Untuk garis miring pertama kita periksa koordinat yang diberikan paling kiri terlebih dahulu. Jika tidak, kami menukarnya karena garis akan ditarik dari kiri ke kanan.
Kami kemudian menghitung kemiringan dan menggunakannya untuk menetapkan nilai y untuk setiap nilai x.
Prosedur tampilan(t) membuat layar yang diperbarui terlihat dan menunggu beberapa saat, t detik.
Langkah 9: Simbol Derajat, Sudut, Grafik Batang dan Lingkaran
Simbol derajat dibuat dari 4 piksel.
Rutin align() menambahkan spasi ekstra di depan nomor untuk menyelaraskan nilai pendek di ruang tetap.
Grafik(v) rutin menggambar grafik batang horizontal yang memberikan persentase yang dipilih. Nilai ditulis di ujung kanan menggunakan 'T' untuk mewakili 100 (Ton atau Atas).
Lingkaran memerlukan beberapa trigonometri sehingga kita perlu mengimpor perpustakaan matematika di awal skrip. Kami menggunakan sin, cos dan radian untuk menghitung offset x dan y dari pusat karena radius diputar hingga 90 derajat. Poin diplot di masing-masing dari empat kuadran untuk setiap perhitungan offset.
Langkah 10: Pengumpulan Sampah, Judul dan Lingkaran
Petunjuk ini mendemonstrasikan pembersihan layar menjadi hitam putih, menulis teks ke layar, dan menggunakan rutinitas 'pengumpulan sampah' gc() untuk mengosongkan ruang. Nilai tersebut menunjukkan bahwa ada banyak ruang untuk skrip yang jauh lebih besar.
Program kemudian menggambar lingkaran dengan pusat yang sama dan dengan pusat yang bergerak. Rutinitas yang cukup cepat mengingat jumlah perhitungan yang diperlukan.
Judul demo baris ditulis berikutnya.
Langkah 11: Demo Garis
Rutin ini benar-benar memberikan latihan line() rutin. Garis radial ditarik dari masing-masing empat sudut layar dengan pola pembentukan jarak yang berbeda.
Langkah 12: Loop Utama: Grafik Batang dan Karakter yang Ditetapkan
Ini adalah loop utama dari program. Nilai dari potensiometer mengubah nilai yang ditampilkan dan mengubah panjang grafik batang.
Jika tombol ditekan, karakter yang ditentukan akan ditukar seperti 1/0 dan Benar/Salah. Loop ini berjalan cukup lambat karena menggambar karakter yang telah ditentukan adalah proses yang lambat. Anda dapat mempercepatnya dengan mengomentari beberapa di antaranya.
Tidak ada sensor suhu yang dipasang, untuk menjaga agar demo ini tetap sederhana, jadi tanda '?' ditampilkan sebagai ganti nilai pada baris 190.
Direkomendasikan:
Macintosh layar sentuh - Mac Klasik Dengan iPad Mini untuk Layar: 5 Langkah (dengan Gambar)
Macintosh layar sentuh | Mac Klasik Dengan IPad Mini untuk Layar: Ini adalah pembaruan dan desain revisi saya tentang cara mengganti layar Macintosh vintage dengan iPad mini. Ini adalah yang ke-6 yang saya buat selama bertahun-tahun dan saya cukup senang dengan evolusi dan desain yang satu ini! Kembali pada tahun 2013 ketika saya membuat
Osiloskop Arduino 10Hz-50kHz DIY pada Layar LCD 128x64: 3 Langkah
DIY 10Hz-50kHz Arduino Oscilloscope pada 128x64 LCD Display: Proyek ini menjelaskan cara membuat osiloskop sederhana yang memiliki rentang dari 10Hz hingga 50Khz. Ini adalah rentang yang sangat besar, mengingat perangkat tidak menggunakan chip konverter digital ke analog eksternal, tetapi hanya Arduino
Layar LCD I2C / IIC - Gunakan LCD SPI ke Layar LCD I2C Menggunakan Modul SPI ke IIC Dengan Arduino: 5 Langkah
Layar LCD I2C / IIC | Menggunakan LCD SPI ke Layar LCD I2C Menggunakan Modul SPI ke IIC Dengan Arduino: Hai teman-teman karena LCD SPI 1602 yang normal memiliki terlalu banyak kabel untuk dihubungkan sehingga sangat sulit untuk menghubungkannya dengan arduino tetapi ada satu modul yang tersedia di pasaran yang dapat ubah tampilan SPI menjadi tampilan IIC sehingga Anda hanya perlu menghubungkan 4 kabel
CircuitPython Dengan Itsybitsy M4 Express 1: Pengaturan: 9 Langkah
CircuitPython Dengan Itsybitsy M4 Express 1: Pengaturan: Baru mengenal pengkodean? Hanya menggunakan Scratch dan ingin beralih ke bahasa tekstual yang memberikan akses mudah ke komputasi Fisik dengan LED, sakelar, layar, dan sensor? Maka ini mungkin untuk Anda. Saya perhatikan bahwa situs ini berisi banyak Instructables ab
Layar LCD I2C / IIC - Mengonversi LCD SPI ke Layar LCD I2C: 5 Langkah
Layar LCD I2C / IIC | Mengkonversi LCD SPI ke Layar LCD I2C: menggunakan layar lcd spi membutuhkan terlalu banyak koneksi yang sangat sulit untuk dilakukan jadi saya menemukan modul yang dapat mengubah lcd i2c ke lcd spi jadi mari kita mulai