ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Devanagari Quest — ヒンディー語(デーヴァナーガリー文字)学習アプリ 日本語の五十音表(「あいうえお」→「かさたなはまやらわ」→濁音・拗音)と同じ発想で、 デーヴァナーガリー文字を Step1〜12 で学ぶゲーム感覚のフラッシュカード学習アプリ。React + Vite、バックエンド不要。 Stepにロックは無く、どのStepからでも自由に始められる。 母音の基本形→長音・複合、子音は「かさたなはまやらわ」に相当する代表音を行を横断して先に一巡し、 そのあとで各行の有気音・濁音・鼻音を「代表音との重ね比較」付きで深掘りする構成。 代表音一巡は14字と多いため、破裂音+鼻音(前半7字)/半母音+摩擦音(後半7字)の2Stepに分けている。 Step4・5 で各行の基本子音(そり舌音・摩擦音も含む)を先に一巡してしまうので、 「文字を五十音のように一通り見渡してから、細部(有気音・濁音)を詰める」という進み方になる。 Step6〜10 の深掘りでは、新しく出てくる文字を必ず Step4/5 で覚えた代表音と「重ね比較」で結び付ける (例: Step6 の ख は क と重ねて「息が強くなった分だけ形が増える」ことを見せる)。檢視完整 README ↗
日本語の五十音表(「あいうえお」→「かさたなはまやらわ」→濁音・拗音)と同じ発想で、 デーヴァナーガリー文字を Step1〜12 で学ぶゲーム感覚のフラッシュカード学習アプリ。React + Vite、バックエンド不要。 Stepにロックは無く、どのStepからでも自由に始められる。
npm install
npm run dev # http://localhost:5173
npm run build # dist/ を出力
母音の基本形→長音・複合、子音は「かさたなはまやらわ」に相当する代表音を行を横断して先に一巡し、 そのあとで各行の有気音・濁音・鼻音を「代表音との重ね比較」付きで深掘りする構成。 代表音一巡は14字と多いため、破裂音+鼻音(前半7字)/半母音+摩擦音(後半7字)の2Stepに分けている。
| Step | 内容 | 文字数 |
|---|---|---|
| 1 | 母音(基本) — 「あいうえお」に相当 अ इ उ ए ओ | 5 |
| 2 | 母音(長音・複合) — 基本形に線が増えるだけ आ ई ऊ ऐ औ | 5 |
| 3 | 特殊母音記号 ऋ अं अः | 3 |
| 4 | 子音・代表音① — 「か・た・な・ぱ・ま」行の破裂音+鼻音 क च ट त न प म | 7 |
| 5 | 子音・代表音② — 「や・ら・わ・さ・は」行の半母音+摩擦音 य र ल व श स ह | 7 |
| 6 | क行の深掘り ख ग घ ङ | 4 |
| 7 | च行の深掘り छ ज झ ञ | 4 |
| 8 | ट行の深掘り(そり舌・最難関) ठ ड ढ ण | 4 |
| 9 | त行の深掘り थ द ध | 3 |
| 10 | प行+摩擦音の深掘り फ ब भ ष | 4 |
| 11 | マートラ(母音記号) ★最重要 ा ि ी ु ू ृ े ै ो ौ ं ः | 12 |
| 12 | 頻出結合文字 क्ष त्र ज्ञ श्र | 4 |
Step4・5 で各行の基本子音(そり舌音・摩擦音も含む)を先に一巡してしまうので、 「文字を五十音のように一通り見渡してから、細部(有気音・濁音)を詰める」という進み方になる。 Step6〜10 の深掘りでは、新しく出てくる文字を必ず Step4/5 で覚えた代表音と「重ね比較」で結び付ける (例: Step6 の ख は क と重ねて「息が強くなった分だけ形が増える」ことを見せる)。
Stepにロックは無く、StepMapのどのカードからでも自由に始められる。★はStepクイズで 正答率80%以上を取った達成度の表示であり、次のStepを開放する条件ではない。
← → で移動、Space で反転。カード切替時に自動発音。src/data/pairs.js。
length — 母音の基本形→長音(अ→आ など)matra — マートラの長短(ि→ी など、子音 क に付けた音節で比較)derived — 子音の代表音→有気音/濁音/鼻音(क→ख/ग/घ など)lookalike — そり舌音 vs 歯音など、形も音も紛らわしい字同士src/lib/speech.js が次の順で再生を試みる。
speechSynthesis に hi-* の音声がある → Web Speech API(lang="hi-IN", rate=0.75)で再生/audio/<id>.mp3 を再生(devanagari-data.json の audioUrl)mp3 は同梱していない。安定させたい場合は public/audio/README.md の手順で 62 ファイルを配置する。
mp3 が無くても、hi-IN 音声を持つ環境(macOS / iOS / Android / Chrome の多く)では問題なく動作する。
src/data/devanagari-data.json の 1 エントリ:
{
"id": "ka",
"devanagari": "क",
"iast": "ka",
"ipa": "/kə/",
"kana": "カ",
"group": "velar",
"step": 4,
"speak": "क",
"series": "無声無気",
"note": "日本語の「カ」。息を強く出さない。5行それぞれの代表音のうち1つ目。",
"audioUrl": "/audio/ka.mp3"
}
マートラは追加で display(◌ा のような点線円つき表示)、matraFor、example / exampleRead、
position(付く位置)、keepInherent を持つ。
keepInherent はアヌスヴァーラ ं とヴィサルガ ः に付き、これらが固有母音 a を置き換えない
(क + ं = कं は kṃ ではなく kaṃ)ことを表す。音節合成は syllable()(src/data/steps.js)で行う。
Step番号を直接参照するコードは無く、マートラ・結合文字のStepは src/data/steps.js の
MATRA_STEP / CONJUNCT_STEP としてSTEPS配列から自動算出している(カリキュラムを組み替えても
コード側の修正が要らないようにするため)。
src/
├── data/devanagari-data.json 全62文字のデータ
├── data/steps.js Step メタ情報・検索ヘルパー・音節合成
├── data/pairs.js 重ね比較(GlyphDiff)のペア定義
├── data/popStages.js ポップの6ステージ定義(文字・半径・色)
├── lib/popEngine.js ポップ本体(matter-js 物理 + Canvas 描画)
├── lib/popFx.js ポップの演出(揺れ・浮き上がる得点・衝撃波・フラッシュ)とコンボ倍率
├── lib/popFinal.js ポップの最終形の進化段階(👑💎🌈)の定義と飾りの描画
├── lib/popStore.js ポップの進捗(Lv/経験値/ベスト/クリア)
├── lib/speech.js 発音(TTS + mp3フォールバック)
├── lib/quiz.js 出題生成(双方向4択・マートラ組み合わせ)
├── lib/srs.js 復習優先度スコア
├── lib/storage.js localStorage 入出力・連続日数・カリキュラム移行
├── hooks/useProgress.js 進捗ステート(XP/Lv/Stepクリア判定)
└── components/ HUD / StepMap / Flashcards / Quiz / MatraLab / GlyphDiff / SpeakButton / PopGame
vercel.json を同梱。Vercel にインポートすればそのままビルドされる(SPA なので全パスを /index.html に rewrite)。
matter-js、描画は Canvas。ステージは自由に選べる(ロックなし)。進捗は本編とは別に localStorage(devanagari-pop-v1)へ保存。devanagari-quest-v1)に Lv/XP・Stepクリア状況(★)・文字ごとの正誤回数・連続学習日数・最大コンボを保存。カリキュラム構成が変わった場合は文字ごとの正誤記録とXPを引き継ぎつつ、Stepのクリア状況だけをリセットし、その旨を一度だけ画面上部のバナーで知らせる(src/lib/storage.js の version によるマイグレーション)。