【花雕动手做】ESP-Mosaico 之 ChatCoding 三个入门适合上手的主推经典案例
标签:*ESP-Mosaico ChatCoding Mosaico-Claw Lua 创客教育 AI硬件开发*
## 前言:为什么这主推 3 个暖场案例值得先跑一遍?
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,但脚本一旦下发到板子,就是在本地沙箱独立解释执行的。这不依赖于网络连接。

## 案例 1:随机变色彩块(主推|暖场开场演示)
提示词(直接复制)
在 480*480 屏幕上,每隔 0.8 秒自动刷新全屏背景,随机切换红、绿、蓝、紫、橙五种颜色,屏幕中间显示白色大字 “变色啦”。
效果说明
上电运行后,屏幕持续自动换底色,中间文字保持不变。动态视觉效果极强,适合开场抓眼球,直观展示循环定时逻辑。
专业原理解析
这个案例展示了嵌入式开发中的事件循环(Event Loop)与定时器中断。Lua 脚本会在后台注册一个 800ms 的定时器,每次定时器触发,代码会调用随机数生成器选中一个 RGB 色值,并通过 UI 绘图 API 将颜色写入显存(Frame Buffer),完成重绘。
迭代拓展指令
颜色切换速度放慢到 2 秒一次,文字改成 “ESP-Mosaico”
演示要点:逻辑简单,几乎不会报错,适合第一次演示“一句话生成动态程序”。
试验记录






【【花雕动手做】ESP-Mosaico ChatCoding 三 个入门经典案例之随机变色彩块 #万物皆可rgb #花雕动手做 #科技改变生活 #AI人工智能硬件】
## 案例 2:摇一摇计数器(主推|观众可参与互动)
提示词(直接复制)
做一个摇一摇计数程序:屏幕中间显示大号数字,初始值是 0;检测到板子晃动(IMU 震动),数字 + 1;背景黑色,数字青色。
效果说明
静止时屏幕只显示数字;用手摇晃板子,IMU 感知晃动,数字累加。可以交给参观者亲手摇晃体验,理解【传感器触发事件】。
专业原理解析
这里涉及 IMU 姿态解算的加速度阈值检测。BMI270 六轴传感器会实时输出三轴加速度(ax, ay, az)。脚本通过计算矢量加速度的变化率,如果超过设定的阈值(比如 1.5g),就判定为“有效摇晃”。为了防止手抖误触,底层通常还会内置一个简单的软件去抖(Debounce) 逻辑。
迭代拓展指令
数字到 10 的时候,马达震动一下,蜂鸣器响一声
演示要点:轻晃即可触发,不要剧烈抖动,避免识别不稳定。
试验记录








【【花雕动手做】ESP-Mosaico ChatCoding 三 个入门经典案例之摇一摇计数器 #智能设备实测 #花雕动手做 #diy电子爱好者 #AI人工智能】
## 案例 3:简易触控按钮(主推|触摸屏交互经典案例)
提示词(直接复制)
在屏幕上画一个圆形按钮,放在屏幕中间;点击这个圆,按钮切换红绿两种状态,同时马达震动一次。
效果说明
屏幕生成一个圆形虚拟按键,手指点击,颜色切换,同时震动反馈。用来演示触摸屏输入、人机交互事件,是 GUI 交互的基础原型。
专业原理解析
这展示了电容触摸屏的坐标映射与碰撞检测。触摸控制器通过 I2C 上报触点的 (X, Y) 坐标,Lua 脚本通过判断坐标是否落在圆的半径范围内(勾股定理计算),来触发状态机的切换。马达震动(Haptic Feedback)则通过拉高对应 GPIO 的电平驱动微型马达实现。
迭代拓展指令
按钮上方增加一行小字:点击切换状态
演示要点:点击尽量点在圆形区域内,边缘触摸容易识别失败。
试验记录


备选案例持续更新中.......
通用避坑指南(演示必看)
1、会话隔离:每次新开一个 Demo,务必点击 New Blank Session 清空历史上下文。大模型的上下文记忆很强,如果在一个会话里改代码,容易把上一个案例的代码逻辑混进来。
2、语音退级:如果现场嘈杂,语音输入报错 No speech was detected.,直接改用屏幕键盘文字输入提示词,稳定性 100%。
3、纯裸板运行:全部案例只调用了屏幕、IMU、马达、蜂鸣器,不需要插任何扩展模块,随便拿一块主板都能跑。
4、性能边界:ChatCoding 基于 Lua 解释器沙箱运行,适合原型、演示、教学。如果后续你需要做一个真正的“伺服电机驱动器”,请无缝切换到 VibeCoding(ESP-IDF 原生开发)。
5、无限迭代:代码跑出来不满意,不需要重新写完整需求。直接在当前会话说“背景改黑色”“字体再大点”,这就是 ChatCoding 局部热更新的优势。
Mermaid 流程图

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

硬件清单
- 乐鑫ESP-Mosaico1




