精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>簡單的音樂游戲構(gòu)建

簡單的音樂游戲構(gòu)建

2023-06-20 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

在考慮 H07R30 揚(yáng)聲器模塊的演示項(xiàng)目時(shí),我想到了構(gòu)建一個(gè)簡單的音樂游戲!該模塊播放的音符很少,您必須通過附帶的按鈕重復(fù)曲調(diào)。如果您的回答正確或錯(cuò)誤,演講者會(huì)回復(fù)您!該游戲的編碼和播放都很有趣,并向您展示了播放音樂曲調(diào)以及存儲(chǔ)和播放嵌入式 WAVE 文件的示例。

細(xì)節(jié)

按鈕焊接到模塊端口(P1 到 P5)。單擊按鈕,觸發(fā)播放特定的音符。游戲有兩種模式,您可以通過按住連接到 P5 的按鈕 2 秒來循環(huán)切換它們。每當(dāng)請(qǐng)求模式更改時(shí),模塊都會(huì)閃爍其 LED 指示燈并讀出模式名稱:

  • 播放模式:在此模式下,模塊連續(xù)播放幾個(gè)音符。停止播放后,您需要在 10 秒內(nèi)按下正確的按鈕以重現(xiàn)完全相同的音符(注意您不需要匹配音符時(shí)間)。如果成功,模塊會(huì)閃爍其 LED 并回復(fù)“正確”,如果失敗,模塊會(huì)回復(fù)“錯(cuò)誤”。之后游戲再次重復(fù)。
  • 學(xué)習(xí)模式:在此模式下,您可以單擊一個(gè)按鈕來聆聽其關(guān)聯(lián)的音符并記住它。

游戲難度級(jí)別會(huì)增加您在會(huì)話中猜出的正確答案。難度級(jí)別由音符數(shù)量及其時(shí)間控制。

查看正在運(yùn)行的游戲!

?

它是如何工作的?

該項(xiàng)目的最后一部分列出了創(chuàng)建和嵌入波形文件的分步指南。完成后,您就可以開始編寫您的游戲了!項(xiàng)目文件附在代碼部分。這是固件功能的高級(jí)描述。

FronEndTask 中超級(jí)循環(huán)之前的第一部分處理初始化。我們定義了所有按鈕,將它們與點(diǎn)擊事件和 P5 的按下 2 秒事件相關(guān)聯(lián),并播放啟動(dòng)芯片曲調(diào)!然后我們初始化超時(shí)定時(shí)器

?

?
poYBAGOpdN6AHiS6AAFVSw4HVWU673.png
?

?

在超級(jí)循環(huán)中,我們驗(yàn)證模式是播放并且計(jì)時(shí)器已經(jīng)過期,然后我們檢查玩家是否輸入了所有正確的音符。然后,我們播放適當(dāng)?shù)牟ㄐ挝募琇ED 閃爍。如果答案成功,我們將難度級(jí)別增加一個(gè)。

?

?
pYYBAGOpdOCAa1YSAADaZJsM2_s541.png
?

?

然后我們初始化所有序列并生成新的挑戰(zhàn)曲調(diào)。

?
pYYBAGOpdOKAYxJgAABtw8ornGA756.png
?

?

挑戰(zhàn)曲調(diào)由 1 到 5 的隨機(jī)序列生成(與端口 P1 到 P5 上的按鈕相匹配)。序列中的音符數(shù)量和音符之間的延遲受難度級(jí)別除以 5 的影響。每個(gè)音符也會(huì)在其生成后播放一次。

?

?
pYYBAGOpdOeAOO4jAAClOYLX9Xo739.png
?

?

負(fù)責(zé)播放音符的函數(shù)只是播放對(duì)應(yīng)于每個(gè)端口號(hào)的特定音符。請(qǐng)注意,匹配端口和音符完全取決于您。

?

?
poYBAGOpdOmAKKtvAACEzlIaZpo211.png
?

?

最后我們有按鈕事件的回調(diào)。單擊回調(diào)播放與此按鈕關(guān)聯(lián)的任何音符并將此音符添加到播放器序列。一旦序列計(jì)數(shù)達(dá)到挑戰(zhàn)筆記的計(jì)數(shù),超時(shí)計(jì)時(shí)器將重置以在大約 2 秒內(nèi)觸發(fā)結(jié)果檢查。

