🧩 Blockr
积木搭子 —— 仿真优先的开源一体化图形化编程 IDE
把嵌入式学习的门槛压到「一个浏览器」:拖积木搭建程序,实时看到生成的代码(Arduino C++ / MicroPython 双语言),一键云编译(SSE 实时日志),然后在浏览器里做指令级仿真——先在仿真里跑通,再上真机。工程可保存、导出、分享,全链路开箱可用。
从积木到点灯,一条链路
- 拖积木 — Blockly 工作区(中文、Zelos 渲染),界面 / 工具箱 / 积木文案支持中英一键切换
- 看代码 — 积木实时生成 Arduino C++(setup 去重、引脚冲突警告、类型推断),学积木的同时看懂真代码
- 编译 — Go + Fiber 编译服务调用 arduino-cli,内容寻址缓存:改回原代码秒级编译,SSE 实时输出日志
- 仿真 — avr8js 指令级仿真 + 串口监视器(文本 / 绘图仪),真机串口也能 Web Serial 直连
仿真玩真的:从 LED 到 ESP32
- 指令级仿真(AVR) — LED、按键、ADC、PWM、舵机(P9)、超声波 HC-SR04、串口双向;板型覆盖 UNO / NANO / Mega 2560 / Digispark ATtiny85
- ESP32 双路线 — C++ 云仿真(服务端 Docker 内
qemu-system-xtensa跑真固件,WebSocket 串口回传)+ MicroPython 语义仿真(积木生成 → raw REPL 上传即运行,print 进串口监视器) - 面包板电路仿真 — 行为级 DC 网络求解:夜灯分压喂 A0、LED 限流电流、拔线浮空与过流告警、电位器 / 热敏 / 蜂鸣器 / 开关元件
- 虚拟传感器与外设 — A0 电位器 / 光照、A1 温度、超声波距离滑块、舵机角度表盘;LCD1602 指令级仿真,板视图绿屏同步
内置 13 个示例(闪烁 → 自动夜灯 → 温度报警 → 舵机扫摆 → 超声波测距 → LCD1602),带示例与板型的兼容矩阵。
和传统方式比一比
| 传统嵌入式学习路径 | 积木搭子 Blockr | |
|---|---|---|
| 环境准备 | 装 IDE、装驱动、配工具链 | 打开浏览器即可开始 |
| 第一次点灯 | 接线、排错,半天起步 | 仿真里几分钟点亮 |
| 试错成本 | 接错线可能烧硬件 | 仿真随便试,烧不坏 |
| 语言过渡 | 单语言单路径 | 积木 ↔ C++ / MicroPython 双语言对照 |
课堂用法:一个链接分发全班
老师拖好积木点「🔗 分享」→ 链接发到班级群 → 学生打开即得同款程序。工程压缩进 URL hash,无需注册、无需服务器存储。
真机与路线图
- ✅ 真机烧录:Web Serial + STK500v1/v2(UNO / NANO / Mega)+ ESP32(esptool 协议,含 MicroPython 固件一键刷入)
- ✅ 工程:浏览器保存 / .kbproj 导入导出 / 🔗 分享链接
- ⏳ 桌面端(Tauri)
技术栈与许可
- 前端:Next.js + React + Blockly(Apache-2.0)
- 仿真:avr8js(MIT)指令级仿真 + QEMU ESP32 云仿真,规格驱动,加载真实 hex 做无头单测
- 编译服务:Go + Fiber + arduino-cli(内容寻址缓存、SSE 日志流、并发限制)
- 许可:项目计划以 Apache-2.0 发布,依赖均为宽松许可