Exemple #1
0
from Maix import GPIO, I2S, FFT
import image, lcd, math
from board import board_info
from fpioa_manager import fm

sample_rate = 38640
sample_points = 1024
fft_points = 512
hist_x_num = 50


lcd.init(freq=15000000)

# close WiFi
fm.register(8,  fm.fpioa.GPIO0, force=True)
wifi_en=GPIO(GPIO.GPIO0,GPIO.OUT)
wifi_en.value(0)

fm.register(20,fm.fpioa.I2S0_IN_D0, force=True)
fm.register(19,fm.fpioa.I2S0_WS, force=True)    # 19 on Go/Duino Board and Bit(new version)
fm.register(18,fm.fpioa.I2S0_SCLK, force=True)  # 18 on Go/Duino Board and Bit(new version)

rx = I2S(I2S.DEVICE_0)
rx.channel_config(rx.CHANNEL_0, rx.RECEIVER, align_mode = I2S.STANDARD_MODE)
rx.set_sample_rate(sample_rate)
img = image.Image()
if hist_x_num > 320:
    hist_x_num = 320
hist_width = int(320 / hist_x_num)#changeable
x_shift = 0
while True:
Exemple #2
0
    image.font_free()

    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:
Exemple #3
0
        self._register(_INTERRUPT_CLEAR, 0x01)
        return value


if __name__ == "__main__":
    ################### config ###################
    VL53L0X_I2C_NUM = I2C.I2C0
    VL53L0X_FREQ = const(100000)
    VL53L0X_SCL = const(6)
    VL53L0X_SDA = const(7)
    VL53L0X_SHT = const(8)
    ##############################################

    # io configure
    fm.register(VL53L0X_SHT, fm.fpioa.GPIOHS0, force=True)
    XSHUT = GPIO(GPIO.GPIOHS7, GPIO.OUT)
    XSHUT.value(1)

    # i2c init
    i2c = I2C(VL53L0X_I2C_NUM,
              freq=VL53L0X_FREQ,
              scl=VL53L0X_SCL,
              sda=VL53L0X_SDA)
    devices = i2c.scan()
    print(devices)

    # create obj and read distance
    tof = VL53L0X(i2c)
    while True:
        mm = tof.read()
        utime.sleep_ms(100)
Exemple #4
0
# sensor.set_auto_whitebal(False, rgb_gain_db=(0x52,0x40,0x4d))
# sensor.set_saturation(0)
# sensor.set_brightness(4)
# sensor.set_contrast(0)
# sensor.set_hmirror(True)        # image horizonal mirror
# sensor.set_vflip(True)          # image vertical flip
# sensor.set_auto_whitebal(False)

#### lcd config ####
lcd.init(type=1, freq=15000000)
lcd.rotation(2)

#### boot key ####
boot_pin = 16  # board_info.BOOT_KEY
fm.register(boot_pin, fm.fpioa.GPIOHS0)
key = GPIO(GPIO.GPIOHS0, GPIO.PULL_UP)

######################################################


