章明干 发表于 2023-6-29 14:32:08

一个具有视觉识别功能的留言管家

本帖最后由 章明干 于 2023-6-29 14:49 编辑

【视频演示】

https://v.qq.com/x/page/q352115i8xo.html

【制作背景】       随着年龄的增长,人的记忆力会逐渐减退。老人时常需要我们提醒关好门窗、电源、携带手机、钥匙等。一般情况下我们可以通过打电话、发短信、微信、写纸条等方法提醒老人,但考虑到有些老人眼神不好,有些不会操作智能机,有些不认识字,还有些老人不爱看手机,有什么好的方法提醒老人呢?我以此为灵感,设计了这个留言管家。
【功能描述】       1、通过AI 视觉传感器进行人脸识别,根据不同的人调用相对应的留言及可对别人进行留言。       2、AI 视觉传感器识别人脸后,自动调出别人对他的留言,触摸相应的图标可以收听对方的留言,收听结束后可以对留言进行删除操作。       3、触摸留言图标后可以选择对他人进行留言,在录制留言前选择相应的对象可以收听前一条对他的留言内容,收听结束后可以删除该条留言或重新录制留言。       4、整个操作过程都有相应的语音提示和指示灯指示,指示灯亮红色的表示选择了该项功能,亮蓝色的表示有留言,亮绿色的表示正在播放,指示灯灭的表示没有留言。
【作品亮点】       1、利用人脸识功能来控制其操作功能权限。       2、针对不同的对象会自动调用相关的留言内容及给指定对象录制留言。       3、整个操作过程都有指示灯及相关的语音提示。
【硬件清单】       Arduino主控板            1       AI 视觉传感器            1       I2C 录放音模块 EDU    1       MP3语音模块            1       触摸开关                     8       RGB LED                     8       无源音箱小喇叭         2       杜邦线等       激光切割结构件
【结构设计与搭建】       1、激光切割件设计       我们先利用LaserMaker软件在电脑上设计出其外壳图纸,再用激光切割机切割出来,切割材料为3MM的椴木板。

       2、把AI 视觉传感器按下图所示组装起来。



       3、把8个触摸开关和8个RGB LED用热熔胶固定在面板的背面。如下图:   



       4、焊接好RGB LED和触摸传感器的连接线,8个RGB LED串联起来形成一条8位的LED灯带,所有的GND、VCC引脚连接在一起,最后的引线共11根,分别是1根GND,1根VCC,1根LED灯带信号线,8根触摸传感器信号线。如下图所示:

       5、把组装好的AI 视觉传感器部分也安装在面板上。如下图:





       6、把I2C 录放音模块安装到面板上。如下图:





       7、把2个小喇叭用热熔胶固定在底部侧面板上。如下图:



       8、把主控板和MP3语音模块固定在底板上。如下图 :



       9、把上面板和侧面板组装在一起。如下图



       10、按照接线图把各个传感器与主控板接在一起。如下图:



       11、最后再把底板合上,这样作品组装就完成了。如下图:


