資料介紹
描述
在這個項目中,讓我們使用蜂鳴器播放一首已知歌曲 Twinkle twinkle little star。
第 1 步:您需要什么

您將使用的零件都包含在此Maker 套件中。
- SwiftIO 板
- 盾
- 蜂鳴器
- 4 針電纜
第二步:關于音符

在開始閱讀代碼之前,您需要了解一些關于注釋的信息。
鋼琴鍵盤上共有 88 個鍵,從 A0 到 C8。這些音符對應不同的頻率。
半音或半音是音符之間的最小間隔,例如,A鍵和A#鍵之間的間隔是半音。兩個半步構成一個全步,就像A和B之間的間隔一樣。
一個八度由 12 個半音組成。它是一個音符與下一個同名音符之間的距離,例如,第一個鍵 A 到第二個鍵 A 形成一個八度。
四分音符是音樂中常見的音符長度,只有一個節拍。然后其他音符以此為基礎:二分音符有兩個節拍,全音符有四個節拍,八分音符有一半節拍,等等。
BPM或每分鐘節拍用于測量一段音樂的節奏。例如,60 BPM 表示一分鐘有 60 次節拍,每個節拍持續 1 秒。
第 3 步:電路

將屏蔽罩放在 SwiftIO 板的頂部。
將蜂鳴器模塊連接到引腳 PWM2B (D10)。
第 4 步:代碼
文件Twinkle.swift:
import PWMTone
struct Music {
static let twinkle: [(note: PWMTone.Note, value: Int)] = [
(.C4, 4),
(.C4, 4),
(.G4, 4),
(.G4, 4),
(.A4, 4),
(.A4, 4),
(.G4, 2),
(.F4, 4),
(.F4, 4),
(.E4, 4),
(.E4, 4),
(.D4, 4),
(.D4, 4),
(.C4, 2),
(.G4, 4),
(.G4, 4),
(.F4, 4),
(.F4, 4),
(.E4, 4),
(.E4, 4),
(.D4, 2),
(.G4, 4),
(.G4, 4),
(.F4, 4),
(.F4, 4),
(.E4, 4),
(.E4, 4),
(.D4, 2),
(.C4, 4),
(.C4, 4),
(.G4, 4),
(.G4, 4),
(.A4, 4),
(.A4, 4),
(.G4, 2),
(.F4, 4),
(.F4, 4),
(.E4, 4),
(.E4, 4),
(.D4, 4),
(.D4, 4),
(.C4, 2)
]
}
文件main.swift:
/* Import the SwiftIO library to use everything in it. */
import SwiftIO
/* Import the board library to use the Id of the specific board. */
import SwiftIOBoard
/* Import this library to set the PWM signal according to the musical notes. */
import PWMTone
var halfStep = 0
/* BPM, beat per minute, measures the tempo of music. */
var bpm = 60
/* Initialize a player. */
let player = PWMTone(PWMOut(Id.PWM2B), bpm: bpm)
while true {
/* Play the music. */
player.play(track: Music.twinkle)
/* Increase the bpm to make the music faster. */
bpm += 40
player.setBPM(bpm)
/* Raise an octave and the pitch sound higher. */
halfStep += 12
player.setFixedHalfStep(halfStep)
sleep(ms: 1000)
}
第 5 步:代碼分析
您可以在項目中找到兩個文件。
該文件Twinkle.swift記錄了旋律的音符和每個音符的持續時間。
在文件main.swift中,您將設置 PWM 信號來播放音樂。讓我們來看看它。
import SwiftIO
import SwiftIOBoard
import PWMTone
SwiftIO和SwiftIOBoard是所有這些項目中使用的庫。
您將使用另一個庫PWMTone。它允許您根據樂譜設置 PWM。
var halfStep = 0
該值halfStep用于更改音高。它等于 0,因此音高保持不變。
var bpm = 60
將 bpm 設置為 60,因此每個節拍將持續一秒鐘。
let player = PWMTone(PWMOut(Id.PWM2B), bpm: bpm)
初始化播放器。它有三個參數:
- 第一個是PWM引腳,
- 第二個是bpm。
- 第三個設置每個音符之間的間隔,默認為 0.1。
player.play(track: Music.twinkle)
此語句是播放音樂。該方法play(track:halfstep)有兩個參數。
-
track是表示音符和音符長度的元組數組。Music.twinkle指的是寫在文件中的分數Twinkle.swift。在 struct Music中,有一個恒定的閃爍存儲音符和音符長度。所以軌道寫成Music.twinkle。 -
的
halfStep默認值為 0。稍后您將對其進行設置。所以你可以在這里忽略它。
bpm += 40
player.setBPM(bpm)
然后增加 bpm 以使速度快一點。此增量是您喜歡的隨機數。
halfStep += 12
player.setFixedHalfStep(halfStep)
這兩個語句旨在提高一個八度,因此音樂的音高聽起來更高。
第 6 步:運行項目
成功下載代碼后,您將聽到蜂鳴器發出的旋律。音樂會逐漸變快,音調會變高。
- 基于51單片機的蜂鳴器播放音樂源代碼 78次下載
- 制作帶有蜂鳴器和LCD顯示屏的圣誕歌曲播放器
- 基于Labview制作的音樂播放器源碼分享 83次下載
- 基于51單片機的音樂播放器
- 基于51單片機的音樂播放器的制作 116次下載
- 蜂鳴器播放音樂設計與實現(附源碼) 92次下載
- 懂你的音樂播放器C語言程序免費下載 12次下載
- 蜂鳴器播放音樂C語言程序免費下載 46次下載
- Labview中activeX編的音樂播放器 54次下載
- 基于Android音樂播放器的研究 7次下載
- 基于單片機的音樂播放器的設計與制作 208次下載
- 音樂播放器 40次下載
- 蜂鳴器音樂播放實驗 818次下載
- 基于CPLD的MIDI音樂播放器的設計
- 網頁音樂播放器代碼
- 【開源分享】用ESP32復刻一個iPod :便攜式音樂播放器Tangara 1.9k次閱讀
- 變速播放器1和2的區別 1.1k次閱讀
- 為什么好的播放器還要配解碼器 4.9k次閱讀
- 數字播放器和解碼器 3.9k次閱讀
- 車載播放器怎么選擇格式 3.8k次閱讀
- 嬰兒搖籃床播放器WT2003H音樂芯片方案 2k次閱讀
- 如何利用Arduino UNO和SD卡制作音樂播放器 1w次閱讀
- 音樂發燒友的首選播放器山靈M5s發布 2.7k次閱讀
- 新唐科技音樂合成系列介紹 1.9k次閱讀
- MP3播放器的基本原理及電路組成 2.2w次閱讀
- 基于AT89C51SND1C單片機的MP3播放器的設計方案 7.5k次閱讀
- 利用PWM音頻信號實現音樂播放器的應用設計 3.8w次閱讀
- hifi和無損哪個音質好_關于無損音樂的幾個常見誤區 7.8w次閱讀
- hifi播放器排行榜 3.6w次閱讀
- 基于嵌入式Linux流媒體播放器系統軟硬件解決方案 3.2k次閱讀
下載排行
本周
- 1新一代網絡可視化(NPB 2.0)
- 3.40 MB | 1次下載 | 免費
- 2冷柜-電氣控制系統講解
- 13.68 MB | 1次下載 | 10 積分
- 3MDD品牌三極管MMBT3906數據手冊
- 2.33 MB | 次下載 | 免費
- 4MDD品牌三極管S9012數據手冊
- 2.62 MB | 次下載 | 免費
- 5LAT1218 如何選擇和設置外部晶體適配 BlueNRG-X
- 0.60 MB | 次下載 | 3 積分
- 6LAT1216 Blue NRG-1/2 系列芯片 Flash 操作與 BLE 事件的互斥處理
- 0.89 MB | 次下載 | 3 積分
- 7收音環繞擴音機 AVR-1507手冊
- 2.50 MB | 次下載 | 免費
- 8MS1000TA 超聲波測量模擬前端芯片技術手冊
- 0.60 MB | 次下載 | 免費
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數據手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4UWB653Pro USB口測距通信定位模塊規格書
- 838.47 KB | 5次下載 | 免費
- 5蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 6蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
- 7100W準諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
- 8FS8025B USB的PD和OC快充協議電壓誘騙控制器IC技術手冊
- 1.81 MB | 1次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論