按鈕按下回調(diào)在播放訓(xùn)練模式之間循環(huán)。請(qǐng)注意,此事件是一個(gè)閉鎖事件。因此,您需要使用resetButtonEvent() API 手動(dòng)重置它,否則它會(huì)一直觸發(fā)。

?
pYYBAGOpdOyAYi2CAAEj8oWjtQY333.png
?

?

在模塊中嵌入 WAVE 文件

我們可以使用模塊 MCU Flash 存儲(chǔ)器來存儲(chǔ)一些短的 WAVE 聲音文件。可用空間太小,因此您只能存儲(chǔ)幾秒鐘,但是-對(duì)于簡單的應(yīng)用程序-它節(jié)省了連接外部存儲(chǔ)(如 uSD 卡模塊)的需要。

第 1 步 - 生成您的語音 WAVE 文件

第一步是為項(xiàng)目中需要的演講或單詞獲取一些好的 .WAVE 文件。當(dāng)然,您可以錄制自己或其他人的聲音,您可以在線搜索文件并下載但是,為了滿足您的具體需求,您可能需要文字轉(zhuǎn)語音服務(wù)。網(wǎng)上有很多選擇,從聲音笨拙的免費(fèi)網(wǎng)站到谷歌和 IBM 超現(xiàn)實(shí)、深度學(xué)習(xí)的文本到語音引擎。這里有一些不錯(cuò)的免費(fèi)選項(xiàng):

  • https://www.text2speech.org/ 直接下載 WAVE 文件。中等質(zhì)量。
  • IBM 的 Watson 文本轉(zhuǎn)語音演示請(qǐng)注意,您可以在演示中鍵入內(nèi)容并免費(fèi)下載 MP3 文件(無需注冊(cè))。只需使用任何 MP3 到 WAVE 轉(zhuǎn)換器來轉(zhuǎn)換文件。

我使用 IBM 的引擎為單詞生成了四個(gè) WAVE 文件:“學(xué)習(xí)”、“游戲”、“正確”和“錯(cuò)誤”。您可以在本項(xiàng)目的文件部分下載它們。

第 2 步 - 將 WAVE 文件轉(zhuǎn)換為嵌入式 C 代碼

您可以使用這個(gè)不錯(cuò)的免費(fèi)軟件WAVToCode將 WAVE 文件轉(zhuǎn)換為 C 文件。查看他們的幫助頁面以獲取有關(guān)使用該軟件的說明。

我們模塊中的 DAC 僅接受 8 位或 12 位樣本,但該軟件生成 8、16 和 24 位樣本。將每個(gè)文件加載到軟件中,為每個(gè)通道的位數(shù)選項(xiàng)選擇“8 位”,然后單擊“混合” 然后使用鼠標(biāo)按鈕在波浪前后添加兩個(gè)標(biāo)記以刪除空白部分。從菜單工具中,您可以收聽混合波,然后從菜單文件中將其轉(zhuǎn)換為 C文件為輸出選擇無符號(hào)從該轉(zhuǎn)換器生成的原始 C 文件可在標(biāo)有“orig_”的文件部分中找到。

?

?
?
?
?
pYYBAGOpdPGADMfEAAJHSH8zjLA826.png
?
1 / 2
?

?

注意:如果模塊中波形音量偏低,需要將autoscale選項(xiàng)設(shè)置為Normalize

第 3 步 - 修改您的 wave C 文件以包含在模塊項(xiàng)目中

您需要對(duì) wave C 文件進(jìn)行一些小的編輯,然后才能在揚(yáng)聲器模塊項(xiàng)目中使用它們:

  • unsigned char替換為?const uint8_t
  • 刪除?#define NUM_ELEMENTS行并添加定義?#include "wave.h"
  • 用有意義的定義替換數(shù)組?,例如,data[NUM_ELEMENTS]waveByteCode_Correct[WAVEBYTECODE_CORRECT_LENGTH]

第 4 步 - 克隆一個(gè)空的 H07R30 項(xiàng)目并添加 wave C 文件

在此處從其存儲(chǔ)庫中克隆模塊項(xiàng)目在文件夾User中,刪除所有 C 文件(main.c 除外)并在其中添加 wave C 文件。然后打開uVision項(xiàng)目,將修改后的wave C文件添加到項(xiàng)目樹中的User虛擬文件夾中。

?

?
poYBAGOpdPOAMjfuAAA3ebpFx0U097.png
?

?

第 5 步 - 將波浪定義添加到項(xiàng)目中

