衡阳派盒市场营销有限公司

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>和弦Netduino音樂播放器開源分享

和弦Netduino音樂播放器開源分享

2022-11-08 | zip | 0.14 MB | 次下載 | 免費

資料介紹

描述

在這個項目中,您將使用 piezos 創建一個多通道音樂播放器。示例代碼播放帶有旋律和貝斯線的假日經典鈴兒響叮當。

這個項目你只需要一個 Netduino 和兩個壓電,但我喜歡使用串聯電阻來控制音量。您可以選擇添加兩個隨著音樂點亮的 LED

所有硬件都由Netduino.Foundation中的驅動程序控制,所有音樂邏輯都在 GitHub 存儲庫中提供。您甚至可以通過編輯 SongBook 類來添加新歌曲。

第 1 步 - 組裝電路

對于這個項目,連接你的面包板和 Netduino,如 Fritzing 圖中所示:

pYYBAGNom3WAELI1AAGCQYOGlnc996.png
?

?

我們將引腳 2 和 4 用于 LED,但它們可以由任何數字輸出引腳驅動。

對于 Piezos,我們使用引腳 9 和 11,建議使用它們,因為它們都是啟用 PWM 的引腳并且它們不共享定時器

第 2 步 - 下載源代碼

轉到https://github.com/adrianstevens/NetduinoSamples并克隆或下載 repo。具體來說,我們想要XMasPlayer文件夾中的代碼。

第 3 步 - 打開并探索項目

在 Windows 上的 Visual Studio 2015 或 macOS 上的 Visual Studio for Mac 中打開 XMasPlayer 項目。

首先打開App.cs,您將在此處配置硬件并播放歌曲。構造函數調用InitializePeripherals方法,這是我們設置壓電和 LED 的方法。現在是確保代碼中定義的引腳與我們的物理連接匹配的好時機。

我們還創建了一個PushButton對象以連接到 Netduino 的板載按鈕。我們將使用它來開始播放我們的歌曲。

private void InitializePeripherals()
{
    ledMelody = new Led(N.Pins.GPIO_PIN_D4);
    ledBass = new Led(N.Pins.GPIO_PIN_D2);
    speakerMelody = new PiezoSpeaker(N.PWMChannels.PWM_PIN_D9);
    speakerBass = new PiezoSpeaker(N.PWMChannels.PWM_PIN_D11);
    buttonPlay = new PushButton(N.Pins.ONBOARD_BTN, Netduino.Foundation.CircuitTerminationType.Floating);
    buttonPlay.Clicked += OnButtonPlay;
}

接下來,查看SongBook文件夾中的代碼。該文件夾有兩個模型對象,一個用于音符,一個用于樂曲。我們的歌曲由一系列音符組成,一首為旋律,另一首為貝斯。如果你想要兩個以上的聲音,你可以擴展這個類來添加額外的音符。

SongBook 類包含一組歌曲,我們只有添加鈴兒響鈴的代碼,但可以添加其他的。您會注意到歌曲被定義為字符串的集合,在音符和長度之間交替。然后我們在Note類中使用反射來加載正確的值。

最后,回到App類,看看PlaySong方法。這種方法循環播放所有旋律和低音音符,并將壓電設置為正確的頻率,并隨著音樂打開和關閉 LED。

private void PlaySong(Song song)
{
   //smallest note length is a 32nd note 
   //change value to adjust tempo 
   var len32Note = 1500 / 32;
   //index of the currently playing note
   int melodyIndex = 0;
   int bassIndex = 0;
   //remaining steps for the currently playing note
   int melodyRemaining = 0;
   int bassRemaining = 0;
   //loop until we've played every melody and bass note
   while (melodyIndex < song.Melody.Length && 
           bassIndex < song.Bass.Length)
   {
       if (melodyRemaining == 0 && melodyIndex < song.Melody.Length)
       {
           speakerMelody.StopTone();
           ledMelody.IsOn = false;
           //get the length of the next note
           melodyRemaining = song.Melody[melodyIndex].Length;
           //if the note isn't silence (i.e. don't play rests)
           if (song.Melody[melodyIndex].Pitch != 0)
           {
               speakerMelody.PlayTone(song.Melody[melodyIndex].Pitch);
               ledMelody.IsOn = true;
           }
           melodyIndex++;
       }
       melodyRemaining--;
       if (bassRemaining == 0 && bassIndex < song.Bass.Length)
       {
           speakerBass.StopTone();
           ledBass.IsOn = false;
           bassRemaining = song.Bass[bassIndex].Length;
           if (song.Bass[bassIndex].Pitch != 0)
           {
               speakerBass.PlayTone(song.Bass[bassIndex].Pitch);
               ledBass.IsOn = true;
           }
           bassIndex++;    
       }
       bassRemaining--;
       Thread.Sleep(len32Note);
   }
   Thread.Sleep(len32Note * 32);
   ledMelody.IsOn = false;
   ledBass.IsOn = false;
   speakerMelody.StopTone();
   speakerBass.StopTone();
}

