创客项目秀|基于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的本地个人助理已经搭建完成!

相关推荐
YY-nb7 天前
【2025 Unity Meta Quest MR 开发教程】透视 Passthrough 模块配置(戴上头显看见现实画面)
unity·游戏引擎·mr
Channing Lewis1 个月前
在使用 GitLab API 时,如果只能获取少量的 Merge Request(MR)信息,而没有完整的数据
gitlab·mr
Channing Lewis1 个月前
如何查看gitlab mr labels 添加和删除的历史
gitlab·mr
Leeuwenhoek2 个月前
2025年AI和AR谁才是智能眼镜的未来
人工智能·ai·ar·生活·mr·虚拟现实
AI浩2 个月前
MR-GDINO: Efficient Open-World Continual Object Detection
目标检测·目标跟踪·mr
十画_8242 个月前
如何为运行在 PICO 4 Ultra 设备上的项目设置外部文件读写权限?
mr·pico
Cool-浩2 个月前
Unity 开发Apple Vision Pro物体识别追踪ObjectTracking
unity·ar·apple vision pro·mr·物体识别·vision pro教程·objecttracking
三菱-Liu2 个月前
三菱伺服通过MR Configurator2进行的试运行模式
运维·驱动开发·嵌入式硬件·制造·mr
Leeuwenhoek2 个月前
MR智能眼镜:未来视觉的革新者
ar·mr·虚拟现实
幽默的荆轲君3 个月前
git如何快速拉取已经提交的mr进行验证
git·mr