Skip to content

Instantly share code, notes, and snippets.

@nomissbowling
Forked from pipinn/M5stickV_hyokkori1.py
Created November 30, 2021 06:06
Show Gist options
  • Save nomissbowling/30bfd787dc1af133941a6e400b72945f to your computer and use it in GitHub Desktop.
Save nomissbowling/30bfd787dc1af133941a6e400b72945f to your computer and use it in GitHub Desktop.
import audio
import gc
import image
import lcd
import sensor
import sys
import time
import uos
import KPU as kpu
from fpioa_manager import *
from machine import I2C
from Maix import I2S, GPIO
#
# initialize
#
lcd.init()
lcd.rotation(2)
i2c = I2C(I2C.I2C0, freq=400000, scl=28, sda=29)
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)
def play_sound(filename):
try:
player = audio.Audio(path = filename)
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, align_mode = I2S.STANDARD_MODE)
wav_dev.set_sample_rate(wav_info[1])
while True:
ret = player.play()
if ret == None:
break
elif ret==0:
break
player.finish()
except:
pass
def show_logo():
try:
img = image.Image("/sd/picture3.jpg")
lcd.display(img)
time.sleep(0.5)
play_sound("/sd/logo.wav")
except:
lcd.draw_string(lcd.width()//2-100,lcd.height()//2-4, "Error: Cannot find logo.jpg", lcd.WHITE, lcd.RED)
def initialize_camera():
err_counter = 0
while 1:
try:
sensor.reset() #Reset sensor may failed, let's try some times
break
except:
err_counter = err_counter + 1
if err_counter == 20:
lcd.draw_string(lcd.width()//2-100,lcd.height()//2-4, "Error: Sensor Init Failed", lcd.WHITE, lcd.RED)
time.sleep(0.1)
continue
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA) #QVGA=320x240
sensor.run(1)
#################################
#main
#################################
show_logo()
initialize_camera()
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)
try:
while(True):
img = sensor.snapshot()
code = kpu.run_yolo2(task, img)
if code:
for i in code:
print(i)
a = img.draw_rectangle(i.rect())
time.sleep(0.2)
play_sound("/sd/hyokkori.wav")
pic = sensor.snapshot()
lcd.display(pic)
time.sleep(5)
a = lcd.display(img)
except KeyboardInterrupt:
kpu.deinit(task)
sys.exit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment