from machine import Pin, I2C, ADC
import ssd1306
# ESP32 Pin assignment
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
joy_x = ADC(25)
joy_y = ADC(33)
sprite =[
[0,0,1,0,0],
[0,1,1,1,0],
[1,1,1,1,1],
[0,0,1,0,0],
[1,1,1,1,1]
]
# print(sprite[2][2])
# oled.pixel(64,32,sprite[2][2])
oled.show()
pos_x = 64
pos_y = 32
dir_x = -1
dir_y = 1
marge = 500
letter_hoogte = 6
while True:
oled.fill(0)
for y in range (len(sprite)):
for x in range (len(sprite[y])):
oled.pixel(pos_x + x,pos_y + y,sprite[y][x])
oled.text("x",pos_x-1, pos_y+7)
oled.show()
print(joy_x.read_u16())
print(joy_y.read_u16())
# controle buitenscherm
'''
if pos_x > oled_width-len(sprite[0]):
dir_x = -1
if pos_x < 0:
dir_x = 1
'''
# controle joystick
delta_X = joy_x.read_u16()
if delta_X > 32776 + marge:
if pos_x < oled_width-len(sprite[0])-1:
speed_x = int((delta_X/65535)*20-10)
pos_x += speed_x
if delta_X < 32776 - marge:
if pos_x > 0:
speed_x = int((delta_X/65535)*20-10)
pos_x += speed_x
delta_Y = joy_y.read_u16()
if delta_Y > 32776 + marge:
if pos_y < oled_height-len(sprite) -1 - letter_hoogte:
pos_y += 2
if delta_Y < 32776 - marge:
if pos_y > 0:
pos_y -= 2