Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
    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))
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 10
0
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)
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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)
Ejemplo n.º 14
0
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)
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
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
Ejemplo n.º 18
0
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)
Ejemplo n.º 19
0
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)    #顔検出モデルを初期化する
Ejemplo n.º 20
0
'''
实验名称: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"))
Ejemplo n.º 21
0
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()
Ejemplo n.º 22
0
# 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)
Ejemplo n.º 23
0
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

Ejemplo n.º 24
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)
Ejemplo n.º 25
0
    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)