聚豐項(xiàng)目 > 基于STM32的打地鼠游戲設(shè)計(jì)
本作品是在stm32開發(fā)板上開發(fā)了我們常見得一款游戲——打地鼠,用了一塊7寸的電容觸摸屏作為顯示和操作界面,用STM32作為主控平臺(tái),并在游戲中加入了各種音效,可以作為非常有趣味的一個(gè)學(xué)習(xí)項(xiàng)目。
1413909
1413909
團(tuán)隊(duì)成員
薛海瑞 學(xué)生
本作品主要包括的硬件主要有STM32開發(fā)板,MP3音頻播放模塊,7寸帶觸摸功能的液晶屏,分別負(fù)責(zé)任務(wù)調(diào)度及控制,音頻解碼及播放,界面顯示及人機(jī)交互。下面分別進(jìn)行介紹:
1.STM32主控板
主控版采用的芯片型號(hào)為STM32F401,使用高性能的ARM? Cortex?-M3 32位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲(chǔ)器(高達(dá)128K字節(jié)的閃存和20K字節(jié)的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號(hào)的器件都包含2個(gè)12位的ADC、3個(gè)通用16位定時(shí)器和1個(gè)PWM定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個(gè)I2C接口和SPI接口、3個(gè)USART接口、一個(gè)USB接口和一個(gè)CAN接口。
這里我們用到了stm32的spi接口與音頻模塊進(jìn)行通信,單片機(jī)先讀取SD卡中的mp3音頻文件,然后通過 SPI 口向 VS1053音頻模塊不停的輸入音頻數(shù)據(jù), 它就會(huì)自動(dòng)幫我們解碼了,然后從輸出通道輸出游戲的背景音樂。
主控芯片原理圖如下:
2.音頻解碼模塊
解碼芯片用的是VS1053,VS1053 是繼 VS1003 后荷蘭 VLSI 公司出品的又一款高性能解碼芯片。該芯片可以實(shí)現(xiàn)MP3/OGG/WMA/FLAC/WAV/AAC/MIDI 等音頻格式的解碼,同時(shí)還可以支持 ADPCM/OGG 等 格式的編碼,性能相對(duì)以往的 VS1003 提升不少。VS1053 擁有一個(gè)高性能的 DSP 處理器核 VS_DSP,16K 的指令 RAM,0.5K 的數(shù)據(jù) RAM,通過 SPI 控制,具有 8 個(gè)可用的通用 IO 口和 一個(gè)串口,芯片內(nèi)部還帶了一個(gè)可變采樣率的立體聲 ADC(支持咪頭/咪頭+線路/2 線路)、一 個(gè)高性能立體聲 DAC 及音頻耳機(jī)放大器。
VS1053 通過 SPI 接口來接受輸入的音頻數(shù)據(jù)流,它可以是一個(gè)系統(tǒng)的從機(jī),也可以作為獨(dú) 立的主機(jī)。這里我們只把它當(dāng)成從機(jī)使用。
電路原理圖如下:
3.7寸液晶串口屏
本作品的顯示界面用了一塊7寸的HMI串口液晶屏,這種串口屏具有界面設(shè)計(jì)簡單,交互性好,使用方便的特點(diǎn),且它使用usart進(jìn)行與主控版進(jìn)行通信,便于控制部分與顯示部分獨(dú)立進(jìn)行調(diào)試,也便于通信協(xié)議的制定,本作品便是利用這一優(yōu)點(diǎn)進(jìn)行了設(shè)計(jì)。
界面設(shè)計(jì)如下圖所示:
本作品的軟件部分主要分兩部分,一部分即為主控這邊的音頻文件讀取與播放并且與串口屏的通信,另一部分即為串口屏圖形界面的設(shè)計(jì),所以下面分兩部分進(jìn)行介紹。
1.stm32主控程序說明
stm32先初始化相應(yīng)的系統(tǒng)時(shí)鐘,spi通信端口及usart通信口,然后根據(jù)串口屏發(fā)來的命令播放相應(yīng)的背景音樂,串口屏依據(jù)不同的情況發(fā)送不同的命令到單片機(jī),使其切換不同的音效。
流程圖如下:
2.串口屏界面設(shè)計(jì)
界面設(shè)計(jì)時(shí)主要結(jié)合了串口屏的特點(diǎn),充分利用了串口屏實(shí)現(xiàn)各種控件的便利性,再結(jié)合屏幕要實(shí)現(xiàn)的人機(jī)交互的具體功能,比如游戲中背景圖片的切換,游戲效果的展現(xiàn)等,按如下流程設(shè)計(jì)了一套游戲界面。
luckypp: jzsdvjssandfjf
回復(fù)
lml9910: 怎樣聯(lián)系您呢?想進(jìn)一步咨詢合作
回復(fù)
mjin545: 游戲里面用的什么開發(fā)語言?
回復(fù)
電子一小時(shí): 厲害
回復(fù)
snollp: 不錯(cuò),厲害
回復(fù)
鑫朗動(dòng)漫: 我做兒童游戲機(jī)的,請(qǐng)聯(lián)系我QQ765078860.英雄有用武之地。
回復(fù)
歐陽佳展: 哈哈,這個(gè)用的不是正點(diǎn)原子的開發(fā)板嗎
回復(fù)
zts329547875: HMI串口液晶屏,貴不貴呀
回復(fù)
蘇眉12: 可以看一下程序嗎
回復(fù)
微風(fēng)涼: 怎么聯(lián)系你呢?
回復(fù)
末等先生: 你好 可以聯(lián)系嘛
回復(fù)