• 应战美国贸易战中国跟500亿 同等力度、同日开征关税 2019-07-12
  • 专家谈当前市场预期 信心持续攀升预期比较乐观 2019-07-02
  • SNH48年度总决选速报结果公布 李艺彤登顶 2019-07-02
  • 也门国防部说打死250名胡塞武装人员 2019-06-25
  • 高雅艺术进海淀创业园之合唱艺术赏析音乐会 2019-06-25
  • 端午话药浴:探秘藏东山谷里的藏药浴 2019-06-08
  • 美法院判处杀害中国女留学生的凶手25年监禁 2019-06-08
  • 国产动画电影:如何才能化平庸为经典? 2019-05-31
  • 县名解析:晋中介休市地名来历 2019-05-31
  • 广州拟增38家长护险机构 白云海珠分布最多 2019-05-30
  • 不忘初心、牢记使命、永远奋斗——学习贯彻落实党的十九大精神“基层调研行” 2019-05-24
  • 【波士瑞达奔驰车型报价】波士瑞达奔驰4S店车型价格 2019-05-24
  • 滚滚而来的温暖!山坡上滚下万斤爱心榨菜头 2019-05-20
  • 【新时代 新作为 新篇章】“煤老大”渐行渐远 新动能清风徐来 2019-05-12
  • 搂住所言延退对于企业和零活就业者或专家型科技工作者而言很恰当,可是对于公务员这一群体来说延退可能导致利益固化行政僵化,这是普罗大众不能够容忍的。 2019-05-06
  • > Arduino
    查看: 2242|回复: 8
    打印 上一主题 下一主题

    [项目分享] GameBuino游戏机制作分享

    [复制链接]
    本帖最后由 FishGan 于 2018-12-30 12:57 编辑

    ---------------------放图镇楼-------------------

    ---------------------开场唠叨-------------------
    在网上瞎逛的时候偶尔看到了一个项目
    叫做GameBuino
    在百度上搜索一下,发现有不少人做过
    但是都缺乏详细的过程和指南
    自己尝试制作也遇到了各种问题果断科学上网用谷歌,还算顺利地解决了
    特别在此把完整的过程和资料分享出来

    ---------------------材料准备-------------------

    ArduinoNano                 x1
    15pin排母                       x2
    Nokia5110液晶屏           x1
    SD(或者TF)卡???nbsp;      x1
    2G或以下容量SD/TF卡    x1
    按键&按键帽                   x7
    蜂鸣器(或者小喇叭)     x1
    NPN型三极管                  x1
    1K电阻                            x4
    510Ω电阻                        x3
    光敏电阻                          x1
    100K电阻                         x1
    1N4148二极管                 x1
    洞洞板                              x1
    电源插座                          x1
    导线若干

    说明:(红字是关键,别的没兴趣看就略过吧)
    1、原设计使用的是ATMega328P-AU,也就是Arduino Nano同款处理器,而Arduino UNO使用的是ATMega328P-PU
    这里要说一个很坑的地方,328P的AU和PU除了封装不同以外(一个贴片,一个直插),功能上也有差异
    具体来说,AU多了A6和A7这两个通道,但是这俩通道只能作为模拟输入,并没有数字输入/输出功能
    由于在GameBuino里面,使用到了A7通道,因此必须要使用Nano
    但是UNO也不是不可以,需要修改BootLoader的源码并重新编译

    2、建议使用洞洞板制作,一方面是nano的5V和GND引脚不太够用
    另一方面是电路有点复杂,如果用杜邦线到处飞线真的是惨不忍睹
    别问我怎么知道的,我才不会说我这么干了然后放弃了

    3、整体的布局和使用的按键大小大家可以根据自己的喜好来
    在我的设计中,方向键和AB键是常用的游戏操作按键,因此使用了12*12的按键并配以按键帽
    而C键是功能按键,在正常游戏过程中使用度不高,为避免误按我使用了6*6的小按键并且藏在了不太容易按得到的位置

    4、程序会生成音频信号的,因此可以用无源扬声器(也就是普通的小喇叭)
    建议用16欧姆或者更高阻抗的,阻抗太小的话,工作电流太大,就需要配更大的三极管
    而且如果布线不好的话,可能引入较大电源噪声导致处理器工作不稳定
    如果一定要用小阻抗的,可以串联一个电阻
    当然也可以直接用蜂鸣器,就是出来的声音总有些奇怪,不如小喇叭好

    5、NPN三极管随意选择,8050,9013一类的都行,只要集电极电流大于喇叭需要的电流就行
    (大不了管子冒烟了再换个大点的就是了哈哈哈哈)

    6、由于Arduino读取存储卡的限制,最大只支持2G的卡,而且需要将存储卡格式化为FAT格式才行。

    7、电源插座自己可以随意选择,我用的是XH2.54插座,用DC或者别的插座也行的。
    由于我没有板载稳压器,因此输入电压必须是5V
    而Arduino板载的稳压器电流有点小,不一定带的动扬声器
    如果不方便使用5V电源(例如只有2S或者3S锂电池环境)
    可以自己在洞洞板上加一片7805(记得加电容哦),这样就可以使用比较高电压的外部电源了~

    8、如果仔细看了我的图,会发现我用了16pin排母
    因为刚好15pin的用完了Orz
    用16pin的话一定要当心不要插错位置
    如果插错。。恭喜你,Arduino冒烟成就+1

    ------------------接线方法(原理图)-----------------------

    1、5110液晶屏和SD卡都是使用SPI总线的,共用SCK,MISO,MOSI这三个引脚
    2、存储卡是工作在3.3V的,所以从单片机输出的信号必须经过分压才可以接至存储卡,否则会有损坏存储卡的风险
    3、给SD卡分压的两个电阻,阻值不必拘泥于我给的数值,只要是能够将5V分压到3.3V左右的都行(实际只要小于3.6就行)
    例如,1K和2K组合,5.1K和10K组合等等(就是大约1:2的阻值比)
    两者的和不要太大或者太小,在几十K到几K的范围内都行
    4、有一些SD卡???,已经自带分压功能了(例如DF商城里的那款),那就不需要分压电阻了~
    只需要把引脚接到对应IO上就行,也可以使用5V供电
    图上的电路是我实际用的,并没有分压,因此必须外接电阻,而且供电电压必须是3.3V
    因此使用前请务必确认好,以免导致sd卡烧毁或者电压过低工作不正常
    5、如果使用小喇叭,必须接二极管,用蜂鸣器则不需要
    在图上两种电路我都画了,二选一即可
    此处省略n多字的焊接布线返工过程
    差不多做完就是酱紫的




    ----------BootLoader烧写---------------
    这是一个非常隐蔽的坑,我折腾好久才发现这个坑GameBuino需要用自己的BootLoader,而不是Arduino的默认BootLoader但是不要担心,GameBuino的BootLoader仍然支持ArduinoIDE直接从串口烧写程序
    事实上各种游戏也可以通过这种方法加载进去
    好了来讲一下具体操作方法下载后面的附件,解压以后,有一个叫gamebuino_boot的文件夹
    将整个文件夹复制到Arduino安装目录/hardware/arduino/avr/bootloaders路径下
    如下图所示

    哦如果是Arduino1.0.5的用户,我建议升级环境
    实在不想升级的话。。路径稍微有点不一样,自己找一下吧
    反正让这个文件夹和别的BootLoader排排坐放一起

    然后打开上一级目录下的boards.txt文件,在文件末尾加入以下代码并保存
    [Bash shell] 纯文本查看 复制代码
    gamebuino.name=Gamebuino
    gamebuino.upload.protocol=arduino
    gamebuino.upload.maximum_size=30592
    gamebuino.upload.speed=115200
    gamebuino.bootloader.tool=avrdude
    gamebuino.bootloader.low_fuses=0xff
    gamebuino.bootloader.high_fuses=0xda
    gamebuino.bootloader.extended_fuses=0x05
    gamebuino.bootloader.file=gamebuino_boot/gamebuino_boot.hex
    gamebuino.bootloader.unlock_bits=0x3F
    gamebuino.bootloader.lock_bits=0x0F
    gamebuino.build.mcu=atmega328p
    gamebuino.build.f_cpu=16000000L
    gamebuino.build.core=arduino
    gamebuino.build.variant=standard


    然后就可以打开ArduinoIDE,你会发现你的开发板选项里多了GameBuino

    然后选择这个板卡,并选择烧录BootLoader
    具体的烧录操作我就不多说了
    可以参考社区里的另一个帖子
    //www.260lu.com/forum.p ... ighlight=bootLoader
    顺便说一下,有USBASP的小伙伴也可以用的~

    烧好bootLoader以后,把附件里Gamebuino-Games-Compilation文件夹里的内容复制到SD卡之中
    注意是内容直接复制,不要保留文件夹
    然后就可以上电啦~不出意外的话,就可以看到和我一样的界面了

    然后就愉快的摸索吧~
    反正玩崩了重新烧一遍BootLoader,重新格式化一遍SD卡就是了

    ------------------------游戏开发环境准备----------------------
    当然啦,爱折腾的小伙伴们肯定不满足于这么点游戏
    GameBuino提供了库可以自己开发游戏
    开发好的游戏,可以直接用串口烧录到板卡上
    也可以将编译出来的hex文件放到sd卡上然后运行
    具体的库也在附件里,Gamebuino_Classic.zip文件,无需解压
    直接在ArduinoIDE里,项目---加载库----添加zip库
    然后选择这个文件就行了~
    剩下的自行摸索吧hhhhh
    顺便说一下,在GameBuino社区里,能找到不少游戏源码
    但是注意一下,我们这款是Classic,不是META
    META是基于Arduino DUE同款处理器的,硬件上有很大不同
    我正在研究自制META,大家期待一下我下一篇帖子吧~

    -------------------一些其他说明---------------------
    1、关于BootLoader工作原理的说明
    这个专用的BootLoader实际上是在Arduino本来的BootLoader上增加了一个SD卡读取的功能
    并且提供了一个选择游戏的界面
    当你选择了一个游戏之后,BootLoader会将SD卡中对应的hex文件烧写进Flash之中,然后执行
    因此通过ArduinoIDE也能直接烧写游戏进去,和从SD卡加载并无差别的
    2、我给本项目做了心愿单了,大家可以直接愉快的去买买买了!
    需要说一下,DF的商城里没有Nokia 5110屏幕,自行淘宝解决吧
    心愿单里的喇叭也是自带功放了,就不需要用三极管了~直接把信号线接到D3上就行
    3、还是老生常谈,大家自己研究着玩,不得商用!
    欢迎转载,注明出处及作者FishGan就好~












    gamebuino资料包.rar

    522.41 KB, 下载次数: 51, 下载积分: 创造力 -1

    沙发

    bum1AMmm  学徒

    发表于 2019-1-2 09:59:46

    很好非常好很好非常好很好非常好很好非常好很好非常好很好非常好很好非常好很好非常好很好非常好很好非常好很好非常好很好非常好很好非常好
    板凳

    gray6666  高级技匠 来自手机

    发表于 2019-1-2 21:47:17

    FishGan 发表于 2018-12-30 12:43
    ---------------------放图镇楼-------------------

    ---------------------开场唠叨-------------------

    赞。。。。。。。。。。。。
    地板

    laai  见习技师

    发表于 2019-1-3 15:22:37

    是能玩游戏吗?如有视频就好了
    5#

    FishGan  中级技师
     楼主|

    发表于 2019-1-4 18:28:57

    laai 发表于 2019-1-3 15:22
    是能玩游戏吗?如有视频就好了

    是能玩的,社区里有不少现成的,流畅性什么的都很不错。也可以自己开发,就是Arduino环境。视频的话,我稍后补一个~我的资料包里,就有15个游戏可以玩
    6#

    阿泰  学徒

    发表于 2019-2-19 16:57:51

    想请教一下 meta怎么制作?有教程放出吗:lol
    7#

    阿泰  学徒

    发表于 2019-2-20 08:38:05

    您好 请问什么时候放meta的教程 期待
    8#

    zzh2  学徒

    发表于 2019-5-22 20:46:22

    更改board.txt的时候,放在最后面直接报错“Error reading file (E:\work\新建文件夹\arduino-1.8.9\hardware\arduino\avr\boards.txt:0): Invalid line format, should be 'key=value'”,放在前面的时候就在烧写进板子的时候报错。怎么搞
    9#

    白舅  学徒

    发表于 2019-7-3 11:21:10

    我为什么不能下载文件?我等级太低?
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    为本项目制作心愿单
    购买心愿单
    心愿单 编辑
    wifi气象站

    硬件清单

    btnicon
    我也要做!
    点击进入购买页面
    上海智位机器人股份有限公司 沪ICP备09038501号-4

    © 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

    极速赛车预测
  • 应战美国贸易战中国跟500亿 同等力度、同日开征关税 2019-07-12
  • 专家谈当前市场预期 信心持续攀升预期比较乐观 2019-07-02
  • SNH48年度总决选速报结果公布 李艺彤登顶 2019-07-02
  • 也门国防部说打死250名胡塞武装人员 2019-06-25
  • 高雅艺术进海淀创业园之合唱艺术赏析音乐会 2019-06-25
  • 端午话药浴:探秘藏东山谷里的藏药浴 2019-06-08
  • 美法院判处杀害中国女留学生的凶手25年监禁 2019-06-08
  • 国产动画电影:如何才能化平庸为经典? 2019-05-31
  • 县名解析:晋中介休市地名来历 2019-05-31
  • 广州拟增38家长护险机构 白云海珠分布最多 2019-05-30
  • 不忘初心、牢记使命、永远奋斗——学习贯彻落实党的十九大精神“基层调研行” 2019-05-24
  • 【波士瑞达奔驰车型报价】波士瑞达奔驰4S店车型价格 2019-05-24
  • 滚滚而来的温暖!山坡上滚下万斤爱心榨菜头 2019-05-20
  • 【新时代 新作为 新篇章】“煤老大”渐行渐远 新动能清风徐来 2019-05-12
  • 搂住所言延退对于企业和零活就业者或专家型科技工作者而言很恰当,可是对于公务员这一群体来说延退可能导致利益固化行政僵化,这是普罗大众不能够容忍的。 2019-05-06
  • 美女六肖中特图杀十二 下五子棋规则 排列五走势图彩票2元网 天津时时彩走势图感觉 广东36选711057 www.福利彩票走势图 14场胜负开奖 新曾道人图库 山西11选5预测网 最老版综合资料 秒速飞艇怎么赢钱 开组三前兆 南昌棋牌游戏室内 雷州体彩七星彩走势图 广东彩票开奖查询结果