用Circuit Playground Express制作儿童刷牙计时器:从图形化编程到软硬件结合
1. 项目概述与核心价值
如果你家里也有一个对刷牙三心二意、总是想蒙混过关的“小神兽”,那么这个项目可能就是为你量身定做的。我最近用一块小小的 Circuit Playground Express 开发板,结合一些毛毡布和导电材料,亲手做了一个名叫“鳄鱼Alex”的儿童刷牙计时器。这不仅仅是一个手工玩具,更是一个融合了嵌入式编程、基础电路和创意设计的综合性项目。它的核心功能很简单:孩子按下鳄鱼身上的“按钮”,Alex就会播放一段两分钟的音乐,同时板载的LED灯带会亮起绿色的跑马灯效果。音乐结束,灯光停止,刷牙时间到。整个过程充满趣味性,把原本枯燥的“任务”变成了一个有趣的互动游戏。
这个项目的价值是多维度的。对于家长而言,它是一个低成本、高定制化的行为引导工具,能有效解决孩子刷牙时间不足的普遍难题。对于创客或电子爱好者,它是一个绝佳的入门实践,涵盖了从图形化编程(MakeCode)到物理计算、再到软硬件结合的完整流程。而对于孩子来说,Alex是一个由父母亲手制作的、独一无二的伙伴,这种情感连接是任何市售计时器都无法替代的。整个制作过程不需要焊接,工具以剪刀、热熔胶枪为主,安全系数高,非常适合亲子共同完成。接下来,我将从设计思路、材料准备、编程核心、手工制作细节到问题排查,完整拆解这个充满爱意的智能小装置。
2. 核心硬件选型与设计思路解析
2.1 为什么选择 Circuit Playground Express?
在众多微控制器中,选择 Adafruit 的 Circuit Playground Express(后文简称 CPX)作为核心,是经过深思熟虑的。首先,它是一款“All-in-One”的开发板,板载了10个可编程的NeoPixel RGB LED、一个运动传感器、一个温度传感器、一个光传感器、一个声音传感器、一个蜂鸣器,还有多个触摸感应引脚。这意味着我们实现计时、灯光和音乐功能,完全不需要外接任何额外的模块,极大简化了电路设计和制作难度。
其次,CPX对初学者极其友好。它支持微软的MakeCode图形化编程环境,你可以像搭积木一样编写代码,这让孩子也能参与部分逻辑设计,理解“如果按下按钮,那么就播放音乐”这样的因果关系。同时,它也完全兼容Arduino IDE,为想要深入学习的开发者留足了空间。最后,它的外形小巧圆润,没有尖锐的引脚,通过板子边缘的孔洞可以方便地用线缝合固定,非常适合嵌入到毛毡这类软性材料中,安全又稳固。
2.2 整体机械与电路设计考量
项目的物理形态是一个可以挂在浴室镜子上的毛毡挂饰。这个设计有几个关键考量点:
- 安全性:所有电子部件被包裹在毛毡内部,仅通过一个毛毡开孔露出CPX的LED和传感器面,避免了孩子直接接触电路。使用的电压是3.7V的锂聚合物电池,属于安全电压范围。
- 交互直观性:将启动按钮设计成一个独立的、用导电材料制作的圆形贴片,并通过导线与CPX连接。孩子只需按压这个明显的“按钮”区域即可启动,交互方式简单直接。
- 可维护性:电池被设计放置在一个独立的毛毡“口袋”里,无需缝合,用热熔胶粘住三边即可。这样电池没电时,可以轻松更换。
- 安装便利性:背面使用两个吸盘,可以牢固地吸附在大多数光滑的浴室镜面上,不损伤墙面,也方便随时取下。
电路原理其实非常简单,本质上就是一个“按键触发播放器”。CPX的A3引脚被配置为数字输入引脚,并通过一根导线引出。导线的另一端盘成一个圈,固定在毛毡背面。导电材料制作的按钮贴在毛毡正面,正对着背面的导线圈。当按下按钮时,导电材料同时接触到毛毡正面的金属线和背面的导线圈,相当于将A3引脚通过导电材料与GND(地)连接,CPX检测到这个“按下”的信号,从而触发预编程的计时与播放序列。这是一个经典的“自制导电按键”方案,成本极低且效果可靠。
注意:这里有一个关键细节。CPX的引脚内部通常有上拉或下拉电阻配置。在MakeCode中,当我们将引脚设置为“数字读引脚”时,通常需要启用内部上拉电阻。这样,在按钮未按下时,引脚通过上拉电阻连接到高电平(3.3V),读取值为1;当按钮按下,引脚被短接到GND,读取值变为0。这种设计能确保引脚在悬空时有一个稳定的状态,避免误触发。
3. 材料与工具清单详解
一份清晰完整的物料清单是项目成功的第一步。以下清单在原始基础上进行了优化和补充,并解释了每样物品的选择原因。
| 类别 | 物品名称 | 规格/说明 | 数量 | 选购要点与替代方案 |
|---|---|---|---|---|
| 核心电子部件 | Circuit Playground Express | Adafruit 出品 | 1块 | 务必确认是“Express”版本,经典版(非Express)功能不同。 |
| 锂聚合物电池 | 3.7V, 500mAh 或更高容量 | 1块 | 推荐带JST-PH接头的,与CPX直接兼容。容量越大,续航越长。 | |
| 导电材料 | 约硬币大小 | 1片 | 导电布、导电海绵、甚至铝箔胶带均可。关键是要柔软可裁剪且导电性好。 | |
| 导线 | 1/16英寸(约0.6mm)单芯镀锡线,绝缘皮可选 | 约30厘米 | 单芯线有一定硬度,便于塑形和穿孔。也可以用细的杜邦线剥出内部金属丝。 | |
| 主体材料 | 毛毡布(底色) | 9x12英寸,浅褐色/米色 | 1张 | 作为背景底布,颜色建议选浅色,以突出前景的鳄鱼和字母。 |
| 毛毡布(鳄鱼身体) | 9x12英寸,绿色 | 1张 | 主角色,颜色可自选。 | |
| 毛毡布(牙齿/电池袋) | 9x12英寸,白色 | 1张 | 白色做牙齿很形象。电池袋用其他颜色也可。 | |
| 毛毡布(字母) | 9x12英寸,蓝绿色 | 1张 | 用于裁剪“TIME TO BRUSH”字母,颜色需与背景和鳄鱼形成对比。 | |
| 毛毡布(鼻子) | 1x1英寸,黑色 | 1小块 | 也可以用黑色不织布或直接用记号笔画。 | |
| 装饰与辅助 | 活动眼睛 | 12mm 带活动瞳孔 | 2只 | 瞬间让鳄鱼“活”过来,是点睛之笔。 |
| 吸盘 | 中小型,吸附力强 | 2个 | 用于挂在镜子上。可以购买现成的,也可以从肥皂盒等物品上拆下。 | |
| 绿色缝纫线 | 1卷 | 用于缝合固定CPX,颜色与鳄鱼身体匹配更美观。 | ||
| 缝衣针 | 1根 | 能穿过CPX板孔即可。 | ||
| 粘合工具 | 热熔胶枪 | 小型 | 1把 | 粘贴毛毡、眼睛、吸盘的主力工具,凝固快,粘合力强。 |
| 热熔胶棒 | 7mm直径 | 2根 | 通常一小根就够用,备一根以防万一。 | |
| 强力胶(401/502) | 1小瓶 | 用于粘贴导电按钮。热熔胶不导电且可能影响接触,强力胶更薄更牢。 | ||
| 标记与裁剪 | 剪刀 | 锋利,尖头 | 1把 | 裁剪毛毡必备。 |
| Sharpie记号笔 | 黑色,细头 | 1支 | 在毛毡上画轮廓。水消笔或铅笔也可,但记号笔痕迹在深色毛毡上更清晰。 | |
| 铅笔与白纸 | 若干 | 用于绘制和裁剪纸样模板,尤其适合对形状没把握时。 |
实操心得:材料采购避坑指南
- 毛毡布:手工店或网购的9x12英寸单张毛毡是最佳选择,厚度适中,易于裁剪且边缘不易 fray(散边)。如果买大张自己剪,务必剪裁整齐。
- 导电材料:这是我踩过的第一个坑。最初我试了厨房用的铝箔,太软太容易破。后来找到了“导电布胶带”,背面有胶,一面是纤维布一面导电,非常容易裁剪和粘贴,是完美选择。一些废旧的数据线屏蔽层也可以利用,但处理起来麻烦些。
- 电池:CPX可以通过USB供电,但作为挂件显然电池更方便。务必使用可充电的3.7V锂聚合物电池,并匹配正确的充电器。切勿使用普通的3V纽扣电池,电压和电流都可能不足。电池容量建议350mAh以上,以确保至少一两周的续航。
- 安全第一:热熔胶枪工作温度很高,使用时要放在支架上,胶体流出后稍等几秒再粘贴,避免烫伤。儿童参与时,家长需全程监督粘合步骤。
4. 软件编程:让鳄鱼Alex“活”起来
编程是项目的大脑。我们使用MakeCode for Adafruit在线编辑器,它无需安装,在浏览器中即可完成。
4.1 编程环境搭建与基础逻辑
首先,访问 MakeCode for Adafruit 网站,新建一个项目,硬件选择“Circuit Playground Express”。编程界面分为三个主要区域:左侧的模块分类、中间的编程画布和右侧的模拟器。
我们的程序逻辑需要实现以下功能:
- 上电初始化:设置好引脚状态,让所有LED灯熄灭,确保一个干净的初始状态。
- 等待按钮按下:持续检测连接到A3引脚的“自制按钮”是否被按下。
- 触发计时序列:一旦按钮被按下,立即开始一个为期120秒(两分钟)的计时。同时,启动两个并行任务:a) 播放一首欢快的音乐;b) 让板载的10个LED灯以绿色流水灯的形式循环点亮。
- 计时结束:120秒到时,自动停止音乐播放,并停止LED动画。
4.2 分步代码实现与深度解析
下面,我们一步步用代码块实现这个逻辑,并解释每个步骤背后的原理。
第一步:初始化设置在“当开机时”积木块内,我们需要进行两项关键设置。
当开机时 设置引脚 A3 为上拉 → 数字写引脚 P0 输出 0设置引脚 A3 为上拉:这是整个按键检测稳定性的基石。前文提到,这会在A3引脚内部连接一个上拉电阻到3.3V。当按钮未按下(开路)时,A3引脚被拉至高电平,程序读取其值为1(或高)。当导电按钮按下,A3引脚通过导电材料连接到GND,电平被拉低,读取值为0(或低)。上拉模式能有效防止引脚因静电或干扰产生不确定状态。数字写引脚 P0 输出 0:这是一个可选但推荐的好习惯。P0引脚有时默认可能作为模拟输入或其他功能,将其明确设置为数字输出低电平,可以避免任何意外情况。当然,如果你确定用不到P0,这行代码可以省略。
第二步:主循环与按钮检测我们需要一个永远运行的循环,来持续检测按钮状态。
无限循环 如果 为真 则在“如果”的条件判断里,我们从“输入”类别中拖入引脚 A3 被按下积木。这个积木内部逻辑就是检测A3是否为低电平。当条件满足(按钮被按下),就执行内部的代码序列。
第三步:构建两分钟计时与反馈序列这是最核心的部分。当按钮被按下,我们需要触发一系列动作。
如果 引脚 A3 被按下 则 播放旋律 在背景 中速 ba ding 显示彩虹动画 暂停(ms) 120000 停止所有声音 清除显示播放旋律 在背景 中速 ba ding:这里我选择了“ba ding”这个预置旋律,它比较清脆悦耳。关键技巧在于“在背景”这个选项。如果选择“前台播放”,那么程序会等整首曲子播完才执行下一行代码,这显然不行。选择“在背景”,音乐播放会成为一个独立的后台任务,程序会立刻继续执行后面的显示彩虹动画和暂停指令,从而实现音乐和灯光同步进行。显示彩虹动画:这是MakeCode提供的一个内置动画,会让10个LED循环显示彩虹色。但我们的需求是绿色流水灯。所以我们需要自定义灯光效果。暂停(ms) 120000:这是实现两分钟计时的核心。120000毫秒等于120秒,即两分钟。在这两分钟里,后台音乐播放着,灯光动画运行着,程序就在这里等待。停止所有声音和清除显示:计时结束后,立即停止音乐并关闭所有LED,给用户一个明确的结束信号。
第四步:自定义绿色流水灯动画内置的彩虹动画很酷,但为了贴合“健康”、“开始”的寓意,绿色是更佳选择。我们需要替换显示彩虹动画,用更复杂的逻辑来实现绿色流水灯。
如果 引脚 A3 被按下 则 播放旋律 在背景 中速 ba ding 变量 i 设为 0 循环 10 次 设置像素颜色在 i 为 绿色 显示 暂停(ms) 200 设置像素颜色在 i 为 关闭 i 改变 1 循环 120 次 循环 10 次 设置像素颜色在 i 为 绿色 显示 暂停(ms) 200 设置像素颜色在 i 为 关闭 i 改变 1 停止所有声音 清除显示代码逻辑深度解析:
变量 i 设为 0:我们创建一个变量i作为索引,用来指示当前要点亮第几个LED(CPX上LED编号为0到9)。- 第一个
循环 10 次:这是一个“初始化跑马灯”。它从0号灯到9号灯快速依次点亮再熄灭一遍,像是一个启动提示,告诉用户计时器已经开始工作。每次循环暂停200毫秒,整体大约2秒完成。 - 外层
循环 120 次:这是两分钟计时的主体。我们让绿色的流水灯动画持续运行120次。 - 内层
循环 10 次:这是单次流水灯动画。从0号灯到9号灯,每个灯亮起200毫秒后熄灭,紧接着下一个灯亮起。10个灯循环一次大约2秒。 - 计算与验证:内层循环一次约
10 * 200ms = 2000ms = 2秒。外层循环120次,总时间就是120 * 2秒 = 240秒 = 4分钟?等等,这里有个巨大的逻辑错误!如果这样写,总计时长变成了4分钟,而不是2分钟。这是一个典型的思维陷阱。
修正后的计时逻辑: 我们的目标是总时长2分钟(120秒)。流水灯动画循环一次是2秒。那么,我们需要让这个动画循环120秒 / 2秒 = 60次。
如果 引脚 A3 被按下 则 播放旋律 在背景 中速 ba ding 变量 i 设为 0 循环 10 次 // 启动动画 ... (同上) 循环 60 次 // 两分钟主计时循环 循环 10 次 // 单次流水灯 ... (同上) 停止所有声音 清除显示同时,为了在计时结束后有一个更明显的提示,我们可以在清除显示前加一个所有灯快速闪烁的效果:
停止所有声音 循环 3 次 显示颜色 红色 暂停(ms) 200 清除显示 暂停(ms) 200 清除显示这样,时间一到,音乐停止,LED会快速闪烁三下红灯,然后全部熄灭,提示效果更加明确。
第五步:下载与烧录程序代码编写完成后,点击编辑器左下角的“下载”按钮,会下载一个.uf2格式的文件。用USB数据线将CPX连接到电脑,此时CPX会显示为一个名为CPLAYBOOT的U盘。将下载的.uf2文件直接拖入这个U盘,CPX会自动重启,新程序就开始运行了。你可以先不组装,直接用手同时触摸A3引脚和GND引脚(比如板子边缘的“-”标志),来测试程序是否正常工作。
重要提示:防误触与状态指示:在实际测试中,我发现如果孩子不小心连续快速按动按钮,可能会打断当前的计时循环,重新开始。为了解决这个问题,可以在按钮按下触发动作后,立即加入一个短暂的“禁用按钮”期,或者使用一个“状态变量”。例如,设置一个变量
isTiming,在计时开始时设为真,在计时结束时设为假。在主循环的判断条件中,不仅要检测按钮是否被按下,还要检查isTiming是否为假。这样可以有效防止计时过程被意外重置。这是一个留给读者优化的进阶思路。
5. 手工制作全流程详解
编程完成后,我们就进入了动手制作的环节。这个过程需要耐心和细心,但每一步都有明确的技巧可以遵循。
5.1 裁剪与准备:从图纸到毛毡部件
- 绘制纸样(强烈推荐):除非你是手工达人,否则先在纸上画出各个部件是最高效准确的方法。用铅笔在白纸上画出鳄鱼的身体(7.5英寸长,3.5英寸高,可以画得圆润可爱些)、牙齿(上下各三个三角形)、电池袋(3.5x3.75英寸的长方形,一侧留长边作为开口)、圆形按钮(硬币大小)以及字母“TIME TO BRUSH”的轮廓。剪下这些纸样。
- 拓印与裁剪:将纸样用珠针固定在对应颜色的毛毡上,用Sharpie记号笔沿着边缘描画。关键技巧:画字母时,笔迹要画在字母轮廓的内侧。因为裁剪时你会沿着笔迹的内侧剪,这样最终的毛毡字母上就不会留下黑色的记号笔痕迹,成品更干净。
- 为CPX开孔:这是确保电路板完美嵌入的关键一步。将绿色的鳄鱼身体毛毡放在浅色底布上,确定好位置(通常靠左上方)。把CPX实际放在鳄鱼身体毛毡上,用铅笔轻轻沿着电路板外缘描一圈。然后,沿着铅笔线的内侧约1-2毫米处裁剪出这个方孔。这样开出来的孔会比CPX略小,利用毛毡的弹性,可以将CPX“塞”进去,既能牢固固定,又能让LED灯盘完美露出,不会有难看的缝隙。
- 裁剪导电按钮:从导电布胶带上剪下一个圆形。如果使用其他导电材料,确保其柔软且有一定厚度,按压时能有形变以接触良好。
5.2 电路安装与固定:可靠连接是核心
- 缝合固定CPX:将CPX从背面塞入鳄鱼身体上开好的孔中,使其正面(有LED和传感器的一面)朝外。取绿色缝纫线,穿上针。选择CPX电路板边缘的四个通孔(例如两个GND和两个3.3V孔),像缝纽扣一样,将CPX缝合固定在毛毡上。技巧:每个孔穿线4-5次,确保牢固。线头在背面打结,并点一小滴热熔胶固定线结,防止松脱。务必避开A3引脚孔,这个孔要留给导线。
- 连接导线:剪取约30厘米长的单芯导线。将一端剥出约1厘米的铜丝,紧密地缠绕在CPX的A3引脚上5-6圈,确保接触良好。可以用一小块绝缘胶带或热熔胶固定一下这个连接点,防止拉扯脱落。然后,将导线从CPX附近从底布(浅褐色)的背面穿到正面。接着,让导线在底布背面水平向右走线,走到你计划安装按钮的位置(通常在鳄鱼身体右侧或下方),再将导线从底布正面穿回背面。最后,将穿回背面的导线末端也剥开,盘成一个直径略小于导电按钮的圆形圈,用一点热熔胶临时固定在底布背面。这个线圈就是按钮的“触点”之一。
5.3 组装与粘合:赋予Alex生命
- 组装鳄鱼面部:在绿色的鳄鱼身体毛毡正面,用热熔胶粘上两只活动眼睛。然后粘上上下两排白色的三角形牙齿。牙齿可以交错排列,显得更自然。最后粘上两个小小的黑色鼻子圆点。
- 粘合主体:在浅褐色底布上确定好鳄鱼身体的最终位置。在鳄鱼身体毛毡的背面边缘涂上热熔胶,然后将其粘贴到底布上。顺序建议:先对齐底部和左侧边缘,从底部左下角开始涂胶粘贴,然后向右延伸到底部右侧,再粘贴嘴巴周围,最后粘贴顶部和左侧边缘。确保开孔处的CPX没有被胶水粘住。
- 粘贴字母:将裁剪好的蓝绿色字母“TIME TO BRUSH”在底布顶部排列好,确保间距均匀。然后用镊子夹起字母,在其背面点少量热熔胶,逐个粘贴固定。热熔胶用量宜少不宜多,否则容易从毛毡边缘渗出,影响美观。
- 安装导电按钮:这是整个电路能否成功的关键步骤。找到从底布正面穿出的导线头(它应该就在你盘绕的背面导线圈的正上方)。用强力胶(如401胶水),在导电按钮的背面边缘涂上薄薄一圈。然后,将其对准位置,粘贴在底布正面,确保它能覆盖住正面的导线头,并且正对着背面的导线圈。按压片刻使其牢固。绝对不要用热熔胶粘贴按钮,因为热熔胶层太厚且不导电,会完全阻断电路。
- 制作电池袋:将白色长方形毛毡的三条边(左、右、下)用热熔胶粘在底布背面合适的位置(通常在中下部),形成一个上方开口的口袋。电池就从这里放入和取出。
- 封边与安装吸盘:将底布对折,用热熔胶将左、右、下三条边粘合,形成一个整体的挂件。最后,在背面左上角和右上角,用热熔胶粘上两个吸盘。粘贴前先在镜子上比划一下,确保吸盘位置对称,挂起来才是水平的。
6. 测试、问题排查与优化建议
完成所有组装后,插入电池,激动人心的测试时刻就到了。
6.1 功能测试流程
- 基础供电测试:插入电池后,CPX上的红色电源LED应亮起。如果没有,检查电池是否有点,电池插头方向是否正确(JST-PH接口有防呆设计,但也要确认插紧)。
- 按钮功能测试:用手指直接按压粘贴好的导电按钮。此时,你应该能听到音乐响起,并看到LED灯开始绿色的流水灯动画。如果没反应,进入排查流程。
- 两分钟计时测试:启动后,观察灯光和音乐是否持续两分钟。时间到后,音乐和灯光是否按程序设定停止(或闪烁红灯后停止)。
6.2 常见问题排查速查表
| 问题现象 | 可能原因 | 排查与解决方法 |
|---|---|---|
| 按下按钮无任何反应 | 1. 程序未成功烧录。 2. 按钮电路不通。 3. CPX引脚模式设置错误。 | 1.重烧程序:重新下载.uf2文件并拖入CPLAYBOOT盘。2.检查电路:用万用表通断档,测量A3引脚与GND之间在按下按钮时是否导通。若无,检查导线连接是否牢固、导电按钮是否有效粘贴、背面导线圈是否未被接触到。 3.检查代码:确认程序中设置了 引脚 A3 为上拉。 |
| LED或音乐不工作 | 1. 程序逻辑错误。 2. 扬声器或LED物理损坏(罕见)。 | 1.模拟器测试:在MakeCode编辑器的右侧模拟器里,点击A3引脚看模拟效果。修复代码逻辑。 2.简化测试:写一个最简单的测试程序(如 当开机时 -> 播放音调中C),烧录测试蜂鸣器好坏。 |
| 计时不准 | MakeCode中暂停块的时间累积误差。 | MakeCode的暂停块在长时间循环中可能存在微小误差。对于两分钟这种时长,误差可接受。如需高精度,可使用运行时间(ms)变量进行数学计算判断,但图形化编程实现较复杂。 |
| 按钮偶尔失灵 | 1. 导电材料接触不良。 2. 毛毡太厚或按压力度不够。 | 1.增强接触:确保背面的导线圈盘得紧密平整。可以在导电按钮背面再贴一小片导电材料,增加接触面积和弹性。 2.调整位置:确保按压时,按钮能同时压到正面导线头和背面线圈。 |
| 吸盘挂不住 | 1. 镜子有灰尘或水渍。 2. 吸盘吸附力不足。 | 1.清洁表面:粘贴前用酒精湿巾彻底清洁镜子表面。 2.湿润吸盘:在吸盘吸附前,用手指沾水轻轻抹一下吸盘边缘,能大幅提升吸附力。 |
6.3 项目优化与扩展思路
这个基础版本已经非常实用,但你完全可以在此基础上进行个性化升级:
- 多首音乐随机播放:在MakeCode中创建一个歌曲数组,每次按下按钮时,随机选择一首播放,增加新鲜感。
- 视觉进度提示:让LED灯不是简单流水,而是作为进度条。例如,计时开始时10个灯全亮绿色,随着时间流逝逐个熄灭,最后全部熄灭表示时间到,非常直观。
- 增加“刷牙奖励”机制:利用CPX的加速度计。编程检测设备是否在一定频率下晃动(模拟刷牙动作),只有检测到晃动时才正常计时,防止孩子只按按钮不刷牙。这需要更复杂的编程逻辑。
- 外观个性化:鳄鱼Alex只是一个模板。你可以和孩子一起设计其他卡通形象,比如恐龙、小汽车、太空飞船,让计时器成为孩子最喜欢的玩具之一。
- 音量调节:CPX的音量是固定的,如果觉得太大或太小,可以在MakeCode的
播放旋律积木中,将“音量”参数从默认的128调低(如80)或调高。
制作“鳄鱼Alex”的过程,是一次将代码、电路和手工完美结合的旅程。它解决了一个具体的育儿痛点,也成为了一个充满成就感的创作。当看到孩子因为这个小装置而主动去刷满两分钟牙时,那种满足感远超项目本身。希望这份超详细的指南,能帮助你顺利创造出属于你自己的智能小助手。
