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:
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:
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)
# 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))
# 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)
# 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)
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
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)
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,
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)
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!
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():
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
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)
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)
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,
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)
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)
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)