“十指无力眼睛花,脖痛腰老肩膀脆”,相信每一位一个姿势长时间久坐操作电脑的朋友,都有各自不同的“痛的领悟”。
网友也想了不少方法增加活动量。比如这样可以活动手臂和肩膀
比如读这段文字可以活动脖子(不是让你转手机)
这些方法说白了就是在工作间隙适当增加运动量。但周边的同事突然开始摇头晃脑或者手舞足蹈,容易把别人吓到。
所以运动就要有个运动的样子,我们还是得做做正规运动。可是运动少不了需要器械和场地,办公室没有怎么办?作为创客,我们不禁又要开一下脑洞。
于是我们又双叒叕随手用乐高……做了一个小装置:桌面乒乓球发球机。
这个装置有以下优点:
小巧,易于搬运
场地需求较小,可玩性高
锻炼反应速度(发球时间随机)、注意力(球运动速度快)、逻辑分析能力(判断球的轨迹、落点、反弹方向)、身体协调能力(能接住球)
运动量合适(接住球放回去或跟球跑—捡球—放回去)
加速血液循环,改善大脑供氧
锻炼手眼协调,活动全身肌肉群
而且,这个装置既可以一个人玩,也可以两个人玩。我们特地给发球机增加了遥控功能,这样你拿好球拍站好位置后,按一下遥控器就可以开始运动了。而不用先打开乐高电源,再手忙脚乱的跑回去接球。
一个人玩,按一下遥控器,程序会随机间隔触发电机,连续将球弹出。
两个人玩……并不是双打,而是……一人填球一人接球。不会打乒乓球也没关系,可以用纸杯接哦。
运动完了,有没有感到神清气爽、思维活跃?在制作发球机的遥控功能时,我们用到了一个新的技术组成:
乐高近场红外控制
老规矩,我们依旧选用的是市面上最成(pian)熟(yi)的红外套件:
红外遥控模块
想要乐高听指挥,首先要让arduino听懂红外指令。前一篇文章对比智能家电和传统家电时提到了红外遥控控制,要有发射设备(上图左)和接收设备(上图右)共同构成。
红外控制原理即发射端以特定频率发出信号,接收端接收并转码,程序根据不同转码结果触发不同反馈。控制信号以红外二极管特定不同间隔通断时间的方式发出,接收器平时输出高电平,收到指令时输出低电平:
红外信号传输原理图
上图的示意信号实际上是一连串特定时长的红外二极管亮灭,这样的红外指令用arduino读出来是这样子的:
时间编码
这样的指令不仅看起来瞬间脑大,还不方便调试,所以厂家通常会将这样的代码先翻译成1010的二进制,再转换为16进制显示。翻译的标准各家就有区别了,按照最常用的NEC的标准,2.25ms波形代表1,1.12ms波形代表0:
我们看一下前面获取的红外指令:
600+550=1150μs,对应0;550+550+600+550=2250μs,对应1;于是上述代码就翻译成了01110。
再来看NEC红外指令编码方式:
NEC红外编码格式
“引导码+用户码+数据码+结束码(无信号)”,引导码和数据码默认传输两遍,一次正向,一次反向用于接收器校检(如图10中同一按键对应的3条出现局部50μs差异)。知道了规律,我们就很方便的提取出我们所需的指令了。将二进制指令中控制指令转变为16进制:
是不是瞬间清晰了,于是我们很方便就能得到遥控器上的按键与指令的对应关系:
至此我们完成了遥控器指令的破解,剩下的事情就简单了,我们只需在程序中设定不同指令对应的触发操作即可,以本文案例为例,那就是随机触发还是立即触发。随机触发,程序将生成一个1~5的随机数,延时对应秒数后,触发弹射程序。
所以流程可以总结为:遥控器发射指令—接收器接收解码—触发对应操作,这就是红外遥控的实现原理。这个流程在身边随处可见,比如电视换台,调音量,我们只是将其用在了乐高上。
除了控制乐高弹球,控制继电器开关电器这样直白的应用,我们还可以结合Arduino的红外二极管制作发射器,控制其他设备。比如将家里电视空调等遥控器最常用的遥控指令都破译出来,与一台遥控器上不常用的按键对应。编一个小程序,若接收器收到这些不常用按键发来的控制信号,则由Arduino控制红外发射头发射对应的原遥控器指令,这样就将多个遥控器功能集中到一个遥控器上。这便是现在市场上各类结合手机音频插孔或智能红外盒子的原理。如果喜欢动手,不妨自己尝试一下,结合上篇文章的物联概念,就能远程控制家里的电器,那智能家居的实现也有章可循了。
还等什么,一起做创客吧。
网友也想了不少方法增加活动量。比如这样可以活动手臂和肩膀
比如读这段文字可以活动脖子(不是让你转手机)
这些方法说白了就是在工作间隙适当增加运动量。但周边的同事突然开始摇头晃脑或者手舞足蹈,容易把别人吓到。
所以运动就要有个运动的样子,我们还是得做做正规运动。可是运动少不了需要器械和场地,办公室没有怎么办?作为创客,我们不禁又要开一下脑洞。
于是我们又双叒叕随手用乐高……做了一个小装置:桌面乒乓球发球机。
这个装置有以下优点:
小巧,易于搬运
场地需求较小,可玩性高
锻炼反应速度(发球时间随机)、注意力(球运动速度快)、逻辑分析能力(判断球的轨迹、落点、反弹方向)、身体协调能力(能接住球)
运动量合适(接住球放回去或跟球跑—捡球—放回去)
加速血液循环,改善大脑供氧
锻炼手眼协调,活动全身肌肉群
而且,这个装置既可以一个人玩,也可以两个人玩。我们特地给发球机增加了遥控功能,这样你拿好球拍站好位置后,按一下遥控器就可以开始运动了。而不用先打开乐高电源,再手忙脚乱的跑回去接球。
一个人玩,按一下遥控器,程序会随机间隔触发电机,连续将球弹出。
两个人玩……并不是双打,而是……一人填球一人接球。不会打乒乓球也没关系,可以用纸杯接哦。
运动完了,有没有感到神清气爽、思维活跃?在制作发球机的遥控功能时,我们用到了一个新的技术组成:
乐高近场红外控制
老规矩,我们依旧选用的是市面上最成(pian)熟(yi)的红外套件:
红外遥控模块
想要乐高听指挥,首先要让arduino听懂红外指令。前一篇文章对比智能家电和传统家电时提到了红外遥控控制,要有发射设备(上图左)和接收设备(上图右)共同构成。
红外控制原理即发射端以特定频率发出信号,接收端接收并转码,程序根据不同转码结果触发不同反馈。控制信号以红外二极管特定不同间隔通断时间的方式发出,接收器平时输出高电平,收到指令时输出低电平:
红外信号传输原理图
上图的示意信号实际上是一连串特定时长的红外二极管亮灭,这样的红外指令用arduino读出来是这样子的:
时间编码
这样的指令不仅看起来瞬间脑大,还不方便调试,所以厂家通常会将这样的代码先翻译成1010的二进制,再转换为16进制显示。翻译的标准各家就有区别了,按照最常用的NEC的标准,2.25ms波形代表1,1.12ms波形代表0:
我们看一下前面获取的红外指令:
600+550=1150μs,对应0;550+550+600+550=2250μs,对应1;于是上述代码就翻译成了01110。
再来看NEC红外指令编码方式:
NEC红外编码格式
“引导码+用户码+数据码+结束码(无信号)”,引导码和数据码默认传输两遍,一次正向,一次反向用于接收器校检(如图10中同一按键对应的3条出现局部50μs差异)。知道了规律,我们就很方便的提取出我们所需的指令了。将二进制指令中控制指令转变为16进制:
是不是瞬间清晰了,于是我们很方便就能得到遥控器上的按键与指令的对应关系:
至此我们完成了遥控器指令的破解,剩下的事情就简单了,我们只需在程序中设定不同指令对应的触发操作即可,以本文案例为例,那就是随机触发还是立即触发。随机触发,程序将生成一个1~5的随机数,延时对应秒数后,触发弹射程序。
所以流程可以总结为:遥控器发射指令—接收器接收解码—触发对应操作,这就是红外遥控的实现原理。这个流程在身边随处可见,比如电视换台,调音量,我们只是将其用在了乐高上。
除了控制乐高弹球,控制继电器开关电器这样直白的应用,我们还可以结合Arduino的红外二极管制作发射器,控制其他设备。比如将家里电视空调等遥控器最常用的遥控指令都破译出来,与一台遥控器上不常用的按键对应。编一个小程序,若接收器收到这些不常用按键发来的控制信号,则由Arduino控制红外发射头发射对应的原遥控器指令,这样就将多个遥控器功能集中到一个遥控器上。这便是现在市场上各类结合手机音频插孔或智能红外盒子的原理。如果喜欢动手,不妨自己尝试一下,结合上篇文章的物联概念,就能远程控制家里的电器,那智能家居的实现也有章可循了。
还等什么,一起做创客吧。