Maixduino轻松学系列课程:
1、Maixduino轻松学系列 —— (1)初识Maixduino
2、Maixduino轻松学系列 —— (2)Mind+带你畅玩经典红白机游戏
3、Maixduino轻松学系列 —— (3)基于Mind+的简易NTP网络时钟
4、Maixduino轻松学系列 —— (4)基于Mind+的图像识别:人脸检测
5、Maixduino轻松学系列 —— (5)有屏幕的地方就有BAD APPLE
1 红绿灯模块
如下图所示:
笔者使用的红绿灯模块是一个共阴极红绿灯模块,也就是红黄绿3个LED等共用一个负极。
通过给模块的R、Y、G引脚脚通电,可以单独控制红黄绿led灯的点亮与熄灭。
尺寸:56*21*11mm
颜色:红 黄 绿
LED:5mm *3
亮度:普通亮度
电压:5V
输入:数字信号输出
接口:共阴极,红黄绿单独控制
2 接线
如下面接线图所示,连接红绿灯模块到Maixdunio。
即:
直接将红绿灯模块G引脚插入至Maixduino的11引脚,将红绿灯模块Y引脚插入至Maixduino的12引脚,将红绿灯模块R引脚插入至Maixduino的13引脚,将红绿灯模块GNG引脚插入至Maixduino的GND引脚。
接好后,如下图所示:
3 编写程序并运行
程序如下图所示,并“运行”,上传。
源程序可在附件下载、解压,打开后,直接运行。
5 训练模型
打开代码区,出现“开始训练”,根据"speak: 红灯"等提示,对着Maixdunio说“红灯、红灯”,直至出现“complete”。
出现“complete”,表示本词条训练完毕,然后出现“ready.”“speak:黄灯”,进行黄灯词条训练。
直至所有词条训练完毕,出现“训练完成”。
6 语音识别控制
随机说出“红灯”、“黄灯”、“绿灯”或者“关灯”,相应的“红灯”、“黄灯”、“绿灯”点亮或者熄灭。
7 总结与改进
(1)在我们训练一次模型后,我们可从主程序中的第一条积木块——ASR Training自定义函数删除,重新“运行”上传程序。这样可以直接语音识别控制红绿灯,不用每次开机都进行模型的训练。
(2)关于语音识别词条,只需要修改自定义函数“ASR Training”里的“初始化列表”积木里的元素,可实现对其他语音词条的识别。
(3)如果需要语音识别执行其他动作,只需要修改替换掉主程序里“设置数字引脚……输出……”的积木块。
# Maixduino轻松学系列 —— (6)基于ASR语音识别的红绿灯 by 豆爸 2021-10-28
from board import board_info
from ASR import asr
from pin import Pin
import lcd
# 自定义函数
def ASR_Training():
lcd.init(freq=15000000, color=0, invert=0)
model = asr.newModel()
corpus = ['红灯', '黄灯', '绿灯', '关灯']
print("开始训练")
lcd.draw_string(42, 22, str("ASR Training"), 65535, 0)
for order in corpus:
asr.training(order, model)
print("训练完成")
lcd.clear(0)
lcd.draw_string(42, 22, str("Training End"), 0, 65535)
asr.save(model, "/flash/asr.json")
ASR_Training()
asr.run(asr.load("/flash/asr.json"))
while True:
result = asr.recognize()
if bool(result):
print((str("识别到:") + str(result)))
if (result == (str("绿灯"))):
Pin.digital_write(board_info.PIN11, 1)
Pin.digital_write(board_info.PIN12, 0)
Pin.digital_write(board_info.PIN13, 0)
if (result == (str("黄灯"))):
Pin.digital_write(board_info.PIN12, 1)
Pin.digital_write(board_info.PIN13, 0)
Pin.digital_write(board_info.PIN11, 0)
if (result == (str("红灯"))):
Pin.digital_write(board_info.PIN13, 1)
Pin.digital_write(board_info.PIN11, 0)
Pin.digital_write(board_info.PIN12, 0)
if (result == (str("关灯"))):
Pin.digital_write(board_info.PIN11, 0)
Pin.digital_write(board_info.PIN12, 0)
Pin.digital_write(board_info.PIN13, 0)
Forgotten2022.05.14
注意这里运行如果出现MAIXPY,no module named 'ASR',说明当前你用的不是mind+内置固件,缺少语音识别的库,需要按照mind+官方文档中maixduino的教程把固件刷成mind+内置固件
阿邱2022.02.25
请问一下,3W的扬声器应该接在maixduino的那个位置?
Forgotten2022.05.14
usb接口旁边一个2pin的白色接口上