MicroPython开发板:TPYBoard v102 播放音乐实例
0x00前言
前段时间看到TPYBoard的技术交流群(群号:157816561,)里有人问关于TPYBoard播放音乐的问题。最近抽空看了一下文档介绍,着手做了个实验。更多MicroPython的教程可关注(微-信公众号:MicroPython玩家汇)
0x01实验器材
TPYBoardv102开发板1块
耳机或音响1个
杜邦线若干
0x02前期准备
看一下TPYBoard的官方DOCS的上面的资料:
http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/amp_skin/?highlight=wav

1、 首先我们需要一个可以播放的.wav音频文件,通过文档的描述和测试,发现只能播放2秒左右的音乐,文件大小应小于50KB,否则会提示错误。
2、wav的格式要求:比特率8-bit,采样频率22050Hz。直接可以使用avconv工具将mp3工具转换成可以播放的wav文件。
3、ubuntu安装方法:
sudo apt-get install ffmpeg
sudo apt-get install libav-tools
4、安装完成后,直接执行命令。
avconv -i 2.mp3 -ar 22050 -codec pcm_u8 test2.wav
5、还得需要一个TF内存卡,放入源码和wav音频文件后,开发板本身的FLASH空间会不足。
0x03程序源码
main.py
import wave
from pyb import DAC
dac = DAC(1)
f = wave.open('/sd/test2.wav')
dac.write_timed(f.readframes(f.getnframes()), f.getframerate())
通过上面的源码中,可以看出来主要是用到wave类库。在最开始的教程文章中可以直接下载。
6、点击红框可直接下载wave.py,在wave文件中又引入了chunk.py,点击蓝框直接下载。

7、将main.py、wave.py和chunk.py直接拷贝到开发板的TF卡中即可。
8、点击绿框中可以下载官方提供的wav播放文件test.wav。
9、通过上面我自己制作了一个test2.wav文件,大家也可以尝试自己制作音频文件播放。
源码和wav文件下载地址
https://github.com/PakchoiFood/TPYBoardV102-PlayMusic
0x04播放效果
先了解一下耳机插头的结构。

10、上图是三段的耳机插头图,比如我们的音响插头、收音机插头等。

11、上面是四段的耳机插头图,我们平时用在手机上的耳机插头一般都是四段的,中间多了麦克的功能。可能有些国际上的标准,MIC麦克和GND接地的位置会倒过来。
12、大家通过main.py源码可以看到,我们使用的是DAC(1),所以需要将X5引脚和左声道连接,GND引脚和耳机插头上的GND连接。
示意图
|
TPYBoard v102 |
耳机插头 |
|
X5 |
左声道(L) |
|
GND |
GND |
实物图

