import machine, ssd1306
import urandom
def randint(min, max):
span = max - min + 1
div = 0x3fffffff // span
offset = urandom.getrandbits(30) // div
val = min + offset
return val
class Vector:
x = 0
y = 0
xd = 1
yd = 1
def __init__(self, x, y, xd, yd):
self.x = x
self.y = y
self.xd = xd
self.yd = yd
class LearnPoint3:
i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
oled = ssd1306.SSD1306_I2C(64, 48, i2c)
n = 5
a = []
for i in range(0, n):
a.append(Vector(randint(1, 64-2), randint(1, 48-2), -3, -1))
while True:
oled.fill(0)
for i in range(0, n):
if a[i].x <= 0 or a[i].x >= 63:
a[i].xd = -a[i].xd
if a[i].y <= 0 or a[i].y >= 47:
a[i].yd = -a[i].yd
a[i].x += a[i].xd
a[i].y += a[i].yd
if i<(n-1):
oled.line(a[i].x, a[i].y, a[i+1].x, a[i+1].y, 1)
else:
oled.line(a[i].x, a[i].y, a[0].x, a[0].y, 1)
oled.show()
LearnPoint3()
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.