当前位置: 首页 > article >正文

Windows+VSCode搭建小智(xiaozhi)开发环境

作为一名DIY达人,肯定不会错过最近很火的“小智AI聊天机器人”,网上教程非常丰富,初级玩家可以直接在乐鑫官方下载ESP-IDF安装包并经过简单的菜单式配置后,即可进行代码编译和烧录(详见:Docs)。但如果需要修改代码定制开发,就需要自己搭建开发环境,这里以VSCode为例:

一、在VSCode安装ESP-IDF插件

这里略去VSCode的安装,可参考:

进入VSCode,打开“扩展”搜索并安装“ESP-IDF”。

安装完成后,选择“Configure extension”。

选择“ADVANCED”。

进入配置界面,这里有两种方法进行配置:

方式一:如之前在Windows下安装过ESP-IDF,可以选择“Find ESP-IDF in your system”,并分别设置IDF_PATH和IDF_TOOLS_PATH,然后“Configure Tools”。

方式二:如还没有安装ESP-IDF,可勾选“Show all ESP-IDF tags”,然后选择需要安装的ESP-IDF版本,并分别设置IDF_PATH和IDF_TOOLS_PATH,然后“Configure Tools”。

注意:小智1.6.5之前的版本可以用5.3.1和5.3.2和5.3.3,最新1.6.6版本因为增加了对MCP协议和摄像头的支持,需要用5.4.1。

待下载安装完成,进入下载界面,

选择“Download Tools”。

最后一步是配置Python虚拟环境。

以上3步完成后,ESP-IDF就安装好了,这时左侧会出现ESP-IDF资源管理器。

通过勾选命令可使该命令快捷方式出现在VSCode下侧工具栏中。

二、下载小智(xiaozhi)源代码

在GitHub - 78/xiaozhi-esp32: A MCP based chatbot下载小智(xiaozhi)源代码,可以用git clone命令,也可直接下载ZIP文件解压保存到指定路径。

三、配置VSCode编译环境

用VSCode打开小智(xiaozhi)源代码所在文件夹,加载激活扩展需要一段时间。

1、生成vscode配置文件

打开main.cc发现找不到头文件,出现波浪线警告,报“无法找到源文件”错误,这个不影响编译。

这个错误可以通过以下方式解除:

按快捷键 Ctrl + Shift + P 打开命令行, 找到 ESP-IDF:Add vscode configuration folder,

点击一下即可自动生成对应的vscode配置文件。点击之后可以看到工程目录下多了一个 .vscode 目录,并产生了相应的文件,其中c_cpp_properties.json 内描述的就是对应的头文件路径。

2、配置ESP-IDF资源管理器

通过VSCODE下侧工具条可以进行以下配置:

 :设置烧录方式

选择UART。

 :设置烧录端口

根据实际情况选择对应端口。

 :设置芯片型号

根据实际情况选择对应型号。

3、配置SDK(menuconfig)

在VSCODE下侧工具条选择,进入SDK配置编辑器。

这里可根据用户实际情况进行设置,如设置显示屏类型、本地服务等配置。

如使用本地服务,可将OTA地址改为本地地址,如:http://192.168.0.87:8002/xiaozhi/ota/。

也可以通过修改“xiaohzhi-esp32/main/Kconfig.projbuild”文件进行设置把原来的https://api.tenclass.net/xiaozhi/ota/改为本地地址,如:http://192.168.0.87:8002/xiaozhi/ota/。

构建小智本地服务详见:GitHub - xinnan-tech/xiaozhi-esp32-server: 本项目为xiaozhi-esp32提供后端服务,帮助您快速搭建ESP32设备控制服务器。Backend service for xiaozhi-esp32, helps you quickly build an ESP32 device control server.

可以设置主板类型和显示屏型号。

可以设置唤醒词。

四、编译烧写程序

完成以上设置后即可开始编译烧写程序。

在VSCODE下侧工具条选择开始进行编译。

当出现以下提示表示编译完成。

在VSCODE下侧工具条选择开始进行烧录。

当出现以下提示表示烧录成功。

五、终端配网

