首页 » 科学 » 用单片机做一个游戏机:找到红白机的觉得_电路_蓝牙

用单片机做一个游戏机:找到红白机的觉得_电路_蓝牙

乖囧猫 2024-11-11 10:43:09 0

扫一扫用手机浏览

文章目录 [+]

1、界面演示

Arduino 对328p的支持也挺好,刚好在论坛看到一个帖子,利用arduiboy的库写了个小游戏,看了下很故意思的。
而且连芯片都是一样的,乃至连移植都不须要。
有一块328p的处理器,再加上一块OLED12864就OK了。

用单片机做一个游戏机:找到红白机的觉得_电路_蓝牙 科学

接下来给大家看看运行中的界面,还是挺故意思的。
想想那会在学校在proteus上找打一个51单片机的仿真,记得当时做的是万年历,足足高兴了一周。
想想现在日渐消沉的心态,加倍得怀念大学。

开始界面===

运行界面1===

开始界面2===

游戏的操作就和以前的小霸王上的 炸弹人 是一样的,高下旁边掌握小人的方向;一个A键,一个B键,A键投弹,B键暂时搁置,你也可以把这个键编程为停息或者投弹。
只是游戏的难度可能要小一点,意见意义性不敷真正的 炸弹人,每一关的过关标准只要炸去世一个怪物就行。
但是,若是想学习在单片机上的游戏编程,这个选择非常不错,逻辑大略,电路清晰,并且直不雅观呀。

程序的注释也是非常详细的:

/=========================================================

主菜单

=========================================================/

void MENU() {

bool POA = false;

while (POA == true || KeyBack != 4) {

key();

switch (KeyBack) {

case 0:

POA = false;

break;

case 1:

POA = true;

break;

case 4:

if (POA == true) {

KeyBack = 255;

arduboy.clear();

arduboy.setCursor(0, 0);

arduboy.println(F(" >About"));

arduboy.println(F(""));

arduboy.println(F("LHW programming"));

arduboy.println(F("LHW Art"));

arduboy.println(F("E-mail"));

arduboy.println(F("1281702594@qq.com"));

arduboy.println(F(""));

arduboy.println(F("Any key back..."));

arduboy.display();

delay(200);

while (KeyBack == 255) key();

delay(200);

}

break;

}

arduboy.clear();

arduboy.drawSlowXYBitmap(39, 1, START_TITLE , 87, 39, 1); //大标题

arduboy.drawSlowXYBitmap(0, 23, TITLE_TNT , 37, 41, 1); //TNT图标

arduboy.drawSlowXYBitmap(65, 58, LHW , 39, 5, 1); //作者信息

arduboy.setCursor(70, 39);

arduboy.println(F("PLAY"));

arduboy.setCursor(70, 47);

arduboy.println(F("ABOUT"));

if (POA == false) arduboy.setCursor(62, 39); else arduboy.setCursor(62, 47);

arduboy.println(F(""));

arduboy.display();

}

}

2、电路的设置以及修正

全体电路的设计参照Arduboy,这是一个开源项目,设计的这块办卡大小仅相称于信用卡。
装有经典的8位游戏,我们可以在官网的开源中下载干系的游戏编译通过之后,下载到我们的板子。
但是,把稳一下哦,这里的主控是 Atmega32U4 ,在利用我们的DFRobot蓝牙掌握器 做主控时利用我附件供应的库文件 Arduboy2 。

详细的电路设置参考 Arduboy2 文件夹中的电路,为了大家查看方便,我已经在附件 事理图 单独提取出来了。
电路中中特殊主要的是6个按键和IIC通信的OLED12864,其他的什么晶振电路,复位都不用管,实际采取的电路如下,须要修正的地方已经用蓝色笔画出来了:

根据我们的模块来看,个中有两个地方须要修正。
个中的D3和D4的功能是作为我们游戏机的按键,现在连接了蓝牙模块的引脚。
D3我没有试过,D4连接到蓝牙模块的时候,游戏开始的时候,高下键都没有反应。
以是我干脆一不做二不休,将两个电阻都挑开了。
但是来到咱们板子上找电阻的时候,上面没有标号的丝印。
这也不难,将万用表打到蜂鸣器档位,然后从ATMEGA328P 的PIN1和PIN32定位到电阻,然后挑开。
为了保险只是将上面的两个电阻挑开,没有直接拆掉是为了下次须要的时候再接上:

现在只须要加上OLED屏就行,然后加上我们的按键。
我找了一块以前的洞洞板做了个小小的固定,随便焊接的,有点丑,但是不影相应用。
焊接按键的时候须要把稳,焊接完成后开机试试,这个时候玩游戏若是没问题,那是最好。
否则,在GND上插上一根跳线,然后在各个引脚上一起扫过来,确定这个按键。
当然,优先参看事理图。

按键===

OLED12864===

3、程序的导入以及下载

程序的下载链接:GITHUB:https://github.com/createskyblue/Bomberman

首先编译程序,在没有库文件的情形下会报错。
这里不是导入官方的Arduboy2 库 ,上面先容Arduboy 就说了把稳事变,这里两者的芯片不一样,这里导入我给的库。
找到帖子中提到的 Arduboy2库,然后将 Arduboy2 到自己 arduino IDE的库里面,库的位置可以使查看编译的输出信息。
比如,我的库位置:C:\Users\Administrator\Documents\Arduino\libraries。

然后直接打开 工具 对自己的开拓板进行设置,这里不设置为Pro mini,而是设置为 nano,8MHZ,3.3V(频率和手册里面的数据一样),由于可能会涌现不能下载的情形下,记得勾选 old bootloader ,然后再下载。
如果选择Pro mini 下载DFRobot蓝牙掌握器 官网下的文件可以,这里却弗成,详细的缘故原由我也不用除,反正试了很多遍,觉得这个设置比较靠谱就推举给大家了。

上传成功===

结语:

若是在程序改写中有疑问,可以联结源程序作者:https://www.arduino.cn/thread-81825-1-1.html

细水长流,江湖再见。

须要所有源资料的同学,私信我:ATMEGA328P + 洞洞板:arduiboy游戏机。

标签:

相关文章

中国芯片能力的现状与未来瞻望_中国_芯片

一、中美芯片争霸,中国并不逊色在倪光南院士看来,芯片领域的竞争,实则是一场中美之间的较劲。他武断地认为,中国的芯片水平并不差,虽目...

科学 2025-01-21 阅读0 评论0