#### main ####
def capture_main(key):
    def draw_string(img, x, y, text, color, scale, bg=None, full_w=False):
        if bg:
            if full_w:
                full_w = img.width()
            else:
                full_w = len(text) * 8 * scale + 4
            img.draw_rectangle(x - 2,
                               y - 2,
                               full_w,
##################################################
# initialize
##################################################
# LCDを初期化
lcd.init()
# LCDの方向を設定
lcd.direction(lcd.YX_LRUD)

# レジスタを設定
fm.register(board_info.LED_W, fm.fpioa.GPIO3)
fm.register(board_info.LED_R, fm.fpioa.GPIO4)
fm.register(board_info.LED_G, fm.fpioa.GPIO5)
fm.register(board_info.LED_B, fm.fpioa.GPIO6)

# GPIO設定
led_w = GPIO(GPIO.GPIO3, GPIO.OUT)
led_r = GPIO(GPIO.GPIO4, GPIO.OUT)
led_g = GPIO(GPIO.GPIO5, GPIO.OUT)
led_b = GPIO(GPIO.GPIO6, GPIO.OUT)

##################################################
# main
##################################################
# LCDに対して文字を描画
lcd.draw_string(50, 50, "Hello world", lcd.RED, lcd.WHITE)

# 画像を作成(LCDと同じ解像度)
img = image.Image()

# 矩形を指定して画像の一部をコピー
img2 = img.copy((15, 15, 60, 60))
Exemple #6
0
# simple_camera - By: chris - 周四 8月 6 2020

import sensor, image, time, lcd
from fpioa_manager import fm
from board import board_info
from Maix import GPIO
import time


num = 0
switch_status = 0
fm.register(board_info.BOOT_KEY, fm.fpioa.GPIO1, force=True)
fm.register(board_info.ENTER,fm.fpioa.GPIOHS10,force=True)
key_shot = GPIO(GPIO.GPIOHS10,GPIO.IN)
repl_unlock = GPIO(GPIO.GPIO1, GPIO.IN)
lcd.init(freq=15000000)
sensor.reset()

sensor.set_pixformat(sensor.YUV422)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
clock = time.clock()

while(repl_unlock.value() != 0):
    clock.tick()
    img = sensor.snapshot()
    if key_shot.value() == 0:
        path = "/flash/camera-" + str(num) + ".jpg"
        lcd.draw_string(80,40,"Saved :)",lcd.RED,lcd.WHITE)
        time.sleep(1)
        img.save(path)
Exemple #7
0
# server code refer to ../tools_on_PC/network/pic_server.py

import network, socket, time, sensor, image
from machine import UART
from Maix import GPIO
from fpioa_manager import fm, board_info

########## config ################
wifi_ap_ssid = "Sipeed_2.4G"
wifi_ap_passwd = "Sipeed123."
server_ip = "192.168.0.183"
server_port = 3456
##################################

fm.register(8, fm.fpioa.GPIOHS0)
wifi_en = GPIO(GPIO.GPIOHS0, GPIO.OUT)
fm.register(board_info.WIFI_RX, fm.fpioa.UART2_TX)
fm.register(board_info.WIFI_TX, fm.fpioa.UART2_RX)


def wifi_enable(en):
    global wifi_en
    wifi_en.value(en)


def wifi_reset():
    global uart
    wifi_enable(0)
    time.sleep_ms(200)
    wifi_enable(1)
    time.sleep(2)
from Maix import I2S, GPIO
from fpioa_manager import fm
from modules import SpeechRecognizer
import utime, time

# register i2s(i2s0) pin
fm.register(20, fm.fpioa.I2S0_OUT_D0, force=True)
fm.register(18, fm.fpioa.I2S0_SCLK, force=True)
fm.register(19, fm.fpioa.I2S0_WS, force=True)

# close WiFi, if use M1W Core module
if True:
    fm.register(8, fm.fpioa.GPIO0, force=True)
    wifi_en = GPIO(GPIO.GPIO0, GPIO.OUT)
    wifi_en.value(0)

sample_rate = 8000
# init i2s(i2s0)
i2s_dev = I2S(I2S.DEVICE_0)

# config i2s according to speechrecognizer
i2s_dev.channel_config(i2s_dev.CHANNEL_0,
                       I2S.RECEIVER,
                       resolution=I2S.RESOLUTION_16_BIT,
                       cycles=I2S.SCLK_CYCLES_32,
                       align_mode=I2S.RIGHT_JUSTIFYING_MODE)
i2s_dev.set_sample_rate(sample_rate)

s = SpeechRecognizer(i2s_dev)
type(s)
print(s)
版本: v1.0
日期: 2019.12
作者: 01Studio
说明:通过按键改变 LED 的亮灭状态(外部中断方式)
'''

from Maix import GPIO
from fpioa_manager import fm
import utime

#注册IO,注意高速GPIO口才有中断
fm.register(12, fm.fpioa.GPIO0)
fm.register(16, fm.fpioa.GPIOHS0)

#构建lED和KEY对象
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT, value=1)
KEY = GPIO(GPIO.GPIOHS0, GPIO.IN, GPIO.PULL_UP)

#LED状态表示
state = 1


#中断回调函数
def fun(KEY):
    global state
    utime.sleep_ms(10)  #消除抖动
    if KEY.value() == 0:  #确认按键被按下
        state = not state
        LED_B.value(state)

Exemple #10
0
except:
    pass
'''
RGB_LED_OFF()
version_info = sys.version
print("python version:" + version_info)
#freq.set(400,400)
print("CPU freq:" + str(freq.get_cpu()))
print("KPU freq:" + str(freq.get_kpu()))
print("UnitV facedetect demo v1.1 by Zell, 27.04.2020")
print("GROVE port GND, VCC_5V, G35,G34 function: NA")
print("UnitV Btn_A and Btn_B init.")
#UnitV btns
#Btn A, capature image
fm.register(18, fm.fpioa.GPIO1)
Btn_A = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP)  #PULL_UP is required here!
#Btn B
fm.register(19, fm.fpioa.GPIO2)
Btn_B = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP)  #PULL_UP is required here!

