Compare commits

...

1 Commits

Author SHA1 Message Date
bfa3f28098 Added oled module 2022-04-19 07:17:22 +10:00

41
kmk/modules/oled.py Normal file
View File

@ -0,0 +1,41 @@
import adafruit_ssd1306
import busio
from kmk.modules import Module
class Oled(Module):
def __init__(self, pin1, pin2, startup_image = None, anim1 = None, anim2 = None):
print("Init OLED")
self.i2c = busio.I2C(pin1, pin2)
self.startup_image = startup_image
# self.anim1 = anim1
# self.anim2 = anim2
# self.anim_state = self.anim1
self.oled = adafruit_ssd1306.SSD1306_I2C(128, 32, self.i2c)
self.oled.fill(0)
print(self.oled.height, self.oled.width)
self.oled.text("Init", 0, 0, 1)
self.oled.show()
def _draw_image(self, image, size=(32, 128)):
print("calling draw_image")
self.oled.fill(0)
for i in range(size[0]):
for j in range(size[1]):
self.oled.pixel(j, i, 0 if image[i][j] is False else True)
self.oled.show()
def during_bootup(self, keyboard):
if self.startup_image is not None:
self._draw_image(self.startup_image)
print("booting")
return super().during_bootup(keyboard)
def after_matrix_scan(self, keyboard):
return super().after_matrix_scan(keyboard)
def process_key(self, keyboard, key, is_pressed):
# self._draw_image(self.anim1 if self.anim_state == self.anim2 else self.anim2, (32,32))
# self.anim_state = self.anim2 if self.anim_state == self.anim1 else self.anim2
return super().process_key(keyboard, key, is_pressed)