这是一篇日志性的文章,记录了制作智能家居的代码........
下次带来硬件来实际看看效果
今天我在玩小度智能屏的时候,突然意识到,小度智能屏的语音识别功能,很强大,于是我打算做一个人工智能项目——智能家居。我买了一块语音识别版,图片如下:
还买了一个5v继电器(高电平接合),几块钱,图片如下:
等东西到了,再配上我的micro:bit主板:
这里大家推荐一下这个主板,几乎将所有的模块集于一身,在STEM教育盛行全球的时代,BBC作为英国的国民支柱,凭借其强大的媒体力量帮助整个英国推进STEM教育也是在情理之中。不过此次的重点不仅仅在于BBC对micro:bit的推广,更在于这块只有信用卡一半大小的编程教育硬件,是BBC联合29家公司和机构共同打造,这其中包括多家全球顶级科技公司:
Micro:bit开发板尺寸虽小(125px X 100px),但集成了种类丰富的电子模块:5x5 LED显示屏,两颗可编程按键,加速度计,电子罗盘,温度光线传感器,蓝牙低功耗等。
micro:bit可以通过鳄鱼夹与各种电子元件互动,支持读取传感器数据,控制舵机与RGB灯带。且micro:bit具有免安装驱动,电子模块集成度高,支持时下最热门的多种编程语言等多项优势,节省了教学资源成本的同时大大增加了可玩性和拓展空间。
今天,我的东西到了。配合我的主板,还有扩展板,做了一个初步的作品。程序如下图:
编程的平台是:makecode-v5。继电器的引脚是:P15,且继电器是用高电平来操控的,所以当识别到语音信号:词条1时,向引脚P15写入高电平。如果识别到语音信号:词条2时,向引脚P15写入低电平,来控制继电器的开关。
今天我要把硬件更新一下,我又去网上买了两个5v 4路继电器,图片如下:
于是我又开始了一晚上的敲代码,于是成品如下:
input.onButtonPressed(Button.A, function () {
startbit.startbit_ASRWORDSERASE()
startbit.startbit_ASRAddWords(1, "da kai ke ting deng")
basic.pause(20)
startbit.startbit_ASRAddWords(2, "guan bi ke ting deng")
basic.pause(20)
startbit.startbit_ASRAddWords(5, "da kai chu fang deng")
basic.pause(20)
startbit.startbit_ASRAddWords(6, "guan bi chu fang deng")
basic.pause(20)
startbit.startbit_ASRAddWords(7, "da kai zhu wo deng")
basic.pause(20)
startbit.startbit_ASRAddWords(8, "guan bi zhu wo deng")
basic.pause(20)
startbit.startbit_ASRAddWords(9, "da kai ci wo deng")
basic.pause(20)
startbit.startbit_ASRAddWords(10, "guan bi ci wo deng")
basic.pause(20)
startbit.startbit_ASRAddWords(11, "da kai dian shi")
basic.pause(20)
startbit.startbit_ASRAddWords(12, "guan bi dian shi")
basic.pause(20)
startbit.startbit_ASRAddWords(13, "da kai kong tiao")
basic.pause(20)
startbit.startbit_ASRAddWords(14, "guan bi kong tiao")
basic.pause(20)
startbit.startbit_ASRAddWords(15, "dao kai feng shan")
basic.pause(20)
startbit.startbit_ASRAddWords(16, "guan bi feng shan")
basic.pause(20)
startbit.startbit_ASRAddWords(17, "da kai xi shou jian deng")
basic.pause(20)
startbit.startbit_ASRAddWords(18, "guan bi xi shou jian deng")
basic.pause(20)
startbit.startbit_ASRAddWords(19, "da kai quan bu")
basic.pause(20)
startbit.startbit_ASRAddWords(20, "guan bi quan bu")
basic.pause(20)
startbit.startbit_ASRAddWords(200, "kai ke deng")
basic.pause(20)
startbit.startbit_ASRAddWords(200, "guan ke deng")
basic.pause(20)
startbit.startbit_ASRAddWords(200, "xiao zhi xiao zhi")
basic.pause(20)
startbit.startbit_ASRAddWords(200, "da kai ji dian qi")
basic.pause(20)
startbit.startbit_ASRAddWords(200, "guan bi ji dian qi")
basic.pause(20)
basic.showIcon(IconNames.Yes)
})
let 识别结果 = 0
startbit.startbit_ASRSETMODE(startbit.ASRMode.mode1)
pins.digitalWritePin(DigitalPin.P0, 1)
pins.digitalWritePin(DigitalPin.P1, 1)
pins.digitalWritePin(DigitalPin.P2, 1)
pins.digitalWritePin(DigitalPin.P8, 1)
pins.digitalWritePin(DigitalPin.P12, 1)
pins.digitalWritePin(DigitalPin.P13, 1)
pins.digitalWritePin(DigitalPin.P14, 1)
pins.digitalWritePin(DigitalPin.P15, 1)
basic.forever(function () {
识别结果 = startbit.startbit_ASRREAD()
if (识别结果 == 1) {
pins.digitalWritePin(DigitalPin.P0, 0)
} else if (识别结果 == 2) {
pins.digitalWritePin(DigitalPin.P0, 1)
} else if (识别结果 == 5) {
pins.digitalWritePin(DigitalPin.P1, 0)
} else if (识别结果 == 6) {
pins.digitalWritePin(DigitalPin.P1, 1)
} else if (识别结果 == 7) {
pins.digitalWritePin(DigitalPin.P2, 0)
} else if (识别结果 == 8) {
pins.digitalWritePin(DigitalPin.P2, 1)
} else if (识别结果 == 9) {
pins.digitalWritePin(DigitalPin.P8, 0)
} else if (识别结果 == 10) {
pins.digitalWritePin(DigitalPin.P8, 1)
} else if (识别结果 == 11) {
pins.digitalWritePin(DigitalPin.P12, 0)
} else if (识别结果 == 12) {
pins.digitalWritePin(DigitalPin.P12, 1)
} else if (识别结果 == 13) {
pins.digitalWritePin(DigitalPin.P13, 0)
} else if (识别结果 == 14) {
pins.digitalWritePin(DigitalPin.P13, 1)
} else if (识别结果 == 15) {
pins.digitalWritePin(DigitalPin.P14, 0)
} else if (识别结果 == 16) {
pins.digitalWritePin(DigitalPin.P14, 1)
} else if (识别结果 == 17) {
pins.digitalWritePin(DigitalPin.P15, 0)
} else if (识别结果 == 18) {
pins.digitalWritePin(DigitalPin.P15, 1)
} else if (识别结果 == 19) {
pins.digitalWritePin(DigitalPin.P0, 0)
pins.digitalWritePin(DigitalPin.P1, 0)
pins.digitalWritePin(DigitalPin.P2, 0)
pins.digitalWritePin(DigitalPin.P8, 0)
pins.digitalWritePin(DigitalPin.P12, 0)
pins.digitalWritePin(DigitalPin.P13, 0)
pins.digitalWritePin(DigitalPin.P14, 0)
pins.digitalWritePin(DigitalPin.P15, 0)
} else if (识别结果 == 20) {
pins.digitalWritePin(DigitalPin.P0, 1)
pins.digitalWritePin(DigitalPin.P1, 1)
pins.digitalWritePin(DigitalPin.P2, 1)
pins.digitalWritePin(DigitalPin.P8, 1)
pins.digitalWritePin(DigitalPin.P12, 1)
pins.digitalWritePin(DigitalPin.P13, 1)
pins.digitalWritePin(DigitalPin.P14, 1)
pins.digitalWritePin(DigitalPin.P15, 1)
}
})
转成图形化就是:
图片有点看不清,但是有代码就够了。
今天的教程就到这里了,当这个项目的硬件或软件有更新时,我会第一时间告诉你们。
(部分图片引用DFRobot的图片)
如有侵权,请联系删除。
未经允许,禁止转载。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。