至简至美的一款单片机游戏
在电子森林 推文 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个Reset3个可用的I/O: PB0: 用于连接OLED的I2C的SDAPB1: 用于连接OLED的I2C的SCLPB2: 按键(INT0)原理图长这样(在面包板上就可以实现,5块钱打块板也可以啊):
▲ 极简的电路图
▲ 面包板上搭建的电路
代码也超级简单,为了能够塞到1KB的Flash存储器里面,作者做了优化,用汇编语言写成,最终的代码只有778个字节,不仅实现了游戏的功能,还能处理微控制器的I/O以及显示的通信
是不是很酷?
在Github上有开源的资源。 [2]
参考资料
[1]
700个字节的代码在ATtiny10里跑一个游戏 : https://mp.weixin.qq.com/s/gcqykDVyC8Vx_yztekMNSQ
[2]
开源小游戏RunTiny : https://github.com/ridoluc/RunTiny
如何通过单片机用键盘玩Switch游戏?
TechWeb 文 / 新喀鸦
相信有很多朋友在入手Switch游戏机之前都是在玩电脑游戏,那么肯定有一部分玩家更习惯使用键盘而不是手柄操作。那么这时如何使用键盘玩Switch游戏呢?
首先,如果想直接将键盘连接在Switch游戏机或主机底座上是行不通的,那样直接连接的话键盘只能用于打字,不能用于游戏的操作。因为此时键盘和手柄按键之间缺乏映射关系,你在键盘上所按下的按键不能对应到手柄的按键上。而补全这种映射关系就能解决问题了,比如像市面上出售的“键鼠转换器”或者内置“键鼠转换器”功能的特殊键盘。但这两种产品价格上比较贵,而且功能上也很局限。
在这个局面下,单片机就成了一个很好的解决方案。单片机价格便宜,而且可以通过编程扩展很多功能。
第一步*选择合适的单片机开发板
单片机又称微控制器(MCU),是将单片机主机(CPU、内存和I/O接口)集成在一小块硅片上的微型机。具有三个优势(集成度高、可靠性高、性价比高)。
单片机开发板是一种非常适合单片机学习者以及单片机工程师使用的一种硬件,在开发板上除了单片机芯片以外,一般还会配有各种I/O接口、传感器、点阵显示屏等“外部硬件资源”。
而选择一款合适的单片机开发板,一是要看单片机芯片的各种技术指标,二是要看开发板配备的“外部硬件资源”。
单片机的技术指标一般可以重点看以下四个方面:
字长:例如8位、16位、32位
内存容量:例如8K、64K、16M
运算速度(时钟频率):例如6MHz、12MHz、24MHz
内存存取周期:例如:50nS 、70nS
“而外部硬件资源”则是看开发板提供的接口以及传感器等,比如在一些比较复杂的项目中会用到较多的输入输出引脚,那这种时候就需要选择引脚较多的单片机开发板。
另外在实际的单片机项目中,成本是一个非常重要的考量因素。在单片机选用时往往会优先选择性能勉强够用,但性价比很高的型号。
最终在本次项目中选用了Teensy++ 2.0单片机开发板。
第二步*连接单片机开发板
对于一款陌生的单片机开发板,最快了解它的方法就是去官网查相关资料,这些资料包括但不限于引脚定义、各引脚所能承受的最大电压。
其实也可以从论坛获取相关型号单片机开发板的使用经验,不过论坛上的信息有些会存在一些错误,需要注意甄别。
以上为Teensy++ 2.0单片机开发板的引脚定义图,我们可以按照图上的引脚定义将单片机开发板与下载器等设备连接起来。
连接结果如上图所示
第三步*自己编程或者寻找可用的开源代码
单片机芯片是需要程序和代码来实现功能的,所以我们需要自己开发或者寻找可用的开源代码。
如果不打算自己开发全部内容,准备使用开源程序的话。建议在一开始选择单片机开发板时就考虑相关问题,同样的程序在不同型号的单片机上可能效果会不同。所以这种情况在最初选择单片机时最好直接选择原开发者所采用的单片机型号或是兼容型号,以免未来调试过程中出现麻烦。
最终在本次项目中选用了“伊机控”这款开源程序,以此为基础进行相应开发。
第四步*学习相应的编程语法
如果以开源程序为基础进行开发,则需要仔细阅读开源程序的说明文档。这些程序中会详尽说明开源程序所构筑的特殊语法、函数等内容。
“伊机控”的“简单语法”可以分成6个部分,分别为:注释、输出、按键、摇杆、等待、循环。
熟悉编程的朋友可能注意到了,即使仅依靠这六种语法就已经能构筑出一些自动化操作的指令了。
而在进阶部分还有例如:常量、变量、条件分支、逻辑运算、栈操作等更为复杂的语法功能。
在一些游戏中会有一些重复性的操作,比如刷道具、刷精灵。在人工刷道具的时候,其实操作也就是反反复复那几种。而使用了单片机后,这种步骤则可以通过单片机自动进行了。
第五步*安装驱动并烧录程序
单片机的下载器其实是一个很古老的电子产品了,因此在很多电脑上是需要手动安装驱动的。很多新手明明连接没问题,但插上就是没反应,原因也在于此。没有驱动的话,下载器是不能正常工作的。
而对于单片机的烧录一般需要用到单片机厂商提供的程序,Teensy++ 2.0所用的就是teensy.exe进行烧录。
在完成烧录后我们就可以测试我们自己的代码功能了。
相关问答
基于51 单片机 的 游戏 程序设计1.基本功能实现如下 游戏规则 :(1)...[最佳回答]你的功能都可帮实现的
掷骰子 游戏 该怎么用 单片机 做?就是产生一个随机数,随机数的产生,可以借用别人的随机函数代码,也可以通过高速自加1,中断采样的方式产生“伪随机数”,比如主程序中可以让一个变量i不停地从...
万博app下载(官方)官方版要使用某一通讯方式,单片机和电脑必须具有相应的通讯接口,个人电脑一般有RS232、USB、以太网、蓝牙等通讯方式。假设使用RS232通讯,电脑自带有RS23...
单片机 应该怎么学?c语言基础不好,不知道从何入手?说一下我学习AVR单片机的过程吧,从这个过程中也许会给一些单片机初学者一些启示。第一阶段:知识准备在学习AVR单片机之前,我对单片机已经有所了解,并且写过...
华体会hth(官方)最新下载IOS//手机版APP_微思🍇华体会hth😚支持:64/128bit🎆为用户提供腾讯软件下载推荐、腾讯软件有哪些,下载腾讯软件地址、腾讯游戏软件、腾讯社交软件、腾讯视频软件、腾讯安全软件和腾...
51 单片机 +一个开关控制三个灯+开关按下三个灯都亮+抬起都撇...OK,可/以/解/决。
必威betway欢迎您(官方)最新IOS//手机版APP下载_微思👽是一家备受瞩目的体育平台,🐻提供丰富多样的体育赛事和刺激的游戏体验。如果您想加入必威betway欢迎您的大家庭,参与其中的乐趣,本文将为您详细介绍必威b...
英亚乐冠APP下载(官方)网站/网页版登录入口/最新下载_微思🐇是一家备受瞩目的体育平台,🤎提供丰富多样的体育赛事和刺激的游戏体验。如果您想加入英亚乐冠APP下载的大家庭,参与其中的乐趣,本文将为您详细介绍英亚乐...
天天娱乐welcome大厅(中国)官方网站·IOS/APP下载/APP_微思🚰是一家备受瞩目的体育平台,🚅提供丰富多样的体育赛事和刺激的游戏体验。如果您想加入天天娱乐welcome大厅的大家庭,参与其中的乐趣,本文将为您详细介绍天...
快3大小单双平台下载(官方)最新IOS//手机版APP下载_微思快3大小单双平台下载下载简介快3大小单双平台下载APP,现在下载,新用户还送新人礼包.快3大小单双平台下载很有童趣味道的经营类休闲游戏,玩家在游戏中需要帮助马...