ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
A virtual robotics lab for high-school students: build a rover, explore balance, and program its motion.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A browser-based robotics lab for high-school students. Build a differential-drive rover, predict its balance on a ramp, program it in a small pseudocode language, and compare what its sensors report with what really happened. The interface is in English, Turkish, and French.
Under the interface is a planar rigid-body model integrated at 10 kHz: DC motors with a 100 Hz PI speed loop, a Pacejka-style tire friction curve, load transfer, and flat, rough, or slippery ground. Encoders, a noisy IMU, a range sensor, and a 2D LiDAR are logged and plotted in MATLAB-style figures. A TurtleBot3 Waffle Pi preset is calibrated to ME425 lab data, with its drive parameters fitted to one robot. This is an educational model and a calibration, not a validated simulator; "What the model means" states its assumptions and limits.
Live: https://kinetic-robotics-lab.vercel.app (Vercel, see "Hosting").
This is a buildless, dependency-free static site. Install Node.js 20 or newer, open this folder in a terminal, and run:
npm run dev
Open http://127.0.0.1:5173. The server listens on IPv4 only, so localhost can fail where it resolves to IPv6 first. If port 5173 is already taken, run PORT=5174 npm run dev. There is no dependency installation step. Alternatively, serve dist/ with any HTTP static server. Entry point: dist/index.html. Modules require HTTP rather than file://.
npm test
npm run check
The first command runs 93 model, dynamics, sensor, LiDAR, filter, parser, rover-script math and variables, wind, header sky, TurtleBot3 calibration, mission, example, and translation tests. The second checks JavaScript syntax.
An optional browser smoke test drives the real page in headless Chromium. It is the only part that needs a package, so it stays out of npm test:
npm i --no-save playwright && npx playwright install chromium
npm run test:browser
It checks loading without console errors, the ramp, a drive run with plots and CSV export, a parser error, rover-script math, mission judges in Experiments 02 to 04, outdoor wind, the three languages across a reload, the ? guide, and two phone screens without sideways scrolling. Phone screens are Chromium emulation only; it does not test Firefox, Safari, or real phones.
The app is a static frontend; browser localStorage stores designs and experiments per device. There is no classroom backend in this version.
All physics functions in dist/physics.mjs use SI units; the builder displays centimeters. Center of mass sums the masses of a 1.8 kg chassis, a 0.5 kg battery, and a variable 0–3 kg payload. The structure changes size without changing chassis mass, an intentional teaching simplification. Payload height specifies its center above a 20 cm reference deck.
The two drive contacts and caster form a triangle. The tilt table rotates around the forward axis, lifting the rover's left side (+x). The gravity intersection in ramp coordinates is x_com - y_com * tan(angle) and z_com. Signed perpendicular distance to the closest triangle edge is the static margin. A binary search finds the first zero-margin positive tilt. Static contact loss triggers an illustrative falling animation; there is no contact solver, sliding, motor holding torque model, deformation, or impact simulation. Assume held wheels and ideal grip.
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