图形化编程——AI智能管家

本文是基于mind+图形化编程制作的青少年科普项目,使用了MIND+里的“AI图像识别功能”。通过图像识别功能,可以进行人脸识别、人脸对比、常用物体识别、文字识别、车牌识别、手势识别、人体关键点识别等功能。结合之前的语音识别功能,制作的一个AI管家。初步设想了以下几个功能:首先在大门口,提醒用户进行人脸识别开门,人脸验证成功后,提醒用户测量体温,体温低于37.2℃则可以进入屋内,进屋后,可以语音控制管家进行一些基础电路的控制,比如冰箱门的控制、各个房间灯光的控制、大门的控制等。

材料清单

1x掌控板; 1x 掌控扩展板; 1x 红外温度传感器; 1x Arduino UNO; 1x UNO扩展板; 4x LED模块; 2x 舵机;
1x人体红外热释电传感器

电路连接

1.红外温度传感器=====》Arduino # I2C

2.人体红外传感器=====》Arduino # 5

3.LED4=============》Arduino # 6

4.Arduino # 2=========》掌控板 P15

5.Arduino # 3=========》掌控板 P14

6.Arduino # 7=========》掌控板 P16

7.LED1==============》掌控板 P8

8.LED2==============》掌控板 P9

9.LED3==============》掌控板 P13

10.舵机1=============》Arduino # 11

11.舵机2=============》Arduino # 10

程序设计

  • 加载AI图像识别模块:

    1.切换到实时模式 

    2.打开扩展

    projectImage                3.切换到“网络服务”,加载“AI图像识别”,之后“返回”主界面projectImage                AI图像识别功能调用的百度AI服务,因此需要使用百度AI的账户。这里建议自己建立一个独立账户。projectImage

    百度AI账户注册方法: 

    1.登录百度AI开放平台,http://ai.baidu.com,点击页面右上角“控制台”,然后“注册”或者“登录”自己的百度账号。 

    2.登录成功后进入控制台页面,点击左边栏“人脸识别”,在新页面中点击“创建应用”,将“语音技术”、“文字识别”、“图像识别”、“人体分析”全部勾选,(有些用不上,但是都可以勾选,可以多选不可少选)。 

    3.在“应用管理”中复制AppID、API Key、Secret Key下方的参数,填到Mind+中“切换至独立账户”中。 

    4.填好之后可以点击一下此积木,如果运行出错会提示错误信息,没有提示即为正确。

    projectImage
    projectImage

    这里刷脸开门的功能实通过图片比较功能来实现。图片比较可以使用摄像头画面截取图像和本地图片文件进行对比。这两者对比后会产生一个百分比的值。我们可以通过设定一个变量来存储这个值,然后在程序里面根据这个值做出不同的策略。

    projectImage
    该程序主要使用了一个角色和四个背景,首先开始角色在第一个场景中的任务:图像对比识别控制开门。当角色移动至门前的时候,语音提示进行人脸识别。这里设了一个flag的变量,防止角色在还没有移动到门前或者在别的场景的时候,按空格键也会出现人脸识别。
    projectImage

    识别正确后,进入第二个场景。所以室内场景的互动都为语音交互。这里增加了一个“出门锁”的变量,防止角色在第一个场景的时候,按下a键语音识别后,角色会进入到别的场景。

    projectImage
    步骤3:红外测量体温功能

    传感器工作原理:

    这里测量体温功能主要通过MLX90614红外测温传感器来实现,MLX90614红外测温模块,通过探测物体红外辐射能量的大小和波长的分布来检测物体的表面温度。红外测温器由光学系统、光电探测器、信号放大器和信号处理及输出等部分组成。光学系统汇聚其视场内的目标红外辐射能量,视场的大小由测温仪的光学零件及其位置确定。红外能量聚焦在光电探测器上并转变为相应的电信号。该信号经过放大器和信号处理电路,并按照仪器内的算法和目标发射率校正后转变为被测目标的温度值。

    产品参数:

    型号:MLX90614-BCC 

    工作电压:3.3V-5V 

    工作电流:1.2mA 

    温度范围:-70.01℃至+382.19℃,分辨率0.01℃ 

    接口类型:IIC 接口线序:VCC,GND,SCL,SDA 

    尺寸:31.5mm×18mm

    projectImage

    这里虽然说它的工作电压是3.3——5V,但是我在掌控板上直接使用发现并不能工作,供电还是需要5V。所以我就使用了arduinoUNO来进行控制,当红外温度传感器测得值大于37.2℃的时候,Arduino输出一个高电平给掌控板。

    这时候,掌控板在人脸识别完成后会等待Arduino的信号,来判断是够控制舵机将大门打开。

    步骤4:语音控制
    语音控制外设工作,主要是根据上面的程序来进行修改,在每一个语音标签下面,增加硬件的控制就可以了。
    视频演示