python 开发板 播放音乐_MicroPython开发板:TPYBoard v102 播放音乐实例

0x00前言

前段时间看到TPYBoard的技术交流群(群号:157816561)里有人问关于TPYBoard播放音乐的问题。最近抽空看了一下文档介绍,着手做了个实验。

0x01实验器材

TPYBoard v102 开发板 1块

耳机或音响 1个

杜邦线 若干

0x02前期准备

看一下TPYBoard的官方DOCS的上面的资料:

1192924-20180929134538767-483267668.png

1、 首先我们需要一个可以播放的.wav音频文件,通过文档的描述和测试,发现只能播放2秒左右的音乐,文件大小应小于50KB,否则会提示错误。

2、wav的格式要求:比特率8-bit , 采样频率22050 Hz。直接可以使用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,点击蓝框直接下载。

1192924-20180929134635038-1267655881.png

7、将main.py、wave.py 和chunk.py 直接拷贝到开发板的TF卡中即可。

8、点击绿框中可以下载官方提供的wav播放文件test.wav。

9、通过上面我自己制作了一个test2.wav文件,大家也可以尝试自己制作音频文件播放。

源码和wav文件下载地址

0x04播放效果

先了解一下耳机插头的结构。

1192924-20180929134657157-1675524929.jpg

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

1192924-20180929134704737-1498983342.jpg

11、上面是四段的耳机插头图,我们平时用在手机上的耳机插头一般都是四段的,中间多了麦克的功能。可能有些国际上的标准,MIC麦克和GND接地的位置会倒过来。

12、大家通过main.py 源码可以看到,我们使用的是DAC(1),所以需要将X5引脚和左声道连接,GND引脚和耳机插头上的GND连接。

示意图

TPYBoard v102

耳机插头

X5

左声道(L)

GND

GND

实物图

1192924-20180929134723152-1391201457.jpg

13、接好线后,重新运行一下程序,我们就可以听到声音啦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409726.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[html] 你知道什么是粘性布局吗?

[html] 你知道什么是粘性布局吗? 中文大概意思: 对象在常态时遵循常规流。它就像是relative和fixed的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如fixed。该属性的表现是现实中你见到的吸附效果。 个人简介 我是歌…

kafka streams实战 pdf_spring框架实战口试材料

Spring框架自诞生倚赖从来备受开发者青睐,有人亲切的称之为:Spring 百口桶。它包SpringMVC、SpringBoot、Spring Cloud、Spring Data等处理方案。好多研发职员把spring看作心目中最佳的java项目,没有之一。Spring系列包涵非常多的项目&#x…

jquery日期插件_AngularJS 日期时间选择组件(附详细使用方法)

插件简介AngularJS是一款目前非常火的JavaScript脚本库,应用范围十分广阔。今天给大家分享一款基于AngularJS和jQuery的日期时间选择组件,和别的日期选择插件一样,它同样支持年月日的快速定位。另外这款AngularJS日期选择组件还支持时间的选择…

hsv白色h值是多少_ShaderToy系列:HSV

前言这次呢,继续再来看一个iq大神的简单作品,作品虽简单,但是却包含了很多知识点,先放上最终效果:ShaderToy地址:https://www.shadertoy.com/view/MsS3Wc不过本篇改动较大,最终效果与ShaderToy上…

saltstack mysql_saltstack学习五:return及入库_MySQL

return的用法网上太多资料了,利用return把结果存入数据库网上已经有现在的:1、在master端创建数据库:CREATE DATABASE saltDEFAULT CHARACTER SET utf8DEFAULT COLLATE utf8_general_ci;USE salt;---- Table structure for table jids--DROP …

mysql php 入门_PHP入门教程之PHP操作MySQL的方法分析

本文实例讲述了PHP操作MySQL的方法。分享给大家供大家参考,具体如下:设置Zend 软件所有 UTF-8 编码设置单个项目 UTF-8 的编码Demo1.phpheader(Content-Type:text/html; charsetutf-8;);//第一步,连接到 Mysql 服务器 3306//第二步参数&#…

