至简至美-ATtiny0 跑的一个游戏

01小游戏RunTiny

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

用了:

  • 一个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上有开源的资源。

02拆弹专家

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

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

▲ 拆炸弹电子游戏电路图

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

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

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

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

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

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

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

03微型直升飞机

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

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

▲ 俄罗斯方块游戏

▲ 俄罗斯方块游戏

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

04太空入侵者

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

▲ Hackvision游戏板

▲ Hackvision游戏板

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

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

▲ 太空入侵者游戏

▲ 太空入侵者游戏

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

▲ Hackvision硬件电路设计

▲ Hackvision硬件电路设计


■ 相关文献链接:

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页