掌控板拓展板
硬件概述
掌控拓展板是mPython掌控板衍生的一款体积小巧、易于携带。支持电机驱动、语音播放、语音合成等功能的IO引脚扩展板,可扩展12路IO接口和2路I2C接口。
库的安装方法
可通过以下任一方法进行安装。
- 将项目中的
extBoard.py
和依赖于base64.py
拷到掌控板文件系统上 - 在掌控板REPL界面中,使用upip安装,步骤如下:
- 前置条件需要掌控板连接网络
- 导入upip模块,执行
import upip
- 执行`upip.install('mPython-extBoard')
>>> import upip
>>> upip.install('mPython-extBoard')
使用
电机驱动
示例:
from mpython import sleep
from extBoard import motor
# 设置电机1/2,速度范围-100~100
motor.setMotor1(80) #正转80速度
motor.setMotor2(80)
sleep(5)
motor.setMotor1(-80) #反转80速度
motor.setMotor2(-80)
sleep(5)
音频解码
目前只支持mp3
格式的音频文件解码。
- 播放本地mp3音频:受micropython文件系统限制,当文件大于1M基本很难下载下去。所以在使用本地播放
audio.local_play(file)
时,原则音mp3文件应尽量小。 - 播放网络mp3音频:
audio.url_play(url)
,url
为mp3音频的网络链接地址。
示例:
from mpython import *
from extBoard import mp3
mywifi=wifi()
mywifi.connectWiFi('ssid','password') # 连接wifi网络
# 播放本地"music.mp3"文件
audio.local_play("music.mp3")
# 播放网络mp3
audio.url_play("http://zhangmenshiting.qianqian.com/data2/music/464e50c6b1ca0dc850e3d9c67da9c922/599459882/599459882.mp3?xcode=9bebaff7b0af3395c70098e904ce32a9")
audio.close() # 关闭解码
TTS(文字转语音)
将文字信息转化为声音信息,给掌控板配上“嘴巴”。其合成音在音色、自然度等方面的表现均接近甚至超过了人声。
该功能使用讯飞的在线语音合成服务,需要用户自行在在讯飞开发平台(https://www.xfyun.cn/)注册账号,步骤如下:
- 注册账号
- 新建产品,选择“在线语音合成”服务。
- 在IP白名单中添加网络的公网IP。
示例:
from mpython import *
from extBoard import *
mywifi=wifi()
mywifi.connectWiFi('ssid','password') #连接 WiFi 网络
APPID = "" # 讯飞应用ID
API_KEY = "" # 讯飞应用的api key
tts=TTS(APPID,API_KEY) #构建TTS实例,并传入appid,api key 参数.
# 沁园春·长沙 诗词
poem= "独立寒秋,湘江北去,橘子洲头。 \
看万山红遍,层林尽染;漫江碧透,百舸争流。\
鹰击长空,鱼翔浅底,万类霜天竞自由。\
怅寥廓,问苍茫大地,谁主沉浮?\
携来百侣曾游。忆往昔峥嵘岁月稠。\
恰同学少年,风华正茂;书生意气,挥斥方遒。\
指点江山,激扬文字,粪土当年万户侯。\
曾记否,到中流击水,浪遏飞舟?"\
tts.translate(poem) # 文字转语音并播放
API 说明
函数 | 功能说明 | 参数 |
---|---|---|
motor.setMotor1(speed) | 设置1号电机速度 |
speed :速度,范围-100~100。当为负值,反转;当为正值,正转。 |
motor.setMotor2(speed) | 设置2号电机速度 | 同上 |
motor.getMotor1() | 获取1号电机速度 | / |
motor.getMotor2() | 同上 | / |
audio.local_play(file) | 播放本地mp3音频文件 |
file :mp3音频文件名称,类型字符串 |
audio.url_play(url) | 播放网络mp3音频 |
url :mp3网络音频链接地址,类型字符串 |
audio.close() | 关闭音频解码 | / |
TTS(appid,api_key,voice_name="xiaoyan",engine_type="intp65") | TTS类,语音合成,可将文字转语音 |
appid 讯飞平台appid api_key :讯飞平台api keyvoice_name :发音人,默认"xiaoyan" engine_type :引擎类型,默认"intp65" 更多参数说明,请看 讯飞语音合成开发文档 |
TTS.translate(text) | 文字转语音 |
text :需要转换的文本 |
TTS.client_ip() | 获取公网IP |
执照
所有代码均在MIT许可下发布。