<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[半部电台还能做什么？16 个应用创意（附实现路径，欢迎认领）]]></title><description><![CDATA[<p dir="auto">「半部电台」现在能做的事情已经不少了：附近消息、摩斯、十款桌游、电子宠物、遥控和扫描。但一块 <strong>ESP32-C6 + 128×32 OLED + 一颗旋钮</strong> 的小板子，能做的事远不止这些。</p>
<p dir="auto">这个帖子想干两件事：<strong>把能用的硬件和它的边界摊开</strong>，然后<strong>抛一批具体的创意</strong>——每条都写清楚用哪块资源、大概什么难度。看中哪条，直接在下面认领。</p>
<hr />
<h2>先把"武器库"摊开</h2>
<p dir="auto">创意的上限是硬件决定的，所以先看这张表。左列是能力，右列是必须先接受的限制——<strong>限制不是劝退，是筛选器</strong>。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>能力</th>
<th>能做什么</th>
<th>必须知道的边界</th>
</tr>
</thead>
<tbody>
<tr>
<td>BLE 广播收发</td>
<td>不建连接、不等配对，几十米内发消息</td>
<td>单包载荷 <strong>128 字节</strong>，广播间隔 100–300 ms，扫描 5 s / 100 ms 窗口</td>
</tr>
<tr>
<td>私有协议 v3</td>
<td>18 种消息类型、回执、重试、会话 ID</td>
<td><strong>CRC 不是认证</strong>，抓包就能读，别放敏感内容</td>
</tr>
<tr>
<td>频道 1–16</td>
<td>天然的"房间"划分</td>
<td>同频道才互相可见，跨频道要靠公告</td>
</tr>
<tr>
<td>三跳中继</td>
<td>A→B→C 转发的自组网实验</td>
<td><strong>实验特性</strong>，默认关闭，需三台同版设备实测</td>
</tr>
<tr>
<td>128×32 OLED</td>
<td>四行、每行约 21 字符</td>
<td>中文用精简字库，别指望全字库</td>
</tr>
<tr>
<td>旋钮 + 两键</td>
<td>A/B 正交编码 + 按下 / 返回</td>
<td>都是低电平有效，必须去抖，别把半步当一圈</td>
</tr>
<tr>
<td>WS2812 + 压电蜂鸣器</td>
<td>颜色 + 4 kHz 短音</td>
<td>灯和屏共用 GPIO4 供电；蜂鸣器<strong>差分驱动</strong>，静音是两端都 LOW</td>
</tr>
<tr>
<td>USB</td>
<td>HID 键盘 / 媒体键、CDC 串口投屏</td>
<td>遥控期间 BLE 射频要暂停，主机和从机抢同一个天线</td>
</tr>
<tr>
<td>4 MB Flash / NVS</td>
<td>存草稿、好友、最高分、宠物</td>
<td><strong>没有 OTA 槽</strong>，更新只能插 USB</td>
</tr>
<tr>
<td>深睡 5 s 周期</td>
<td>电池供电的长期在场</td>
<td>扫描占空比 2%，延迟最坏一个周期</td>
</tr>
</tbody>
</table>
<p dir="auto">再看两件"硬件有、固件还没用"的东西：ESP32-C6 的 <strong>802.15.4 射频</strong>（Thread / Zigbee 那一套），和 <strong>Wi-Fi 6</strong>。它们不在当前功能里，但意味着这门硬件还有没打开的门。</p>
<hr />
<h2>A. 校园与实验室</h2>
<h3>1. 课堂匿名表决器 ★</h3>
<p dir="auto">讲师手里一台开"主机"，学生设备当终端。广播里塞 <code>题目号 + 选项 A/B/C/D</code>，回执方向反过来收统计。</p>
<ul>
<li>用到的：<code>MESH_TYPE_COLLAB</code>（协作类型）+ 回执机制</li>
<li>关键设计：<strong>匿名</strong>——只发选项，不发 MAC，汇总时按计数而不是按人</li>
<li>差异点：不用连校园网、不用扫码、不用手机</li>
</ul>
<h3>2. 工位求助灯 ★</h3>
<p dir="auto">一台设备挂工位。旋钮选「借仪器 / 找人 / 帮忙看看代码」，广播出去，附近所有电台的 RGB 同时变色 + 短响。</p>
<ul>
<li>用到的：广播 + RGB + 蜂鸣（都是现成的）</li>
<li>比微信群强在哪：<strong>不需要对方在看手机</strong>，抬头就能看见</li>
<li>加一条：收到的人按一下"我过去"，发送端 OLED 显示"×× 在路上"</li>
</ul>
<h3>3. 多台同步番茄钟 ★</h3>
<p dir="auto">自习室里几台设备同时进入 25 分钟。有人提前走，其余设备显示"少了一人"。</p>
<ul>
<li>用到的：广播校时（<code>session_id</code> + 时间戳）</li>
<li>难点不是计时，是<strong>漂移</strong>：每轮开始广播一次基准时间，剩下的靠本地计数</li>
<li>彩蛋：结束前 1 分钟蜂鸣器变成慢滴答</li>
</ul>
<h3>4. 答辩现场提词器 + 倒计时 ★★</h3>
<p dir="auto">PPT 遥控（已有 HID）扩展成三合一：翻页、看剩余时间、超时震动/短响提醒。</p>
<ul>
<li>用到的：HID 遥控 + 本地倒计时 + 蜂鸣</li>
<li>顺手解决真痛点：评委说"还有 1 分钟"的时候，台上的人根本听不见</li>
<li>注意：HID 期间电台通信暂停，别指望边遥控边收消息</li>
</ul>
<h3>5. 设备借用登记 ★★</h3>
<p dir="auto">"万用表谁借走了？"——旋钮选设备（示波器 / 万用表 / 逻辑分析仪 / 开发板），按一下借出；归还时再按一下。</p>
<ul>
<li>用到的：NVS 记账 + 广播同步（谁在场谁记账）</li>
<li>好处：不依赖网络，也不需要谁去维护一张表</li>
<li>开放问题：冲突时以谁为准？建议"最后一次操作赢"，并在 OLED 上明示时间</li>
</ul>
<h3>6. 断网应急广播 ★★</h3>
<p dir="auto">实验室 Wi-Fi 挂了、群里刷不出去的时候，一台设备写公告、其余设备滚动显示。</p>
<ul>
<li>用到的：<code>ANNOUNCEMENT</code> 标志（协议里已经有）</li>
<li>这是"半部电台"这个名字最贴切的现代用法：<strong>当所有依赖基础设施的通道都失效时，点对点广播还在</strong></li>
</ul>
<hr />
<h2>B. 玩与社交</h2>
<h3>7. 物理漂流瓶 ★★</h3>
<p dir="auto">写一句话，广播给<strong>最近的一台</strong>（<code>hop = 1</code>，只发一次）。收到的人可以再转发一次（<code>hop + 1</code>），形成一条真实的投递链。</p>
<ul>
<li>用到的：<code>MESH_HOP_MASK</code> + 只读转发</li>
<li>妙处：你不知道它会飘到谁手上；<code>hop</code> 到 3 就停，天然有"寿命"</li>
<li>必须说明：<strong>内容不加密</strong>，别写悄悄话</li>
</ul>
<h3>8. 桌游"发牌器 + 裁判" ★★</h3>
<p dir="auto">谁是卧底、狼人杀这类游戏，最麻烦的是主持人发牌和数票。让一台设备当裁判：它广播你的身份，只有你能长按查看。</p>
<ul>
<li>用到的：私密信息长按查看（现在已有）+ 投票类型</li>
<li>价值：<strong>把手机从桌面上拿走</strong>，一桌人真的面对面</li>
<li>边界：没有密码学防作弊，坐你旁边的人拆开抓包也能看到——这是自觉游戏</li>
</ul>
<h3>9. 四声部无声合奏 ★★</h3>
<p dir="auto">四台设备分低音 / 中音 / 高音 / 打击，指挥用旋钮打拍。所有人都戴耳机或干脆只听蜂鸣。</p>
<ul>
<li>用到的：灯光蜂鸣合奏（已有）+ 广播校时</li>
<li>难点：蜂鸣器只有方波，音准靠分频，<strong>同步误差要压在几十毫秒内</strong></li>
<li>这是最"表演性"的一条，开放日/迎新晚会上很抓人</li>
</ul>
<h3>10. 摩斯电报局（校史展项）★★</h3>
<p dir="auto">两个人各拿一台，一人发报、一人抄收，中间可以加"加密本"（凯撒位移、简单替换表）。配一块展板讲 1931 年那半部电台。</p>
<ul>
<li>用到的：摩斯收发 + 好友定向</li>
<li>为什么适合展览：<strong>它有故事</strong>。观众按下的不是按钮，是 90 多年前的通信方式</li>
<li>加个成就：连续抄收 20 组不出错，屏幕放一小段"报务员认证"</li>
</ul>
<h3>11. 宠物"面基"联赛 ★★</h3>
<p dir="auto">两台设备靠近交换宠物名片（拜访已有），周末在实验室摆个擂台：相扑、顶球、赛跑三局两胜，结果上墙。</p>
<ul>
<li>用到的：宠物联机（已有）+ 本地排行榜</li>
<li>唯一要新写的是"赛事流程"：报名 → 配对 → 三局 → 记分 → 下一位</li>
</ul>
<h3>12. 匿名"今天实验室有人吗" ★</h3>
<p dir="auto">进门按一下，出门按一下。设备广播"3 楼有人"，其余设备 OLED 显示人数和最早到的人。</p>
<ul>
<li>用到的：广播 + NVS</li>
<li>限制：只是个<strong>粗略在场感</strong>，不做考勤，别拿它算工时</li>
</ul>
<hr />
<h2>C. 工具与实验</h2>
<h3>13. 通用 HID 宏旋钮 ★★</h3>
<p dir="auto">把旋钮做成电脑上的实体旋钮：调音量、切窗口、撤销/重做、Figma 里改数值、剪辑软件里逐帧。</p>
<ul>
<li>用到的：现有 HID 遥控（PPT / 媒体 / 拍照三套已经跑通了）</li>
<li>为什么值得做：<strong>这是最容易被同学带走使用的一条</strong>——不玩电台的人也会想要一个旋钮</li>
<li>注意：键位映射要可配置，否则只能给一个人用</li>
</ul>
<h3>14. 实验室信号热力图 ★★</h3>
<p dir="auto">拿着设备走一圈，按位置记 RSSI，USB 导出 CSV，最后画成一张覆盖图。</p>
<ul>
<li>用到的：BLE/RSSI 扫描 + CDC 串口</li>
<li><strong>必须写清楚的边界：RSSI 只表示信号冷热，不给方向、不给距离。</strong> 热力图是"走出来的"，不是"测出来的"</li>
<li>用途：找实验室哪里 BLE 死角、哪个角落 Wi-Fi 弱</li>
</ul>
<h3>15. 三跳中继的实物教具 ★★★</h3>
<p dir="auto">三台设备摆成 A—B—C，OLED 显示每一跳的转发次数和延迟。让学生亲眼看到"为什么多一跳就慢"。</p>
<ul>
<li>用到的：实验性自组网（已有，默认关闭）</li>
<li>教学价值：把"自组网"从名词变成三块板子之间的距离</li>
<li>诚实：这不是标准 Bluetooth Mesh，只是个三层转发的实验</li>
</ul>
<h3>16. 802.15.4 低功耗传感节点 ★★★</h3>
<p dir="auto">C6 芯片里有一套 802.15.4 射频，配个 I2C 温湿度传感器，做成每 5 分钟醒一次的信标。</p>
<ul>
<li>用到的：硬件的 802.15.4 + 深睡（<strong>当前固件完全没用到前者</strong>）</li>
<li>这是"新开一扇门"的选项，不是改几行代码</li>
<li>对比实验很有说服力：同样一块板，BLE 广播 vs 802.15.4，谁更省电</li>
</ul>
<hr />
<h2>D. 三条"需要先突破"的方向</h2>
<p dir="auto">这三条不是不好，是<strong>卡在现有边界外</strong>，写出来是想看看有没有人愿意一起啃：</p>
<ol>
<li><strong>加密私聊</strong>。协议里 <code>mesh_crypto.c</code> 的位置已经留好了，但现在是明文广播。要做就得先想清楚密钥怎么换——两台的设备换密钥，本身就是个可以写论文的问题。</li>
<li><strong>OTA</strong>。现在只能插 USB 更新，因为 2 MiB 单应用槽吃掉了两个 OTA 槽。想恢复 OTA，得在"功能密度"和"可更新性"之间重新分配 Flash。</li>
<li><strong>打电话给云端</strong>。Wi-Fi + 云同步已经有骨架，"线下见面 → 线上留痕"这件事（比如线下对战后自动上传排行榜）可以做得更顺，但要注意：<strong>云排行榜是设备自报的，不是防作弊比赛。</strong></li>
</ol>
<hr />
<h2>怎么把一条创意变成能演示的东西</h2>
<p dir="auto">不管选中哪条，建议都走这三步（也是我读官方手册时最认同的节奏）：</p>
<ol>
<li><strong>先做一个外设，别做一整个应用。</strong> 比如做"工位求助灯"，先只做"按一下，另一台的 RGB 变红"。能跑通再谈界面。</li>
<li><strong>让 OLED 说实话。</strong> 状态、错误码、收到的原始包长度，全打在屏幕上。128×32 的四行字，是你唯一的调试窗口。</li>
<li><strong>先两台，再三台。</strong> 两台之间通了只证明"能发"，三台才证明"能转发"。</li>
</ol>
<p dir="auto">另外给用 AI 写代码的同学一条：<strong>把引脚和边界写成契约再让它写</strong>。GPIO4 共享电源、I2C 0x3C、蜂鸣器差分、GPIO12/13 留 USB——这些说清楚了，生成的代码才不是"看起来像"。</p>
<hr />
<h2>最后</h2>
<p dir="auto">上面 16 条，难度从"一个下午"到"一个学期"都有。我个人的三个心头好是：</p>
<ul>
<li><strong>#6 断网应急广播</strong> —— 它让这个名字重新变得有意义；</li>
<li><strong>#10 摩斯电报局</strong> —— 它把一个装置变成一段历史；</li>
<li><strong>#13 通用 HID 宏旋钮</strong> —— 它能让不玩电台的人也想要一台。</li>
</ul>
<p dir="auto"><strong>欢迎在下面补充、认领、或者直接说"这条不行，因为××"</strong>——被否掉的创意也是有用的，至少省了下一个人一周。</p>
<p dir="auto">补充格式建议（方便以后整理）：</p>
<pre><code>【创意名】一句话说明
【用到的】哪些引脚 / 协议类型 / 现有功能
【最小可行版】只做哪一件事就算成功
【难点 / 边界】我卡在哪
</code></pre>
<p dir="auto">如果哪条你觉得该先做，投个票，或者直接开一贴贴代码。</p>
]]></description><link>http://106.52.42.217:6080/topic/13/半部电台还能做什么-16-个应用创意-附实现路径-欢迎认领</link><generator>RSS for Node</generator><lastBuildDate>Thu, 05 Nov 2026 16:57:04 GMT</lastBuildDate><atom:link href="http://106.52.42.217:6080/topic/13.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 Nov 2026 14:45:18 GMT</pubDate><ttl>60</ttl></channel></rss>