当前位置:首页 > > TsinghuaJoking
[导读]在电子森林推文700个字节的代码在ATtiny10里跑一个游戏,介绍了一个开源小游戏RunTiny。

电子森林推文 700个字节的代码在ATtiny10里跑一个游戏[1] 介绍了一个 开源小游戏RunTiny[2] .

用了:

  • 一个AVR单片机ATtiny10微控制器(只有6个脚,Digikey上0.3美元一颗)
  • 一个128*32的OLED显示屏
  • 一个按键
  • 一个电池 - 3.3V~4.5V都可以,可以用1S 150mAh的Lipo,乃至一颗CR2032的纽扣电池

小小的单片机ATtiny10只有6个脚:

  • 1个电源
  • 1个地
  • 1个Reset
  • 3个可用的I/O:
    • PB0: 用于连接OLED的I2C的SDA
    • PB1: 用于连接OLED的I2C的SCL
    • PB2: 按键(INT0)

原理图长这样(在面包板上就可以实现,5块钱打块板也可以啊):

▲ 极简的电路图
▲ 面包板上搭建的电路

代码也超级简单,为了能够塞到1KB的Flash存储器里面,作者做了优化,用汇编语言写成,最终的代码只有778个字节,不仅实现了游戏的功能,还能处理微控制器的I/O以及显示的通信

是不是很酷?在Github上有开源的资源。[2]


“到底应该是先剪短绿色电线?还是红色的呢?”,这也许是很多动作片中的扮演大英雄的主人公在面对能够拯救百万人性命的拆弹时刻经常要说的台词。

下面这个电子游戏就是带有两个倒计时七段数码管,并且有四种不同颜色电线需要你将其按顺序移开来阻止炸弹爆炸的电路原理图。

▲ 拆炸弹电子游戏电路图

原理图中的器件参数可以从网络上下载相关的说明。[3] 如果使用PCB来制作相应电路可以做到非常小巧精致,不过在面包板上DIY这个游戏电路则更有手感。

▲ 在面包板上搭建的电路游戏

电路上电后,数码管显示“S1”,此时需要将四根不同颜色线(红、蓝、绿、白)接入电路,然后按动按钮”K1”,游戏便开始了,数码管显示15秒的倒计时。单片机程序自动随机设定四根线移除结果:触发炸弹、加快计时速度、解除炸弹以及无结果。

电路中16F88单片机程序 BGame.hex[3] 也可以从网站下载。

▲ 视频游戏控制板电路原理图

下面是一款基于ATTiny3的俄罗斯方块游戏,它是由 Owen在2011年[4] 开发的电子游戏,被称为TinyCopter,其中LCD是Nokia3310手机液晶屏幕。它模拟在Apple-II电脑上一款电脑老游戏,使用空格键来控制直升飞机起飞来穿越崎岖的通道。

为了能够在1k字节的FLASH, 64字节RAM中实现这款小游戏,作者使用汇编语言,用尽了单片机内每一位可用的空间。

▲ 俄罗斯方块游戏

也许汇编语言是很多程序员的噩梦,但如果开发时间充裕,Owen愿意永远使用汇编语言。它可以让程序员把单片机按倒在地上使劲的摩擦,榨出所有可用的资源。


如果前面的单片机电子游戏机只能在微小液晶显示器上玩,不太过瘾,那么下面这款基于ATMEGA328的8位单片机的 Hackvision[5] 则可以直接利用它的IO口来产生NTSC(或者PAL)电视信号来驱动大屏幕电视机来显示游戏画面。有两条IO口组成的2bitAD所产生的音效也很神奇。

▲ Hackvision游戏板

向Arduino一样,这款电路设计中的单片机可以让你通过它的BootLoader将你自己开发的程序进行上载。利用单片机额外的外设资源可以增加更多的游戏控制杆。

基于这款硬件可以玩太空入侵者,乒乓球或者小行星等游戏。

▲ 太空入侵者游戏

这款Hackvision相关的 硬件开发和软件编程[6] 可以在网上找到相应的开发资源和编程指导资料。

▲ Hackvision硬件电路设计

参考资料

[1]

700个字节的代码在ATtiny10里跑一个游戏: https://mp.weixin.qq.com/s/gcqykDVyC8Vx_yztekMNSQ

[2]

开源小游戏RunTiny: https://github.com/ridoluc/RunTiny

[3]

原理图中的器件参数可以从网络上下载相关的说明。: https://www.electronics-lab.com/project/bomb-game/

[4]

Owen在2011年: http://hackedgadgets.com/category/game-hacks/page/7/

[5]

Hackvision: https://nootropicdesign.com/hackvision/

[6]

硬件开发和软件编程: https://easyeda.com/tomatos/hackvision




老大 想问下您 16届比赛会如期举办吗?

回复:当然。

免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