isButtonPressedA = 0
isButtonPressedB = 0

if Btn_B.value() == 0:  #If dont want to run the demo
    sys.exit()

time.sleep(0.5)  # Delay for few seconds to see the start-up screen :p

import sensor
import KPU as kpu
Exemple #11
0
import utime
from Maix import GPIO
from board import board_info
from fpioa_manager import *

board_info = board_info()

fm.register(board_info.LED_R, fm.fpioa.GPIO0)
fm.register(board_info.LED_G, fm.fpioa.GPIOHS0)
fm.register(board_info.BOOT_KEY, fm.fpioa.GPIO1)

led_r = GPIO(GPIO.GPIO0, GPIO.OUT)
led_g = GPIO(GPIO.GPIOHS0, GPIO.OUT)
input = GPIO(GPIO.GPIO1, GPIO.IN)

i = 0
status = 0
while i < 20:
    led_r.value(status)
    led_g.value(status)
    print("LED :", led_r.value())
    print("-----input:", input.value())
    i += 1
    status = 0 if (status == 1) else 1
    utime.sleep_ms(500)

fm.unregister(board_info.LED_R, fm.fpioa.GPIO0)
fm.unregister(board_info.LED_R, fm.fpioa.GPIOHS0)
fm.unregister(board_info.BOOT_KEY, fm.fpioa.GPIO1)
Exemple #12
0
lcd.init()
# LCDの方向を設定
lcd.direction(lcd.YX_LRUD)

# カメラを初期化
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)

# レジスタを設定
fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1)
fm.register(board_info.BUTTON_B, fm.fpioa.GPIO2)

# GPIO設定
button_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP)
button_b = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP)

##################################################
# main
##################################################
# 変数
basename = "capture"
ext = ".avi"
no = 1

