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.