日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>使用Swift語言的帶有蜂鳴器的音樂播放器

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

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

資料介紹

描述

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

第 1 步:您需要什么

poYBAGNh0fSAGlXZAACcud3RQzk685.png
?

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

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

第二步:關(guān)于音符

pYYBAGNh0faAFroEAADV9OXf0wQ219.png
?

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

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

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

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

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

BPM或每分鐘節(jié)拍用于測量一段音樂的節(jié)奏。例如,60 BPM 表示一分鐘有 60 次節(jié)拍,每個節(jié)拍持續(xù) 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記錄了旋律的音符和每個音符的持續(xù)時間。

在文件main.swift中,您將設(shè)置 PWM 信號來播放音樂。讓我們來看看它。

import SwiftIO
import SwiftIOBoard
import PWMTone

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

您將使用另一個庫PWMTone。它允許您根據(jù)樂譜設(shè)置 PWM。

var halfStep = 0

該值halfStep用于更改音高。它等于 0,因此音高保持不變。

var bpm = 60

將 bpm 設(shè)置為 60,因此每個節(jié)拍將持續(xù)一秒鐘。

let player = PWMTone(PWMOut(Id.PWM2B), bpm: bpm)

初始化播放器。它有三個參數(shù):

  • 第一個是PWM引腳,
  • 第二個是bpm。
  • 第三個設(shè)置每個音符之間的間隔,默認為 0.1。
player.play(track: Music.twinkle)

此語句是播放音樂。該方法play(track:halfstep)有兩個參數(shù)。

  • track是表示音符和音符長度的元組數(shù)組。Music.twinkle指的是寫在文件中的分數(shù)Twinkle.swift在 struct Music中,有一個恒定的閃爍存儲音符和音符長度。所以軌道寫成Music.twinkle。
  • halfStep默認值為 0。稍后您將對其進行設(shè)置。所以你可以在這里忽略它。
bpm += 40 
player.setBPM(bpm)

然后增加 bpm 以使速度快一點。此增量是您喜歡的隨機數(shù)。

halfStep += 12
player.setFixedHalfStep(halfStep)

這兩個語句旨在提高一個八度,因此音樂的音高聽起來更高。

第 6 步:運行項目

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


SWIFT 蜂鳴器
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

評論

查看更多

下載排行

本周

  1. 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
  2. 1.12 MB  |  5次下載  |  免費
  3. 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊
  4. 1.21 MB   |  1次下載  |  免費
  5. 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊
  6. 0.87 MB   |  次下載  |  免費
  7. 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
  8. 88.16 KB  |  次下載  |  免費
  9. 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
  10. 910.67 KB  |  次下載  |  免費
  11. 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
  12. 989.14 KB  |  次下載  |  免費
  13. 7WD6208A產(chǎn)品規(guī)格書
  14. 631.24 KB  |  次下載  |  免費
  15. 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊
  16. 1.64 MB   |  次下載  |  2 積分

本月

  1. 1EMC PCB設(shè)計總結(jié)
  2. 0.33 MB   |  12次下載  |  免費
  3. 2PD取電芯片 ECP5702規(guī)格書
  4. 0.88 MB   |  5次下載  |  免費
  5. 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
  6. 1.12 MB  |  5次下載  |  免費
  7. 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動電路選型表
  8. 0.10 MB   |  3次下載  |  免費
  9. 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊
  10. 0.88 MB   |  3次下載  |  免費
  11. 6SY50655 用于高輸入電壓應用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
  12. 1.01 MB   |  3次下載  |  免費
  13. 7怎么為半導體測試儀選擇精密放大器
  14. 0.65 MB   |  2次下載  |  免費
  15. 8SY52341 次級側(cè)同步整流英文手冊
  16. 0.94 MB   |  2次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233095次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191469次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183360次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81606次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73832次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分
富裕县| 北安市| 唐海县| 信宜市| 永胜县| 十堰市| 会理县| 辽阳县| 韶山市| 阿拉善右旗| 桃源县| 承德县| 孝义市| 惠来县| 贡嘎县| 武功县| 高邮市| 含山县| 马山县| 景洪市| 岳阳县| 普陀区| 漯河市| 突泉县| 拉萨市| 乌兰察布市| 鄂温| 华容县| 吉木乃县| 泰兴市| 贺州市| 哈密市| 清徐县| 运城市| 双鸭山市| 都江堰市| 于都县| 依安县| 仪陇县| 合江县| 恭城|