def init_gui(self): import lvgl as lv import lvgl_helper as lv_h import lcd import time from machine import I2C config_touchscreen_support = True board_m1n = False i2c = I2C(I2C.I2C0, freq=400000, scl=30, sda=31) if not board_m1n: lcd.init() else: lcd.init(type=2, freq=20000000) if config_touchscreen_support: import touchscreen as ts ts.init(i2c) lv.init() disp_buf1 = lv.disp_buf_t() buf1_1 = bytearray(320 * 10) lv.disp_buf_init(disp_buf1, buf1_1, None, len(buf1_1) // 4) disp_drv = lv.disp_drv_t() lv.disp_drv_init(disp_drv) disp_drv.buffer = disp_buf1 disp_drv.flush_cb = lv_h.flush if board_m1n: disp_drv.hor_res = 240 disp_drv.ver_res = 240 else: disp_drv.hor_res = 320 disp_drv.ver_res = 240 lv.disp_drv_register(disp_drv) if config_touchscreen_support: indev_drv = lv.indev_drv_t() lv.indev_drv_init(indev_drv) indev_drv.type = lv.INDEV_TYPE.POINTER indev_drv.read_cb = lv_h.read lv.indev_drv_register(indev_drv) # lv.log_register_print_cb(lv_h.log) lv.log_register_print_cb(lambda level, path, line, msg: print( '%s(%d): %s' % (path, line, msg))) # Create the main screen and load it. self.screen_main = Screen_Main(self) lv.scr_load(self.screen_main)
def screen_init(): sda_pin = machine.Pin(23) scl_pin = machine.Pin(32) i2c1 = machine.I2C(id=1, scl=scl_pin, sda=sda_pin, speed=400000) ts.init(i2c1) tft.init(tft.ST7789, width=240, invrot=3, rot=1, bgr=False, height=240, miso=2, mosi=19, clk=18, cs=5, dc=27, speed=40000000, color_bits=tft.COLOR_BITS16, backl_pin=12, backl_on=1) tft.clear(tft.RED) time.sleep(1) tft.clear(tft.GREEN) time.sleep(1) tft.clear(tft.BLUE) time.sleep(1)
def __init__(self): disp_buf1 = lv.disp_buf_t() buf1_1 = bytearray(390 * 32) lv.disp_buf_init(disp_buf1, buf1_1, None, len(buf1_1) // 4) disp_drv = lv.disp_drv_t() lv.disp_drv_init(disp_drv) disp_drv.buffer = disp_buf1 disp_drv.flush_cb = display.flush disp_drv.hor_res = 390 disp_drv.ver_res = 390 lv.disp_drv_register(disp_drv) touchscreen.init() indev_drv = lv.indev_drv_t() lv.indev_drv_init(indev_drv) indev_drv.type = lv.INDEV_TYPE.POINTER indev_drv.read_cb = touchscreen.touchscreen_read lv.indev_drv_register(indev_drv)
def screen_init(): sda_pin = machine.Pin(23) scl_pin = machine.Pin(32) i2c = machine.I2C(id=1, scl=scl_pin, sda=sda_pin, speed=400000) ts.init(i2c) tft.init(tft.ST7789, width=240, invrot=3, rot=1, bgr=False, height=240, miso=2, mosi=19, clk=18, cs=5, dc=27, speed=40000000, color_bits=tft.COLOR_BITS16, backl_pin=12, backl_on=1) tft.clear(tft.RED) time.sleep(1) tft.clear(tft.GREEN) time.sleep(1) tft.clear(tft.BLUE) time.sleep(1) lv.init() disp_buf1 = lv.disp_buf_t() buf1_1 = bytes(240 * 10) lv.disp_buf_init(disp_buf1, buf1_1, None, len(buf1_1) // 4) disp_drv = lv.disp_drv_t() lv.disp_drv_init(disp_drv) disp_drv.buffer = disp_buf1 disp_drv.flush_cb = lv_h.flush disp_drv.hor_res = 240 disp_drv.ver_res = 240 lv.disp_drv_register(disp_drv) indev_drv = lv.indev_drv_t() lv.indev_drv_init(indev_drv) indev_drv.type = lv.INDEV_TYPE.POINTER indev_drv.read_cb = lv_h.read lv.indev_drv_register(indev_drv) scr = lv.obj() btn = lv.btn(scr) btn.align(lv.scr_act(), lv.ALIGN.CENTER, 0, 0) label = lv.label(btn) label.set_text("Button") lv.scr_load(scr)
def checkTouch(): global x, y x = 0 y = 0 try: ts.init(i2c, ts.FT62XX) except: print('faile to init touchpad') showInfo("touchpad init failed", False) return else: showInfo("touchpad init done", True) print('pass to init touchpad') time.sleep(2) lcd.clear() img = image.Image() status_last = ts.STATUS_IDLE x_last = 0 y_last = 0 draw = False while button.value(): (status, x, y) = ts.read() if draw: img.draw_line((x_last, y_last, x, y)) if status_last != status: if (status == ts.STATUS_PRESS or status == ts.STATUS_MOVE): draw = True else: draw = False status_last = status img.draw_string(0, 0, "Touch me", lcd.GREEN, scale=2) lcd.display(img) x_last = x y_last = y del img ts.__del__()
import time import ustruct as struct from machine import Timer from machine import I2C config_touchscreen_support = True board_m1n = False i2c = I2C(I2C.I2C0, freq=400000, scl=30, sda=31) if not board_m1n: lcd.init() else: lcd.init(type=2, freq=20000000) if config_touchscreen_support: import touchscreen as ts ts.init(i2c) lv.init() disp_buf1 = lv.disp_buf_t() buf1_1 = bytearray(320 * 10) lv.disp_buf_init(disp_buf1, buf1_1, None, len(buf1_1) // 4) disp_drv = lv.disp_drv_t() lv.disp_drv_init(disp_drv) disp_drv.buffer = disp_buf1 disp_drv.flush_cb = lv_h.flush if board_m1n: disp_drv.hor_res = 240 disp_drv.ver_res = 240 else: disp_drv.hor_res = 320 disp_drv.ver_res = 240
button = GPIO(GPIO.GPIO1, GPIO.IN) # led part fm.register(22, fm.fpioa.GPIO2) led = GPIO(GPIO.GPIO2, GPIO.OUT) led.value(1) # pir part fm.register(23, fm.fpioa.GPIO3) pir = GPIO(GPIO.GPIO3, GPIO.IN) try: i2c = I2C(I2C.I2C0, freq=400000, scl=30, sda=31) ts.init(i2c,ts.FT62XX) HW_TOUCH = True except: print('HAL TOUCH FAILED') try: rtc = pcf8563.PCF8563(i2c) rtc.set_datetime((2021,3,1,12,0,0,3)) HW_RTC = True except: print('HAL RTC FAILED') img.clear() img.draw_string(0,0,'Starting Camera ...',color=(0xFF,0,0)) img.draw_string(0,16,'Starting Camera ...',color=(0xFF,0,0))
import lvgl as lv import lvgl_helper as lv_h import lcd import time import touchscreen as ts from machine import Timer, I2C i2c = I2C(I2C.I2C0, freq=400000, scl=30, sda=31) lcd.init() #lcd.rotation(1) lv.init() ts.init(i2c, cal=(78, -5669, 21013658, 4010, 1, -449360, 65536)) #ts.init(i2c) #fixed = ts.calibrate() #print(fixed) disp_buf1 = lv.disp_buf_t() buf1_1 = bytearray(320*10) lv.disp_buf_init(disp_buf1, buf1_1, None, len(buf1_1)//4) disp_drv = lv.disp_drv_t() lv.disp_drv_init(disp_drv) disp_drv.buffer = disp_buf1 disp_drv.flush_cb = lv_h.flush disp_drv.hor_res = 320 disp_drv.ver_res = 240 lv.disp_drv_register(disp_drv) indev_drv = lv.indev_drv_t() lv.indev_drv_init(indev_drv)
import time import lvgl as lv lv.init() import display display.init() from lvstm32 import lvstm32 from lvdisplay import lvdisplay import touchscreen touchscreen.init() def event_handler1(obj, event): lv.scr_load(scr1) def event_handler2(obj, event): lv.scr_load(scr) #set style of scr and text style1= lv.style_t(lv.style_plain) style1.text.font=lv.font_roboto_22 style1.body.main_color=lv.color_make(58, 240, 240) style1.body.grad_color=lv.color_make(0, 0, 0) style1.text.color=lv.color_make(255,255,255) #style of date style2= lv.style_t(style1) style2.text.font=lv.font_roboto_28 style2.text.color=lv.color_make(255,255,255) #white #style of step style3= lv.style_t(style1) style3.text.font=lv.font_roboto_12 style3.text.color=lv.color_hex(0x009aff) #blue #style of heart style4= lv.style_t(style1)