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

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用Swift語言的帶有蜂鳴器的音樂播放器

使用Swift語言的帶有蜂鳴器的音樂播放器

2022-11-02 | zip | 0.12 MB | 次下載 | 免費

資料介紹

描述

在這個項目中,讓我們使用蜂鳴器播放一首已知歌曲 Twinkle twinkle little star。

第 1 步:您需要什么

poYBAGNh0fSAGlXZAACcud3RQzk685.png
?

您將使用的零件都包含在此Maker 套件中。

  • SwiftIO 板
  • 蜂鳴器
  • 4 針電纜

第二步:關于音符

pYYBAGNh0faAFroEAADV9OXf0wQ219.png
?

在開始閱讀代碼之前,您需要了解一些關于注釋的信息

鋼琴鍵盤上共有 88 個鍵,從 A0 到 C8。這些音符對應不同的頻率

半音或半音是音符之間的最小間隔,例如,A鍵和A#鍵之間的間隔是半音兩個半步構成一個全步,就像A和B之間的間隔一樣。

一個八度由 12 個半音組成。它是一個音符與下一個同名音符之間的距離,例如,第一個鍵 A 到第二個鍵 A 形成一個八度。

四分音符是音樂中常見音符長度,只有一個節拍然后其他音符以此為基礎:二分音符有兩個節拍,全音符有四個節拍,八分音符有一半節拍,等等。

BPM或每分鐘節拍用于測量一段音樂的節奏。例如,60 BPM 表示一分鐘有 60 次節拍,每個節拍持續 1 秒。

第 3 步:電路

poYBAGNh0gCAMDd-AAD2bVJKsaM746.png
?

將屏蔽罩放在 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

SwiftIOSwiftIOBoard是所有這些項目中使用的庫。

您將使用另一個庫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 步:運行項目

成功下載代碼后,您將聽到蜂鳴器發出的旋律。音樂會逐漸變快,音調會變高。


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

評論

查看更多

下載排行

本周

  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次下載  |  免費
主站蜘蛛池模板: 校园春色亚洲欧美 | 日不卡| 免费看性 | 四虎影永久在线观看精品 | 四虎国产精品视频免费看 | 国产1区二区 | 91aaa免费观看在线观看资源 | 女同国产| 精品亚洲午夜久久久久 | 天堂中文在线免费观看 | 天天插天天色 | www资源| 97视频hd | 亚洲一区在线视频观看 | 欧美三级在线 | 欧美一二三区 | 免费观看在线视频 | 四虎东方va私人影库在线观看 | 日日爽天天干 | 在线成人看片 | 免费一区二区 | 色偷偷尼玛图亚洲综合 | 日本一区免费观看 | 国产自产视频在线观看香蕉 | 成人网在线视频 | 久久婷婷丁香七月色综合 | 国产日本三级 | 国产福利不卡一区二区三区 | 国产片翁熄系列乱在线视频 | 97se亚洲综合 | 色牛网 | 三级在线网址 | 日本在线黄色网址 | 久久婷人人澡人人爽 | 亚洲一区二区三区免费视频 | 亚洲资源在线视频 | 欧美成人天天综合天天在线 | 国产成人在线影院 | 日本免费不卡视频 | 亚洲卡一卡2卡三卡4卡国色 | 九九国产精品视频 |