不用键盘也能玩超级玛丽!当乐高马里奥变身遥控器,真‧手动控制-阿里云开发者社区

开发者社区> -技术小助手-> 正文

不用键盘也能玩超级玛丽!当乐高马里奥变身遥控器,真‧手动控制

简介: 不用键盘也能玩超级玛丽!当乐高马里奥变身遥控器,真‧手动控制
+关注继续查看

切西瓜游戏都能从屏幕里走出来,变成VR互动式在空中切切切,马里奥也不认输!

这不,国外有个小哥做了一个真‧手动控制的“马里奥遥控器”,只见他在电脑前拿着马里奥上下指挥,游戏中的马里奥就能随之跳跃从而避开障碍物。

虽然这个遥控器可能不那么灵敏,但创意十足。这是怎么做到的呢,和文摘菌一起看看吧。

在乐高玩具的基础上,截获蓝牙信号并传输至虚拟机,实现真‧手动控制马里奥

这要从近期发行的一款乐高玩具说起。

8月1日,乐高与任天堂合作推出了超级马里奥玩具套装,其中最基础的一款叫做“Adventures with Mario Starter Course”。有趣的地方在于,这套玩具中有一个交互式的蓝牙马里奥。

它有内置的检测动作和颜色的传感器,还有加速度计、陀螺仪和蓝牙。而且马里奥的眼睛、嘴巴和肚子上都安装了液晶显示屏!充电后可以通过声音和面部表情与障碍物进行即时互动。

此外,按下它背上的蓝牙按钮,还可以连接到乐高超级马里奥的应用程序上。推特网友Rick正是受到这个带有蓝牙功能马里奥玩具的启发,才灵机一动想要做一个“蓝牙遥控”。

他在这款乐高玩具发行后,还特意发推询问这个带有蓝牙的马里奥玩具的拆卸信息或内置硬件的信息,考虑改装的可行性以及是否值得。

现在看来,改装的很成功啊~

但实际上,操作并没有那么复杂。Rick表示,他只是截获了马里奥通过蓝牙发送的信号,并将其传输到Linux虚拟机中的模拟器,让传感器模拟按键,就能实现文章开头提到的效果。

不过,真用手动控制的话,显然有些笨拙和延迟,一不小心就一命呜呼~

但Rick的创意还是得到了很多网友的认可,他的这则推文得到了8.1k+点赞。

有网友就在这则推文下留言,问他是怎么做到的,用了多长时间。Rick表示,“用了大约4小时,复杂的是找出蓝牙协议,然后就只是(让传感器)模拟特定事件下的按键。在MacOS上,NES模拟器不能与模拟键一起工作,所以游戏实际上是在Linux虚拟机中运行的。”

Rick还说,他只是在MacOS 10.15上测试了这个项目,很可能在其他系统上无法运行。

另外,Rick也在Github上给出了项目代码,并不是很复杂,但前提是咱得有这款马里奥的乐高玩具~否则工程量就大了~

相关代码可以点击下方链接查看:
https://github.com/RickP/lego_mario_controller

小声bb:文摘菌是不是应该管乐高要广告费???

喜欢收集蓝牙设备的硬件黑客

Rick是一名硬件黑客,喜欢收集一些蓝牙设备。他从2009年就注册了twitter,期间做了很多小发明,想必已经是一位经验老道的工程师了。

平时他会用收集来的这些设备做一些小项目,比如在疫情期间他做了一个小装置,可以检测口罩是否潮湿,如果口罩处于潮湿状态就会闪烁红灯并发出声响,就像这样:

检测装置及内部构造

相关代码在这里:
https://github.com/RickP/MaskMoistureMeter

Rick喜欢一切与蓝牙有关的物件,前阵子他还买了小米的智能魔方~ 据了解,这款魔方采用磁力定位设计和竞速结构设计,再加上六轴传感系统,能够通过蓝牙连接到手机同步实时数据,还能自动捕捉魔方的旋转和颜色变化。

于是Rick就开了一个脑洞,用ESP32和小米智能魔方做了一个类似“密码锁”的机关。要想“开锁”需要还原魔方,反之,打乱魔方就会“关锁”。就像这样:

虽然这个“锁”还只是一个象征,这个视频更像是测试它是否管用,并没有什么实用意义。不过这也只是他的一个脑洞,不必较真~

文摘菌在这里给出他的主页,感兴趣的小伙伴可以去看看:
https://twitter.com/r1ckp

最后,容文摘菌感叹一下,乐高和超级玛丽真的深得众多技术大大的厚爱啊~

不久前文摘菌就报道过一位小哥使用近端策略优化(PPO)算法让马里奥顺利通过了32关中的29关~ 还有YouTube上一位小哥用乐高零件自己拼了一个“零件分拣机”,不仅外形是他自己设计的,用到的目标识别等AI技术也是他自己完成的,太酷了!

总之,文摘菌还会继续报道这些有趣的“硬核黑科技”,如果大家看到有趣的项目也欢迎告诉文摘菌哦~

相关报道:
https://www.theverge.com/tldr/21441186/lego-super-mario-bros-controller-hack-figurine

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
easyUI中datagrid控制获取指定行数的数据
直接上代码: var rows=$('#detail').datagrid('getRows');//获取所有当前加载的数据行 var row=rows[0];// 行数从 0 开始   项目中代码: var rows = $('#detail').
1191 0
手动升级X-Scan–通过nessus nasl脚本更新X-Scan漏洞库
    http://www.netxsec.com/index.php/html/216.html 没测试过,转过来备用。
1073 0
1457
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载