def init(): global wav_dev, spk_sd lcd.init() lcd.rotation(2) # for wav fm.register(board_info.SPK_SD, fm.fpioa.GPIO0) spk_sd = GPIO(GPIO.GPIO0, GPIO.OUT) spk_sd.value(1) #Enable the SPK output fm.register(board_info.SPK_DIN, fm.fpioa.I2S0_OUT_D1) fm.register(board_info.SPK_BCLK, fm.fpioa.I2S0_SCLK) fm.register(board_info.SPK_LRCLK, fm.fpioa.I2S0_WS) wav_dev = I2S(I2S.DEVICE_0) # button fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1) but_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP) if but_a.value() == 0: sys.exit() sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.VGA) sensor.run(1)
def main(labels=None, model_addr="/sd/m.kmodel", sensor_window=(224, 224), lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False): sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_windowing(sensor_window) sensor.set_hmirror(sensor_hmirror) sensor.set_vflip(sensor_vflip) sensor.run(1) lcd.init(type=1) lcd.rotation(lcd_rotation) lcd.clear(lcd.WHITE) if not labels: with open('labels.txt', 'r') as f: exec(f.read()) if not labels: print("no labels.txt") img = image.Image(size=(320, 240)) img.draw_string(90, 110, "no labels.txt", color=(255, 0, 0), scale=2) lcd.display(img) return 1 try: img = image.Image("startup.jpg") lcd.display(img) except Exception: img = image.Image(size=(320, 240)) img.draw_string(90, 110, "loading model...", color=(255, 255, 255), scale=2) lcd.display(img) task = kpu.load(model_addr) try: while (True): img = sensor.snapshot() t = time.ticks_ms() fmap = kpu.forward(task, img) t = time.ticks_ms() - t plist = fmap[:] pmax = max(plist) max_index = plist.index(pmax) img.draw_string(0, 0, "%.2f : %s" % (pmax, labels[max_index].strip()), scale=2) img.draw_string(0, 200, "t:%dms" % (t), scale=2) lcd.display(img) except Exception as e: raise e finally: kpu.deinit(task)
def __init__(self): self.pmu = AXP192() self.pmu.setScreenBrightness(0) self.pmu.set_on_pressed_listener(self.on_pek_button_pressed) self.pmu.set_on_long_pressed_listener(self.on_pek_button_long_pressed) self.pmu.set_system_periodic_task(self.system_periodic_task) self.app_stack = [] lcd.init() self.pmu.setScreenBrightness(0) lcd.rotation(2) # Rotate the lcd 180deg # set brightness to zero before first draw to avoid flower screen self.pmu.setScreenBrightness(0) self.home_button = None self.top_button = None self.led_w = None self.led_r = None self.led_g = None self.led_b = None self.spk_sd = None self.is_handling_irq = False self.init_fm() self.is_drawing_dirty = False self.is_boot_complete_first_draw = True self.show_provision() self.navigate(LauncherApp(self))
def __init__(self, out_range=10, ignore_limit=0.02, hmirror=False, vflip=False, lcd_rotation=2, lcd_mirror=True): self.pitch = 0 self.roll = 0 self.out_range = out_range self.ignore = ignore_limit self.task_fd = kpu.load(0x300000) # face model addr in flash anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) kpu.init_yolo2(self.task_fd, 0.5, 0.3, 5, anchor) lcd.init() lcd.rotation(lcd_rotation) lcd.mirror(lcd_mirror) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) if hmirror: sensor.set_hmirror(1) if vflip: sensor.set_vflip(1)
def main(model_addr=0x300000, lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False): sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_hmirror(sensor_hmirror) sensor.set_vflip(sensor_vflip) sensor.run(1) lcd.init(type=1) lcd.rotation(lcd_rotation) lcd.clear(lcd.WHITE) task = kpu.load(model_addr) anchors = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) kpu.init_yolo2(task, 0.5, 0.3, 5, anchors) # threshold:[0,1], nms_value: [0, 1] try: while(True): img = sensor.snapshot() t = time.ticks_ms() objects = kpu.run_yolo2(task, img) t = time.ticks_ms() - t if objects: for obj in objects: img.draw_rectangle(obj.rect()) img.draw_string(0, 200, "t:%dms" %(t), scale=2) lcd.display(img) except Exception as e: sys.print_exception(e) finally: kpu.deinit(task)
def m5stickv_init(): lcd.init() lcd.rotation(2) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) #QVGA=320x240 sensor.set_windowing((224, 224)) sensor.run(1)
def camera_init(): sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) # ov2640 id:9794 ,ov5642 id:22082 if sensor.get_id() == 9794: sensor.set_hmirror(1) sensor.set_vflip(1) else: sensor.set_hmirror(0) sensor.set_vflip(1) lcd.rotation(1)
def m5stickv_init(): lcd.init() lcd.rotation(2) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) #QVGA=320x240 sensor.set_windowing((224, 224)) sensor.run(1) fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1) but_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP) fm.register(board_info.BUTTON_B, fm.fpioa.GPIO2) but_b = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP)
def setup(): img_size = 224 # 上記のセルで IMAGE_SIZE に指定したのと同じ値 lcd.init() lcd.rotation(2) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_windowing((img_size, img_size)) #キャプチャの段階でサイズを合わせる sensor.skip_frames(time=1000) #sensor.set_vflip(0) #flip camera; maix go use sensor.set_hmirror(0) sensor.run(1)
def m5stickv_init(uniV_use): if uniV_use==0: lcd.init() lcd.rotation(2) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_windowing((224, 224)) sensor.run(1) if uniV_use==0: pmu = axp192() pmu.setScreenBrightness(9)
def setup(): global g_isLoop global g_i2c global g_clock g_i2c = I2C(I2C.I2C0, freq=400000, scl=28, sda=29) lcd.init() lcd.rotation(2) lcd.clear() #lcd.font(lcd.FONT_DejaVu24) g_clock = time.clock() g_isLoop = True setBacklight(1)
def main(anchors, labels = None, model_addr="/sd/m.kmodel", sensor_window=(224, 224), lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False): sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_windowing(sensor_window) sensor.set_hmirror(sensor_hmirror) sensor.set_vflip(sensor_vflip) sensor.run(1) lcd.init(type=1) lcd.rotation(lcd_rotation) lcd.clear(lcd.WHITE) if not labels: with open('labels.txt','r') as f: exec(f.read()) if not labels: print("no labels.txt") img = image.Image(size=(320, 240)) img.draw_string(90, 110, "no labels.txt", color=(255, 0, 0), scale=2) lcd.display(img) return 1 try: img = image.Image("startup.jpg") lcd.display(img) except Exception: img = image.Image(size=(320, 240)) img.draw_string(90, 110, "loading model...", color=(255, 255, 255), scale=2) lcd.display(img) task = kpu.load(model_addr) kpu.init_yolo2(task, 0.5, 0.3, 5, anchors) # threshold:[0,1], nms_value: [0, 1] try: while 1: img = sensor.snapshot() t = time.ticks_ms() objects = kpu.run_yolo2(task, img) t = time.ticks_ms() - t if objects: for obj in objects: pos = obj.rect() img.draw_rectangle(pos) img.draw_string(pos[0], pos[1], "%s : %.2f" %(labels[obj.classid()], obj.value()), scale=2, color=(255, 0, 0)) img.draw_string(0, 200, "t:%dms" %(t), scale=2, color=(255, 0, 0)) lcd.display(img) except Exception as e: raise e finally: kpu.deinit(task)
def boot_lcd(): lcd.init() lcd.rotation(2) #Rotate the lcd 180deg try: img = image.Image("/sd/startup.jpg") lcd.display(img) test = "test" lcd.draw_string(lcd.width() // 50, lcd.height() // 2, test, lcd.WHITE, lcd.RED) except: lcd.draw_string(lcd.width() // 50, lcd.height() // 2, "Error: Cannot find start.jpg", lcd.WHITE, lcd.RED)
def main(model_addr=0x300000, lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False): try: sensor.reset() except Exception as e: raise Exception( "sensor reset fail, please check hardware connection, or hardware damaged! err: {}" .format(e)) sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_hmirror(sensor_hmirror) sensor.set_vflip(sensor_vflip) sensor.run(1) lcd.init(type=1) lcd.rotation(lcd_rotation) lcd.clear(lcd.WHITE) anchors = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) try: task = None task = kpu.load(model_addr) kpu.init_yolo2(task, 0.5, 0.3, 5, anchors) # threshold:[0,1], nms_value: [0, 1] while (True): img = sensor.snapshot() t = time.ticks_ms() objects = kpu.run_yolo2(task, img) t = time.ticks_ms() - t if objects: for obj in objects: img.draw_rectangle(obj.rect()) img.draw_string(0, 200, "t:%dms" % (t), scale=2) lcd.display(img) except Exception as e: raise e finally: if not task is None: kpu.deinit(task)
def checkCamera(): global x, y x = 0 y = 0 showInfo("camera starting", True) img = image.Image() try: sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time=2000) lcd.rotation(2) except: showInfo("camera init failed", False) return else: showInfo("camera init done", True) try: task = kpu.load(0x300000) anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) a = kpu.init_yolo2(task, 0.5, 0.3, 5, anchor) while True: img = sensor.snapshot() code = kpu.run_yolo2(task, img) if code: for i in code: a = img.draw_rectangle(i.rect(), color=lcd.BLUE) new = img.copy(roi=(0, 0, 239, 239)) lcd.display(new) except: print('kup load fialed') while True: img = sensor.snapshot() new = img.copy(roi=(0, 0, 239, 239)) lcd.display(new)
def main(labels = None, model_addr="/sd/m.kmodel", lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False): gc.collect() sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_windowing((224, 224)) sensor.set_hmirror(sensor_hmirror) sensor.set_vflip(sensor_vflip) sensor.run(1) lcd.init(type=1) lcd.rotation(lcd_rotation) lcd.clear(lcd.WHITE) if not labels: raise Exception("no labels.txt") task = kpu.load(model_addr) try: while(True): img = sensor.snapshot() t = time.ticks_ms() fmap = kpu.forward(task, img) t = time.ticks_ms() - t plist=fmap[:] pmax=max(plist) max_index=plist.index(pmax) img.draw_string(0,0, "%.2f\n%s" %(pmax, labels[max_index].strip()), scale=2, color=(255, 0, 0)) img.draw_string(0, 200, "t:%dms" %(t), scale=2, color=(255, 0, 0)) lcd.display(img) except Exception as e: sys.print_exception(e) finally: kpu.deinit(task)
from machine import UART from board import board_info from fpioa_manager import fm from Maix import GPIO import sensor, lcd lcd.init() lcd.rotation(2) sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) #sensor.set_vflip(1) #sensor.set_hmirror(1) sensor.run(1) sensor.skip_frames(time=2000) fm.register(35, fm.fpioa.UART1_TX, force=True) fm.register(34, fm.fpioa.UART1_RX, force=True) uart = UART(UART.UART1, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096) while (True): img = sensor.snapshot() lcd.display(img) buf = uart.readline() if buf and len(buf) == 3: print(buf) img_buf = img.compress(quality=50) sz = img_buf.size() img_size1 = (sz & 0xFF0000) >> 16 img_size2 = (sz & 0x00FF00) >> 8
fm.register(34, fm.fpioa.UART2_RX, force=True) uart_Port = UART(UART.UART2, 115200, 8, 0, 0, timeout=1000, read_buf_len=4096) def u_send(d): data_packet = bytearray([0xFF, 0xAA]) data_packet.append(d % 256) uart_Port.write(data_packet) print("send " + str(d)) pmu = axp192() pmu.enablePMICSleepMode(True) lcd.init() lcd.rotation(2) #Rotate the lcd 180deg try: img = image.Image("/flash/startup.jpg") lcd.display(img) except: lcd.draw_string(lcd.width() // 2 - 100, lcd.height() // 2 - 4, "Error: Cannot find start.jpg", lcd.WHITE, lcd.RED) from Maix import I2S, GPIO import audio from Maix import GPIO from fpioa_manager import * fm.register(board_info.SPK_SD, fm.fpioa.GPIO0)
key_gpio=GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP) last_key_state=1 key_pressed=0 #キーピンを初期化する def check_key(): #キー検出機能 global last_key_state global key_pressed val=key_gpio.value() if last_key_state == 1 and val == 0: key_pressed=1 else: key_pressed=0 last_key_state = val lcd.init() #LCD初期化 lcd.rotation(0) #センサーカメラを初期化する sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_hmirror(1) #カメラミラーリングの設定 sensor.set_vflip(1) #カメラのフリップを設定する sensor.run(1) #カメラを有効にする anchor = (1.889, 2.5245, 2.9465, 3.94056, 3.99987, 5.3658, 5.155437, 6.92275, 6.718375, 9.01025) #顔検出用アンカー #顔の5つのキーポイント座標、左目、右目、鼻、左口の角、右口の角 dst_point = [(44,59),(84,59),(64,82),(47,105),(81,105)] a = kpu.init_yolo2(task_fd, 0.5, 0.3, 5, anchor) #顔検出モデルを初期化する
''' 实验名称:LCD 版本: v1.0 日期: 2019.12 作者: 01Studio 说明:编程实现LCD显示信息。将01Studio.bmp文件发送到开发板。 ''' import lcd, image, utime lcd.init() #初始化LCD lcd.clear(lcd.WHITE) #清屏白色 #显示字符 lcd.draw_string(110, 120, "Hello 01Studio!", lcd.BLACK, lcd.WHITE) #显示字符 utime.sleep(2) #延时2秒 #显示图像 lcd.rotation(1) #由于图像默认是240*320,因此顺时钟旋转90°。 lcd.display(image.Image("01Studio.bmp"))
millis = utime.ticks_ms(); try: i2c.writeto(mpu6050_addr, bytearray([107, 0])) HW_MPU6050 = True except: HW_MPU6050 = False print('HAL MPU6050 FAILED') while True: if button.value()==0: while button.value()==0: pass lcd_rotation += 1 lcd_rotation %= 4 lcd.rotation(lcd_rotation) status = 0 x=0 y=0 if HW_TOUCH: (status, x, y) = ts.read() if (status == ts.STATUS_PRESS or status == ts.STATUS_MOVE): if lcd_rotation == 0: widht,height = lcd.width(),lcd.height() x,y = y,x x = lcd.width() - x elif lcd_rotation == 1: widht,height = lcd.width(),lcd.height()
# Author by Comdet import sensor, image, time, lcd, os import KPU as kpu import ulab as np from Corgi85 import corgi85 from Dude import dude #=== setup camera ===# sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.set_vflip(1) sensor.run(1) #=== setup LCD screen ===# lcd.init() lcd.rotation(0) #=== Helper Function ===# face_dataset = [] last_face_id = 0; def clear_dataset(file_name,dataset): os.remove(file_name) dataset = [] def match(tester,dataset): codex = np.array(dataset) t = np.array(tester) for i in range(codex.shape()[0]): codex[i,:] = codex[i,:] - t data = np.sum(codex * codex, axis=1)
fm.register(23, fm.fpioa.GPIOHS7, force=True) led_bl = GPIO(GPIO.GPIOHS7, GPIO.OUT) led_bl.value(1) #按钮初始化,设置两按钮为上拉模式 fm.register(37, fm.fpioa.GPIOHS6, force=True) fm.register(36, fm.fpioa.GPIOHS5, force=True) key1 = GPIO(GPIO.GPIOHS6, GPIO.PULL_UP) key2 = GPIO(GPIO.GPIOHS5, GPIO.PULL_UP) motor = motorPro() #初始化电机 motor.setSpeed(0, 0) #设置速度为0 lcd.init(freq=60000000) #初始化屏幕 lcd.rotation(1) #旋转屏幕 sensor.reset() #重置并初始化传感器。 sensor.set_pixformat(sensor.RGB565) #将像素格式设置为RGB565 sensor.set_hmirror(0) #摄像头水平镜像设置 sensor.set_vflip(1) #摄像头垂直镜像设置 sensor.set_framesize(sensor.QQVGA) #设置图像格式QQVGA(160*120) sensor.skip_frames(time=2000) #等待设置生效 ROI = (60, 40, 40, 40) #感兴趣区域 DEVIATION = 25 #颜色偏差值 AREX_MAX = 10000 #图像最大面积 AREX_MIN = 2000 #图像最小面积 again = 0
import time import lcd lcd.init(type=5, lcd_type=3) while True: lcd.clear(0xff00) lcd.rotation(0) lcd.draw_string(30, 30, "hello maixpy", lcd.WHITE, 0xff00) time.sleep(1) lcd.clear(0x00ff) lcd.rotation(1) lcd.draw_string(60, 60, "hello maixpy", lcd.WHITE, 0X00FF) time.sleep(1) lcd.clear(0x0ff0) lcd.rotation(2) lcd.draw_string(120, 60, "hello maixpy", lcd.WHITE, 0x0ff0) time.sleep(1) lcd.clear(0x0f0f) lcd.rotation(3) lcd.draw_string(120, 120, "hello maixpy", lcd.WHITE, 0x0f0f) time.sleep(1)
a = img.draw_string(5, 5, s, scale=1, color=(255,0,0), x_spacing=1, mono_space=0) lcd.display(img) del(img) time.sleep(2) try: first_boot = "first_boot" in os.listdir("/flash") boot_pressed = 0 fpioa = FPIOA() fpioa.set_function(16, FPIOA.GPIO7) test_gpio = GPIO(GPIO.GPIO7, GPIO.IN, GPIO.PULL_UP) lcd.init() lcd.rotation(1) if first_boot: draw_on_image('/flash/logo.jpg', interface_strings[lang]['First boot'], 70, 220, size = 2, space = 0) os.remove("/flash/first_boot") time.sleep(2) gc.collect() from preloaded import * else: lcd.display(image.Image('logo.jpg')) start_time = time.ticks_ms() while (time.ticks_ms() - start_time) < 500: if test_gpio.value() == 0: boot_pressed += 1 time.sleep(0.5)