import sys, time, framebuf, _thread, neopixel
from time import sleep
from ssd1306 import SSD1306_I2C
from machine import Pin, I2C, SoftI2C, ADC
time.sleep(0.1) # Wait for USB to become ready
# Create an onboard LED object on pin 'LED'
led = Pin('LED', Pin.OUT)
# define for ws2812
RED = (10, 0, 0)
GREEN = (0, 10, 0)
BLUE = (0, 0, 10)
BLACK = (0, 0, 0)
pin_ws2812 = Pin(0, Pin.OUT)
neoRing = neopixel.NeoPixel(Pin(0), 3)
# define for oled
display = None
pin_SCL = Pin(5)
pin_SDA = Pin(4)
WIDTH = 128
HEIGHT = 64
# ADC
Pot = ADC(26)
# i2c = SoftI2C(scl=pin_SCL, sda=pin_SDA)
# i2c = I2C(id=1,scl=pin_SCL, sda=pin_SDA)
# devices = i2c.scan()
# if len(devices) > 0:
# print('have display')
# display = SSD1306_I2C(WIDTH, HEIGHT, i2c)
def write_text(text=''):
if display is not None:
print('show text')
display.fill(0)
display.text(text, 0, 0)
display.show()
def display_clear():
if display is not None:
print('clear screen')
display.fill(0)
display.show()
def display_color(color=(0, 0, 0)):
if display is not None:
r, g, b = color
text = 'Red: ' + str(r)
display.text(text, 0, 0)
text = 'Green: ' + str(g)
display.text(text, 0, 10)
text = 'Blue: ' + str(b)
display.text(text, 0, 20)
display.show()
def blink_onboard_led(times=10, waiting_ms=1000):
n = 0
while n < times:
led.off()
sleep_ms(waiting_ms)
led.on()
sleep_ms(waiting_ms)
led.off()
n += 1
def set_brightness(color, brightness=1):
r, g, b = color
r = int(r * brightness)
g = int(g * brightness)
b = int(b * brightness)
return (r, g, b)
def light_on_ws(color):
color = set_brightness(color)
neoRing.fill(color)
neoRing.write()
def light_off_ws():
color = set_brightness((0, 0, 0))
neoRing.fill(color)
neoRing.write()
def ReadPotentiometer():
adcpin = 26
pot = ADC(adcpin)
adc_value = pot.read_u16()
volt = (3.3/65535)*adc_value
percentPot = ScalePercent(volt)
return percentPot
def ScalePercent(volt):
percent = (volt/3.3)*100
return int(percent)
COLOR=GREEN
light_on_ws(COLOR)
write_text('booting...')
print('done')
# while True:
# potvalue = ReadPotentiometer()
# print(potvalue)
# sleep(1)
from images import img_Gadge
import framebuf
# pin_SCL = Pin(5)
# pin_SDA = Pin(4)
def init_i2c(scl_pin, sda_pin):
# initialize i2c device
i2c_dev = I2C(1, scl=Pin(27), sda=Pin(28), freq=200000)
print(str(i2c_dev.scan()))
def main():
i2c_dev = init_i2c(scl_pin=5, sda_pin=4)
if __name__ == '__main__':
main()
# img64 = img_Gadge
# img064b=bytearray(img64)
# print(len(img064b) )
# imgbuf=framebuf.FrameBuffer(img064b,128,64,framebuf.MONO_VLSB)
# display.blit(imgbuf, 0,0)
# display.show()
# oled096.blit(imgbuf, 0, 0)
# oled096.invert(1)
# oled096.show()