第一章:可穿戴设备概述
大家好,我是你们的嵌入式讲师。今天咱们聊聊可穿戴设备——这个听起来很酷,实际上也确实很酷的领域。
说实话,我第一次接触可穿戴设备是在2014年。那时候我还在做手机嵌入式开发,有个客户拿来一块智能手表的方案,问我能不能把Android系统塞进去。我当时的第一反应是:这玩意儿屏幕这么小,能干啥?后来我才发现,我错了。可穿戴设备的魅力,恰恰在于它不需要像手机那样无所不能。
什么是可穿戴设备?
可穿戴设备,说白了就是能穿在身上的智能电子设备。它不像手机那样需要你从口袋里掏出来,而是直接附着在你的身体上——手腕、头部、甚至衣服里。
我个人习惯把可穿戴设备分成三类:
- 手腕上的:手表、手环,这是目前最主流的形态
- 头上的:智能眼镜、AR/VR头盔
- 身上的:智能服装、智能鞋、医疗贴片等
你想想看,为什么大家愿意戴这些东西?因为方便啊。抬手看时间、测心率、收通知,这些动作几乎不需要思考。我在项目中遇到过一位用户,他说自从戴了智能手表,再也没掏过手机看时间——这就是可穿戴设备的本质:让信息获取变得更自然。
典型产品分类
智能手表
智能手表是目前功能最全的可穿戴设备。它本质上是一台微型计算机,有独立的操作系统(比如Wear OS、watchOS、RTOS),能装App、能联网、能打电话。
嗯,这里要注意:智能手表的功耗是个大坑。我刚开始做手表项目时,选了一颗性能很强的MCU,结果待机不到一天。后来才明白,可穿戴设备的第一优先级是续航,不是性能。
| 类型 | 代表产品 | 核心芯片 | 典型功耗 |
|---|---|---|---|
| 全功能智能手表 | Apple Watch、Galaxy Watch | ARM Cortex-A系列 | 100-300mW |
| 轻量级手表 | 小米手表、Amazfit | Cortex-M4/M7 | 10-50mW |
智能手环
手环比手表更轻、更便宜、续航更长。它通常没有彩色大屏,只用LED点阵或小段LCD显示信息。功能也相对简单:计步、心率、睡眠监测。
我曾经做过一款手环,为了把功耗压到1mW以下,把蓝牙广播间隔从100ms改到了500ms。结果测试时发现,手机连上手环要等3秒才能同步数据——用户体验直接崩了。这就是典型的功耗与性能的博弈。
智能眼镜
智能眼镜是另一个方向。它把信息投射到你的视野里,让你不用低头看屏幕。Google Glass是先行者,但说实话,那玩意儿太贵了,而且隐私问题一直没解决。
我个人觉得,智能眼镜的未来在工业领域。比如维修工人戴着眼镜看操作手册,或者仓库管理员扫码——这些场景下,眼镜比手表实用得多。
嵌入式系统在其中的角色
好,重点来了。可穿戴设备的核心是什么?是嵌入式系统。
你想想看,一块智能手表里有什么?
- 一颗MCU或SoC(比如STM32、nRF52840、Apple S系列)
- 传感器(加速度计、陀螺仪、心率传感器、气压计)
- 无线模块(蓝牙、Wi-Fi、NFC)
- 电池管理电路
- 显示屏驱动
这些东西,全部靠嵌入式系统来协调。没有嵌入式系统,传感器就是一堆废铁,蓝牙就是一块塑料。
嵌入式系统在可穿戴设备中的三大核心任务:
- 数据采集:从传感器读取原始数据(比如加速度值、心率波形)
- 数据处理:在本地做滤波、特征提取、算法运算(比如计步算法)
- 通信交互:通过蓝牙把数据传给手机,或者接收手机指令
举个例子。我做过一个手环的计步功能,代码大概长这样:
// 加速度计数据读取(伪代码)
void step_detection() {
int16_t x = read_accel_x();
int16_t y = read_accel_y();
int16_t z = read_accel_z();
// 计算合加速度
float magnitude = sqrt(x*x + y*y + z*z);
// 简单阈值检测
if (magnitude > STEP_THRESHOLD) {
step_count++;
// 去抖动处理
delay(200);
}
}
这段代码看着简单,但实际调起来很坑。我曾经在实验室里走了两万步,就为了调一个阈值参数。为什么?因为每个人的走路姿势不一样,步频不一样,甚至鞋子的软硬都会影响加速度波形。
避坑指南: 我曾经在计步算法里用了固定阈值,结果用户反馈说「我坐着抖腿也算步数」。后来改成了动态阈值+机器学习分类器,才把误检率降下来。所以,做可穿戴设备一定要考虑真实使用场景,别在实验室里想当然。
嵌入式系统的选型思路
选芯片是做可穿戴设备的第一步。我个人习惯按这个顺序来:
- 先定功耗预算:手环目标续航7天,那平均功耗就不能超过2mW
- 再定算力需求:要不要跑AI算法?要不要做FFT?
- 最后看外设:需要几个SPI?几个I2C?蓝牙版本?
举个例子,如果你只是做计步+心率,一颗nRF52840就够了。但如果你想做ECG心电图,那可能需要一颗Cortex-M4甚至M7,因为ECG算法对算力要求高。
警告: 别为了省钱选太弱的芯片。我见过一个团队选了Cortex-M0做心率监测,结果采样率上不去,心率数据全是噪声。最后不得不重新画板子,浪费了三个月。选芯片时,留出30%的算力余量是明智的。
总结一下
可穿戴设备不是手机的缩小版,它是一个全新的嵌入式应用领域。它的核心挑战是:在极小的体积和极低的功耗下,完成有用的功能。
接下来的课程,我会带大家从零开始,一步步搭建一个可穿戴设备的嵌入式系统。你会学到:
- 怎么选MCU和传感器
- 怎么写低功耗代码
- 怎么做蓝牙通信
- 怎么处理传感器数据
嗯,准备好了吗?咱们开始吧。
公众号:蓝海资料掘金营,微信deep3321