ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Plan LEGO 51515 and EV3 31313 robot builds, rehearse them in a 2D simulator and export Pybricks code
翻译准备中
正在加载完整 README。
查看完整 README ↗Plan LEGO 51515 and EV3 31313 robot builds, rehearse them in a 2D simulator and export Pybricks code, up to behaviours picked by Jev
Botbench is a workbench for the two LEGO robot kits most people still have in a cupboard: Robot Inventor (51515) and EV3 Home Edition (31313). Tick the boxes you own, plug parts into a hub's ports, and it tells you what that build can do, rehearses it in a top-down simulator, writes the Pybricks MicroPython to run it, and then connects to the real Inventor Hub over Web Bluetooth so you can watch it sense, drive it by hand and switch its behaviour from the page. The top of the ladder adds a decision layer: a laptop bridge asks TypeSafe's Jev which behaviour fits a goal written in plain words, while the motors stay under the hub's own control loops.
Live: botbench.neorgon.com
bridge.py (bleak over Bluetooth LE, HTTPS to Jev, key kept on the laptop)| Layer | Runs on | Rate | Does |
|---|---|---|---|
| Control loops | the hub | ~100 Hz | line following, avoiding, stopping |
| Facts | the hub | 2 Hz | turns readings into categories: front=blocked;floor=line edge;mode=explore |
| Link tab | this page, Chromium | 2 Hz | the same facts over Web Bluetooth; teleop and mode bytes back; the stand-in decider, never Jev |
| Bridge | laptop or Raspberry Pi | 2 Hz | reads facts over BLE, holds the API key |
| Jev | TypeSafe API | per call | one Choice question picks the mode, one Noul asks if the goal is met |
| Gate | the bridge | per call | switches only above a confidence threshold, sends one byte back |
Two things the simulator taught the design, both now in the exported hub code: numbers are turned into categories on the hub because comparing numbers is on Jev's documented weak-spot list, and a crossed line is latched between reports because a 22 mm line passes under the sensor in a tenth of a second.
The browser never calls Jev: there is no CORS story and a key must not ship in a static page. The simulator's decider is a hand-weighted local stand-in that imitates the answer's shape, labelled as such.
The Link tab speaks the Pybricks BLE profile directly (service c5f50001-…, the command/event
characteristic, WRITE_STDIN 0x06 out, WRITE_STDOUT 0x01 in, START_USER_PROGRAM 0x01), which is the
same channel Pybricks' own "hub to PC" tutorial uses. The program still gets onto the hub through Pybricks
Code, because compiling MicroPython in the browser is a build this site does not carry; an experimental
button pastes the source into the hub's REPL instead, paced on the echo, and is marked as untried on
hardware. Web Bluetooth exists in Chrome and Edge only, over https or localhost.
The virtual hub is the simulator attached to the same link: it prints the same facts line and takes the same bytes, so the tab, the decider and the teleop pad can be tried before a hub is in the room.
ES modules require an HTTP server (not file://):
make serve
Tests over the pure modules (build, brain, export, the link protocol):
node --test test/*.test.mjs
botbench-site/
├── index.html # Shell, CSP, header and footer kit contracts, the five panels
├── css/style.css # Template base plus the workbench layer
├── js/
│ ├── app.js # Entry point
│ ├── catalog.js # Hubs, devices, kits, chassis types, firmware, extra hardware
│ ├── build.js # Port validation, capabilities, combination matrix
│ ├── brain.js # Rule runner, modes, facts, the Jev request, the local stand-in
│ ├── sim.js # Arenas, kinematics, sensor models (no drawing)
│ ├── simview.js # Canvas, clock, brain-in-the-loop
│ ├── export.js # Pybricks programs (rules, modes with teleop) and the Jev bridge
│ ├── link.js # Pybricks BLE profile, facts line, link over a transport; BLE and virtual transports
│ ├── linkpanel.js # The Link tab
│ ├── projects.js # The project ladder
│ ├── models.js # Published models and bigger ideas, with sources
│ ├── models-panel.js # The Models and ideas tab
│ ├── state.js # Workbench state, validated persistence
│ ├── render.js # Build, projects, paths, export panels
│ ├── simpanel.js # Simulator controls, readout, rule editor
│ ├── events.js # All listeners
│ └── neorgon-*.js # Vendored kits (header, footer, beacon, dom, persist)
├── test/ # node --test over the pure modules
└── docs/architecture.mmd
LEGO, MINDSTORMS and Robot Inventor are trademarks of the LEGO Group, which does not sponsor or endorse this project.