from machine import Pin, I2C
from ssd1306 import SSD1306_I2C
import framebuf, sys
import utime
import time
import math
pix_res_x = 128
pix_res_y = 64
x0=64
y0=32
def init_i2c(scl_pin, sda_pin):
# Initialize I2C device
i2c_dev = I2C(0, 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_text(oled):
# Display text on the OLED
oled.text("Raspberry Pi", 5, 5)
oled.text("Pico", 5, 15)
oled.show()
def main():
i2c_dev = init_i2c(scl_pin=1, sda_pin=0)
#i2c_dev = init_i2c(scl_pin=5, sda_pin=4)
oled = SSD1306_I2C(pix_res_x, pix_res_y, i2c_dev)
oled.fill(0)
oled.text('Pi Pico Espiral:',0,0)
while True:
r=5
for k in range (721):
x=x0+int(r*math.cos(4*k*2*math.pi/360))
y=y0-int(r*math.sin(4*k*2*math.pi/360))
r=(271/270)*r
oled.pixel(x,y,1)
oled.show()
oled.fill(0)
if __name__ == '__main__':
main()