聚豐項(xiàng)目 > 基于stm32的真人版坦克大戰(zhàn)
還記得小霸王上面的坦克大戰(zhàn)嘛?就像兒時(shí)玩的小霸王里的坦克大戰(zhàn)一樣,本項(xiàng)目的作品”基于stm32的真人版坦克大戰(zhàn)”,可以通過手機(jī)藍(lán)牙遙控坦克自由移動(dòng),發(fā)射炮彈,坦克具有發(fā)射炮彈(射速:每秒幾發(fā),射程:十幾米)、血量檢測(cè)(受到炮彈攻擊會(huì)扣血)、撿取BUFF(炮彈升級(jí)(攻擊力翻倍)、重甲(防御升級(jí)、速度減半)、圣盾(暫時(shí)無敵))等功能。讓你重溫經(jīng)典,體驗(yàn)真槍實(shí)彈對(duì)戰(zhàn),水彈碎片四濺的對(duì)戰(zhàn)樂趣!
寂寞的only
寂寞的only
團(tuán)隊(duì)成員
張易 創(chuàng)客
真人版坦克大戰(zhàn),真的可以發(fā)出射速極高的水彈哦(每秒幾發(fā)),不要近距離直對(duì)人射擊哦,雖然是水彈,但打到人還真有點(diǎn)疼=_=。
就像兒時(shí)玩的小霸王里的坦克大戰(zhàn)一樣,可以通過手機(jī)藍(lán)牙遙控坦克自由移動(dòng),發(fā)射炮彈,坦克具有發(fā)射炮彈(射速:每秒幾發(fā),射程:十幾米)、血量檢測(cè)(受到炮彈攻擊會(huì)扣血)、撿取BUFF(炮彈升級(jí)(攻擊力翻倍)、重甲(防御升級(jí)、速度減半)、圣盾(暫時(shí)無敵))等功能。總結(jié)一下,如下圖:
然后就可以把它做出來啦,坦克長(zhǎng)這個(gè)樣子,感覺更像一個(gè)炮車啊,那個(gè)手槍就是改裝成的炮臺(tái)了,本來為了減小空間應(yīng)該把外殼拆掉的,但這玩意兒確實(shí)有點(diǎn)貴,占了整個(gè)成本的一大部分,想著做完了還能拿下來玩就干脆不拆了233333
硬件部分使用了stm32f103c8t6作為主控芯片,主要構(gòu)架如下:
代碼的主函數(shù)執(zhí)行如下:
使用硬件資源設(shè)計(jì)如下:
-----------------------------------------------------------------------------------------------------------------------------------------------------
各模塊說明:
首先是電機(jī)模塊,使用某寶很常見的減速電機(jī)即可,然后使用大家都愛用的L298N作為恒流驅(qū)動(dòng),簡(jiǎn)單又便宜,使用PWM調(diào)速即可
然后是炮臺(tái)模塊,玩電子的可以對(duì)于波箱不是很熟悉,gif穿不上,百度一下可以獲得其原理動(dòng)圖咯,為了達(dá)到電控的效果,拆開波箱的供電回路加上繼電器,然后固定再云臺(tái)上,用舵機(jī)控制就行啦,這樣就可以自由的控制開火和旋轉(zhuǎn)了。
接下來是傷害檢測(cè)模塊,lz之前一直在想如何去做打擊檢測(cè),因?yàn)榧t外線、激光檢測(cè)什么的都弱爆了,一點(diǎn)真實(shí)的打擊感都沒有,哪有真槍實(shí)彈的砰砰砰來的爽快,最終lz從震動(dòng)檢測(cè)、加速度計(jì)、壓力傳感器中選擇了較為穩(wěn)定的加速度計(jì),用亞克力板子做出了一個(gè)裝甲雛形,把MPU6050固定再亞克力板子上,穩(wěn)定實(shí)現(xiàn)了打擊檢測(cè),不得不說亞克力大法好啊,雖然時(shí)間有限,做的丑了點(diǎn),但畢竟能快速實(shí)現(xiàn)不是?如下圖,當(dāng)然為了美觀,可以設(shè)計(jì)造型,四周都圍上,反正原理都一樣,這里材料有限,就做了一面
嗯,最后怎么能少的了吃BUFF呢?想當(dāng)年玩坦克大戰(zhàn),lz一路吃星星升級(jí)成雙連發(fā)小鋼炮,感覺真是爽炸了。所以我們的真人版坦克大戰(zhàn)也必須得能吃BUFF,嗯,就可以使用RFID射頻檢測(cè)來做,就是那種食堂飯卡,把卡片放在地上,坦克下安裝射頻檢測(cè)模塊,就可以實(shí)現(xiàn)這個(gè)功能啦
軟件部分包含了APP開發(fā)和MCU編程,首先上整體構(gòu)架圖
畢竟是遙控坦克,上位機(jī)和下位機(jī)的通信通過藍(lán)牙來進(jìn)行,那么通信協(xié)議是必須要設(shè)定好的,沒錯(cuò),就是給上位機(jī)和下位機(jī)設(shè)定好血量、BUFF信息,控制信息的交互,畢竟接口什么的得首先定好嘛。
嗯,然后就是APP的開發(fā)了,使用eclipse,用java敲代碼就行了,主要是實(shí)現(xiàn)藍(lán)牙通信+信息顯示+按鍵控制等功能
然后就是MCU編程咯,相信做電子的都很熟悉了,keil下敲c代碼,主要是各種模塊,如PWM,定時(shí)器,串口通信,各種電機(jī)和傳感器的綜合使用了,感覺比較復(fù)雜的就是各種中斷的優(yōu)先級(jí)和時(shí)序的問題了,畢竟是單片機(jī)嘛,為了節(jié)約成本,引腳比較少(48個(gè)),想用什么外設(shè)都得省著點(diǎn)用=_=#
嗯然后這里放幾張APP開發(fā)的圖片吧,第一張是eclipse下的開發(fā)時(shí)的截圖,第二張時(shí)剛打開APP時(shí)和坦克藍(lán)牙連接的選項(xiàng),第三張是進(jìn)入操作界面,對(duì)抗開始時(shí)的操作界面,左上方是血條,實(shí)時(shí)顯示坦克的血量,血條下面是裝備槽,顯示撿到的BUFF的信息,右上角是調(diào)試信息,可以忽略,左下角四個(gè)箭頭用來控制坦克底盤的前后左右移動(dòng),右下角控制炮臺(tái)的云臺(tái),左右控制炮臺(tái)的旋轉(zhuǎn),上下可以上炮臺(tái)快速?gòu)?fù)位,對(duì)于喜歡秀操作的,完全可以移動(dòng)中轉(zhuǎn)動(dòng)瞄準(zhǔn)射擊咯,中間的火焰標(biāo)志是"開火"按鈕,支持長(zhǎng)按連射,射速有點(diǎn)快的。
演示條件有限,炮彈射速比較快,可以多看幾遍咯,見諒。在真槍實(shí)彈對(duì)戰(zhàn)、水彈碎片飛濺的環(huán)境下重溫一把坦克大戰(zhàn)的感覺是不是很有趣?
上位機(jī)APP:
下位機(jī)坦克:
rarara: 好厲害 !!
回復(fù)
一步一步123: 看上去很牛
回復(fù)
動(dòng)心忍性1234: 您好我是無線電雜志的編輯,我們對(duì)您的項(xiàng)目十分感興趣,請(qǐng)問您有興趣投稿嗎?成為我們的作者除稿費(fèi)外還有其他優(yōu)厚條件。敬請(qǐng)參與。投稿請(qǐng)聯(lián)系QQ260534978.
回復(fù)
翼龍40: 好項(xiàng)目
回復(fù)