人工智能系列之智能家居

Electron3302个月前 (07-30)127

人工智能系列之智能家居

3月21日

今天我在玩小度智能屏的时候,突然意识到,小度智能屏的语音识别功能,很强大,于是我打算做一个人工智能项目——智能家居。我买了一块语音识别版,图片如下:

还买了一个5v继电器(高电平接合),几块钱,图片如下:

等东西到了,再配上我的micro:bit主板:

 

这里大家推荐一下这个主板,几乎将所有的模块集于一身,在STEM教育盛行全球的时代,BBC作为英国的国民支柱,凭借其强大的媒体力量帮助整个英国推进STEM教育也是在情理之中。不过此次的重点不仅仅在于BBC对micro:bit的推广,更在于这块只有信用卡一半大小的编程教育硬件,是BBC联合29家公司和机构共同打造,这其中包括多家全球顶级科技公司: 

Micro:bit开发板尺寸虽小(125px X 100px),但集成了种类丰富的电子模块:5x5 LED显示屏,两颗可编程按键,加速度计,电子罗盘,温度光线传感器,蓝牙低功耗等。

micro:bit可以通过鳄鱼夹与各种电子元件互动,支持读取传感器数据,控制舵机与RGB灯带。且micro:bit具有免安装驱动,电子模块集成度高,支持时下最热门的多种编程语言等多项优势,节省了教学资源成本的同时大大增加了可玩性和拓展空间。

 

3月24日

今天,我的东西到了。配合我的主板,还有扩展板,做了一个初步的作品。如下图: 

编程的平台是:makecode-v5。继电器的引脚是:P15,且继电器是用高电平来操控的,所以当识别到语音信号:词条1时,向引脚P15写入高电平。如果识别到语音信号:词条2时,向引脚P15写入低电平,从而控制继电器的开关。

 

3月25日

今天我要把硬件更新一下,我又去网上买了两个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的图片)

 

 

 

如有侵权,请联系删除。

 

未经允许,禁止转载。


    扫描二维码推送至手机访问,

    版权声明:本文由#Electron330发布,如需转载请注明出处。

    本文链接:https://lkby.club/?id=8

    返回列表

    上一篇:linkboy

    下一篇:ESP8266—OTA更新

    相关文章

    linkboy

    linkboy

                嗨,大家好,我是勤奋的锐锐,今天给大家介绍一款编程软件——linkboy。linkboy是一款国产编程语言...

    使用 ESP8266 通过巴法云进行 OTA 更新

    使用 ESP8266 通过巴法云进行 OTA 更新

        要利用巴法云(Bemfa Cloud)获取固件,你需要确保你的 ESP8266 设备已经连接到巴法云并且能够接收远程更新。巴法云提供了 OTA(Over-The-Air)更...

    OTA 更新中断恢复策略

    OTA 更新中断恢复策略

        处理网络中断问题对于确保固件更新过程的稳定性和可靠性至关重要。当进行 OTA(Over-the-Air)更新时,可能会遇到网络不稳定的情况,这可能导致更新失败。为了处理这种...

    ESP8266的介绍

    ESP8266的介绍

        最近有一些小伙伴找到我,想了解ESP8266,那我就从科学的角度出发,给大家做一个全面而严谨的介绍。ESP8266是由乐鑫科技(Espressif Systems)推出的一...

    ESP8266模块示例

    ESP8266模块示例

        乐鑫科技的ESP8266是一款非常流行的低成本Wi-Fi芯片,它可以轻松地添加到微控制器项目中以实现互联网连接。ESP8266内部集成了Tensilica L106超低功耗...

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。