在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>簡單的音樂游戲構建

簡單的音樂游戲構建

2023-06-20 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

在考慮 H07R30 揚聲器模塊的演示項目時,我想到了構建一個簡單的音樂游戲!該模塊播放的音符很少,您必須通過附帶的按鈕重復曲調。如果您的回答正確或錯誤,演講者會回復您!該游戲的編碼和播放都很有趣,并向您展示了播放音樂曲調以及存儲和播放嵌入式 WAVE 文件的示例。

細節

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

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

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

查看正在運行的游戲!

?

它是如何工作的?

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

FronEndTask 中超級循環之前的第一部分處理初始化。我們定義了所有按鈕,將它們與點擊事件和 P5 的按下 2 秒事件相關聯,并播放啟動芯片曲調!然后我們初始化超時定時器

?

?
poYBAGOpdN6AHiS6AAFVSw4HVWU673.png
?

?

在超級循環中,我們驗證模式是播放并且計時器已經過期,然后我們檢查玩家是否輸入了所有正確的音符。然后,我們播放適當的波形文件,LED 閃爍。如果答案成功,我們將難度級別增加一個。

?

?
pYYBAGOpdOCAa1YSAADaZJsM2_s541.png
?

?

然后我們初始化所有序列并生成新的挑戰曲調。

?
pYYBAGOpdOKAYxJgAABtw8ornGA756.png
?

?

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

?

?
pYYBAGOpdOeAOO4jAAClOYLX9Xo739.png
?

?

負責播放音符的函數只是播放對應于每個端口號的特定音符。請注意,匹配端口和音符完全取決于您。

?

?
poYBAGOpdOmAKKtvAACEzlIaZpo211.png
?

?

最后我們有按鈕事件的回調。單擊回調播放與此按鈕關聯的任何音符并將此音符添加到播放器序列。一旦序列計數達到挑戰筆記的計數,超時計時器將重置以在大約 2 秒內觸發結果檢查。

按鈕按下回調在播放訓練模式之間循環。請注意,此事件是一個閉鎖事件。因此,您需要使用resetButtonEvent() API 手動重置它,否則它會一直觸發。

?
pYYBAGOpdOyAYi2CAAEj8oWjtQY333.png
?

?

在模塊中嵌入 WAVE 文件

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

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

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

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

我使用 IBM 的引擎為單詞生成了四個 WAVE 文件:“學習”、“游戲”、“正確”和“錯誤”。您可以在本項目的文件部分下載它們。

第 2 步 - 將 WAVE 文件轉換為嵌入式 C 代碼

您可以使用這個不錯的免費軟件WAVToCode將 WAVE 文件轉換為 C 文件。查看他們的幫助頁面以獲取有關使用該軟件的說明。

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

?

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

?

注意:如果模塊中波形音量偏低,需要將autoscale選項設置為Normalize

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

您需要對 wave C 文件進行一些小的編輯,然后才能在揚聲器模塊項目中使用它們:

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

第 4 步 - 克隆一個空的 H07R30 項目并添加 wave C 文件

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

?

?
poYBAGOpdPOAMjfuAAA3ebpFx0U097.png
?

?

第 5 步 - 將波浪定義添加到項目中

在 wave.h 中:

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

在 main.c 中:

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

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

注 1 :要找出程序的當前閃存大小,請在單擊“全部編譯”時將代碼和 RO 數據顯示的數字相加。您也可以雙擊項目樹中的 Module 1 來查看內存映射。向下滾動到接近尾部,您會發現當前模塊的總 RO 大小應該小于 128K。

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

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

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

PlayWave("play", 1, 0);

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

?


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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 俺要操| 色天天躁夜夜躁天干天干 | 一二三区乱码一区二区三区码 | 在线毛片网 | 天天操天天射天天 | 成人免费一区二区三区 | 手机看片1024精品日韩 | 大尺度在线 | 成人女人a毛片在线看 | 好硬好湿好爽再深一点h视频 | 成年女人色费视频免费 | 久久国产精品99久久久久久老狼 | 亚洲成a人不卡在线观看 | 免费免费啪视频在线 | 性free3d | 最近2018年在线中文字幕高清 | 欧美激情综合色综合啪啪五月 | 男女视频免费 | 又黄又湿又爽吸乳视频 | www日本黄色 | 99久久久精品免费观看国产 | 天天舔天天爱 | 嘿嘿嘿视频在线观看 | 在线种子资源网 | 欧美系列在线观看 | 1024免费永久福利视频 | 亚洲美女视频一区二区三区 | 91大神精品在线观看 | 成人丁香婷婷 | 99亚洲精品卡2卡三卡4卡2卡 | 欧美男女交性过程视频 | 午夜影视在线 | 欧美视频不卡一区二区三区 | 在线天堂中文www官网 | 天堂网欧美 | 成人性色生活片免费看爆迷你毛片 | 啪啪小视频网站 | 老司机51精品视频在线观看 | 手机看片国产福利 | 西西人体大胆午夜gog0 | 中文字幕网资源站永久资源 |