创客项目秀|基于XIAO ESP32C3的本地个人助理Mr.M

作者:Matthew Yu

来自:Fab academy

在数字化时代的浪潮中,柴火创客空间作为创新与实践的摇篮,不仅为Fab Academy 2024的学员们提供了一个充满活力的学习和创作环境,更是将科技的力量与人文关怀深度融合。今天,我们自豪地介绍柴火创客空间辅导毕业的其中一位学员Matthew Yu的终极项目——Mr.M,一个集成了大型语言模型(LLM)的本地个人助理。其独特的设计理念和强大的功能,重新定义了我们与智能设备之间的互动。让我们深入了解Mr. M的诞生历程!

项目介绍

项目概述

Mr.M基本工作:

  1. 它将在同一个 Wi-Fi 上接收来自 INMP441 和 XIAO ESP32C3 移动模块的音频消息(音频到波浪文件)。

  2. 然后它会将音频转换为单词(文本)并尝试理解它:对于已经提示的任务,将自动生成日历信息(JSX文件)。

  3. 相应的日历消息或一些也被提示的信息将通过MQTT发送到另一个移动模块,与ILI9341显示屏一起显示。

功能模块介绍

麦克风输入:

这个输入可能看起来不太好,这是它的具体结构:

PCB可以很好地贴合3D打印部件,但像左边一样,添加卡住柱子令人更加放心。

显示输出:

UI操作图像(我真的为此感到非常自豪):

材料清单

原件

数量

reComputer J4012

x1

reRouter

x1

Monitor

x1

XIAO ESP32C3

x2

INMP441

x1

3 Pin Header SMD

x2

Grove Female Header

x1

ILI9341

x1

Grove RGB LED Ring

x1

Power Supply Extension

x1

Network Cable

x1

Type-C Male Connector to Three Type-C Female Connector

x1

M5*60 screw

x4

M5 nut

x8

以下是材料总览:

微控制器接口与编程

首先是我的软件测试部分:

(输入)移动模块 - 原始音频数据到 WAV 文件:

功能:为电路板通电,它将记录并生成WAV文件并传输到服务器,其中IP由网络提供。

reComputer 可以读取 IP 并从临时服务器下载文件。

相关参考:(input) Mobile Module - Raw Audio Data to Words | Matthew‘s FabLab Journey (fabacademy.org)

WAV文件转文本 reComputer:

将WAV文件转换为文本,并将文本输入到LLM(Ollama API)中:

  • WAV 文件位于显示器的右上角。

  • 左下角是交互式页面(docusaurus pages)运行的地方

  • 左上角是下载音频文件的地方

相关参考:(input) Mobile Module - Raw Audio Data to Words | Matthew‘s FabLab Journey (fabacademy.org)

为了实现这部分,我需要在我的 reComputer 上设置一个 LLM 驱动的机器人:

有关聊天机器人的更多详细信息:Chat Bot(Local Server) | Matthew‘s FabLab Journey

为了让这个机器人看起来更好,我使用 GPT 本身来生成代码。

有关UI操作页面设置的更多信息:Operating UI Setting | Matthew‘s FabLab Journey

音频文本到设计的日历标准(JSX):

我需要能够将我的单词(音频文本文件)翻译成docusaurus平台可以渲染的日历JSX标准文件:

!注意:代码目前正在MAC上进行测试。但是 reComputer 和 MAC 都共享 Linux,因此代码是共享的。

有关本地LLM和自动生成tsx文件的更多信息:Local LLM and Auto-generation tsx file | Matthew‘s FabLab Journey (fabacademy.org)

为了正确使用 LLM,我需要使用 Prompt Enginner 很好地学习和应用:

有关提示设置的更多详细信息:Prompt Setup | Matthew‘s FabLab Journey (fabacademy.org)

(输出)移动模块 - 接收和显示日历信:

在reComputer生成标准JSX日历文件后,从处理后的文本文件。我将把消息从文本文件传输到移动模块并显示它,同时还可以控制一些东西。

有关移动模块的更多详细信息 -接受和显示日历信息:(Output) Mobile Module - Receive and Display Calendar Information | Matthew‘s FabLab Journey

!注意:为了应用此功能,它需要 MQTT 函数,我已经在 reComputer 中应用,让它充当代理进行运行。

有关MQTT连接XIAO板子和Docusaurus-website的更多详细信息:MQTT connect with XIAO boards and Docusaurus-website | Matthew‘s FabLab Journey (fabacademy.org)

同时需要使用Docusaurus页面在network(reRouter)下构建和实现MQTT功能:

接口:

我使用我的作业网站页面设计机器人,并将所有无线功能放在一起。这些可以自动完成。

!注意:

