18 KiB
N7 红外学习与 NFC 外设场景设计
1. 设计边界
本方案严格基于当前自扩展链路:
外设原遥控器
→ 红外学习器学习动作信号
→ 动作与设备/槽位信息写入 NFC 能力卡
→ 车端 NFC 读卡器识别设备卡或场景卡
→ 场景结合车端实时状态和 CAN 反馈进行编排
→ 红外控制器发射已学习信号
→ 外设执行动作
由此产生三个设计原则:
- 外设必须真正使用红外遥控,不能把蓝牙、2.4 GHz RF、Wi-Fi 或自制传感器设备混入当前链路;
- 车端有权威状态反馈,可以用于条件、分支和阶段完成;红外外设通常没有状态回传,因此只能标记“红外指令已发出”,不能声称物理动作已确认;
- 深度联动应采用“NFC 选择/触发 → 车端设备执行并等待反馈 → 满足条件后发射外设红外动作”,而不是让多个设备无条件同时开关。
2. 红外外设准入条件
适合进入预设和自定义场景的外设应满足:
- 遥控器确认为 36~40 kHz 常见红外载波,而不是 RF、蓝牙或 2.4 GHz;
- 每个关键能力具有固定、可重复学习的红外码,无滚动码或动态配对;
- 优先提供独立
ON、OFF、固定颜色、固定档位和固定模式指令; - 只有单一
POWER TOGGLE或循环切换模式的设备,不进入自动预设,只允许人工单次控制; - 动作在 1~3 次重复发射下稳定,长按型动作必须验证重复周期和停止指令;
- 外设使用 5V USB 或受控 12V 低压供电,功率、温升和固定方式适合车内;
- 红外接收窗可被控制器稳定照射,设备安装后不易遮挡或移动;
- 外设失控不会夹伤、烫伤、影响驾驶或阻断车端安全能力;
- 动态灯光、投影和移动玩具只能在 P 挡、零车速场景运行。
2.1 学习验收
每个候选外设在进入能力目录前至少验证:
| 项目 | 要求 |
|---|---|
| 协议类型 | 红外学习器能稳定识别,不是 RF/BLE |
| 单动作复现 | 连续执行 30 次,成功率达到展项要求 |
| 幂等性 | 重复发送固定 ON/OFF/档位不会产生相反结果 |
| 响应时间 | 记录发射次数、间隔和设备响应延迟 |
| 断电恢复 | 明确断电后默认状态,不能依赖未知记忆状态 |
| 码冲突 | 同一车内其他外设不会被该动作误触发 |
| 安装 | 接收窗与发射器保持视距,颠簸后仍然可靠 |
3. 符合车端需求的外设清单
3.1 A 级:建议作为首批展示和产品外设
| 外设 | 车端真实需求 | 必须具备的红外遥控能力 | 可联动车端能力 | 适用场景 |
|---|---|---|---|---|
| 红外 RGB/流水灯带 | 原车氛围灯亮度和动态效果不足;缺少空间状态提示 | 独立开/关、固定色、亮度、呼吸、渐变、流水、速度 | 原车氛围灯、阅读灯、车窗、遮阳帘、空调、无线充电 | 光域增强、离车检查、充电提示、影院、故事 |
| 红外星空投影灯 | 驻车休息和儿童场景缺少顶部沉浸效果 | 独立开/关、固定颜色、旋转开/关、亮度、定时 | 遮阳帘、阅读灯、座椅、空调、氛围灯 | 星际故事、晚安、充电休憩 |
| 红外桌面/夹持风扇 | 后排或局部送风不足;暴晒后需要快速换气 | 独立开/关、1~3 档、摇头开/关、定时 | 车窗、空调、内外循环、座椅通风、舱内温度 | 极速凉舱、露营通风、局部舒适 |
| 红外故事机/白噪音机 | 充电等待、儿童陪伴、午休需要非屏幕声音 | 开/关、播放、暂停、音量档位、曲目/模式、睡眠模式 | 座椅、遮阳帘、阅读灯、空调 | 故事舱、晚安、冥想、阅读 |
| 红外机器人/玩偶 | 需要有角色感和肉眼可见的互动外设 | 唤醒、挥手、说话、唱歌、跳舞、停止、休眠 | 灯光、座椅姿态、座椅动态模式、空调风量 | 星际故事、生日、迎宾、充电游戏 |
| 红外补光灯 | 车内直播、视频会议、补妆和拍摄时原车灯位不合适 | 独立开/关、亮度档位、冷/暖/自然光、固定效果 | 遮阳帘、座椅、阅读灯、空调 | 移动摄影棚、视频会议、补妆 |
3.2 B 级:可以扩展,但需挑选具体型号
| 外设 | 价值 | 红外要求与问题 | 建议 |
|---|---|---|---|
| 红外微型投影仪 | 驻车影院、露营娱乐 | 很多型号只有电源 Toggle,启动慢,关机可能需二次确认 | 选择具备独立关机指令、自动信号源和稳定启动时间的型号 |
| 红外空气净化器 | 停车休息、宠物和空气舒适 | 需排除臭氧/强离子模式;体积和供电需适车 | 仅作为空调辅助,不能冒充车端空气质量保障 |
| 红外露营灯/尾门灯 | 尾门和帐篷区照明 | 动态模式可能通过循环键选择,状态不确定 | 只学习固定暖光、白光、亮度和明确关闭 |
| 红外 LED 字幕牌/像素屏 | 生日、应援、露营提示 | 遥控器通常只能切换预置内容,不能动态写文字 | 提前写入固定图案,把红外动作定义为“播放预设 1/2/3” |
| 红外香氛机 | 午休、迎宾和放松 | 液体倾倒、过敏、宠物和儿童限制 | 只选防倾倒、低压、雾化与灯光分离控制型号,默认不参与场景 |
3.3 C 级:不建议进入首批车端场景
- 只有 RF/蓝牙遥控的遥控车、无人机和大量消费级玩具;
- 依赖长按且没有独立 STOP 的移动玩具;
- 电热毯、暖风机、加热坐垫等高热设备;
- 无防护激光投影、UV 消毒灯和高亮快闪设备;
- 易倾倒加湿器、开放液体装置和烟雾机;
- 高扭矩机械支架、伸缩机构和裸露电机;
- 仅有电源 Toggle 且无法确定当前状态的设备。
4. NFC 卡设计
建议把 NFC 分成两类,既符合当前学习链路,也方便构建预设和自定义场景。
4.1 外设能力卡
每个红外外设对应一张能力卡,记录:
kind: PeripheralCapabilityCard
device_id: ir-strip-01
device_type: ambient_light_strip
capabilities:
- name: light.power_on
ir_slot: 21
- name: light.power_off
ir_slot: 22
- name: light.blue
ir_slot: 23
- name: light.breathe
ir_slot: 24
compatibility:
power: usb_5v
parked_only_effects: [flash, chase]
刷外设卡用于识别设备、导入能力、单项测试或替换场景中的同类设备。
4.2 场景卡
场景卡不重复保存所有原始红外波形,而是引用已经学习的外设能力和车端场景版本:
kind: SceneCard
scene_id: family-space-adventure
scene_version: 3
bindings:
ambient_booster: ir-strip-01
projector: star-projector-01
story_actor: robot-01
用户刷“月球、火星、返航、极速凉舱、影院”等实体场景卡,即可触发预设或自定义功能。
5. 场景一:光语座舱
5.1 产品需求
原车氛围灯不仅偏弱,车辆状态也集中显示在屏幕。外接红外灯带可以同时承担氛围增强和离散状态提示。虽然红外无法做连续参数控制,但固定颜色、呼吸、流水和快慢模式足够形成状态语言。
5.2 车端状态驱动灯带
| 车端状态 | 红外灯带动作 | 原车设备配合 |
|---|---|---|
| 正常氛围模式 | 固定主题色或低速渐变 | 原车氛围灯同色低亮 |
| 座椅正在调整 | 蓝色流水 | 座椅到位后切换固定蓝色 |
| 动态摇篮运行 | 蓝色呼吸或慢速渐变 | 停止后恢复当前主题 |
| 空调高风量制冷 | 蓝色快速渐变 | 风量降低后切换慢速渐变 |
| 任一车窗未关好 | 红色慢闪 | 全部车窗反馈关闭后绿灯一次 |
| 遮阳帘移动 | 暖白呼吸 | 到位后恢复主题色 |
| 手机正在无线充电 | 蓝色呼吸 | 满电切换绿色,故障切换红色闪烁 |
| 场景正常结束 | 绿色呼吸一次后恢复/关闭 | 依据场景恢复原车灯光 |
5.3 状态优先级
灯带同一时间只能处于一个红外模式,必须规定优先级:
车窗/无线充电故障提示
> 场景中止提示
> 座椅/遮阳帘运动反馈
> 充电与空调状态
> 普通氛围效果
仅在状态变化时发射红外信号,并设置最小保持时间,避免车端状态抖动导致频繁切换。
5.4 自定义示例
我的副驾座椅调整时灯带用蓝色流水,到位后变成湖蓝;如果有车窗没关好,始终优先红色慢闪。
6. 场景二:烈日快速凉舱
6.1 产品需求
车辆暴晒后,仅靠空调内循环降温较慢;外接红外风扇可以辅助排出热空气并改善副驾或后排局部送风。车端舱温、车窗和空调反馈决定外设风扇的运行阶段。
6.2 状态驱动流程
- 用户刷“极速凉舱”场景卡或选择预设;
- 系统确认 P 挡、零车速和舱内温度高于设定阈值;
- 车窗打开到预设通风开度;只有实际车窗反馈匹配后,才向红外风扇发送“高档 + 摇头”;
- 灯带显示橙色快速渐变,表示热空气排出阶段;
- 达到通风时长或舱温开始下降后,车窗关闭;
- 必须等待四窗全部关闭反馈,才切换空调低温、内循环、高风量、副驾座椅通风;
- 红外风扇切换中档,灯带切换蓝色渐变;
- 舱温达到目标范围后,外接风扇降到低档或关闭,车端空调恢复舒适档,灯带变为稳定湖蓝;
- 任何车窗关闭失败都不会进入内循环完成状态,界面和灯带保持故障提示。
外接风扇没有物理反馈,因此执行报告写“风扇高档红外指令已发出”,舱温变化只能作为整体效果证据,不能证明风扇自身状态。
7. 场景三:驻车沉浸影院
7.1 外设
- 红外微型投影仪或星空投影灯;
- 红外灯带;
- 可选红外音响/白噪音设备;
- 可选红外风扇。
7.2 联动流程
- 刷“影院外设套装卡”或“驻车影院”场景卡;
- 校验 P 挡和零车速;
- 关闭四窗、关闭遮阳帘、关闭阅读灯,副驾进入影院姿态,空调进入低噪声档;
- 场景等待四窗、遮阳帘和座椅的真实反馈;
- 只有遮光和座椅条件满足后,才发送投影仪/星空灯 ON、灯带深蓝和外部音响播放;
- 座椅被人工调整时,影院继续,但场景释放座椅,不在结束时覆盖用户的新姿态;
- 挡位离开 P 或用户取消时,优先发送外设明确 OFF,再停止动态灯效并恢复仍由场景持有的车端资源;
- 如果投影设备只有 Power Toggle,不允许加入该预设。
这比“同时打开投影和调座椅”多了一层必要关系:车辆先完成遮光、姿态和安全条件,外设才进入工作状态。
8. 场景四:NFC 星际故事卡
8.1 产品需求
充电和停车等待时,通过实体 NFC 卡选择故事章节,减少儿童持续观看屏幕。红外玩偶、投影灯和灯带提供外部角色与舞台,车端座椅、空调和遮阳帘成为剧情的一部分。
8.2 外设与场景卡
- 红外星空投影灯;
- 红外故事机器人/玩偶;
- 红外灯带;
- 可选红外风扇;
- “启程、月球、火星、返航”四张 NFC 场景卡。
8.3 章节联动
启程卡
- 检查 P 挡和零车速;
- 遮阳帘关闭、阅读灯关闭、副驾进入休闲姿态;
- 遮阳帘反馈到位后,星空投影灯开启;
- 座椅反馈到位后,玩偶执行“挥手 + 发射台词”;
- 灯带进入蓝色流水,空调风量短时提高形成“启动气流”。
月球卡
- 原车氛围灯切换冷蓝;
- 灯带切换白蓝呼吸;
- 空调转为低风量;
- 原车灯光反馈匹配后,玩偶讲述月球章节;
- 投影灯切换白色星空和慢速旋转。
火星卡
- 原车氛围灯和灯带切换红色;
- 副驾短时进入轻柔动态摇篮;
- 动态模式反馈开始后,风扇高档模拟沙尘气流,玩偶执行火星表演;
- 动态模式结束后,风扇降档,灯带从红闪切换稳定红色。
返航卡
- 红外玩偶 STOP、投影 OFF、风扇 OFF、灯带暖白;
- 车端座椅、空调、遮阳帘和原车灯光按资源所有权恢复;
- 所有可确认车端状态恢复后,灯带发送绿色呼吸一次再关闭。
8.4 自定义方式
用户可以学习自己玩偶的动作,并修改实体章节卡:
火星卡里不要让原来的机器人表演,改成我的恐龙叫三次;返航时先关投影,再恢复座椅。
这充分利用“红外信号写入 NFC、刷卡选择能力”的现有链路,同时形成实体、无屏和可自定义的车端产品体验。
9. 场景五:离车确认光带
9.1 产品需求
离车前用户需要确认车窗、遮阳帘和无线充电位,但这些状态分散在屏幕中。灯带可以作为最终确认出口。
9.2 联动流程
- 刷“离车”场景卡或在车机选择离车预设;
- 任一车窗未完全关闭:灯带红色慢闪,车机标出具体车窗;
- 遮阳帘未达到离车目标:灯带暖白呼吸,车机继续关闭并等待反馈;
- 左右无线充电区域仍有设备或出现故障:灯带黄色闪烁,提醒取走手机;
- 所有可确认项目满足后:灯带绿色呼吸一次,原车氛围灯与灯带关闭;
- 外设灯带只负责提示,不替代车端状态判断。
这是灯带比“第三方氛围灯”更进一步的长期产品功能。
10. 场景六:移动摄影棚
10.1 外设
- 红外补光灯;
- 红外背景灯带;
- 可选红外微型风扇。
10.2 NFC 风格卡
- 暖肤人像;
- 冷白会议;
- 蓝紫短视频;
- 证件照。
10.3 联动流程
- 刷风格卡,确认 P 挡和零车速;
- 遮阳帘调整到该风格的目标位置,座椅进入镜头姿态;
- 阅读灯关闭,空调降低风量和噪声;
- 等待遮阳帘、座椅和空调状态反馈;
- 向补光灯发送固定色温与亮度,背景灯带发送主题色;
- 用户调整座椅后,场景释放座椅控制,不自动拉回;
- 用户刷“摄影结束”卡,补光灯和背景灯明确 OFF,车端状态恢复。
11. 场景七:露营布营与收营
11.1 外设
- 红外露营灯/尾门灯;
- 红外风扇;
- 红外投影仪;
- 红外灯带。
11.2 两张关键场景卡
布营卡:车端先完成驻车、车窗通风开度、座椅和灯光设置;收到车端反馈后,再开启露营灯、风扇和投影。
收营卡:先向所有红外外设发送明确 OFF,再关闭车窗和遮阳帘、恢复座椅和空调;车端反馈全部完成后灯带绿色提示。
收营场景的实际价值高于单纯派对效果,因为它把容易遗漏的多设备关闭动作集中处理。红外外设没有状态反馈,因此界面显示“已发送关闭指令”,仍建议用户目视确认。
12. 推荐技术展配置
12.1 四件主外设
- 红外 RGB/流水灯带:兼顾氛围增强和状态提示;
- 红外桌面风扇:体现舱温、车窗、空调和外设的状态驱动协同;
- 红外星空投影灯:提供强视觉效果;
- 红外机器人/故事玩偶:提供角色和动作反馈。
可选第五件是红外补光灯,用于展示成人创作者场景。
12.2 六张展示卡
- 灯带能力卡;
- 风扇能力卡;
- 启程场景卡;
- 月球场景卡;
- 火星场景卡;
- 返航场景卡。
12.3 展示顺序
- 分别学习灯带和风扇动作并写入能力卡,证明外设适配;
- 刷“极速凉舱”,展示车窗反馈驱动风扇档位与灯带状态;
- 刷“启程/月球/火星”实体卡,展示车端状态决定投影、玩偶和风扇的动作时机;
- 刷“返航”,展示外设明确关闭、车端恢复与结果分级;
- 修改火星卡中的玩偶绑定或动作顺序,保存为自定义场景卡。
13. 对现有工程的增量
13.1 外设能力模型增加红外特性
transport: infrared
ir_slot: 21
idempotent: true
command_semantics: power_off
repeat: 2
interval_ms: 250
parked_only: false
physical_feedback: unavailable
只有 idempotent=true 的关键开关和固定档位能力才能进入自动预设。
13.2 场景增加车端反馈门控
- id: close_shade
capability: vehicle.sunshade.set
parameters: {covered_percent: 100}
wait_for:
state: vehicle.sunshade.covered_percent
equals: 100
timeout_ms: 8000
- id: start_projector
depends_on: [close_shade]
capability: peripheral.projector.power_on
confirmation: ir_sent_only
failure_policy: continue
13.3 红外外设影子状态
车机为每个外设保存“最后一次已发送的确定指令”,仅用于避免重复操作和生成恢复计划。影子状态不能作为物理状态证据。设备重新上电、NFC 重新识别或红外链路异常后,影子状态必须失效。
13.4 多设备红外管理
- 记录每个外设协议、地址、重复次数和发射间隔;
- 做码冲突测试;
- 同一时刻的多个红外动作在控制器侧顺序发射;
- 控制器和设备接收窗必须保持固定视距;
- 对移动玩具保留独立 STOP,并在取消时优先发送。
13.5 结果分级
车端反馈已确认:CAN0/CAN1 状态匹配;红外网关已确认:控制器确认接收了发射请求;红外指令已发出:无法证明外设物理状态;场景已降级:缺少外设能力,跳过可选外设节点;场景已拒绝:缺少必要的独立 OFF/STOP 或安全条件不满足。
14. 实施顺序
P0:使用现有红外/NFC能力
- 按准入条件采购并筛选灯带、风扇、投影灯和玩偶;
- 学习并验证固定 ON/OFF、颜色、档位、模式和 STOP;
- 制作能力卡与“启程、月球、火星、返航”场景卡;
- 实现极速凉舱、驻车影院和星际故事三个预设;
- 自定义场景先支持替换外设、调整顺序和修改车端参数。
P1:补齐状态驱动
- Android 场景执行器增加
wait_for、车端条件分支和超时降级; - 光语座舱监听车窗、座椅、空调、遮阳帘和无线充电状态变化;
- 红外外设增加幂等性、重复参数、影子状态和恢复规则;
- 浏览器只负责编辑和观察,场景下发到车机本地执行。
P2:形成产品目录
- 发布红外外设兼容性清单和认证测试;
- 提供官方能力卡、场景卡和可复制模板;
- 允许用户将自己学习的红外动作绑定到官方场景角色;
- 对香氛、净化、移动玩具和投影设备建立专项安全限制。