完成烧录后重新启动小智(RST)用手机搜索连接名称“Xiaozhi-****”的WIFI,

然后访问192.168.4.1地址进行WIFI配置。

选择连接后小智将重新启动。

如需重新配网,可以按下RST键重新启动小智,并立即按下ROOT键,小智将重新进入配网状态。

六、设备注册

首次进入需进行设备注册,如使用小智线上服务,可访问:https://xiaozhi.me,选择智能体——>新建智能体——>输入智能体名称——>添加设备——>输入验证码。

如使用本地服务,智能体管理——>添加智能体——>输入智能体名称——>设备管理——>新增——>输入验证码。

相关文章:

Windows+VSCode搭建小智(xiaozhi)开发环境

作为一名DIY达人,肯定不会错过最近很火的“小智AI聊天机器人”,网上教程非常丰富,初级玩家可以直接在乐鑫官方下载ESP-IDF安装包并经过简单的菜单式配置后,即可进行代码编译和烧录(详见:Docs)。…...

VueScan Pro v9.8.45.08 一款图像扫描软件,中文绿色便携版

VueScan是著名的第三方底片扫描仪驱动程序,支持市场可见绝大多数型号的底片扫描仪,可以更为灵活地控制扫描过程,更深入地发掘硬件潜力,获取色彩 完美的高质量扫描结果。VueScan支持200种以上的底片类型,在剪取图像时制…...

FreeRTOS通俗理解指南:基础概念 + 架构+ 内核组件+练手实验

RTOS 基础概念 想象一下,你是一个忙碌的厨师,在厨房里同时要完成煎牛排和煮意大利面两项任务。 1.传统单线程模式(没有RTOS) 如果你只能按顺序一项一项地做,就会是这样的过程: 先煎一会儿牛排然后去看看…...

Python后端开发实战:从0到1搭建高可用API服务

引言 Python凭借其简洁的语法和丰富的生态(如Django、Flask、FastAPI等框架),已成为后端开发的主流语言之一。本文将结合一个真实电商API项目,分享从架构设计到部署上线的完整流程,并总结开发过程中常见的坑与最佳实践。 一、实战案例:电商API开发流程 1.1 技术选型 框…...

房屋租赁系统 Java+Vue.js+SpringBoot,包括房屋信息、看房申请、租赁合同、房屋报修、收租信息、维修数据、租客管理、公告管理模块

房屋租赁系统 JavaVue.jsSpringBoot,包括房屋信息、看房申请、租赁合同、房屋报修、收租信息、维修数据、租客管理、公告管理模块 百度云盘链接:https://pan.baidu.com/s/16YRGBPsfbd4_HxXhO0jM5Q 密码:smk4 摘 要 房屋是人类生活栖息的重要…...

4、ubuntu系统 | 文本和目录操作函数

1、目录操作函数 ls(列出目录内容) 用途:列出指定目录中的文件和子目录。语法:ls [选项] [路径]常用选项: -l:以长格式显示文件详细信息(权限、所有者、大小、时间等)。-a&#xff…...

docker部署ELK,ES开启安全认证

ES启动命令 docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:8.17.0 es启动之后需要进入es容器,重置密码 elasticsearch-reset-password -u elastic -i 重置后的密码配置到kibana.yml中,启动kibana docker run …...

ASP.NET MVC添加视图示例

ASP.NET MVC高效构建Web应用- 商品搜索 - 京东 视图(V)是一个动态生成HTML页面的模板,它负责通过用户界面展示内容。本节将修改HelloWorldController类,并使用视图模板文件,以干净地封装生成对客户端的HTML响应的过程…...

自动驾驶中的路径跟踪:Python实现与技术解析

自动驾驶中的路径跟踪:Python实现与技术解析 一、路径跟踪是什么?为什么它至关重要? 路径跟踪(Path Tracking)是自动驾驶系统的关键部分之一,它负责确保车辆能够沿着预定义的轨迹行驶,同时稳定控制转向角度和速度。一个好的路径跟踪算法需要具备以下特点: 精准度:能…...

前端面试题目-高频问题集合

