本帖最后由 wangerxian 于 2022-10-23 19:32 编辑
智能桌面互动机器人
作者:wangerxian
一、作品简介
本次设计为智能桌面互动机器人,顾名思义就是可以与人进行互动的智能机器人。采用了一块2.4寸LCD屏幕,作为人机信息交互的一重要渠道。同时拥有语音识别和声音播放功能,更方便无接触式的互动。界面设计采用了开源的LVGL 8的GUI框架,同时采用了ESP32S3为主控芯片。在界面上可以显示当前区域温度,并可通过语音互动播报声音,同时还显示EEWORLD论坛的动态,其中包括每日发帖数量与总发帖数量的显示,通过语音互动还可获取总发帖数量的语音播报。并可以通过语音控制板载的LED灯。
二、系统框图
系统硬件框架:主控通过I2S与语音芯片【NS4168】进行通信,通过SPI与屏幕进行通信,通过总线与RGB灯进行通信。
图1:系统硬件框图
系统软件框架:ESP32自带FreeRTOS操作系统,并使用ESP32提供的文件管理系统,管理音频文件和语音识别库,并通过LVGL框架让屏幕的显示多样化,其中使用了多种控件。最后就是通过ESP32的语音识别库对语音进行识别,同时做出相应的反馈。
图2:系统软件框图
三、各部分功能说明
(各部分实现的功能说明及讲解,以图文结合的展示。)
主要有两个界面,一个是欢迎界面,一个是实时数据显示及互动界面。
欢迎界面:在进入界面时会播放一段欢迎语音,同时会将EEWORLD和DiGiKey商标显示在屏幕上,并做一定的动画处理,当动画结束后,ESP32会开始连接WIFI,同时界面会显示连接进度条,界面的最下面会显示当前软件版本。当WIFI连接成功会进入到实时数据显示及互动界面。
图3:欢迎界面
实时数据显示及互动界面:界面中会显示每日的发帖量,同时可以通过下拉列表控件切换图标中显示的月份,界面左上角显示的是当前温度,界面顶部显示的是当前监测的EEWORLD论坛账号,界面的左边【TP:xxxx】显示的就是当前监测的账号总发帖量。温度和发帖量的数据是十分钟更新一次的。
图4:实时数据界面
点击左边的下拉列表可以切换月份。
图5:切换月份界面
当说出【嗨,乐鑫】会弹出一个机器人,并带有有一定的动作,机器人并不会完全遮挡住后面的实时界面,且会等待语音互动。
图6语音互动界面
四、作品源码
五、作品功能演示视频
视频介绍了该机器人如何使用,同时演示了一些互动过程,以及如何查看实时数据。
【https://training.eeworld.com.cn/video/34638】
六、项目总结
一开始本来想通过ESP32登录EEWORLD账号的,后面发现该方法不可行,然后想直接获取网页中的页面数据,但是发现网页中的页面数据量特别打,一个页面中字节数大概有十几万个字节,然后我只需要其中的一小部分,之后通过获取网页中部分数据解决这个问题。还有语音识别的问题,由于是离线语音识别,所以语音识别库都需要去训练的,但是训练需要样本并且训练模型还需要收费,所以就拿现成的语音识别词条来当作一些互动词条。
开发过程遇到的问题确实不少,比如LVGL的框架升级,从LVGL7升级到LVGL8,为什么要升级呢,因为LVGL8的控件比更炫酷、更多,所以就在原有的项目中升级了一下,向下的兼容性还是不错的,只需要修改一些控件的函数就好了。还有一个比较难的问题就是ESP32不好进行调试,一旦程序崩了很难找到问题,所以遇到问题只能一步一步的进行修改并跟踪问题。
本次比赛的收获也不少,熟练了ESP32的使用,还熟练了LVGL,并且对语音识别这种机器学习有一定的了解,虽然用的是官方的库,但是学会使用也是一种技能呀,感谢得捷电子和EEWORLD举办的创新设计大赛!
Part1:智能桌面互动机器人开箱【https://bbs.eeworld.com.cn/thread-1210965-1-1.html】
七、其他
|