20美元的宜家台灯算力有多强?运行《毁灭战士》操作丝滑,最初竟是受假新闻启发-阿里云开发者社区

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

20美元的宜家台灯算力有多强?运行《毁灭战士》操作丝滑,最初竟是受假新闻启发

简介: 20美元的宜家台灯算力有多强?运行《毁灭战士》操作丝滑,最初竟是受假新闻启发
+关注继续查看

每逢佳节逛宜家的你,或许知道这款神奇的LED电灯。

这款售价大约20美元的电灯TRÅDFRI,可以随时进行调暗或调亮、设定想要的颜色,以及拿来玩《毁灭战士》。

是的,你没有看错。

因为TRÅDFRI的颜色调整功能,可以想象,其内部拥有一个计算机系统,而只要对其稍加改造,《毁灭战士》什么的,根本不在话下。

还是不信?实机演示一段:
怎么样,除了屏幕略小以外,整个操作手感还是相当丝滑的。

接下来就和文摘菌一起来揭秘这个神奇的电灯吧~

被假新闻“欺骗”,要完成《毁灭战士》的夙愿

这个项目的来源还要追溯到一条假新闻。

去年多家外媒报道,有人成功地在验孕棒上运行了《毁灭战士》。

但其实,整个项目是在PC端运行的,所以作者并没有将其移植到验孕棒或Cortex M4板上。

但不管怎么样,这不失为一个有创意的想法。

在一次偶然的机会下,next-hack的一个团队发现宜家TRÅDFRI LED1923R5灯具有很好的 MCU,以及96+12kB的RAM(总共108kB),1MB的闪存,和一个80MHz的Cortex M33。

更准确地说,这款新的宜家灯使用来自Silicon Labs的MGM210L射频模块,该模块是基于EFR32MG21射频微控制器。

台灯到货后,要用切割器将灯的塑料顶部弹出,同时还需要切割将其固定到位的胶水。之后,取下两个小螺丝,用小钳子取下LED PCB。

然后就可以移除金属散热器,以露出高压AC/DC转换器,用钳子将它从灯中拉出。拆卸完成后大概是这样:

但其实,文摘菌要在这里拆个台,TRÅDFRI台灯不是必需的,我们需要的只是它内部的MGM210L模块而已。(工具灯实锤)

然后,需要从PCB中取出电源线和IO线。为此,他们使用了一块原型板,将其成型为接受带有RF模块的DC-DC板。为了后续安装的方便也可以在上面做一个切口。

电线连接到三个接头,将模块插入另一个原型板,该板将包含该项目的所有其他内容。

接着,还需要把电线直接焊接到DC-DC板触点上,3个母头用于连接射频板,连接2针接头的音频部分。从背部看,已经变得眼花缭乱了。

毕竟这还只是一个电灯,还需要额外配备一个显示器,在这里选择廉价的彩色1.8英寸TFT 160×128 SPI显示器。该显示器具有兼容的ILI9163或ST7735S控制器,并且它们需要以16MHz运行。

由于最终处理器不足以存储WAD文件(共享软件版本至少为4.1MB)。综合考虑之下,他们选用了外部SPI存储器。

在输入设备上,由于《毁灭战士》需要最少的键数是7或8,74HC165移位寄存器是不二之选。

距离《毁灭战士》正式运行还有亿步

在编程上,该器件使用任何兼容JLink的SWD编程器进行编程。在编程结束时,可能会收到错误消息提示,直接忽略就行。

在GitHub中,存在已经转换好的共享软件DOOM1.wad(mg21DOOM1.wad)。如果WAD与共享软件版本不同,需要将其转换为与此端口兼容的特定格式。

GitHub链接:
https://github.com/next-hack/MG21DOOM

转换后的WAD需要通过YMODEM协议发送到内部闪存。对于此,还需要一个USB到TTL UART的转换器。

上传wad的时候,记得打开设备电源,然后按住“use”“change weapon” 和“alt”,以启动Ymodem接收。

下载完成后重置设备,你就能看到《毁灭战士》开始运行了!

想要了解安装过程中的细节部分,以及注意事项,可以点击下方链接:
https://next-hack.com/index.php/2021/06/12/lets-port-doom-to-an-ikea-tradfri-lamp/

《毁灭战士》,永远的神!

在黑客界,有一项由来已久的传统,那就是在看似不能运行《毁灭战士》的设备上,尝试去运行。

目前,这款开源射击游戏已经可以在广告牌卡车、烤面包机以及灯泡等各种设备上运行了。

比如2014年,澳大利亚黑客团队在ATM机上成功运行了《毁灭战士》。该团队使用ATM机上自带的控制按钮,没有借助外置控制器,不过他们仍然需要自制的软件和特定的电路板来将取款按键映射成开枪按键。

这些人还希望能利用上ATM机上的其它硬件部分,比如用菜单按钮更换武器、用数字键盘来控制人物移动或者让小票打印机打印出玩家完成的游戏关卡。

同年,英国一个研究小组利用佳能PIXMA打印机的web界面修改打印机的固件,从而运行了这款经典游戏。

但这也引起了人们的担忧。该作者就表示,“如果你能在打印机上运行《毁灭战士》,那么你也可以做一些更恶意的事。毕竟在公司环境中,没有人会去怀疑打印机。”

安全和发明脑洞,似乎无法兼得,对于如此矛盾,你怎么看,欢迎在评论区留言讨论~

相关报道:
https://www.vice.com/en/article/3aqa9y/you-can-play-doom-on-an-ikea-lamp
https://next-hack.com/index.php/2021/06/12/lets-port-doom-to-an-ikea-tradfri-lamp/

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

相关文章
嵌入式实时操作系统uc/os-ii 原理及应用 读书笔记
对任务就绪表的操作理解: 将优先级别为prio的任务置为就绪状态,可使用如下代码 OSRdyGrp |= OSMapTbl[prio >>3];//将prio任务所在的组状态置为1,表示该组有任务就绪。
587 0
不同session的history操作同步问题
~ openssh不同时间开的不同session,相同用户的history命令显示的是不完全相同的…不过bash的设计是有它的考虑的...要不chsh到zsh用用... 可能影响session的history选项就如下几个: 简单源码了解 源码看,暂时没有查出什么时候会统一写入 .bash_history文件!小坑要小心呀 几个简单的实验,不同session的bash hi
1115 0
嵌入式实时操作系统uc/os-ii 原理及应用 读书笔记
对任务就绪表的操作理解: 将优先级别为prio的任务置为就绪状态,可使用如下代码 OSRdyGrp |= OSMapTbl[prio >>3];//将prio任务所在的组状态置为1,表示该组有任务就绪。
572 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
3965 0
无法嵌入互操作类型“ESRI.ArcGIS.Display.SimpleFillSymbolClass”。请改用适用的接口。
无法嵌入互操作类型“ESRI.ArcGIS.Display.SimpleFillSymbolClass”。请改用适用的接口。 对于这样的问题 先看这个错误所对应的引用时那个,比如这个错误对应的引用为ESRI.
1056 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
5715 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
10744 0
1457
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载