1.CSS里面水平垂直居中的方法 1.CSS里面水平垂直居中的方法弹性布局display: flex; /*先开启flex布局*/justify-content: center; /*实现水平居中*/jalign-items: center; /*实现垂直居中*/网格布局display: grid; /*先开启grid布局*/plac…...

MyBatis源码解析:从 Mapper 接口到 SQL 执行的完整链路

MyBatis源码解析:从 Mapper 接口到 SQL 执行的完整链路 一、Mapper 代理对象的创建:sqlSession.getMapper(UserMapper.class)二、接口方法的执行:mapper.selectUser("coderzpw", 18)2.1 四大核心组件解析2.1.1 Executor&#xff08…...

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | Form Wave(表单label波动效果)

📅 我们继续 50 个小项目挑战!—— FormWave组件 仓库地址:https://github.com/SunACong/50-vue-projects 项目预览地址:https://50-vue-projects.vercel.app/ 🎯 组件目标 构建一个美观、动态的登录表单&#xff0…...

双目相机深度的误差分析(基线长度和相机焦距的选择)

全文基于针孔模型和基线水平放置来讨论 影响双目计算深度的因素: 1、基线长度:两台相机光心之间距离2、相机焦距(像素): f x f_x fx​(或 f y f_y fy​)为焦距 f f f和一个缩放比例的乘积。在…...

Pytorch Geometric官方例程pytorch_geometric/examples/link_pred.py环境安装教程及图数据集制作

最近需要训练图卷积神经网络(Graph Convolution Neural Network, GCNN),在配置GCNN环境上总结了一些经验。 我觉得对于初学者而言,图神经网络的训练会有2个难点: ①环境配置 ②数据集制作 一、环境配置 我最初光想…...

React---day6、7

6、组件之间进行数据传递 **6.1 父传子&#xff1a;**props传递属性 父组件&#xff1a; <div><ChildCpn name"蒋乙菥" age"18" height"1,88" /> </div>子组件&#xff1a; export class ChildCpn extends React.Component…...

hook组件-useEffect、useRef

hook组件-useEffect、useRef useEffect 用法及执行机制 WillMount -> render -> DidMount ShouldUpdate -> WillUpdate -> render -> DidUpdate WillUnmount(只有这个安全) WillReceiveProps useEffect(callback) 默认所有依赖都更新useEffect(callback, [])&am…...

功能结构整理

C# Sxer Sxer.Base&#xff1a;基础子功能 Sxer.Base.Debug&#xff1a;打印 Sxer.Utility&#xff1a;工具类 Sxer.CustomFunction&#xff1a;独立功能点开发 Unity...

企业级开发中的 maven-mvnd 应用实践

1. 引言:Maven 在企业级开发中的挑战 1.1 Maven 构建的常见痛点 在大型 Java 项目中,Maven 是主流的构建工具,但随着项目的复杂度增加,其性能瓶颈逐渐显现: 构建速度慢:每次执行 mvn clean install 都需要重新加载插件和依赖。重复构建浪费资源:即使未修改源码,仍会触…...

yolov12毕设前置知识准备 1

1 什么是目标检测呢&#xff1f; 目标检测&#xff08;Object Detection&#xff09;主要用于识别图像或视频中特定类型物体的位置&#xff0c;并标注其类别。 简单来说&#xff0c;就是让计算机像人类一样 “看懂” 图像内容&#xff0c;不仅能识别出物体&#xff08;如人、…...

随机游动算法解决kSAT问题

input&#xff1a;n个变量的k-CNF公式 ouput&#xff1a;该公式的一组满足赋值或宣布没有满足赋值 算法步骤&#xff1a; 随机均匀地初始化赋值 a ∈ { 0 , 1 } n a\in\{0,1\}^n a∈{0,1}n.重复t次&#xff08;后面会估计这个t&#xff09;&#xff1a; a. 如果在当前赋值下…...

《Discuz! X3.5开发从入门到生态共建》第1章 Discuz! 的前世今生-优雅草卓伊凡

