【2024 DigiKey 创意大赛】智能聊天机器人
[复制链接]
本帖最后由 4284248 于 2024-12-17 17:33 编辑
智能聊天机器人
- 作品简介
机器人可以实现语音聊天,通过按钮开始和结束对话,机器人就会语音播放回答。可以识别人脸、声源方向,自动旋转到面朝用户的方向。通过esp-now可以发送相关信息到esp32-c6处,并且通过屏幕显示出来。
使用到NUCLEO-F411、ESP32-C6、MSM261S4030H0麦克风板、树莓派5、无刷电机等
- 系统框图
设计思路
设计的核心主要是用多种传感器可以完成与机器人进行互动。以交互为目的,系统可以完成与用户的交互活动。通过合理的软件设计,让机器人可以感知环境,完成互动。
本系统采用模块化设计,各部分完成自己独立的部分,遇到问题,也可以更好的进行问题定位。
系统框图
上面的屏幕是后面有一个STM32专门去控制。树莓派和STM32F411就放在机器人的后面。电机是放在语音识别板的上方。
三、各部分功能说明
语音交互
利用树莓派5配合USB录音器和蓝牙音箱实现语音交互。首先通过按钮的按下为开关,按下就开始录音,录制10s的声音,然后通过语音识别的api,识别成文字,文字再发送到Chatgpt的api接口,获得回复的文字,最后再把文字发送到语音生成的api,最后生成pcm格式的语音文件,再通过蓝牙音箱播放出来。
人脸识别
利用树莓派5搭配USB摄像头,运行opencv,加载预训练的Haar级联模型。实现人脸识别,并输出对应的坐标。通过串口把对应的位置数据,发送给STM32端,控制电机完成方向的定位。
无刷电机控制
无刷电机使用LIN协议控制,我们需要一个模块通过uart转lin,STM32通过uart发送对应的命令给电机,电机就可以按照指定方向进行转动。电源部分用的是24V电池进行供电。
声源定位
使用Sipeed家的K210 BIT开发板,通过杜邦线连接传感器的引脚,在k210里面运行解算声源模块数据的代码,解算后,进行滤波,通过过滤掉一些杂音等干扰因素,最终得到正确的声源方向和大小。然后通过串口的方式,把解算出来的角度发送给STM32。
ESP远程显示部分
使用espnow进行通信,在STM32边外挂一个esp32,通过串口发送数据到esp32中,esp32再通过esp-now的方式发送到远处的esp32中,使用串口屏,写好双方串口通信的协议,然后就可以在远处显示出具体的数据。
四、作品源码
五、作品功能演示视频
六、项目总结
通过这次活动,学到了很多,树莓派的图像识别,声源的定位,电机的控制,以及esp32-now的通信部分
最后,感谢电子工程世界与得捷电子联合举办的【2024 DigiKey 创意大赛】活动,非常荣幸第一次参与这个活动。本次活动使我学到了不少的新知识,在项目过程中也遇到不少困难,最终实现的成品虽然有些潦草,但好在最终实现了相应的功能。祝愿 EEWorld 越办越好!
|