ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Web cho học sinh tự luyện theo từng bài. Câu hỏi được sinh ngẫu nhiên, mỗi bài có 3 mức. Sai lần 1 thì hiện gợi ý, sai lần 2 thì hiện lời giải. Giao diện tối ưu cho iPad. Hiện có Toán lớp 4 – Kết nối tri thức (29 bài). Muốn có thêm lớp khác thì chỉ cần thêm một file dữ liệu.
hoc-tap/
├── CLAUDE.md / AGENTS.md Hướng dẫn cho AI (đưa cho Claude/ChatGPT đọc trước khi nhờ làm tiếp)
├── index.html Trang chính (thường không cần sửa)
├── config.js ★ Cấu hình: tên web, người soạn, số câu/bộ, DANH SÁCH LỚP
├── data/
│ ├── lop4.js ★ Nội dung Toán 4: chủ đề, bài, các dạng bài
│ └── _mau-lop-moi.js ★ File mẫu có chú thích để tạo lớp mới (ví dụ Lớp 3, 2 bài)
├── assets/
│ ├── css/style.css Giao diện: màu, cỡ chữ, bố cục iPad, chế độ tối
│ └── js/
│ ├── core.js Hàm tiện ích, QB/QC/QCmp, sổ đăng ký lớp (App.addGrade)
│ ├── figures.js Hình SVG: thước đo góc, góc, phân số, biểu đồ cột, hình chữ nhật…
│ ├── generators.js Dạng bài DÙNG CHUNG cho mọi lớp (hàng/lớp, so sánh, làm tròn, đổi đơn vị, góc…)
│ └── engine.js Hiển thị, chấm bài, tính sao, điều hướng
├── tools/
│ ├── test.py Kiểm thử tự động: máy làm hết mọi câu, báo câu nào bị chấm sai
│ └── build.py Gộp tất cả thành 1 file dist/hoc-tap.html để gửi hoặc mở offline
└── dist/hoc-tap.html Bản gộp một file (tạo bằng build.py)
★ = những file thầy/cô sẽ sửa thường xuyên.
data/_mau-lop-moi.js thành data/lop5.js.id: 'lop5', name: 'Lớp 5', book, danh sách topics, rồi viết các bài bằng lesson(...).config.js:
'lop5' vào grades: ['lop4', 'lop5'];'Lớp 5' khỏi upcoming (danh sách các lớp đang hiện chữ "Sắp có").python3 tools/test.py (hoặc nhờ Claude chạy). Kết quả phải là ĐẠT ✓.python3 tools/build.py nếu cần bản một file.Mở file data/lop4.js. Mỗi bài là một dòng như sau:
lesson(10, 'rut-gon', 'Rút gọn phân số', 'Mô tả ngắn', [dạngBài1, dạngBài2, dạngBài3]);
// ^chủ đề ^mã bài (không dấu, không trùng) ^các dạng, xếp từ dễ đến khó
topics).[...]. Có thể dùng dạng bài có sẵn, ví dụ gCmp(6) để so sánh số có 6 chữ số, hoặc tự viết một dạng mới theo mẫu trong _mau-lop-moi.js.| Loại | Dùng khi | Khai báo |
|---|---|---|
| Điền ô trống | tính, đổi đơn vị, viết số, phân số | QB({text, tpl:'[_] kg', ans:[500], hint, sol}); [F] là ô phân số |
| Chọn đáp án | nhận dạng, chọn số lớn nhất… | QC({text, opts:[...], ans:'đúng', hint, sol}) |
| Chọn dấu | so sánh | QCmp(text, 'vế trái', 'vế phải', giáTrịTrái, giáTrịPhải, {hint, sol}) |
| Xoay kim/tia | đo góc, (đồng hồ) | {kind:'rotate', target, val, step, text, hint, sol} |
| Tô màu | phân số | {kind:'shade', n, shape, num, den, on:[], text, hint, sol} |
Đáp án cho ô trống:
ans:[42]: một đáp án số. Học sinh gõ "1 000" hay "1000" đều được chấm đúng.ans:[['XX', 20]]: nhiều cách viết đều đúng.{frac:[3,4], mode:'exact'} (phải viết đúng 3/4), 'eq' (mọi phân số bằng nhau đều đúng), 'simplest' (phải là phân số tối giản).Nguyên tắc vàng: chọn đáp án trước rồi mới dựng đề. Làm như vậy thì phép chia luôn chia hết, không ra số âm, và mỗi câu chỉ có một phương án đúng.
index.html#/: trang chọn lớp.index.html#/lop4: danh sách bài của lớp 4.index.html#/lop4/bai/khai-niem-ps/2: mở thẳng bài "Khái niệm phân số" ở Mức 2 (dùng để gửi cho học sinh).Cả thư mục là web tĩnh nên có thể đưa lên Vercel, Netlify hoặc GitHub Pages.
Nếu chỉ cần gửi một file (qua Zalo, Drive…), chạy tools/build.py rồi gửi dist/hoc-tap.html.
Tiến độ (số sao) được lưu trong trình duyệt của từng máy, không gửi đi đâu cả.