【程序编写】       1、程序的编写软件是Mind+,打开Mind+软件,切换到“上传模式”,接着点击“拓展”打开拓展。

       2、选择“主控板”选项卡中的“Arduino UNO”主控板。

       3、添加“传感器”选项卡中的“HuskyLens AI 摄像头”传感器 。

       4、添加“执行器”选项卡中的“串口MP3模块”。

       5、添加“显示器”选项卡中的“WS2812 RGB灯”。

       6、添加“用户库”中的“音频录放模块”,如果没有,可以在查找框中输入地址:https://gitee.com/chenqi1233/ext-dfrobot_-voice-recorder,然后再点后面的“放大镜”查找,找到后点击“音频录放模块”就可以了,这样相关的主控板和传感器都添加好了,最后再点“返回”回到编程界面。

       7、接下来写初始化的相应程序,添加一个“初始化”函数,在这个函数中添加一些指令,这一部分程序主要是对各模块进行初始化设置,再定义了收听与留言、留言检测、录音状态、人物、人物检测5个变量。程序下图所示:

       8、添加“人脸识别”函数,在这个函数中,先进行人脸识别,如果5秒内没有相关的人员,则面板上的指示灯全灭,所有操作都不起作用,如果识别到事先录入的人脸时,就用“人物”这个变量来记录识别到的人。程序下图所示:

       9、把“初始化”函数放到主程序中,在循环执行指令里先运行“人脸识别函数”,在这里只定义了3个人,所以建立了人物1、人物2、人物3这3个函数,根据不同识别的结果运行相应的函数中的程序。程序下图所示:

       10、在“人物1”这个函数中,通过判断触摸传感器的值来确定是执行收听留言还是给别人留言程序并让相应指示灯亮红色,以及播放相应的提示语音。如果是收听留言则调用“人物1收听”函数,如果是给别人留言则调用“人物1留言”函数。程序如下图所示:

       11、在“人物1收听”函数中,先执行“人物1收听指示灯”函数,函数中先让收听指示灯亮红色,表示当前处于收听留言状态中,再执行一次查询是否有留言,如有留言则相应指示灯亮蓝色,没有留言指示灯不亮。具体程序如下图所示:

       12、在“人物1收听”函数中,执行“人物1收听指示灯”函数后,再判断是否按了相应人物的触摸开关,如果按了但没有留言则播放“没有留言”的提示语,如有留言的话则先播放“xxx给你留言,请收听”的提示语,接着自动播放留言内容,最后再执行是否删除留言的程序。由于这部分程序比较长,只截取了其中一段展示一下,部分程序如下图所示:

       13、在人物1留言函数中,也是先判断一次你给其它人有没有留言,如果有则相应指示灯这蓝色,没有则不亮。要给别人留言只要按一下相应人物的触摸开关,这里有两种情况,一种是原来已经有留言的,我们可以收听到提示语“你给xxx留言的内容是”,接着播放留言内容,然后会播放“按删除键删除留言,按录音键录制留言”的提示语,我们可以根据情况进行选择操作;另一种情况是没有给他留言或留言已被他删除了的,会播放“没有留言,按录音键录制留言”的提示语。如果要录制留言,按了录音触摸键后会先播放“马上开始录音,按完成键停止录音,现在开始录音”的提示语,接下来就可以说留言的内容了,内容说完后按完成触摸键完成录音。由于这个函数的程序比较长,只截取了其中主段录制留言的程序作以展示,程序如下图:


       13、人物2、人物2收听、人物2留言、人物3、人物3收听、人物3留言的函数程序基本上与人物1、人物1收听、人物1留言的一样,只要更改一些相关的参数就可以了,整个作品完整程序如下图:



作者其它帖子
◆ 防疫门禁
◆ 拉风侠——垃圾分类小助手
◆ 垃圾分类训练机
◆ 盲人伴侣
◆ 终点计时器
◆ 无限梦幻镜
◆ 智能药盒
◆ 乒乓球收割机——AI捡球机器人
◆ 捡球机器人
◆ 变脸机器人
◆ 多功能测量仪
◆ 防近视笔筒
◆ 猜拳机器人
◆ 炫彩小夜灯
◆ 麦昆PLUS巡线&避障
◆ 手势控制MP3播放器&万能遥控器
◆ 小便池自动冲洗器
◆ 百变乐器
◆ 留言机
◆ 【2020】创意时钟
◆ 爱的传递——AI爱心储物柜
◆ 智能储蓄罐
◆ 和弦吉他的设计与制作
◆ 看得见的心跳
◆ 保险箱
◆ 乐高积木遇见麦克纳姆轮——动手搭建一辆麦克纳姆轮小车
◆ 小尚,别跟丢了!——自动跟随的麦克纳姆轮小车
◆ 来吧!一起动手制作一台架子鼓
◆ 激光打靶器
◆ 钥匙忘带提醒器
◆ 麦昆智能晾衣架
◆ 炫彩电子钢琴的设计与制作
◆ 萌宠机器人的设计与制作
◆ DIY留声机
◆ 智能马桶
◆ 坐姿矫正仪
◆ 基于物联网的智能闸道、人数统计与安全预警系统
◆ 远程监测温度和亮度
◆ 来来来,让我们一起来打地鼠!
◆ 变色龙
◆ 龙舟
◆ 多脚怪




腿毛利小五郎 发表于 2023-7-1 09:30:10

围观学习学习

rzegkly 发表于 2023-7-3 21:04:52

每次读章老师文章,每次都有不一样的收获

Amos Young 发表于 2023-7-4 15:20:51

泰裤辣!

JVUm7ppJGaRK 发表于 2023-7-4 18:30:53

老人必备

三春牛-创客 发表于 2023-7-10 21:39:22

厉害厉害

三春牛-创客 发表于 2023-7-10 21:40:46

赞赞赞赞赞

花生编程 发表于 2023-7-11 22:00:37

厉害厉害

花生编程 发表于 2023-7-11 22:02:00

好棒啊!!!

派大星ym 发表于 2023-8-20 11:12:32

{:7_217:}    酷

派大星ym 发表于 2023-8-20 11:15:14

厉害厉害   

罗罗罗 发表于 2024-4-15 17:34:22

666
页: [1]
查看完整版本: 一个具有视觉识别功能的留言管家