ESP32聊天机器人之一

想做情感陪伴机器人,看到B站有个项目很有趣,使用一块esp32复刻了B站MeteWu的ESP32大模型聊天项目。

自己做了一些修改,加了一些简单的表情,角色扮演,切换大模型和温湿度传感器等功能。可以用于玩具,聊天机器人,大模型对话,学习,创作,角色扮演等方面。因为ESP32自身带蓝牙,WIFI,支持很多传感器,事实上是可以语音控制家里的能上网的设备和带蓝牙的设备,加个红外模块,也可以通过语音控制家里的空调电视之类。计划通过串口作为小机器人的大脑控制中心。

硬件包括:

ESP32板子

INMP441全向麦克风、

MAX98357 I2S音频放大器模块+喇叭、

1.8寸(128x160)RGB_TFT屏幕,

还需要一些面包线,想使用方便一些,可能需要面包板或者esp32拓展板,一些外壳或者螺丝固定。

其中屏幕不是必须,如果不需要播放视频图片,当然有了更好,可以通过屏幕输出信息,后期可以做一些动画表情,我的屏幕带SD卡读卡器,可以放图片和音乐。整个项目中,大头是显示屏和ESP32的主板,这两个要二十多,其他的元器件都是几块钱一个。

我是野路子,不太喜欢使用面包板。为了插线和使用方便,我使用了一块拓展板,二块多钱,又使用了两根铜柱把拓展板和TFT屏固定在一起,其他的麦克风,喇叭和温湿度计放在中间固定。这种接近箱形或者柱体立体结构,更方便我寻找一个合适的盒子或者瓶子保护起来,如下图,春左边是麦克风,右边是信号放大器和喇叭,拖着的是温湿度传感器;

目前语音功能主要包括唤醒,语音命令和大模型对话三部分。

唤醒,正常情况下,esp32休眠可以在电池供电的场合极大减小电量消耗,增长使用时间,同时切通了和大模型的连接,节省流量和大模型token。通过悟空,你好,八戒,二蛋等唤醒词唤醒,同时根据唤醒词切换不同身份,模仿悟空,八戒,夫子,二次元猫娘,美女,帅哥之类和你对话。现在没有使用悟空,八戒对应的配音,只区分了男女角色。喜欢的也可以搞成父母的声音,老师的声音,这样辅导孩子作业会更有代入感,都是可以修改的。

语音指令主要解析为操作指令,比如打开空调,打开电灯,室温温度,天气情况,播放音乐,播放幻灯片,切换大模型,调整音量,打印日志,取消打印等,可以按需要添加修改,没有上限。

大模型对话主要是通过调用迅飞星火,阿里通义千问或者抖音的豆包等对话功能,提供诸如学习英语,普通话,数学,物理知识,写诗,写小说,讲故事,讲笑话等功能。三个大模型可以语音切换,播放声音也能通语音控制。

通过语音切换大模型,需要提前在代码里配置,目前迅飞,豆包,阿里都有免费的,申请后配置一下参数。也可以和离线语音模块通过串口结合使用,唤醒和本地命令使用离线语音,大模型对话,唤醒ESP32接班。

后面打算把屏幕利用起来,根据场景做一些可爱的表情,然后加上摄像头,这样组成一个机器人的控制中枢,有麦克风做耳朵,有喇叭说话,有屏幕做表情,有摄像头做眼睛,然后扩展一些红外,wifi,蓝牙控制家里的智能电器,装上舵机做手脚。

主要的元件:

一。 ESP32板子,我买的是30PIN的,好像13块

二。INMP441全向麦克风、好像六块多

三。MAX98357 I2S音频放大器模块+喇叭、这个合起来三五块就行,不会焊接的话,喇叭可以买那些大号2.54插头支持杜邦线直接插了用的。其他都是标准组件,喇叭是比较坑的,不会焊的最好是直接买带2.54插头并且带壳的,这样不容易损坏,没壳的太容易断线了,有壳的音响效果也好一些,买过好多不带壳了,用几次线就断了,最后不得已买了电烙铁自己焊,

