Created
October 9, 2019 08:22
-
-
Save pipinn/2d42f92139020d4426f9672785e1fa34 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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