樂高單片機刷卡機制作,用單片機做一個游戲機
網(wǎng)上關(guān)于樂高單片機刷卡機制作,用單片機做一個游戲機的刷卡知識比較多,也有關(guān)于樂高單片機刷卡機制作的問題,今天第一pos網(wǎng)(www.yadikedp.com)為大家整理刷卡常見知識,未來的我們終成一代卡神。
本文目錄一覽:
樂高單片機刷卡機制作
前言:上次的測評結(jié)束后一直想利用板載的 ATMEGA328P 做個完整的應(yīng)用,但是最近的工作和生活都不如意,一直抽不出時間,一晃就到這個時候了。心情也是一如昨天的天氣,但是剛好有時間了,那就做點有意思的事情。畢竟拿到這樣一塊板子也不容易,既然活動能夠給我發(fā)過來,那我也是該盡力而為,也算是投桃報李。
1、界面演示
Arduino 對328p的支持也挺好,剛好在論壇看到一個帖子,使用arduiboy的庫寫了個小游戲,看了下很有意思的。而且連芯片都是一樣的,甚至連移植都不需要。有一塊328p的處理器,再加上一塊OLED12864就OK了。
接下來給大家看看運行中的界面,還是挺有意思的。想想那會在學(xué)校在proteus上找打一個51單片機的仿真,記得當時做的是萬年歷,足足高興了一周。想想現(xiàn)在日漸消沉的心態(tài),越發(fā)得懷念大學(xué)。
開始界面===
運行界面1===
開始界面2===
游戲的操作就和以前的小霸王上的 炸彈人 是一樣的,上下左右控制小人的方向;一個A鍵,一個B鍵,A鍵投彈,B鍵暫時擱置,你也可以把這個鍵編程為暫?;蛘咄稄?。只是游戲的難度可能要小一點,趣味性不足真正的 炸彈人,每一關(guān)的過關(guān)標準只要炸死一個怪物就行。但是,若是想學(xué)習在單片機上的游戲編程,這個選擇非常不錯,邏輯簡單,電路清晰,并且直觀呀。
程序的注釋也是非常詳細的:
/*=========================================================
主菜單
=========================================================*/
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("[email protected]"));
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、電路的設(shè)置以及修改
整個電路的設(shè)計參照Arduboy,這是一個開源項目,設(shè)計的這塊辦卡大小僅相當于信用卡。 裝有經(jīng)典的8位游戲,我們可以在官網(wǎng)的開源中下載相關(guān)的游戲編譯通過之后,下載到我們的板子。但是,注意一下哦,這里的主控是 Atmega32U4 ,在使用我們的DFRobot藍牙控制器 做主控時使用我附件提供的庫文件 Arduboy2 。
具體的電路設(shè)置參考 Arduboy2 文件夾中的電路,為了大家查看方便,我已經(jīng)在附件 原理圖 單獨提取出來了。電路中中特別重要的是6個按鍵和IIC通信的OLED12864,其他的什么晶振電路,復(fù)位都不用管,實際采用的電路如下,需要修改的地方已經(jīng)用藍色筆畫出來了:
根據(jù)我們的模塊來看,其中有兩個地方需要修改。其中的D3和D4的功能是作為我們游戲機的按鍵,現(xiàn)在連接了藍牙模塊的引腳。D3我沒有試過,D4連接到藍牙模塊的時候,游戲開始的時候,上下鍵都沒有反應(yīng)。所以我干脆一不做二不休,將兩個電阻都挑開了。但是來到咱們板子上找電阻的時候,上面沒有標號的絲印。這也不難,將萬用表打到蜂鳴器檔位,然后從ATMEGA328P 的PIN1和PIN32定位到電阻,然后挑開。為了保險只是將上面的兩個電阻挑開,沒有直接拆掉是為了下次需要的時候再接上:
現(xiàn)在只需要加上OLED屏就行,然后加上我們的按鍵。我找了一塊以前的洞洞板做了個小小的固定,隨便焊接的,有點丑,但是不影響使用。焊接按鍵的時候需要注意,焊接完成后開機試試,這個時候玩游戲若是沒問題,那是最好。否則,在GND上插上一根跳線,然后在各個引腳上一路掃過來,確定這個按鍵。當然,優(yōu)先參看原理圖。
按鍵===
OLED12864===
3、程序的導(dǎo)入以及下載
程序的下載鏈接:GITHUB:https://github.com/createskyblue/Bomberman
首先編譯程序,在沒有庫文件的情況下會報錯。這里不是導(dǎo)入官方的Arduboy2 庫 ,上面介紹Arduboy 就說了注意事項,這里兩者的芯片不一樣,這里導(dǎo)入我給的庫。找到帖子中提到的 Arduboy2庫,然后將 Arduboy2 到自己 arduino IDE的庫里面,庫的位置可以使查看編譯的輸出信息。比如,我的庫位置:C:\\Users\\Administrator\\Documents\\Arduino\\libraries。
然后直接打開 工具 對自己的開發(fā)板進行設(shè)置,這里不設(shè)置為Pro mini,而是設(shè)置為 nano,8MHZ,3.3V(頻率和手冊里面的數(shù)據(jù)一樣),因為可能會出現(xiàn)不能下載的情況下,記得勾選 old bootloader ,然后再下載。如果選擇Pro mini 下載DFRobot藍牙控制器 官網(wǎng)下的文件可以,這里卻不行,具體的原因我也不清除,反正試了很多遍,感覺這個設(shè)置比較靠譜就推薦給大家了。
上傳成功===
結(jié)語:
若是在程序改寫中有疑問,可以聯(lián)絡(luò)源程序作者:https://www.arduino.cn/thread-81825-1-1.html
細水長流,江湖再見。
需要所有源資料的同學(xué),私信我:ATMEGA328P + 洞洞板:arduiboy游戲機。
以上就是關(guān)于樂高單片機刷卡機制作,用單片機做一個游戲機的知識,后面我們會繼續(xù)為大家整理關(guān)于樂高單片機刷卡機制作的知識,希望能夠幫助到大家!

轉(zhuǎn)載請帶上網(wǎng)址:http://www.yadikedp.com/shuaka/46476.html