1.描述
从头开始为ATtiny10编写的无尽亚军游戏。它仅由三个组件组成:MCU,128x32 OLED显示屏和按钮。整个固件只有780个字节!
目前正在使用大小与钥匙链相同的PCB。
另外,它是太阳能供电的!
2.细节
很久以来,我一直对强大的ATtiny10以及这种小型设备的功能感到好奇。首先,我必须弄清楚如何通过TPI接口对其进行编程(此处有详细信息)。然后我试图驱动OLED显示屏采用了逐位TWI(还详细介绍了在这个岗位)。获得了良好的结果,我想进一步推广。还有什么比将游戏适合1kb闪存更好的呢?
玩了一段时间后,我意识到C对此不起作用:编译后的代码占用了太多空间。因此,我学习了Assembly的基础知识,并开始将其与C混合使用(我在这里写了一些技巧)。
我最终在Assembly中编写了整个代码。
我将代码发布在GitHub(非C语言)上,并试图尽可能清晰地注释每一行。
在花了很多时间对其进行编码之后,我认为设计适当的PCB就是这种情况。我将其设计得尽可能小:这将是钥匙串!
现在,有一个问题:在手机,笔记本电脑和手表之后,我也不想给钥匙串充电。
因此,我需要备用电源。
唯一可行的能源是太阳能,即使要从如此小的表面上提取足够的功率也是一个挑战。
我做了一些原型设计,发现的最简单,最便宜的解决方案是使用MCP1640提高光伏电池的电压。输出电压用于为0.1F或0.22F的超级电容器充电,该超级电容器充当缓冲器(更多详细信息,请参见日志)。
升压器设置为输出3.5V,游戏将继续工作,直到超级电容器放电至1.8V。0.22F的放电时间约为30秒。
这是足够的时间享受一些回合。
这个想法是,您将钥匙串放在太阳下一段时间(一两分钟),然后玩一会儿。你问如果没有阳光怎么办?
好吧,没有游戏……但这是“太阳能供电”的暗示(实际上可以使用TPI端口供电)。
3.组件
1个× 爱特梅尔ATtiny10
AVR MCU
1个× OLED显示器128x32
1个× 按键
4.项目日志
PCB设计已准备就绪。我尝试了几种选择,将大型组件移到整个地方,以使设备尽可能小。可以安装更多的太阳能板本来不错,但如面包板原型所预期的那样,两个应该可以很好地完成这项工作。
我将OLED显示屏和两个IXOLAR面板放在一侧,所有电子设备都放在另一侧。
OLED连接器将在另一侧穿过插槽。
我在太阳能电池板上放了个大电镀孔。这些应有助于PV电池的焊接。
我设计了一个圆形TPI连接器,用于对ATtiny10进行编程。它在六角形的顶点处有6个小镀层通孔。这些孔之间的距离为2.54mm,因此我可以轻松地用弹簧针构建连接器。
除了在0402中的三个电阻外,所使用的无源元件主要都在0603封装中。我不必费心焊接这些元件。我将从制造商那里组装无源元件,并且只焊接IC,太阳能电池和显示器。
这是Fusion360的一些渲染图,其中包含从KiCad导入的模型(我做了一些模型,例如Fusion360中的显示器和太阳能电池板)。
面前:
我发现的解决方案是在PCB周围创建一个框架,并将其与两个手工鼠标咬合连接。价格将相同,并希望它将按预期工作。
看语言描述,这个原作应该是英文的吧?