第 4 步 - 運行項目

單擊 Visual Studio 中的運行按鈕開始播放音樂!部署應用程序后,按下 Netduino 的板載按鈕即可播放鈴兒響叮當!

查看 Netduino.Foundation!

有很多方法可以擴展這個項目。您可以添加更多歌曲,添加更多壓電揚聲器,甚至添加 LED 顯示屏以顯示歌曲名稱或音符。這很容易使用Netduino.Foundation

  • 它帶有一個巨大的外設驅動程序庫,其中包含市場上最常見的傳感器和外設的驅動程序。
  • 所有外圍驅動程序都通過內置功能進行了簡化,并由干凈、現代的 API 公開。
  • 這個項目得到了一個不斷發展的社區的支持,該社區不斷致力于構建很酷的互聯事物,并且總是樂于幫助新人并討論新項目。

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

評論

查看更多

下載排行

本周

  1. 1A7159和A7139射頻芯片的資料免費下載
  2. 0.20 MB   |  55次下載  |  5 積分
  3. 2PIC12F629/675 數據手冊免費下載
  4. 2.38 MB   |  36次下載  |  5 積分
  5. 3PIC16F716 數據手冊免費下載
  6. 2.35 MB   |  18次下載  |  5 積分
  7. 4dsPIC33EDV64MC205電機控制開發板用戶指南
  8. 5.78MB   |  8次下載  |  免費
  9. 5STC15系列常用寄存器匯總免費下載
  10. 1.60 MB   |  7次下載  |  5 積分
  11. 6模擬電路仿真實現
  12. 2.94MB   |  4次下載  |  免費
  13. 7PCB圖繪制實例操作
  14. 2.92MB   |  2次下載  |  免費
  15. 8零死角玩轉STM32F103—指南者
  16. 26.78 MB   |  1次下載  |  1 積分

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  452次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  141次下載  |  1 積分
  5. 3基于STM32單片機智能手環心率計步器體溫顯示設計
  6. 0.10 MB   |  137次下載  |  免費
  7. 4A7159和A7139射頻芯片的資料免費下載
  8. 0.20 MB   |  55次下載  |  5 積分
  9. 5PIC12F629/675 數據手冊免費下載
  10. 2.38 MB   |  36次下載  |  5 積分
  11. 6如何正確測試電源的紋波
  12. 0.36 MB   |  19次下載  |  免費
  13. 7PIC16F716 數據手冊免費下載
  14. 2.35 MB   |  18次下載  |  5 積分
  15. 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統EMC試驗方法及要求
  16. 1.97 MB   |  8次下載  |  10 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935121次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
博E百娱乐| 百家乐官网娱乐平台网77scs | 百家乐无损打法| 百家乐官网桌子租| 澳门百家乐官网职业赌客| 贡嘎县| 精英娱乐城开户| 大发888免费送奖金| 百家乐娱乐分析软件v| 百家乐和的几率| 百家乐路单破解软件| 百家乐视频金币| 百家乐图表分析| 百家乐官网筹码14克粘土| 百家乐官网博百家乐官网的玩法技巧和规则 | 单双和百家乐官网游戏机厂家| 灵山县| 龙南县| 西宁市| 定边县| 石城县| 百家乐官网十佳投庄闲法| 百家乐官网娱乐城棋牌| 百家乐官网开户送18元| 百家乐官网大赢家客户端| 亚洲百家乐官网新全讯网| 大发百家乐官网现金| 百家乐官网玩法教程| 百家乐官网在线娱乐场| 网络百家乐官网赚| 免费百家乐官网追号| 百家乐官网免费注册| 百家乐模拟投注器| 太阳城百家乐红利| pc百家乐模拟游戏| 大发888娱乐城大奖| 现金网系统出租| 南陵县| 圆梦城百家乐官网娱乐城| 娱乐百家乐官网下载| 百家乐2号干扰|