LCD Nokia 5110 Micropython

, , Leave a comment

Halo selamat datang kembali di andidinata.com. Jika kamu belum melihat tulisan pertama tentang concept build dari gadget yang saya bangun dengan LCD Nokia 5110, silahkan mengklik tulisan dengan judul Little Gadget 2 – Build . Pada bagian ini saya akan membagikan cara untuk memfungsikan LCD Nokia 5110 dengan micropython di ESP8266. LCD Nokia 5110 adalah display dengan bentangan pixel 84×48 yang murah meriah dan sangat berguna untuk membuat project menjadi lebih practical dan tentunya membuat visualisasinya lebih bagus.
LCD dengan controller PCD8544 ini terdiri dari 8 pin yang dijamin akan menghabiskan banyak I/O pin dari NodeMCU atau Wemos D1 mini kamu. Jika dilihat pada tabel ini, maka LCD ini menyisakan dua I/O Pin yang bisa digunakan untuk input lainnya, yaitu Pin 5 dan Pin 4. Tapi tidak perlu khawatir, dari Project Little Gadget 2 ini, dua pin tersebut bahkan bisa dipakai untuk 3 input yaitu Push Button, Accelerometer ADXL345 dan Sensor T/RH DHT-11.

Koneksi antara ESP8266 dengan LCD Nokia 5110 adalah sebagai berikut:

Dengan backlight yang terhubung langsung dengan GPIO12, maka tingkat kecerahan backlight bisa dengan PWM atau sekedar on/off dari micropython.

Setelah wiring selesai, masuklah dari terminal dan lakukan clone repository dari github dengan perintah git clone https://github.com/mcauser/micropython-pcd8544.git

Masuklah kedalam direktori micropython-pcd8544 dan temukan file pcd8455.py. Lalu copykan file pcd8455.py ke MCU. Jika menggunakan ampy, lakukan perintah ini dari terminal sudo ampy –b 115200 /dev/ttyUSB0 put pcd8455.py

Sekarang kita sudah siap untuk mencoba LCD ini. Masuklah ke dalam micropython melalui serial connection. JIka menggunakna picocom, ketikkan perintah ini picocom -b 115200 /dev/ttyUSB0. Setelah tulisan “Terminal Ready” muncul, tekan ENTER hingga micropython prompt muncul. Ketikan perintah ini baris per baris.

import pcd8544
from machine import Pin, SPI

spi = SPI(1)
spi.init(baudrate=8000000, polarity=0, phase=0)
cs = Pin(2)
dc = Pin(15)
rst = Pin(0)

bl = Pin(12, Pin.OUT, value=1)
lcd = pcd8544.PCD8544(spi, cs, dc, rst)

Untuk menampilkan teks atau gambar, micropython menggunakan library standard yaitu framebuffer
Lanjutkan dengan memasukan perintah ini untuk menginisiasi framebuffer

import framebuf
buffer = bytearray((lcd.height // 8) * lcd.width)
framebuf = framebuf.FrameBuffer1(buffer, lcd.width, lcd.height)

Dari sini kita gunakan object framebuf untuk menampilkan teks atau gambar. Perlu diketahui bahwa framebuffer membutuhkan informasi koordinat dari pixel. Posisi koordinat (x=0,y=0) ada dipojok kiri atas. Beberapa cheat-sheet dari contoh perintah yang paling banyak saya gunakan dalam project beserta cara penggunaannya.

Dan ini adalah contoh full script Hello World micropython dengan Nokia 5110

import pcd8544
from machine import Pin, SPI
import framebuf

spi = SPI(1)
spi.init(baudrate=8000000, polarity=0, phase=0)
cs = Pin(2)
dc = Pin(15)
rst = Pin(0)

bl = Pin(12, Pin.OUT, value=1)
lcd = pcd8544.PCD8544(spi, cs, dc, rst)

buffer = bytearray((lcd.height // 8) * lcd.width)
framebuf = framebuf.FrameBuffer1(buffer, lcd.width, lcd.height)

framebuf.text(“Hello”,0,0,1)
framebuf.text(“World”,0,10,1)
lcd.data(buffer)

LD Nokia 5110 sekarang sudah siap untuk digunakan dalam project. Dengan SPI clock 8MHz, LCD ini tidak hanya mampu menampilkan teks statis, screen refresh ratenya sangat baik untuk animasi. Sangat mumpuni jika kamu ingin mengembangkan game retro disini.

Dalam project Little Gadget II ini, LCD Nokia 5110 tidak hanya menjadi pemanis tetapi berfungsi sebagai jendela untuk navigasi ke semua program yang telah dibuat. Dengan bantuan push button, kita dapat berpindah-pindah dari satu menu ke menu lainnya. Dengan Accelerometer kita dapat menampilkan animasi seiring dengan pergerakan yang dideteksi oleh accelerometer.

Selamat mencoba dan bersenang-senang dengan micropython dan Nokia LCD 5110.

Terima kasih telah membaca dan mohon dukungannya dengan memberikan like dan share tulisan ini jika berguna dan sampai bertemu dalam bagian ketiga yaitu integrasi sensor temperature dengan micropython.

Source:

“https://github.com/mcauser/micropython-pcd8544”

Facebook Comments
 

Leave a Reply