ESP32聊天机器人之一

news2024/11/17 23:55:41

想做情感陪伴机器人,看到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

参考:

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2136735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第307题|快速掌握 反常积分敛散性判定的方法|武忠祥老师每日一题

解题思路:先判断这个反常积分的敛散性,再讨论a的取值范围; 判断反常积分的敛散性,我们通常有三个方法: (1)根据定义,通常在原函数比较好求的情况下,可以根据定义 (2&am…

IDEA 常用配置和开发插件

件市场中搜索并安装“Git Integration”插件。 一、前言 在本篇文章中我会为大家总结一些我自己常用的配置和开发插件,此外也给大家提供一个建议,可以根据自己的项目需求和个人偏好选择适合的插件。另外,IDEA 也在不断更新,可能会…

『功能项目』战士职业平A怪物掉血【44】

我们打开上一篇43事件中心的项目, 本章要做的事情是给主角增加一个xxxCtrl.cs脚本,再创建一个xxxOpt.cs调用xxxCtrl.cs机制层利用事件中心再写一个主角战士平A对怪物的伤害 首先创建脚本:PlayerCtrl.cs using UnityEngine; public class Pla…

2024年微电子与纳米技术国际研讨会(ICMN 2024) Microelectronics and Nanotechnology

文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网:https://ais.cn/u/vEbMBz提交检索:EI Compendex、IEEE Xplore、Scopus大会时间:2024年9月20-22日地点:成都…

Java项目: 基于SpringBoot+mybatis+maven服装生产管理系统(含源码+数据库+任务书+开题报告+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven服装生产管理系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简…

0基础跟德姆(dom)一起学AI 数据处理和统计分析02-Linux进阶

* vi编辑器 * 权限相关 * 进程,网络相关 * 压缩和解压缩 * 软件安装-yum方式 * 其它命令 --- 1.过滤和管道命令 shell # grep命令, 用来过滤的 # 格式 grep [-n] 关键字 文件路径 # 从文件中过滤出要查找的内容, -n:表示带行号. # | 管道符, 即: 把前边命令的执行结果,…

Ceisum(SuperMap iClient3D for Cesium)实现平面裁剪

1:参考API文档:SuperMap iClient3D for Cesium 开发指南 2:官网示例:support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#layer 3:SuperMap iServer:欢迎使用 SuperMap iServer 11…

ArcGIS属性表汉字转拼音

直接复制粘贴现成代码: # -*- coding: utf-8 -*-import arcpyfrom arcpy import envimport osimport pypinyin import sys# 不带声调皿stylepypinyin.NORMAL)def pinyin(word): s for i in pypinyin.pinyin(word, stylepypinyin.NORMAL): s .join(…

idea中java及java web项目的常见问题

1、乱码问题,主要有几处地方,需要检查。 ①确保文件编码,其实主要就是在idea启动文件中,增加了 -Dfile.encodingUTF-8的设置 ②编辑器默认编码,都改为UTF-8 ③Tomcat的运行配置,编码也改为UTF-8,同样使用…

PHP省时省力海报在线制作系统小程序源码

省时省力海报在线制作系统:设计小白也能秒变大师 🎨 开篇:告别繁琐,拥抱高效设计 你还在为设计一张海报而熬夜加班吗?还在为找不到合适的素材而焦头烂额吗?别担心,“省时省力海报在线制作系统”…

Linux python pyinstaller 打包问题

1.环境 系统版本:Linux -4.19.91-24.8.el8.ks8.11.x86_64-x86_64-with-kylin-10-Sun python 版本 :3.11.2 pyinstaller :6.10.0 pyinstaller 安装不在说明 2.打包 [rootlocalhost pythonNacos]# /usr/local/python3.11/bin/pyinstaller --onefile…

AI+代码审核平台CodeSec获CCIA中国网络安全创新创业大赛总决赛三等奖

近日,由中央网信办指导,中国网络安全产业联盟(CCIA)主办的2024年中国网络安全创新创业大赛总决赛及颁奖典礼在国家网络安全宣传周落下帷幕。开源网安“AI代码审核平台CodeSec V4.0” 凭借在AI方向的技术创新、技术突破及功能应用创…

服务器基础知识拓展( Linux 网络操作系统 03)

1 什么是服务器 服务器就是在网络中为其他客户机提供服务的计算机。 服务器是计算机的一种,它是在网络操作系统的控制下为网络环境里的客户机(如PC)提供共享资源(包括查询、存储、计算等)高性能计算机,它…

OpenCV class1-C#+winfrom显示控件并内存管理

OpenCV是一个开源的跨平台计算机视觉库,提供了丰富的图像和视频处理算法。它采用C语言编写,并提供了C、Python、Java等多种语言接口,可广泛应用于各种计算机视觉相关领域。OpenCV具有强大的图像处理能力,包括图像滤波、几何变换、特征提取等,同时也支持视频分析、目标检测与跟踪…

Leetcode 516. 最长回文序列 区间dp C++实现

Leetcode 516. 最长回文序列 问题:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 算法1&#xff1a…

如何选择适合企业的高效财税自动化软件

数字化时代,企业财税管理的自动化已成为提高效率、降低成本的重要途径。然而,市面上众多的财税自动化软件让企业在选择合适的方案时感到困惑。本文金智维将介绍如何选择适合企业的高效财税自动化软件,以帮助企业更好地进行运营管理和决策。 1…

部署FileBeat采集日志发送到Kafka集群服务器

为什么要使用FileBeat Logstash功能虽然强大,但是他依赖java,在数据量大的时候,Logstash进程会消耗过多的系统资源,这将严重影响业务系统的性能,而Filebeat就是一个完美的代替者,filebeat是Beat成员之一,基于Go语言开发,没有任何依赖,配置文件简单,格式明了,同时,…

快手自研Spark向量化引擎正式发布,性能提升200%

Blaze 是快手自研的基于Rust语言和DataFusion框架开发的Spark向量化执行引擎,旨在通过本机矢量化执行技术来加速Spark SQL的查询处理。Blaze在快手内部上线的数仓生产作业也观测到了平均30%的算力提升,实现了较大的降本增效。本文将深入剖析blaze的技术原…

见刊丨“GPU池化”术语发布

中国计算机学会(CCF)日前与趋动科技联合发布了“GPU池化”这一术语,并在《中国计算机学会通讯》总第198期刊中发表。 期刊第90/91页 目前,人工智能通过数据、算力、算法和场景的融合深入到各行各业,促进和赋能数智化转型。其中,强…

无人机在战争方面的应用!!!

01 侦察与监视 无人机能够进行长时间的侦察和监视,为指挥官提供实时的战场情报,是现代战争中不可或缺的“眼睛”。它们可以飞越敌方领空,收集情报,为军事决策提供关键信息。 02 精确打击 携带精确制导武器的无人机能够对敌方的…