在 wave.h 中:

  • 更新波形文件的數(shù)量。
  • 用您的波形文件的波長定義替換波長定義。
  • 將波形分辨率(每個(gè)樣本的位數(shù))定義替換為波形文件的定義(通常為 8)。
  • 將波形速率(每秒樣本)定義替換為您的波形文件(文件比特率 / 8)的定義。
  • 導(dǎo)出 main.c 中定義的波形數(shù)組

在 main.c 中:

  • 定義波陣列、它們的長度和分辨率陣列。
  • 為每一波添加文字描述。

然后編譯并確保 MCU 中有足夠的 Flash 來存儲(chǔ)你所有的波浪!當(dāng)前帶有 128KB 閃存的模塊最多可以存儲(chǔ)大約 42000 個(gè)樣本(8 位/樣本)。

注 1 :要找出程序的當(dāng)前閃存大小,請(qǐng)?jiān)趩螕簟叭烤幾g”時(shí)將代碼和 RO 數(shù)據(jù)顯示的數(shù)字相加。您也可以雙擊項(xiàng)目樹中的 Module 1 來查看內(nèi)存映射。向下滾動(dòng)到接近尾部,您會(huì)發(fā)現(xiàn)當(dāng)前模塊的總 RO 大小應(yīng)該小于 128K。

注意 2 :您可以增加編譯器的優(yōu)化級(jí)別(如果它還不是 O1 或更高)以獲得更多的閃存空間來存儲(chǔ)您的 wave。從 uVision Options for Target >> C/C++ >> Optimization,選擇 Level 1 (O1) 并重新編譯,這應(yīng)該可以為您節(jié)省大約 10-15k 的 Flash。有時(shí)如果接近 Flash 限制,程序?qū)o法編譯或加載,因此您必須提高優(yōu)化級(jí)別。

第 6 步 - 最后使用嵌入的 wave!

使用以下 API 播放您的波浪:

PlayWave("play", 1, 0);

您可以在其中定義波形字符串名稱、重復(fù)次數(shù)和重復(fù)之間的毫秒延遲。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1普中科技HC6800-EM3使用操作手冊(cè)
  2. 21.69 MB   |  3次下載  |  2 積分
  3. 2PCB板EMC/EMI的設(shè)計(jì)技巧
  4. 0.20 MB   |  3次下載  |  免費(fèi)
  5. 32024PMIC市場(chǎng)洞察
  6. 2.23 MB   |  2次下載  |  免費(fèi)
  7. 4MSP430?閃存器件引導(dǎo)加載程序(BSL)
  8. 1.45MB   |  2次下載  |  免費(fèi)
  9. 5PL4807單節(jié)鋰離子電池充電器中文手冊(cè)
  10. 1.36 MB   |  2次下載  |  免費(fèi)
  11. 6LTH7充電電路和鋰電池升壓5V輸出電路原理圖
  12. 0.04 MB   |  1次下載  |  免費(fèi)
  13. 7HT2120兩節(jié)鋰電池保護(hù)板電路
  14. 0.22 MB   |  1次下載  |  免費(fèi)
  15. 8BQ77207EVM用戶指南
  16. 865.23KB   |  1次下載  |  免費(fèi)

本月

  1. 1XL4015+LM358恒壓恒流電路圖
  2. 0.38 MB   |  151次下載  |  1 積分
  3. 2PCB布線和布局電路設(shè)計(jì)規(guī)則
  4. 0.40 MB   |  33次下載  |  免費(fèi)
  5. 3智能門鎖原理圖
  6. 0.39 MB   |  13次下載  |  免費(fèi)
  7. 4GB/T4706.1-2024 家用和類似用途電器的安全第1部分:通用要求
  8. 7.43 MB   |  11次下載  |  1 積分
  9. 5JESD79-5C_v1.30-2024 內(nèi)存技術(shù)規(guī)范
  10. 2.71 MB   |  10次下載  |  免費(fèi)
  11. 6elmo直線電機(jī)驅(qū)動(dòng)調(diào)試細(xì)則
  12. 4.76 MB   |  9次下載  |  6 積分
  13. 7WIFI智能音箱原理圖完整版
  14. 0.09 MB   |  7次下載  |  10 積分
  15. 8PC1013三合一快充數(shù)據(jù)線充電芯片介紹
  16. 1.03 MB   |  7次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935115次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183332次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73806次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分