《Discuz! X3.5开发从入门到生态共建》第1章 Discuz! 的前世今生-优雅草卓伊凡 第一节 从康盛创想到腾讯收购&#xff1a;PC时代的辉煌 1.1 Discuz! 的诞生&#xff1a;康盛创想的开源梦想 2001年&#xff0c;中国互联网正处于萌芽阶段&#xff0c;个人网站和论坛开始兴起。…...

azure web app创建分步指南系列之一

什么是 Azure Web 应用? Azure Web 应用是 Azure 应用服务的一部分,是一个完全托管的平台,用于开发、部署和扩展 Web 应用程序。它支持各种编程语言和框架,例如 .NET、Java、Python、PHP 和 Node.js,使开发人员能够构建强大的 Web 应用程序,而无需担心底层基础架构。借助…...

PyTorch实战——基于生成对抗网络生成服饰图像

PyTorch实战——基于生成对抗网络生成服饰图像 0. 前言1. 模型分析与数据准备2. 判别器3. 生成器4. 模型训练5. 模型保存与加载相关链接0. 前言 我们已经学习了生成对抗网络 (Generative Adversarial Network, GAN) 的工作原理,接下来,将学习如何将其应用于生成其他形式的内…...

笔试强训:Day6

一、小红的口罩&#xff08;贪心优先级队列&#xff09; 登录—专业IT笔试面试备考平台_牛客网 #include<iostream> #include<queue> #include<vector> using namespace std; int n,k; int main(){//用一个小根堆 每次使用不舒适度最小的cin>>n>&…...

【Hexo】4.Hexo 博客文章进行加密

安装 npm install --save hexo-blog-encrypt1-快速使用 将“ password”添加到您的文章信息头就像这样&#xff1a; password: 123456 ---2-按标签加密 1.修改文章信息头如下&#xff1a; title: Hello World tags: - 加密文章tag date: 2020-03-13 21:12:21 password: muyiio…...

Android --- ObjectAnimator 和 TranslateAnimation有什么区别

文章目录 2. 作用范围和功能2. 动画表现3. 是否修改 View 的属性4. 适用场景5. 性能总结&#xff1a; ObjectAnimator 和 TranslateAnimation 都是 Android 中常用的动画类型&#xff0c;但它们有以下几个关键的区别&#xff1a; 2. 作用范围和功能 ObjectAnimator&#xff1a…...

小白的进阶之路系列之四----人工智能从初步到精通pytorch自定义数据集下

本篇涵盖的内容 在之前的文章中,我们已经讨论了如何获取数据,转换数据以及如何准备自定义数据集,本篇文章将涵盖更加深入的问题,希望通过详细的代码示例,帮助大家了解PyTorch自定义数据集是如何应对各种复杂实际情况中,数据处理的。 更加详细的,我们将讨论下面一些内容…...

安卓添加设备节点权限和selinux访问权限

# 1 修改设备节点权限及配置属性设置节点值 ## 1.1 修改设备节点权限 ### 1.1.1 不会手动卸载的节点 在system/core/rootdir/init.rc中添加节点权限 在on boot下面添加 chown system system /sys/kernel/usb/host chmod 0664 /sys/kernel/usb/host ### 1.1.2 支持热插拔的…...

谷歌Stitch:AI赋能UI设计,免费高效新利器

在AI技术日新月异的今天&#xff0c;各大科技巨头都在不断刷新我们对智能工具的认知。最近&#xff0c;谷歌在其年度I/O开发者大会期间&#xff0c;除了那些聚光灯下的重磅发布&#xff0c;还悄然上线了一款令人惊喜的AI工具——Stitch。这是一款全新的、完全免费的AI驱动UI&am…...

运营商地址和ip属地一样吗?怎么样更改ip属地地址

‌在互联网时代&#xff0c;IP属地和运营商地址是两个经常被提及的概念&#xff0c;但它们是否相同&#xff1f;如何更改IP属地地址&#xff1f;这些问题困扰着许多网民。本文将深入探讨这两个概念的区别&#xff0c;并详细介绍更改IP属地地址的方法。 一、运营商地址和IP属地一…...