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,一经查实,立即删除!

相关文章

【转】选择适当的NFC标签类型

来自: Innovision 研究技术有限公司 目录 1. 简介 3 2. NFC的主要应用 4 3. NFC的规定标签类型 5 4. 选择适当的标签 6 5. 小结 11 6. 术语表 12 1. 简介 近场通信(NFC)适用于非常广泛的一系列应用。构建于现有系统和人类行为的基础上,NFC使人们的生活变…

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

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

奥维地图导入西安坐标_奥维地图导入坐标样式 奥维地图批量导入经纬度坐标...

奥维地图坐标导入哪个文件夹?两个办法:  如果想导出到电脑版奥维地图里,可以采用同步到云端再下载到本地的办法解决。如果要作为数据文件保存到电脑里,可以按以下办法操作:  更多——数据管理——导入导出标记——…

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

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

RTTI 简明

RTTI(Run-Time Type Identification)并不是什么新的东西,早在1993年,Bjarne Stroustrup已经提出了RTTI的相关的功能建议. 什么是RTTI? 在C 环境中﹐头文件(header file) 含有类之定义(class definition)亦即包含有关类的结构资料(representational information)。但是﹐这…

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

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

[html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决?

[html] android手机的微信H5弹出的软键盘挡住了文本框,如何解决? window.addEventListener("resize", function () {if (document.activeElement.tagName "INPUT" || document.activeElement.tagName "TEXTAREA") {wind…

SecureCRT 全屏切换

使用 ALTEnter 键进行全屏和取消全屏的切换转载于:https://www.cnblogs.com/flyme/archive/2012/07/04/2575716.html

python知识图谱可视化_知识图谱可视化

## 人物关系知识图谱#### 一、背景将结构化数据通过关系预处理程序处理为图数据库可以查询的数据,示例是将其中一部分(人物关系数据)可视化表示。#### 二、用到的技术技术点:图数据库Neo4j,d3.js,java,css,…

[html] 编写一个布局,让文字环绕在图片的周围

[html] 编写一个布局,让文字环绕在图片的周围 让图片 float 就可以了,如果还想要实现文字圆形环绕图片的效果,可以使用 shape-outside: circle(); 属性个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,…

[html] input上传文件可以同时选择多张吗?怎么设置?

[html] input上传文件可以同时选择多张吗&#xff1f;怎么设置&#xff1f; <input type"file" multiple />个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关…

My97DatePicker详细说明

js 时间插件 http://www.mysuc.com/test/My97DatePicker/#m311转载于:https://www.cnblogs.com/guyg/archive/2012/07/06/2579623.html

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

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

saltstack mysql_saltstack学习五:return及入库_MySQL

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

[html] input上传图片怎样触发默认拍照功能

[html] input上传图片怎样触发默认拍照功能 使用 capture 属性&#xff0c;capture 的值可以是&#xff1a;camera 打开摄像头user 打开前置摄像头environment 打开后置摄像头以上几个属性都不能保证设备会按照设置的一样打开前置或后置摄像头&#xff0c;如果设备不支持的话&…

|DataDirectory|的使用

Ado.net2.0中新增加了一个MagicValue,可以在应用程序的配置文件的数据库链接串种使用|DataDirectory| ,例如: <connectionStrings><add name"ConnectionString"connectionString"data source.;Integrated SecuritySSPI;AttachDBFilename|DataDirector…

腾讯云对象存储 python_python 云存储

广告关闭云服务器1核2G首年99年&#xff0c;还有多款热门云产品满足您的上云需求存储桶 bucketxml python sdk 存储桶名称由两部分组成&#xff1a;用户自定义字符串 和 appid&#xff0c;两者以中划线“-”相连。 例如 mybucket1-1250000000&#xff0c;其中 mybucket1 为用户…

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

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

[html] 举例说明Shadow DOM的应用场景有哪些?

[html] 举例说明Shadow DOM的应用场景有哪些&#xff1f; 可以将 shadow DOM 视为“DOM中的DOM”。它是自己独立的DOM树&#xff0c;具有自己的元素和样式&#xff0c;与原始DOM完全隔离。可以应用在组件中。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃…

Spring in Action 3 (翻译)

第一部分 Spring的核心 用Spring我们可以做很多工作。但是当你取其核心时你会发现&#xff0c;Spring最主要的特征就是依赖注入-DI&#xff08;Dependency Injection&#xff09;和面向切面编程-AOP&#xff08;Aspect Oriented Programming&#xff09;。在第一章“开始Sprin…