自动化操作对于用户来说十分方便,但他们也可以在FAB Academy MQTT(MQTT broker (#18) · 议题 · Academany / Fab Academy / 2024 / Fab Academy 2024 Class · GitLab (fabcloud.org)) 下手动控制。例如:

电子设计与生产

(输入)移动模块 - 原始音频数据转换文字:

我希望这个模块可以接收我的声音,它可以显示一些 RGB LED 灯,表明它正在工作,或者其他事情。然后我在其中连接两个 3 针接头 SMD。

有关(输入)移动模块的更多详细信息参考:(input) Mobile Module - PCB design | Matthew‘s FabLab Journey (fabacademy.org)

(输出)移动模块 - 接收和显示日历信息:

我希望这个模块接收日历信息,它可以控制一些东西,比如继电器。然后,我在PCB上添加了一个Grove端口和一个8 PinHeader P2.54mm:

有关(输出)移动模块的更多详细信息:(Output) Mobile Module - PCB design | Matthew‘s FabLab Journey (fabacademy.org)

外观结构设计

输入模块设计:

顶盖(3D打印):

中间部分(3D打印):

RGB灯罩部分(2D设计):

最终成品:

将RGB灯接线与XIAO天线一起延长至背部:

最后放置亚克力板盖上背部:

输出模块设计:

显示器支架和 Grove 继电器支架(3D 打印):

最终成品:

外壳设计-2D激光切割:

这部分工作是为了让作品看起来好看、整洁、合乎逻辑。

1、 RGB显示最好带有滤镜层。因此,在蓝图上切割一些亚克力板:

2、 由于我使用了一些大型设备/设备(reComputer 和 reRouter),我将使用两块大亚克力板将所有东西固定在一起:因此激光切割是必要的:

机箱设计-3D打印:

这部分是为了让作品看起来好看、整洁、合乎逻辑。

1、我的设备需要得到支持、修复,而不是到处移动。因此,我需要设计一些 3D 零件来固定它们:

出于其他考虑,我修改了初始方案:

整体搭建与封装

整体系统搭建基本思路:

  • 主要计算设备:reComputer,提供MQTT代理,AI计算,运行LLM和浏览器网站。

  • 网络设备(我想确保所有东西都是本地的):reRouter,提供Wi-Fi无线连接和电线连接。

  • 一个带INMP441的语音输入移动模块

  • 一个带有ILI9341的显示信息移动模块。

整体系统:

显示器与电源适配器:

对于显示器而言,为了整体项目可携带的目标,我不得不考虑一个可携带的监视器。我买了一个显示器,具体尺寸如图所示:

显示器后面有四个螺丝孔,然后我测量了螺丝孔到边缘的距离和孔之间的距离:

然后我需要计算显示板的长度,在这里一定要保证不会太长影响美观,也不会太短影响连接:

计算之后,我在OnShape上设计了显示器的附加板:

设计之后通过激光切割获得附加板:

对于电源适配器,我也需要将安装绑在一起:

并且考虑到稳定显示器等问题,我需要在设计上保留每个板上的间隙:

底部:

顶部:

切割电路板并将模块插入其中:

进行拧紧连接:

添加移动模块:

将移动模块移到外面:

至此,一个基于XIAO ESP32C3的本地个人助理已经搭建完成!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记——交换——STP(生成树)简介

一、技术背景 1、生成树技术背景 交换机单线路组网,存在单点故障(上左图),上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,业务将会中断。 为了使得网络更加健壮、更具有冗余性,将拓扑修改为(上右图)接入…

【直观详解】泰勒级数

非常好的一篇 泰勒展开式的 推理过程 【直观详解】泰勒级数 | Go Further | Stay Hungry, Stay Foolish 函数f(x)cos(x) 函数的逼近过程

FLUKE9500B福禄克9500B示波器校准仪

FLUKE9500B示波器校准器 福禄克9500B示波器校准仪 9500B 示波器校准器的特点 自动化示波器校准可能体现许多校准实验室中生产力的提高。如果是手动,则该项工作需要熟练的操作人员花费大量的时间执行基本上是重复的任务。半自动化或自动化的方案显然能够解决这一问…

2024年看项目管理软件与工程项目管理的奇妙融合

一、禅道在项目管理中的全面应用 禅道在产品管理方面,能够清晰地对产品的需求进行全方位管理。从需求的提出到详细信息的记录,再到状态、负责人以及完成进度的跟踪,都能有条不紊地进行。产品经理可以通过禅道制定合理的产品规划,…

讯飞与腾讯云:Android 语音识别服务对比选择

目录 一、讯飞语音识别 1.1 讯飞语音识别介绍 1.1.1 功能特点 1.1.2 优势 1.2 接入流程 1.2.1 注册账号并创建应用 1.2.2 下载SDK等相关资料 1.2.3 导入SDK 1.2.4 添加用户权限 1.2.5 初始化讯飞SDK 1.2.6 初始化语音识别对象 1.2.7 显示结果 二、腾讯云语音识别 …

Django一分钟:DRF生成OpenAPI接口文档

DRF项目中如果想要自动生成API文档我们可以借助drf-spectacular这个库,drf-spectacular非常强大,它可以自动从DRF中提取信息,自动生成API文档,配置简单开箱即用,并且它对很多常用的第三方如:SimpleJWT、dja…

Spark练习-RDD创建,读取hdfs上的数据,指定rdd分区

目录 RDD的创建 读取HDFS上文件数据 RDD分区指定 RDD的创建 将python数据转为rdd # 将Python数据转为rdd data [1,2,3,4] res sum(data) # 使用python的方法计算时,采用的单机资源计算,如果数据量较大时,可以将python数据转为spark的r…

JavaWeb——Vue:打包部署(Nginx、目录介绍、部署及启动、访问 )

目录 打包 部署 Nginx 目录介绍 部署及启动 访问 前端 Vue 项目的最后一步是打包部署。在当前前后端分离的开发模式中,前端开发人员开发前端代码,后端开发人员开发后端代码。最终要将开发及测试完毕的前端 Vue 代码和后端代码分开部署在对应的服…

CentOS 7.9 局域网配置指定同步时间服务器

在 CentOS 7.9 中,默认的时间同步工具是 chrony。以下是如何配置 NTP 服务器地址并使用 chrony 进行时间同步的步骤: 1. 安装 chrony(通常已经预装可忽略) 通过systemctl status chronyd检查是否已经安装启动 如果没网可以直接…

SpringBoot框架下购物推荐网站的设计模式与实现

3系统分析 3.1可行性分析 通过对本东大每日推购物推荐网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本东大每日推购物推荐网站采用JAVA作为开发语言&…

AD查看任意角度PCB的3D效果图

点击 视图 - > 切换到3维模式啥键都不按,滚动鼠标滚轮,3D图上下移动;这个很简单,经常用;按住Ctrl,滚动鼠标滚轮,3D图缩放;这个很简单,经常用;按住Shift,滚…

jenkins 插件SSH Pipeline Steps

一、安装 SSH Pipeline Steps | Jenkins plugin 二、添加全局linux服务器用户名密码:linux-142 三、新建流水线SshServer 添加Pipeline Script node {def remote [:]remote.name tstremote.host 192.168.31.142remote.allowAnyHosts truewithCredentials([usern…

【机器学习】朴素贝叶斯算法|商品评论情感分析案例介绍及代码实现

文章目录 朴素贝叶斯算法朴素贝叶斯算法介绍概率数学基础复习朴素贝叶斯算法-利用概率值进行分类的一种机器学习算法贝叶斯公式朴素贝叶斯算法拉普拉斯平滑系数 朴素贝叶斯API案例分析流程数据集代码实现运行结果 朴素贝叶斯算法 朴素贝叶斯算法介绍 概率数学基础复习 条件概…

1.4 使用Vite创建Vue 3项目

文章目录 什么是 ViteVite 的优点注意事项 创建 Vue 3 项目手动创建项目通过模板自动创建项目启动项目 Vue 3 项目目录结构Vue 3 项目运行过程项目运行过程项目关键文件 大家好,今天我们将一起学习如何使用 Vite 创建一个 Vue 3 项目。Vite 是一个现代的前端构建工具…

论文解析三: D2-Net 用于联合描述和检测局部特征的可训练CNN

目录 1.D2-Net摘要2.D2-Net关键点介绍3. Joint Detection and Description (联合检测和描述)3.1 Feature Extraction3.2 Feature Detection3.2.1 Hard feature detection (硬特征检测)3.2.1 Soft Feature Detection(软特征检测) 3…

Pandas处理时间序列之光谱分析与聚类

import matplotlib.pylab as plt %matplotlib inline import numpy as np from numpy import fft import pandas as pd 一、光谱分析 • 将时间序列分解为许多正弦或余弦函数的总和 • 这些函数的系数应该具有不相关的值 • 对正弦函数进行回归 光谱分析应用场景 基于光谱的…

comprehensive_tools之添加菜单

文章目录 安装 sass sass-loader新建Layout、styles修改配置文件App.vue修改 main.cssmain.ts删除components目录下的所有文件在router文件夹中新建routers.ts修改router/index.ts修改vite.config.tsAboutView.vue、ContactView.vue、HomeView.vueAboutView.vueContactView.vue…

2014年国赛高教杯数学建模A题嫦娥三号软着陆轨道设计与控制策略解题全过程文档及程序

2014年国赛高教杯数学建模 A题 嫦娥三号软着陆轨道设计与控制策略 嫦娥三号于2013年12月2日1时30分成功发射,12月6日抵达月球轨道。嫦娥三号在着陆准备轨道上的运行质量为2.4t,其安装在下部的主减速发动机能够产生1500N到7500N的可调节推力,…

二、PyCharm基本设置

PyCharm基本设置 前言一、设置中文汉化二、设置代码字体颜色三、设置鼠标滚轮调整字体大小四、修改 PyCharm 运行内存4.1 方式一4.1 方式二 五、显示 PyCharm 运行时内存六、设置代码模版配置的参数有: 七、PyCharm设置背景图总结 前言 为了让我们的 PyCharm 更好用…

rk3568,rk3588 , opencv 的了解。

网上的截图: 自动安装; 手动安装; 我只是 截图了一下,并没有实地的进行测试。