资料介绍
描述
在这个项目中,让我们使用蜂鸣器播放一首已知歌曲 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单片机的蜂鸣器播放音乐源代码 55次下载
- 制作带有蜂鸣器和LCD显示屏的圣诞歌曲播放器
- 基于Labview制作的音乐播放器源码分享 70次下载
- 基于51单片机的音乐播放器
- 基于51单片机的音乐播放器的制作 105次下载
- 蜂鸣器播放音乐设计与实现(附源码) 87次下载
- 懂你的音乐播放器C语言程序免费下载 5次下载
- 蜂鸣器播放音乐C语言程序免费下载 46次下载
- Labview中activeX编的音乐播放器 54次下载
- 基于Android音乐播放器的研究 7次下载
- 基于单片机的音乐播放器的设计与制作 205次下载
- 音乐播放器 38次下载
- 蜂鸣器音乐播放实验 814次下载
- 基于CPLD的MIDI音乐播放器的设计
- 网页音乐播放器代码
- 数字播放器和解码器 149次阅读
- 车载播放器怎么选择格式 1313次阅读
- 婴儿摇篮床播放器WT2003H音乐芯片方案 1272次阅读
- 带有触摸开关和定时器的音乐铃电路图 2414次阅读
- 如何利用Arduino UNO和SD卡制作音乐播放器 7319次阅读
- 音乐发烧友的首选播放器山灵M5s发布 2147次阅读
- 新唐科技音乐合成系列介绍 1304次阅读
- MP3播放器的基本原理及电路组成 1.9w次阅读
- 蜂鸣器音乐程序与最简单蜂鸣器电路图之FPGA学习课程 1.9w次阅读
- 基于车载播放器的e-Mark辐射骚扰测试 983次阅读
- 基于AT89C51SND1C单片机的MP3播放器的设计方案 6464次阅读
- 利用PWM音频信号实现音乐播放器的应用设计 3.5w次阅读
- hifi和无损哪个音质好_关于无损音乐的几个常见误区 7.4w次阅读
- hifi播放器排行榜 3.4w次阅读
- 基于嵌入式Linux流媒体播放器系统软硬件解决方案 2740次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多