【花雕动手做】ESP-Mosaico 之 ChatCoding 三个入门适合上手的经典升级案例

标签:*ESP-Mosaico ChatCoding Mosaico-Claw Lua 创客教育 AI硬件开发*
【【花雕动手做】ESP-Mosaico 之 ChatCoding 三个入门适合上手的经典升级案例 #花雕动手做 #ESP-Mosaico #科技改变生活】
## 前言:为什么这几个案例值得先跑一遍?
ChatCoding 是 ESP-Mosaico 最具颠覆性的入门玩法:不用电脑、不用搭建 ESP-IDF 环境,在板子的 AI Create 界面用自然语言描述需求,大模型(LLM)自动生成 Lua 脚本,通过 Vibe Mode 下发到板上沙箱热部署运行。
下面这 3 个案例,全部只使用主板自带资源——480×480 触摸屏、六轴 IMU(BMI270)、震动马达、蜂鸣器。不需要摄像头、交互模块等任何扩展板,纯裸机即可跑通。
它们分为【主推 3 个暖场案例】和【备选 3 个进阶案例】,难度低、出效果快,非常适合创客课堂、科技节和社群现场演示。
操作前提:进入 Vibe Mode 首页 → 打开 CLAW → 点击 New Blank Session 新建空白会话 → 切换到 AI Create 模式 → 语音或文字输入提示词。
核心机制:ChatCoding 背后的技术逻辑
在跑案例之前,先弄明白为什么“说一句话就能跑”。这涉及三层技术栈:
1、LLM 代码生成层:Mosaico-Claw 将你的自然语言需求,结合当前硬件组态(主板自带外设清单),翻译成符合 ESP-Claw 规范的 Lua 脚本。
2、沙箱热部署层:生成的脚本通过网络下发到 Vibe Mode 的 Lua 沙箱中。这个沙箱拥有独立的内存隔离和 API 白名单(比如允许调用 lcd.draw 和 imu.read,但禁止底层寄存器操作)。
3、硬件抽象层(HAL):Lua 脚本调用的函数(如 lcd.fill_screen、imu.get_accel),最终由底层的 C 语言驱动执行。ChatCoding 帮我们屏蔽了 I2C 地址、SPI 时序这些底层细节。
为什么断网也能跑? 因为代码生成依赖云端 LLM,但脚本一旦下发到板子,就是在本地沙箱独立解释执行的。这不依赖于网络连接。

## 案例 4:滚动跑马灯文字(备选|动态文字效果)
提示词(直接复制)
实现横向跑马灯效果,文字 “欢迎体验 ESP-Mosaico ChatCoding” 从屏幕右侧持续向左滚动,文字为白色,背景深蓝色,循环滚动。
效果说明
文字持续横向滑动,适合用来做欢迎标语、提示字幕,演示文本渲染与持续刷新画面。
专业原理解析
跑马灯的核心是坐标偏移重绘。脚本维护一个 X 坐标变量,每隔几十毫秒将其减 1,然后擦除上一帧的文字,在新 X 坐标渲染当前文字。在高级 UI 框架(如 ESP-GSP)中,这通常通过局部刷新(Partial Refresh) 来实现,而不是全局重绘,从而将帧率稳定在 30fps 以上,避免闪烁。
迭代拓展指令
调慢滚动速度,文字改成黄色
演示要点:适合用来展示 UI 文字动画,适合做作品标题。
试验记录





## 案例 5:摇晃骰子(备选|趣味小游戏,人气高)
提示词(直接复制)
简易电子骰子:屏幕黑色背景,中间绘制骰子点数;摇晃板子,随机生成 1~6 的点数并刷新画面,摇完马达震动一下。
效果说明
静态时固定显示一个点数;摇晃板子,点数随机刷新,是非常受欢迎的趣味小 Demo,小朋友很喜欢。
专业原理解析
这个案例和摇一摇计数器底层原理(加速度阈值检测)接近,但增加了伪随机数生成(PRNG) 与 图形绘制 逻辑。骰子的 1~6 个点数,本质上是 6 种不同的圆点坐标矩阵组合。随机数发生器一旦生成数值,代码就会查表加载对应的坐标组合,并调用 draw_circle 绘制。
迭代拓展指令
骰子点数放大,占据屏幕大部分区域
演示要点:玩法更有游戏感,适合活跃气氛。
试验记录





## 案例 6:倾斜调节进度条(备选|模拟滑动调节)
提示词(直接复制)
屏幕绘制一条横向进度条,初始长度 0;左右倾斜板子,进度条跟着变长变短,进度数值同步显示在进度条上方,背景黑色。
效果说明
利用 IMU 俯仰/横滚角度控制进度条,板子往左倾,进度减少;往右倾,进度增加,模拟滑动调节滑块。适合演示传感器数值映射到可视化界面。
专业原理解析
这是典型的姿态解算与数据映射(Mapping)。原始加速度数据经过互补滤波(Complementary Filter) 或卡尔曼滤波,解算出板子的横滚角(Roll)。然后利用 map() 函数,将这个物理角度(比如 -30° 到 +30°)线性映射到进度条的像素长度(比如 0 到 400px)。这体现了“物理世界模拟量 → 数字世界可视化”的完整链路。
迭代拓展指令
进度满的时候,蜂鸣器滴一声
演示要点:动作平缓一点,缓慢倾斜,画面变化更顺滑。
试验记录






现场演示顺序建议(黄金 10 分钟)
随机变色彩块(开场,快速展示动态效果,抓眼球)
摇一摇计数器(邀请观众上手参与,引爆现场气氛)
简易触控按钮(展示精细的触摸交互与触觉反馈)
如果时间充裕,再挑选备选骰子 / 跑马灯 / 倾斜进度条补充演示。
通用避坑指南(演示必看)
会话隔离:每次新开一个 Demo,务必点击 New Blank Session 清空历史上下文。大模型的上下文记忆很强,如果在一个会话里改代码,容易把上一个案例的代码逻辑混进来。
语音退级:如果现场嘈杂,语音输入报错 No speech was detected.,直接改用屏幕键盘文字输入提示词,稳定性 100%。
纯裸板运行:全部案例只调用了屏幕、IMU、马达、蜂鸣器,不需要插任何扩展模块,随便拿一块主板都能跑。
性能边界:ChatCoding 基于 Lua 解释器沙箱运行,适合原型、演示、教学。如果后续你需要做一个真正的“伺服电机驱动器”,请无缝切换到 VibeCoding(ESP-IDF 原生开发)。
无限迭代:代码跑出来不满意,不需要重新写完整需求。直接在当前会话说“背景改黑色”“字体再大点”,这就是 ChatCoding 局部热更新的优势。
Mermaid 流程图

结尾小结:从“想法”到“实物”的跨越
这 6 个案例虽然简单,但已经完整覆盖了定时循环、传感器触发、触摸交互、UI 动画、趣味游戏、数值可视化六大类基础硬件编程思路。
对于零基础学习者,不用背语法、不用懂寄存器,先建立“用自然语言指挥硬件”的思维;对于创客老师,可以基于这几个案例让学生自己修改颜色、文字和阈值,做二次创意。
当这些 Demo 跑通之后,你就理解了 ESP-Mosaico ChatCoding 的核心魅力——硬件开发的门槛,被降到了和说话一样低。