四。1.8寸(128x160)RGB_TFT屏幕,这个有点小贵,十几块,也有几十的,

硬件接线,麦克风和放大器使用I2S协议,tft lcd表面看是I2C协议,实际是spi协议,sd使用spi协议,播放音频放大器在main修改,TFT屏在user_setup中修改,支持很多种屏幕,按自己买的TFT屏幕修改,默认是ST7735,麦克风在i2S中修改,要根据esp32引脚功能和模块支持的协议修改:

一。麦克风:

VDD -> 3.3v
GND -> GND
SD -> GPIO22
WS -> GPIO15
SCK -> GPIO4
还有个左右声道的,接个低电平就行


二,音频放大模块:

Vin -> VIN
GND -> GND
LRC -> GPIO27
BCLK -> GPIO26
DIN -> GPIO25
三,1.8寸OLED屏幕:

VDD -> VIN
GND -> GND
SCL -> GPIO18
SDA -> GPIO23
RST -> GPIO12
DC -> GPIO32
CS -> GPIO5

有个背光的,接个高电就可以

四,我接一个温湿度传感器,温度还可以,湿度感觉不太准,数据偏湿,不清楚啥原因

温湿度传感器data接gpio33.

五。接个了测试LED灯,使用gpio16

六。接了SD卡

// SPI GPIOs

#define SD_CS 21

#define SPI_MOSI 19

#define SPI_MISO 13

#define SPI_SCK 14

引脚可以修改,不过比较麻烦,esp32的引脚每个功能不一样,接错了就会出各种问题。后面还想接个T 卡。引脚可以参数下面别人写的引脚分配。

开发的环境:

vscode, esp-idf,PIO HOME,

代码:

https://github.com/blogercn/ESP32_AI_LLM

视频演示:

1esp32大模型聊天,支持角色扮演,有美女帅哥悟空八戒猫娘等。2可以唤醒,控制,播放音乐,讲故事等等_哔哩哔哩_bilibili

参考:

ESP32 引脚分配_esp32 sd0引脚-CSDN博客

常见机内总线——I2C、SPI、I2S、UART、TDM-CSDN博客

硬件部件 乐鑫ESP32S× 1个 Raspberry Pi Pi NoIR相机V2× 1个 软件应用程序和在线服务 Arduino IDE 这次我们为机器人配备了摄像头,使其成为监控机器人车。可以使用ESP32-CAM模块轻松构建此网络控制的监视车。除了ESP32-Camera模块之外,在这里我们还将使用两个带有Robot底盘的DC电动机和L293D电动机驱动器模块来制造此Robotic小车。ESP32是构建基于IoT的项目的最受欢迎的开发板之一的AI-思想者ESP32-CAM模块带有一个ESP32-S芯片,非常小的尺寸OV2640照相机和microSD卡插槽。MicroSD卡插槽可用于存储从相机拍摄的图像。在此,HTTP通信协议将用于通过Web浏览器从OV2640摄像机接收视频流。网页上还将包含按钮,用于在上,左,右,前进和后退方向上移动汽车,如上图所示。 电路原理图 ESP32-监控摄像头的所有连接信息如下: ESP32-CAM没有USB连接器,因此您需要一个FTDI板将代码上传到ESP32-CAM。ESP32的VCC和GND引脚与FTDI板的VCC和GND引脚连接。ESP32的Tx和Rx与FTDI板的Rx和Tx连接。两颗直流电机通过L293D模块连接到ESP32。模块引脚连接到ESP32的IO4,IO2,IO14和IO15引脚。 注意:在上传代码之前,将IO0接地。IO0确定ESP32是否处于闪烁模式。当GPIO 0连接到GND时,ESP32处于闪烁模式。 我们通过使用现成的机器人底盘,车轮和直流电动机来构建机器人。我们使用电池为电机驱动模块和ESP32-CAM供电。这是我的监视机器人的外观:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值