13、接好线后,重新运行一下程序,我们就可以听到声音啦。
MicroPython开发板:TPYBoard v102 播放音乐实例的更多相关文章
- MicroPython开发板TPYBoard关于USB-HID的应用
USB-HID是Human Interface Device的缩写,属于人机交互操作的设备,如USB鼠标,USB键盘,USB游戏操纵杆,USB触摸板,USB轨迹球.电话拨号设备.VCR遥控等等设备. ...
- MicroPython可视化编程开发板—TurnipBit自制MP3教程实例
转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇) 当前我们都生活在一个有声有色的社会当中,欣赏美丽的景色,享受动人的音乐, ...
- 带以太网的MicroPython开发板:TPYBoardv201建立云加法器实例
转载请注明文章来源,MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇 前面的一篇文档向大家介绍了v201的开发板作为客户端终端向TCPS上传数据的基本过程 ...
- 带以太网的MicroPython开发板:TPYBoardv201温湿度上传实例
转载请以链接形式注明文章来源,MicroPythonQQ交流群:157816561,公众号:MicroPython玩家汇 历来关于温湿度的检测都是没有间断过的,这次我们继续检测温湿度,同样还是使用DH ...
- [MicroPython]TPYBoardv102播放音乐实例
0x00前言 前段时间看到TPYBoard的技术交流群(群号:157816561,)里有人问关于TPYBoard播放音乐的问题.最近抽空看了一下文档介绍,着手做了个实验.更多MicroPython的教 ...
- TPYBoard—MicroPython开发板免费试用!你最想抱走哪款?
TPYBoard开发板自上市开售以来,受到了广大硬件及MicroPython爱好者的一致好评,许多人提出想试用开发板的申请.为此,TPYBoard特推出多款开发板免费试用活动,感兴趣的朋友抓紧申请吧! ...
- MicroPython教程之TPYBoard v102 CAN总线通信
0x00前言 CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是ISO国际标准化的串行通信协议.CAN总线结构简单,只需2根线与外部相连,并且内部集成了错误探测和管 ...
- TurnipBit—MicroPython开发板:从积木式编程语言开始学做小小创客
编程.建模.制作动画和游戏--这些当初我们默认只有成年人玩得转的事情,现在早已经被无数小孩子给颠覆甚至玩出新境界了.热爱科技和动手的"创客"(Maker)现在在全世界都炙手可热.今 ...
- TurnipBit—MicroPython开发板:妥妥拽拽零基础也能玩编程
可视化编程网站入口:www.turnipbit.com 说到编程.谈到硬件,你也许会想到屌丝逆袭女神的"传奇"故事,也许会浮现出带着眼镜.头发稀少.无精打采的程序猿形象." ...
随机推荐
- SpringBoot入门
简介 从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置.它使用"习惯优于配置"(项目中存在大量的配置,此外还内置了一个习 ...
- 【new File(String Path)加载资源问题】
2017-12-17 15:07:38 [原创-wx] 一.我们在用IO流加载资源的时候,创建文件资源 1 File file = New File("String Path" ...
- iscroll使用之页面卡顿问题
最近在开发项目时,遇到一个问题,使用iscroll实现的页面滚动,测试时发现在chrome浏览器中的模拟移动设备页面不能平滑滚动,有卡顿现象,在android手机端也有同样的问题. 在github上搜 ...
- nginx HTTP/2.0 配置
1.前言 最近无意中看到http2.0消息,发现自己的博客虽然配了https,但并没有配置http2.0,所以搞了个玩玩,本以为配个参数就搞定了,结果还是折腾了一个小时. 2.过程 nginx并没有默 ...
- Objective-C 和 Swift 混编项目的小 Tips(一)
本文主要闲聊一些 Objective-C 和 Swift 混编项目带来的一些潜规则,希望能帮到对此感到疑惑的朋友.下面我们开始进入主题: 命名 官方 Guide 上只是简单叙述(Using Swift ...
- redis缓存的安装和配置
ubantu16.04环境下安装 下载安装,依次执行命令; # 从官方网站下载安装包,注意,当前在哪个目录下执行命令,下载的包将在哪个目录下 $ wget http://download.redis. ...
- UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 46:illegal multibyte sequence
一. 最近使用python写入文件时,出现了如下的错误: 但是content的内容是unicode编码,不知道怎么和gbk扯上了关系,对content使用encode()和decode(),用gbk, ...
- Java并发编程实践读书笔记(2)多线程基础组件
同步容器 同步容器是指那些对所有的操作都进行加锁(synchronize)的容器.比如Vector.HashTable和Collections.synchronizedXXX返回系列对象: 可以看到, ...
- 微信小程序路过
应该算是入门篇, 从我怎么0基础然后沿着什么方向走,遇到的什么坑,如何方向解决,不过本人接触不是很多,所以也就了解有限. 小程序的前提: 1.小程序大小不允许超过2M.(也就是本地图片,大图精图不要在 ...
- JavaScript闭包基本概念
闭包的概念 维基百科中是这么解释闭包的: 计算机科学中,闭包(也称为词法闭包或函数闭包)是指一个函数或函数的引用,与一个引用环境绑定在一起.这个函数环境是一个存储该函数每个非局部变量(也叫自由变量)的 ...