MakeyMakey,最近网上很火的一个小板子,它可以给我们眼前几乎所有的东西都增加新功能,水果也不光可以吃,还可以用来玩啦。
MaKey MaKey是什么呢?它是一块由麻省理工学院媒体实验室的两位博士开发出的电路板。通过这块电路板,你可以让任何物件成为你实现创意的工具:本子粘上橡皮泥就成了超级玛丽游戏手柄;一家人在一起可以组建一套架子鼓;要是键盘的哪个按键掉了,找个水果便可替换;只要你愿意,石头也能变钢琴……
前些天参与一个科技夏令营的活动,我有机会接触到了MakeyMakey,真的通过它用香蕉弹了一回钢琴,只有试过后你才能知道,哈哈,果然非凡触控感觉!可是呢,毕竟只体验了那么一会儿,东西不是自己的哦,不过对于Arduino爱好者来说,这都不是事儿,咱们自己做一个!
MakeyMakey与水果
其实MakeyMakey与Arduino是近亲,它与Arduino Leonardo用的主控芯片都是ATMega32u4。 在MakeyMakey官方网站上面,人家就说过了:“You could say this board is 2 in 1. MaKey MaKey runs on top of Arduino.” 后面还说了下MakeyMakey的工作原理及主要的电路元件:它是利用10-50兆欧姆的(比人体电阻大很多的)上拉电阻上拉端口电位,当人体或香蕉等触碰到端口引脚时,就会使端口电平为低,单片机检测到后,模拟指定的键盘鼠标动作。
话说昨天刚刚发配了一块Arduino Leonardo,还有一个传感器扩展板,刚一到手,我马上就想到了一个词:MakeyMakey! 立马心潮澎湃啊,改MakeyMakey,必须的!
奥松机器人2013年最新推出的Leonardo 传感器扩展板v5.0
看了一下网上的相关资讯,觉得Leonardo改MakeyMakey硬件上没什么说的,在模拟口上加上拉电阻,不要另改USB(因为一不小心真的会让USB口game over),而是用串口通过软件模拟成键盘。但程序上感觉不太好用,所以自己试着写了一个,用上了按键去抖动的段子,您别说,效果还不错,确实跟MakeyMakey的触控有些神似了。
下面是部分主要程序,供参考:
//Leonardo to MakeyMake
int InPut0 = 0, InPut1 = 0; //触控输入值初始化
int TouchedValue = 400; //临界比较值,此值可以在硬件连接好后用Arduino IDE里面的AnalogReadSerial程序,改成检测A0-A5口,然后在动作中实际检测,准确一些
void setup()
{
Serial.begin(9600);
}
void loop()
{
InPut0 = analogRead(A0);
InPut1 = analogRead(A1);
if(InPut0 <= TouchedValue ) //检测按键并去抖动
{
delay(20);
if(InPut0 <=TouchedValue)
{
Serial.write('0'); //发送字符0
}
}
if(InPut1 <= TouchedValue)
{
delay(20);
if(InPut1 <=TouchedValue)
{
Serial.write('1'); //发送字符1
}
}
delay(50); //可调重复触发速度
}
//程序结束
Leonardo及转接板与香蕉连接图
在Leonardo加八分熟"香蕉钢琴键"的条件下,改成的"MakeyMakey"还是挺好用的,不过可能你用的时候要对参数小小的修改一下,呵呵。
测定临界值:未触摸到与触摸到A0端口时状态对比
怎么样?看这到里你一定动心了吧?是玩心还是吃心呢?:) ,相信你自己做出的MakeyMakey特别版,一定会让你也体验到用身边的事物做触控的新奇感觉!
相关链接:
奥松机器人官方网站:http://www.alsrobot.cn
MakeyMakey官网:http://www.makeymakey.com/
正在用的Leonardo控制器:http://www.alsrobot.cn/goods-224.html
正在用的传感器扩展板v5.0 :http://www.alsrobot.cn/goods-147.html
编外一提:看到那生成的巨大的程序代码量,真担心哪天我的Leonardo 肚子装不下啦,在这里推荐一篇有关缩减代码的文章,挺不错的,来自奥松机器人官网前沿科技,文章地址: http://www.alsrobot.cn/article-90.html
联系客服