while True:
    while True:
        img = sensor.snapshot()
        img.draw_string(img.width() // 2 - 100,
                        img.height() // 2 - 4,
Exemple #13
0
import video, time
from Maix import GPIO
from board import board_info
from fpioa_manager import fm
from utime import sleep
import lcd

AUDIO_PA_EN_PIN = 2

lcd.init(freq=15000000)

# open audio PA
if AUDIO_PA_EN_PIN:
    fm.register(AUDIO_PA_EN_PIN, fm.fpioa.GPIO1, force=True)
    wifi_en = GPIO(GPIO.GPIO1, GPIO.OUT)
    wifi_en.value(1)

fm.register(34, fm.fpioa.I2S0_OUT_D1, force=True)
fm.register(35, fm.fpioa.I2S0_SCLK, force=True)
fm.register(33, fm.fpioa.I2S0_WS, force=True)

fm.register(board_info.D[7], fm.fpioa.GPIO7)
execBtn = GPIO(GPIO.GPIO7, GPIO.IN, GPIO.PULL_UP)

sleep(0.5)

while True:
    if execBtn.value() == 0:
        v = video.open("/sd/badapple_320_240_15fps.avi")
        print(v)
        v.volume(10)
# camera for SD card - By: sundeqing - Mon Apr 20 2020

import sensor, image, time, lcd
from Maix import GPIO
from fpioa_manager import fm
from board import board_info
import uos

fm.register(board_info.BOOT_KEY, fm.fpioa.GPIO1, force=True)
input = GPIO(GPIO.GPIO1, GPIO.IN)

photoIndex = 0
prevInputValue = 1

try:
    filesInSd = uos.listdir("/sd")
    print(filesInSd)
    while (("photo%03d.jpg" % photoIndex) in filesInSd):
        photoIndex = photoIndex + 1
except:
    photoIndex = "no card"

lcd.init(freq=15000000)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.set_vflip(0)
sensor.set_hmirror(0)
sensor.skip_frames(time=1000)
import os
import  sensor, image, lcd, time
from fpioa_manager import fm
from machine import I2C
from board import board_info
from Maix import GPIO

#from board import board_info
i2c = I2C(I2C.I2C0, freq=100000, scl=35, sda=34)
fm.register(22, fm.fpioa.GPIOHS6, force=True)
pin12 = GPIO(GPIO.GPIOHS6, GPIO.OUT)
lcd.init()
lcd.clear()
sensor.reset(dual_buff=True)
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_vflip(2)
sensor.run(1)
lcd.init(type=2, freq=20000000, color=lcd.BLACK)
tim = time.ticks_ms()
f = open('/sd/dataset.csv', 'a')
tim_b = tim
idpg=0
bt =0
dirfo = 0
dirfoc = 0
eee1 = 0
tong3 = 0
toss1 = 0

img_co_l = 0
import sensor, image, lcd
import KPU as kpu
import time
from Maix import FPIOA, GPIO
task_fd = kpu.load(0x200000)
task_ld = kpu.load(0x300000)
task_fe = kpu.load(0x400000)
clock = time.clock()
key_pin = 16
fpioa = FPIOA()
fpioa.set_function(key_pin, FPIOA.GPIO7)
key_gpio = GPIO(GPIO.GPIO7, GPIO.IN)
last_key_state = 1
key_pressed = 0


def check_key():
    global last_key_state
    global key_pressed
    val = key_gpio.value()
    key_pressed = 0
    if last_key_state == 1 and val == 0:
        time.sleep(0.02)  # debouncing
        val = key_gpio.value()  # read again
        if val == 0:
            key_pressed = 1
    last_key_state = val


lcd.init()
sensor.reset()
import sensor, image, lcd, time
import KPU as kpu
from fpioa_manager import fm
from board import board_info
from Maix import GPIO

# Define GPIO to light up the LEDs
fm.register(board_info.LED_B, fm.fpioa.GPIO0)
led_plastic = GPIO(GPIO.GPIO0, GPIO.OUT)
fm.register(board_info.LED_G, fm.fpioa.GPIO1)
led_glasss = GPIO(GPIO.GPIO1, GPIO.OUT)
fm.register(board_info.LED_R, fm.fpioa.GPIO2)
led_other = GPIO(GPIO.GPIO2, GPIO.OUT)

# Change this if you're confident enough
THRESHOLD = 0.3

# Init camera sensor
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.set_vflip(0)
sensor.set_hmirror(False)
sensor.run(1)

# Init LCD
lcd.init(freq=15000000)
lcd.clear()
lcd.draw_string(100, 96, "Waste Classifier")
lcd.draw_string(100, 112, "Loading Models...")
import image
import lcd
import KPU as kpu
import time
from Maix import FPIOA, GPIO
import gc
from fpioa_manager import fm
from board import board_info

task_fd = kpu.load(0x200000)
task_ld = kpu.load(0x300000)
task_fe = kpu.load(0x400000)
clock = time.clock()

fm.register(board_info.BOOT_KEY, fm.fpioa.GPIOHS0)
key_gpio = GPIO(GPIO.GPIOHS0, GPIO.IN)
start_processing = False


def set_key_state(*_):
    global start_processing
    start_processing = True


key_gpio.irq(set_key_state, GPIO.IRQ_RISING, GPIO.WAKEUP_NOT_SUPPORT)

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_hmirror(1)
Exemple #19
0
import uos
import os
import KPU as kpu
from fpioa_manager import *
from machine import I2C
from Maix import I2S, GPIO
from machine import Timer, PWM
#
# initialize
#
lcd.init(freq=15000000)
lcd.rotation(2)

fm.register(board_info.LED_W, fm.fpioa.GPIO3)

led_w = GPIO(GPIO.GPIO3, GPIO.OUT)
led_w.value(1)

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)

fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1)
but_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP)  #PULL_UP is required here!
Exemple #20
0
from Maix import GPIO
from machine import UART
from fpioa_manager import fm, board_info

try:
    import usocket as _socket
except:
    import _socket
try:
    import ussl as ssl
except:
    import ssl

# for new MaixGO board, if not, remove it
fm.register(0, fm.fpioa.GPIOHS1, force=True)
wifi_io0_en = GPIO(GPIO.GPIOHS1, GPIO.OUT)
wifi_io0_en.value(0)

# En SEP8285
fm.register(8, fm.fpioa.GPIOHS0, force=True)
wifi_en = GPIO(GPIO.GPIOHS0, GPIO.OUT)
fm.register(board_info.WIFI_RX, fm.fpioa.UART2_TX, force=True)
fm.register(board_info.WIFI_TX, fm.fpioa.UART2_RX, force=True)


def wifi_enable(en):
    global wifi_en
    wifi_en.value(en)


def wifi_reset():
Exemple #21
0
                 1,
                 timeout=1000,
                 read_buf_len=4096)
######## UART for MP3 Player
fm.register(21, fm.fpioa.UART2_TX)
fm.register(20, fm.fpioa.UART2_RX)
uart_sound = UART(UART.UART2,
                  9600,
                  8,
                  None,
                  1,
                  timeout=1000,
                  read_buf_len=4096)
######## GPIO For trig thermometer
fm.register(10, fm.fpioa.GPIO1, force=True)
triger = GPIO(GPIO.GPIO1, GPIO.OUT)
triger.value(0)

player = Player(uart_sound, volume=1)

######## Config Camera and Display
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((320, 224))
sensor.set_vflip(0)
sensor.run(1)
lcd.init(type=1, freq=15000000, color=lcd.BLACK)
lcd.rotation(2)

######### config facemask detection
# Lab 6-1 : Play WAV song from SD Card
# By: Apirak - [email protected]

import sensor, lcd, sys

from Maix import I2S, GPIO
import audio
from Maix import GPIO
from fpioa_manager import *

# Register Speaker
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)

# Register Button
fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1)
fm.register(board_info.BUTTON_B, fm.fpioa.GPIO2)

# Setup Button Mode
button_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP)
button_b = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP)

lcd.init()
lcd.rotation(2)
'''
实验名称:流水灯
版本:v1.0
日期:2019.12
作者:01Studio
实验目的:让RGB灯循环闪烁。
'''
from Maix import GPIO
from fpioa_manager import fm
import utime

#将将LED外部IO注册到内部GPIO,K210引脚支持任意配置
fm.register(12, fm.fpioa.GPIO0)
fm.register(13, fm.fpioa.GPIO1)
fm.register(14, fm.fpioa.GPIO2)

#构建LED对象,并初始化输出高电平,关闭LED
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT, value=1)
LED_G = GPIO(GPIO.GPIO1, GPIO.OUT, value=1)
LED_R = GPIO(GPIO.GPIO2, GPIO.OUT, value=1)

#定义数组方便循环语句调用
LED = [LED_B, LED_G, LED_R]

while True:

    for i in range(0, 3):
        LED[i].value(0)  #点亮LED
        utime.sleep(1)
        LED[i].value(1)  #关闭LED
