from machine import Pin, I2C, ADC
from ssd1306 import SSD1306_I2C
import framebuf, sys
import time
v_joistik = ADC(Pin(27))
h_joistik = ADC(Pin(26))
pix_res_x = 128
pix_res_y = 64
def init_i2c(scl_pin, sda_pin):
# Initialize I2C device
i2c_dev = I2C(1, scl=Pin(scl_pin), sda=Pin(sda_pin), freq=200000)
i2c_addr = [hex(ii) for ii in i2c_dev.scan()]
if not i2c_addr:
print('No I2C Display Found')
sys.exit()
else:
print("I2C Address : {}".format(i2c_addr[0]))
print("I2C Configuration: {}".format(i2c_dev))
return i2c_dev
def display_logo(oled):
# Display the Raspberry Pi logo on the OLED
buffer = bytearray(b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|?\x00\x01\x86@\x80\x01\x01\x80\x80\x01\x11\x88\x80\x01\x05\xa0\x80\x00\x83\xc1\x00\x00C\xe3\x00\x00~\xfc\x00\x00L'\x00\x00\x9c\x11\x00\x00\xbf\xfd\x00\x00\xe1\x87\x00\x01\xc1\x83\x80\x02A\x82@\x02A\x82@\x02\xc1\xc2@\x02\xf6>\xc0\x01\xfc=\x80\x01\x18\x18\x80\x01\x88\x10\x80\x00\x8c!\x00\x00\x87\xf1\x00\x00\x7f\xf6\x00\x008\x1c\x00\x00\x0c \x00\x00\x03\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")
fb = framebuf.FrameBuffer(buffer, 32, 32, framebuf.MONO_HLSB)
oled.fill(0)
oled.blit(fb, 96, 0)
oled.show()
i2c_dev = init_i2c(scl_pin=19, sda_pin=18)
oled = SSD1306_I2C(pix_res_x, pix_res_y, i2c_dev)
#oled.text("Burger King", 20,20)
#oled.text("Coca Cola", 25,40)
oled.invert(1)
#oled.rect(13,8,100,50,3)
'''
oled.hline(6,7,4,1)
oled.hline(10,8,2,1)
oled.hline(4,8,2,1)
oled.hline(3,9,1,1)
oled.hline(12,9,1,1)
oled.vline(13,10,2,1)
oled.vline(2,10,2,1)
oled.vline(1,12,4,1)
oled.vline(14,12,4,1)
oled.vline(13,16,2,1)
oled.vline(2,16,2,1)
oled.hline(3,18,1,1)
oled.hline(12,18,1,1)
oled.hline(10,19,2,1)
oled.hline(4,19,2,1)
oled.hline(6,20,4,1)
oled.hline(9,19,1,1)
oled.hline(8,18,1,1)
oled.hline(7,17,1,1)
oled.hline(7,16,1,1)
oled.hline(7,15,1,1)
oled.hline(7,14,1,1)
oled.hline(7,14,1,1)
oled.hline(8,13,1,1)
oled.hline(9,12,1,1)
oled.vline(9,8,5,1)
oled.hline(7,8,1,1)
oled.hline(8,9,1,1)
'''
def kubik(x0,y0):
oled.rect(8,10,40,40,1)
oled.fill_rect(x0+2,y0+2,2,2,1)
def kursor(x0,y0):
oled.rect(x0+2,y0+2,1,1,1)
oled.rect(x0+2,y0+2,7,7,1)
x0 = 64
y0 = 32
kursor(x0,y0)
oled.show()
while True:
time.sleep(0.1)
y_value = v_joistik.read_u16()
h_value = h_joistik.read_u16()
print(y_value, h_value)
if y_value > 50000: y0 = y0 - 1
if y_value < 10000: y0 = y0 + 1
if h_value > 50000: x0 = x0 - 1
if h_value < 10000: x0 = x0 + 1
oled.fill(0)
kursor(x0, y0)
oled.show()