Added oled module
This commit is contained in:
parent
4d297e6ab2
commit
bfa3f28098
41
kmk/modules/oled.py
Normal file
41
kmk/modules/oled.py
Normal 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)
|
||||||
Loading…
x
Reference in New Issue
Block a user