Exemple #24
0
from Maix import GPIO
from machine import I2C
from modules import ws2812
import time

FPS_clock = time.clock()
run_cnt = 0
isButtonPressedA = 0
isButtonPressedB = 0

#fm.register(board_info.LED_R, fm.fpioa.GPIO0)

#UnitV btns
#Btn A, capature image
fm.register(18, fm.fpioa.GPIO1)
Btn_A = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP)  #PULL_UP is required here!
#Btn B
fm.register(19, fm.fpioa.GPIO2)
Btn_B = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP)  #PULL_UP is required here!

# GROVE pin init as GPIO_out
print("GROVE_pin3 and pin4 now set as output GPIOHS13,14")
GROVE_pin3 = 35  #physical port pin number
GROVE_pin4 = 34
# unreg
fm.unregister(GROVE_pin3, fm.fpioa.GPIOHS13)
fm.unregister(GROVE_pin4, fm.fpioa.GPIOHS14)

fm.register(GROVE_pin3, fm.fpioa.GPIOHS13)
fm.register(GROVE_pin4, fm.fpioa.GPIOHS14)
Exemple #25
0
filler = "          "

axp = pmu.axp192()

axp.enableADCs(True)

lcd.init()
lcd.draw_string(0, 0, "Battery Info Develop", lcd.WHITE, lcd.BLACK)
lcd.draw_string(230, 0, "*", lcd.BLUE, lcd.BLACK)

# init button
fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1)
fm.register(board_info.BUTTON_B, fm.fpioa.GPIO2)

button_a = GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP)  #PULL_UP is required here!
button_b = GPIO(GPIO.GPIO2, GPIO.IN, GPIO.PULL_UP)  #PULL_UP is required here!

try:
    while (True):
        val = axp.getVbatVoltage()
        lcd.draw_string(0, 15, "Battery Voltage:" + str(val) + filler, lcd.RED,
                        lcd.BLACK)

        val = axp.getUSBVoltage()
        lcd.draw_string(0, 30, "USB Voltage:" + str(val) + filler, lcd.WHITE,
                        lcd.BLACK)

        val = axp.getUSBInputCurrent()
        lcd.draw_string(0, 45, "USB InputCurrent:" + str(val) + filler,
                        lcd.RED, lcd.BLACK)
Exemple #26
0
import time
from Maix import GPIO
from fpioa_manager import fm
from board import board_info

# see board/readme.md to config your sipeed's hardware.
print(board_info.LED_R)
print(board_info.LED_G)
print(board_info.LED_B)

fm.register(board_info.LED_R, fm.fpioa.GPIO0, force=True)
fm.register(board_info.LED_G, fm.fpioa.GPIOHS0, force=True)
fm.register(board_info.LED_B, fm.fpioa.GPIO2, force=True)
fm.register(board_info.BOOT_KEY, fm.fpioa.GPIO3, force=True)

led_r = GPIO(GPIO.GPIO0, GPIO.OUT)
led_g = GPIO(GPIO.GPIOHS0, GPIO.OUT)
led_b = GPIO(GPIO.GPIO2, GPIO.OUT)
key_input = GPIO(GPIO.GPIO3, GPIO.IN)

status = 0
for i in range(0, 20):
    led_r.value(status)
    time.sleep_ms(300)
    led_g.value(status)
    time.sleep_ms(300)
    led_b.value(status)
    time.sleep_ms(300)
    status = 0 if (status == 1) else 1
    time.sleep_ms(300)
    print("LED RGB(%d,%d,%d)" % (led_r.value(), led_g.value(), led_b.value()))
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

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)

