自制MaKeyMaKey.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自制MaKeyMaKey   MaKeyMaKey是大众融资平台Kickstarter上的一个项目,由两位MIT在读博士设计。它能将日常物品变成触摸板,然后连上电脑和网络。MaKeyMaKey由三个部分组成:MaKeyMaKey主板、鳄鱼夹和数据线。对于任何导体(表面湿润的绝缘体也可以)来说,只要用鳄鱼嘴导线将物体与电路板上的各个金属触点相连,然后再连接电脑,就可达到触摸板的效果,成为一个计算机输入设备。   MaKeyMaKey能够模拟键盘和鼠标的信号,结合电脑中现成的游戏和媒体播放器之类的软件,不用编程,就能够设计简单的互动媒体作品了,常见的是用来做水果键盘,如图1所示。MaKeyMaKey的意义在于它可以用极其简单的方法让艺术家创造艺术,让孩子体验技术带来的乐趣,因而被称为是孩子们21世纪的发明工具包。   MaKeyMaKey并不贵,淘宝上能买到,大概500元左右。但作为一名创客,当然要试着自己来做一块。论技术难度倒真不高,只要稍微懂一点Arduino的基础知识就能实现。   设计输入模块   MaKeyMaKey的神奇之处在于能够把任何导体(包括人体、表面湿润的绝缘体)变成输入设备。对照运行图2所示的工作原理,我们可以发现,人体无非是一个选择性的开关,让不同的“键”(引脚)和“Gnd”连接起来,形成一个回路,让单片机能识别,如图3所示。   作为输入设备,我们知道最基础的电路如图4所示。这其实就是一个典型的分压电路,Vout的电压是受R1和R2的电阻值大小影响的。R2的电阻越大,Vout分到的电压也就越大。但是,由于作为输入设备人体的电阻很大,所以如何选择合适的电阻是重点。   如果熟悉计算分压电路,可以试着计算一下。一般在干燥环境中,人体电阻大约在2千欧到20兆欧范围内,那么作为匹配的电阻,应该选择这一范围的中间值,即10兆欧。经过测试,一般来说,1~10兆欧的电阻基本上都能比较敏感地测出是否形成了回路。   控制板的选择   控制板方面,我们当然要选择开源硬件Arduino。MaKeyMaKey本身就和Arduino有着密不可分的关系。不信你可以查看MaKeyMaKey板子的背后,是否写着Arduino的字样?   Arduino也有多种型号,我们用Leonardo还是UNO?因为Leonardo直接使用了ATmega32u4的USB通信功能,取消了USB转UART芯片,这使得Leonardo不仅可以作为一个虚拟的(CDC)串行/COM端口,还可以作为鼠标或者键盘连接到计算机。那么,第一选择肯定是Leonardo了(如下页图5)。其实,国内有很多Arduino的兼容产品,有些用的芯片就是ATmega32u4。只要是用这一芯片的,都可以改造为键盘和鼠标。   Arduino编程   Arduino IDE中直接提供了模拟键盘、鼠标功能的范例,在“示例”-“09 USB”中,如图6所示。范例中有英文的注释,很容易看懂。要实现键盘和鼠标功能,只需关注以下两点:①在setup函数中,加上“Mouse.begin();Keyboard.begin();”的声明。②输入按键信息,直接用“Keyboard.press(l);”即可。“Keyboard.releaseAll();”为释放按键。特殊字符,可以用KEY_LEFT_ALT之类的常量来代替。   依样画葫芦,我写了如图7的代码,其中TouchSensitivity是用来调节输入模块的敏感度的。代码中我定义了A0到A5口,分别对应“右、左、下、上”的方向键,以及空格和鼠标左键。   对MaKeyMaKey的改进   测试一下这块自制的MaKeyMaKey,除了我仅仅写了最常用的6个键外,其他几乎一模一样。既然是自制的MaKeyMaKey,我们总要做点改进。   1.解放另一只手   总是一只手接上Gnd线,另一只手触碰导体,才可以模拟出按键或者鼠标的动作,还是不方便。如何做才能更方便?其实很简单,如果将触摸传感器作为输入设备,就可以解放另一只手了。当然,我们也可以用红外测距传感器、红外遥控之类,连手都不用碰,也能和电脑交互,不是更有趣了吗?   2.远程控制   用蓝牙把两块Arduino连接起来,其中一块接电脑做接收端,模拟鼠标键盘,另一块加上特定的传感器做控制。哦,这不是无线鼠标了吗?是啊,如果加上三轴加速度传感器,就是空中飞鼠了。我看过有人把板子缝在帽子上,实现了用头部控制鼠标来玩游戏。   其实,这款自制的Arduino能做的有很多,只要你大胆想象。那么,是不是只能用Leonardo之类带ATmega32u4芯片的板子,才能模拟MaKeyMaKey?答案当然是否定的。在创客们的眼里,一件事情往往有很多种解决方案。例如

文档评论(0)

lnainai_sj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档