and or not 优先级_快速划分测试用例优先级

在工程工期时间有限的情况下,怎么解决测试工期和全部测试用例执行时间之间的矛盾呢?怎么样的设计才能算测试用例引自:IEEE Standard 610 (1990):A set of test inputs, execution conditions, and expected results developed for a particular objectiv…

keil写文字怎么会乱码_主持稿怎么写才会吸引人

现在你是不是想要知道一个主持人它是怎么样把我们都吸引到节目当中来的,当然就是靠的主持稿了,那这个时候你就想要知道了,它应该要怎么写才会吸引人呢,最主要的一点就是需要我们一来就先声夺人,很多的优秀主持人都会这…

dropdownlist三级联动怎么实现_一张表实现三级联动

今天是七夕,七夕快乐,大家今天有没有人约呢?相信大部分的Access玩家都是玩Excel的高手,很多的功能在Excel中实现对大家来说都是小菜,比如今天要讲的联动。那么,我们现在就来讲一下在Access中怎么用一张表实…

Windows Phone开发(29):隔离存储C 转:http://blog.csdn.net/tcjiaan/article/details/7447469...

本文是隔离存储的第三节,大家先喝杯咖啡放松,今天的内容也是非常简单,我们就聊一件东东——用户设置。当然了,可能翻译为应用程序设置合适一些,不过没关系,只要大家明白,它就是用于保存我们的应…

go 函数名之前括号中的内容_2020 重学 Go 系列:09. 一篇文章理解 Go 里的函数

1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构。将一段功能复杂、很长的一段代码封装成多个代码片段(即函数),有助于提高代码可读性和可维护性。在 Go 语言中,函数可以分为两种:带有名字的普通函数没有名字的匿名函数由于 Go…

百度地图gif图标_华为手机误删照片怎么找回?手机怎么快速制作GIF动图

对于华为手机,国内的很多人群都是非常喜欢的,特别是哪些花粉们简直就是疯狂,但是当我们使用华为手机误删了照片应该怎么办?如何才能找回误删的照片?误删手机照片怎么找回?不用担心,下面就让我们…

mysql 获取结果_【原创】7. MYSQL++中的查询结果获取(各种Result类型)

在本节中,我将首先介绍MYSQL中的查询的几个简单例子用法,然后看一下mysqlpp::Query中的几个与查询相关的方法原型(重点关注返回值),最后对几个关键类型进行解释。1. MYSQL的查询实例下面的两个例子分别是STORE(所有数据一次性从服务器拉到本地…

C# Action

C# Action 的一般用法 最近在看汤姆大叔的JavaScript教程,总结的相当好,可惜自己功力尚浅不能把学到的融会贯通。看过今天大叔发的一篇博文,在js的回调函数中想到了一点关于Action的用法。 发一段简单不能在简单的程序 1 class Program 2 …

通过图片 找到桌面相同图片区域坐标_【Axure RP9原型案例】京东与淘宝的商品图片是如何被放大的...

摘要:在电商的商品详情页中我们经常会看到图片放大器的运用,我们以京东商品详情页为例来制作这样的原型效果。案例中综合运用了鼠标移入事件、鼠标移动事件,元件的移动、元件的显示/隐藏等交互动作。京东示意图观察交互首先我们观察京东详情页…

ref的mysql_ref:Mysql授权远程登陆

在Windows环境上操作。步骤如下:1. 打开cmd窗口,登陆mysqlmysql -uroot -p1234562.使用mysql数据库use mysql3.查看结果中host一行中是否有%,如果有%,此行用户名允许远程登录。下图所示,白色框中表示允许远程登录的账号&#xff1…

json格式校验并显示错误_使用postman做自动化接口校验

要想实现接口的自动化测试,需要以下几个步骤:自动登录首先点击postman左上角的new按钮,创建一个collection,在pre-request-scripts标签下,给整个collection创建一个公用规则编写登录脚本pre-request-scripts在请求发送…