try:
    player = audio.Audio(path="/flash/ding.wav")
    player.volume(100)
    wav_info = player.play_process(wav_dev)
    wav_dev.channel_config(wav_dev.CHANNEL_1,
                           I2S.TRANSMITTER,
                           resolution=I2S.RESOLUTION_16_BIT,
Exemple #28
0
    def run():
        # debug into app_select
        #launcher.app_select = 0
        #app.layer = 2

        ui.height, ui.weight = 480, 320
        button_io.config(23, 31, 20) # amigo
        cube_led.init(14, 15, 17, 32)


        app.i2c0 = I2C(I2C.I2C0, freq=100*1000)
        app.i2c1 = I2C(I2C.I2C1, freq=100*1000)
        fm.register(24,fm.fpioa.I2C1_SCLK, force=True)
        fm.register(27,fm.fpioa.I2C1_SDA, force=True)

        print('monkey patch & config for i2c')
        TouchLow.config(i2c1=app.i2c1) # amigo

        for i in range(100):
            try:
                tmp = fm.fpioa.get_Pin_num(fm.fpioa.I2C1_SDA)
                fm.register(tmp, fm.fpioa.GPIOHS15)
                sda = GPIO(GPIO.GPIOHS15, GPIO.OUT)
                sda.value(1)
                fm.register(tmp, fm.fpioa.I2C1_SDA, force=True)

                #if AXP173_ADDR in i2c.scan():
                axp173 = AXP173(i2c_dev=app.i2c1)
                axp173.enable_adc(True)
                # 默认充电限制在 4.2V, 190mA 档位
                axp173.setEnterChargingControl(True)
                axp173.exten_output_enable()
                # amigo sensor config.
                axp173.writeREG(0x27, 0x20)
                axp173.writeREG(0x28, 0x0C)
                taskbar.init(axp173)

                break
            except Exception as e:
                # gc.collect()
                pass

                #if i == 99:
                    #raise(e)

        if CubeAudio.check():
            CubeAudio.ready()
            fm.register(13,fm.fpioa.I2S0_MCLK, force=True)
            fm.register(21,fm.fpioa.I2S0_SCLK, force=True)
            fm.register(18,fm.fpioa.I2S0_WS, force=True)
            fm.register(35,fm.fpioa.I2S0_IN_D0, force=True)
            fm.register(34,fm.fpioa.I2S0_OUT_D2, force=True)

        #app.ctrl.event(100, lambda *args: time.sleep(1))
        #app.ctrl.event(10, app.on_event)
        app.ctrl.event(5, app.draw)
        #ui.enable = False
        while True:
            last = 0
            while True:
                try:
                    # gc.collect()
                    print((int)(1000 / (time.ticks_ms() - last)), 'fps')
                    last = time.ticks_ms()
                    #print_mem_free()
                    app.ctrl.cycle()
                    protect.keep()
                    #time.sleep(0.1)
                except KeyboardInterrupt:
                    protect.stop()
                    raise KeyboardInterrupt()
                except Exception as e:
                    # gc.collect()
                    print(e)
Exemple #29
0
from fpioa_manager import *
import os, Maix, lcd, image
from Maix import FPIOA, GPIO

test_pin = 16
fpioa = FPIOA()
fpioa.set_function(test_pin, FPIOA.GPIO7)
test_gpio = GPIO(GPIO.GPIO7, GPIO.IN)
lcd.init(color=(255, 0, 0))
lcd.draw_string(100, 120, "Welcome to MaixPy", lcd.WHITE, lcd.RED)
if test_gpio.value() == 0:
    print('PIN 16 pulled down, enter test mode')
    import sensor
    import image
    sensor.reset()
    sensor.set_pixformat(sensor.RGB565)
    sensor.set_framesize(sensor.QVGA)
    sensor.run(1)
    lcd.freq(16000000)
    while False:  #True:
        img = sensor.snapshot()
        lcd.display(img)
Exemple #30
0
import audio
import re
from fpioa_manager import *
from machine import I2C
from Maix import I2S, GPIO
import sensor, image, time
import lcd
import video

lcd.init()
lcd.rotation(2)

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)

fm.register(board_info.BUTTON_A, fm.fpioa.GPIO1)
but_a=GPIO(GPIO.GPIO1, GPIO.IN, GPIO.PULL_UP) #PULL_UP is required here!


sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(30)