创客三级跳——能感知“摔倒”的互动玩偶
2015-05-28 11:26:14谁家都会有一些毛绒玩偶,但这些玩偶一般都是一个静静的玩物,不会动,不会叫,也不“智能”。如果它们被拍打后会“哭”,摔倒后会叫“Help”,那该多有意思啊。这篇教程,就是让我们自己动手,利用Arduino和传感器等一些简单的元器件,让普通的玩偶变得聪明起来。
1.思路
要让玩偶感知到自己的“姿势”,用陀螺仪或者加速度传感器,那肯定是最好不过的。如果要求不高,仅仅需要知道是否摔倒,也可以使用简单的倾斜开关(也称单向倾角传感器)。
图1 单向倾角传感器
倾斜开关中有一个钢珠,利用滚珠在开关内随不同倾斜角度所发生的位置变化,达到触发电路的目的,内部结构如图2所示。我们使用的型号是SW-200D,开关里面不是使用水银,不存在环保、安全等问题。
图2 倾斜开关的内部结构图
当玩偶感知到摔倒了,应该怎么表达“哭”或者“Help”呢?我们先使用蜂鸣器吧。蜂鸣器是最常见的电子发声装置,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中。
2.原型
要把倾斜开关接入Arduino,需要接一个下拉电阻或者上拉电阻。和LED一样,可以选择220Ω的电阻。我选择了3号口,请按照下面的示意图接线。
图3 倾斜开关的接线示意图
这其实是一个典型的分压电路,试着用欧姆定律来分析一下?
图4 实物连接图
我们首先需要写一段代码,将3号口的值通过串口传回来。测试一下在不同状态下,倾斜开关传回的值是0还是1。因为电阻的接法,还有倾斜开关的方向,都会影响这个数值。与其机械地去记忆,还不如使用前测试一下。在技术领域,这样的测试过程称为技术试验。
测试代码
图5 在串口监视器中观察状态
如图5所示,我们在串口监视器中,可以清楚地看到,当倾斜开关处于不同的角度时,数字针脚3的值会发生变化。你要记录“倾斜开关”倾斜时是1还是0。这直接影响我们下面的编程哦。
接下来我们把蜂鸣器接到Arduino上。一般来说,蜂鸣器的长脚接5V,短脚接GND。我们选择的是9号口。
图6倾斜开关和蜂鸣器的接线示意图
接下来开始编写代码了,ArduBlock的代码如图7所示。
图7 完整代码
试一试,是不是当面包板倾斜的时候,蜂鸣器就开始发出“滴滴”的声音了?如果跟我们预设的不一致,比如倾斜的时候不发声,水平放置却“滴滴”叫个不停,请修改一下代码,把“高”、“低”互换一下即可。
3. 改进
套件中提供了录音贺卡。这种贺卡按下“REC”键录音,可以录制12s的声音内容,按下“Play”键就能播放。按下“REC”键,说一句“Help”吧,或者“救救我”什么的吧,试试效果如何。
未完。。。
全文详见《无线电》201505







