ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기芽芽成长 Sprout — open-source, parent-led learning companion for ages 6 months–3 years. The screen is only the opening line.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A gentle, parent-led learning companion for ages 6 months to 3 years. 芽芽成长是面向 6 个月–3 岁家庭的亲子共学工具:屏幕只做一个慢慢的引子,真正的学习发生在家长的回应、真实物品、游戏、阅读、歌唱和户外活动里。它不是电子保姆,也不以延长观看时长为目标。 项目适合在家庭局域网运行:一台 Mac、NAS 或小主机运行服务端,电视、iPad 或浏览器打开播放端,手机和电脑打开家长后台。没有服务器时,也可以使用播放端内置内容包离线体验。README 전문 보기 ↗
A gentle, parent-led learning companion for ages 6 months to 3 years.
官网 · 在线演示 · English README
芽芽成长是面向 6 个月–3 岁家庭的亲子共学工具:屏幕只做一个慢慢的引子,真正的学习发生在家长的回应、真实物品、游戏、阅读、歌唱和户外活动里。它不是电子保姆,也不以延长观看时长为目标。
项目适合在家庭局域网运行:一台 Mac、NAS 或小主机运行服务端,电视、iPad 或浏览器打开播放端,手机和电脑打开家长后台。没有服务器时,也可以使用播放端内置内容包离线体验。
这些原则不是医疗建议,也不承诺某节课会带来特定发育或学习结果。屏幕时间、睡眠、进食、身体活动和发育担忧请结合孩子实际情况,必要时咨询儿科或儿保专业人员。
| 部分 | 能做什么 |
|---|---|
| 播放端 | 电视/iPad/浏览器播放课程;支持遥控器 D-pad、键盘和触屏;支持远程服务器与离线内置内容;按月龄提供家长模式、亲子共看、暂停、家长门和自然结束点。 |
| 家长后台 | 首次设置、孩子档案、语言模式、屏幕时段、今日计划、成长路线、课程库、打印实体卡、里程碑观察、设备配对、备份恢复。 |
| 内容包 | sprout.core 内置 6 个阶段、96 节课程和 254 个词条;课程含家长导语、慢节奏步骤和线下延伸活动;内容可打包、校验、导入和升级。 |
| 活动插件 | 17 个内置活动,另支持带命名空间的第三方活动插件;插件必须遵守生命周期、焦点导航、资源、音频、权限和婴幼儿内容安全约定。 |
flowchart LR
subgraph LAN["家庭局域网"]
Server["Mac / NAS / 小主机<br/>@sprout/server :4310"]
API["/api/*<br/>REST + Swagger"]
Packs["/packs/*<br/>内容包静态资源"]
Plugins["/plugins/*<br/>插件静态资源"]
Admin["/admin/<br/>家长后台"]
Player["/<br/>播放端"]
Server --> API
Server --> Packs
Server --> Plugins
Server --> Admin
Server --> Player
end
TV["电视浏览器 / Android TV"] --> Player
IPad["iPad Safari / Capacitor App"] --> Player
Family["手机 / 电脑浏览器"] --> Admin
Player -->|RemoteSource:配对后的 device token| API
Player -->|LocalSource:内置 sprout.core + 本地记录| Local["设备本地存储"]
Admin -->|admin token| API
服务端使用 Node 22、Fastify 和 node:sqlite,默认监听 0.0.0.0:4310。播放端通过同一个 DataSource 抽象连接服务器或使用本地数据;后台和播放端都复用 @sprout/schema 的数据契约,排课与屏幕策略复用 @sprout/core。
完整边界、数据流和目录所有权见系统架构。
apps/
server/ Fastify 服务端、SQLite、静态文件托管
admin/ 家长后台(Vite + React + Ant Design)
player/ 大屏播放端与 Capacitor 工程
packages/
schema/ 数据契约、Zod 校验、JSON Schema
core/ 排课、屏幕时间、内容包运行时工具
plugin-sdk/ 活动插件运行时契约与视觉令牌
activities/ 17 个内置活动与 playground
content/
packs/sprout-core/ 内置词库、路线、课程、素材和音频
milestones/ CDC 2022 里程碑整理数据
scripts/ 内容素材、音频、校验、bundle 和 zip 流水线
plugins/examples/ 第三方插件示例
docs/ 研究、课程、开发、部署和家长指南
deploy/ Docker、macOS 自启和发布检查
>=22.12,当前项目验证版本为 Node 22。11.1.0(根 package.json 的 packageManager)。say;没有音频时播放端会按“预生成音频 → Web Speech API → 文字”回退。依赖已经随开发工作区准备好时,可以跳过安装步骤。全新工作区可运行:
corepack enable
export pnpm_config_verify_deps_before_run=false
pnpm install
内容源文件已经在仓库中;需要从源重新生成路线、素材、音频、校验结果和离线 bundle 时,在 macOS 上运行:
export pnpm_config_verify_deps_before_run=false
pnpm content:all --pack content/packs/sprout-core
content:all 依次执行 route → assets → audio → validate → bundle。它会改写生成的路线、音频和 bundle.json,不应在只想查看源码时随意运行。构建三个工作区应用:
export pnpm_config_verify_deps_before_run=false
pnpm build
构建不含预录音频的 GitHub Pages 演示站:
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/player build:demo
输出目录为 apps/player/dist-demo/,部署前缀为 /ai-study/demo/。演示版只使用内置 sprout.core 和浏览器本地存储,不连接家庭服务器。
export pnpm_config_verify_deps_before_run=false
pnpm start
然后打开:
首次进入后台时设置家庭名、管理员密码、孩子名字、生日和语言模式。之后在播放端选择“连接家庭服务器”,在后台“播放设备”页输入播放端显示的 6 位配对码,并绑定孩子。配对码 10 分钟有效。
服务端、后台和播放端分别运行;每个终端都先设置 pnpm 依赖检查环境变量:
# 终端一:服务端
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/server dev
# 终端二:播放端,http://localhost:5310/
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/player dev
# 终端三:后台,http://localhost:5311/admin/
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/admin dev
开发端口被占用时,按各包脚本支持的备用端口运行;结束验证后关闭由自己启动的服务。
电视浏览器或 Android TV 可以直接打开服务端根地址;Android TV 也可以安装 release APK。iPad 可以用 Safari 打开根地址并添加到主屏幕,或使用 Capacitor App。设备与服务器必须在同一家庭网络,电视端不能填写服务器的 localhost。
详细的 Mac、Docker、Android TV、iPad、配对、备份和常见问题步骤见部署与设备安装。发布验证记录见部署验证记录。
content/examples/hello-pack/ 开始,使用 schema 校验、资源署名、音频清单和 bundle 流程。@sprout/plugin-sdk 契约。content/packs/sprout-core/routes/_stages/。根脚本与工作区脚本保持一致:
export pnpm_config_verify_deps_before_run=false
pnpm test
pnpm typecheck
pnpm content:typecheck
pnpm content:test
pnpm qa:verify
常用包级命令:
export pnpm_config_verify_deps_before_run=false
pnpm --filter @sprout/server typecheck
pnpm --filter @sprout/server test
pnpm --filter @sprout/server build
pnpm --filter @sprout/admin typecheck
pnpm --filter @sprout/admin test
pnpm --filter @sprout/admin build
pnpm --filter @sprout/player typecheck
pnpm --filter @sprout/player test
pnpm --filter @sprout/player build
开发任务和协作边界见 docs/dev/tasks/;最重要的契约入口是:
packages/schema/src/*.ts:内容、路线、运行时和插件清单的数据事实来源。packages/plugin-sdk/src/types.ts:活动插件生命周期与 ActivityContext。packages/plugin-sdk/src/tokens.css:播放端与活动共用的视觉令牌。docs/dev/api.md:REST API。docs/dev/architecture.md:架构和所有权。docs/README.md:完整文档索引。本仓库分为代码、原创内容和第三方素材三类许可,不能把整个仓库笼统地标成同一种许可证。
代码: apps/、packages/、scripts/、plugins/、deploy/、构建配置和 schema 代码按根目录 LICENSE 采用 MIT。
内容: content/packs/** 中的原创课程、路线、词库文本、原创歌词、打印卡文案、家长指引,以及 docs/curriculum、docs/guide、docs/research 等原创文字按 CONTENT-LICENSE.md 提供:个人、家庭、非商业教育使用免费并须署名;商业使用须事先取得书面授权。各内容包 manifest 的 license 字段与此保持一致。公开仓库、发布 ZIP、APK 和演示站均不含任何预录音频。
第三方: Fluent Emoji 按 Microsoft 的 MIT 许可,Lucide 按 ISC 许可,CDC 里程碑整理数据按其来源与仓库现有说明使用,自绘图形的 CC0 范围以各包 assets/sources.json 为准。完整汇总见 THIRD_PARTY_NOTICES.md 和各包的 LICENSES.md。
在 macOS 上运行 pnpm content:audio 只供个人非商业使用:生成文件和 audio/manifest.local.json 写入本地忽略路径,不进入公开 bundle、ZIP 或应用。公开发布应接入已获音频再分发授权的 TtsProvider 或真人录音,并按内容流水线文档补齐来源与许可。
新增图片、录音、视频、旋律或插件时,请同时更新内容包的 credits、LICENSES.md 或插件清单,不要把 custom 当作自动获得许可。
服务端可通过现有 TtsProvider 接入获授权声音;audio/manifest.json 的结构与文本 key 不变。详细接入、全量重配音及发布检查见内容流水线。
芽芽成长是亲子共学和家庭活动安排工具,不是医疗设备、治疗工具或发育诊断工具。里程碑条目用于日常观察和与专业人员沟通,不用于给孩子打分、排名或下诊断;发现能力倒退或持续担忧时,请及时咨询儿科或儿保医生。
屏幕策略是结合研究和产品边界做出的家庭使用建议,不是对所有家庭都适用的医疗处方。家长始终可以关闭孩子侧屏幕内容,改用家长指引、打印卡、纸书、真实物品、歌唱和户外活动。