扩音系统
大约 2 分钟约 725 字
扩音系统
| 适用教材 | 浙教版《义务教育教科书 信息科技》 |
|---|---|
| 资源名称 | 扩音系统 |
| 使用产品 | 信息科技(浙教版教具资源包) |
| 课程参考 | 六年级下册 第43页 |
| 搭建动画 | |
| 搭建动画 | |
![]() |
本次实验采用信息科技实验板及其扩展板,配合语音合成模块(外置)、程控扩音模块(外置)和外置喇叭(外置)、板载音量传感器来实现扩音系统的应用模型。程序中预制语音的GBK码,通过语音合成模块输出音频信号,通过程控扩音模块与外置喇叭播出相应的音频。在不同的板载音量值下通过程序调节扩音系统的输出音频的不同响度。当环境音量变大时,输出的音频的响度变大,反之变小。

# -*- coding: utf_8 -*-
from npython import * # 导入npython模块
#通过计算机PYTHON将语音文字转成GBK码
#语音的GBK码值
msg1=b'\xd5\xe2\xca\xc7\xc0\xa9\xd2\xf4\xcf\xb5\xcd\xb3\xb5\xc4\xd2\xbb\xb8\xf6\xbc\xf2\xb5\xa5\xb5\xc4\xd3\xa6\xd3\xc3\xb0\xb8\xc0\xfd\xa1\xa3'
#英文可以不转码直接用
msg2=b'this is an example.'
uart2 = UART(2, baudrate=115200, rx=PINS[5], tx=PINS[13], timeout=10)
def text2Voice(msg_gbk, sec=3):
code = b''
code += bytes([0xFD])# 帧头
strLen = len(msg_gbk) + 2 # 长度
code += struct.pack('>H', strLen)
code += bytes([0x01, 0x00])
code += msg_gbk
uart2.write(code)
time.sleep(sec)
SP=Speaker()#扩音类化
time.sleep(0.5)
SP.set_mode(1)#设置播放单来自LINE_IN
time.sleep(0.5)
SP.volume(3)#设置初始音量
time.sleep(0.5)
oled.print(5,1,"扩音系统",1)
#根据板载光敏传感器控制音量,当光线越亮时音量越响
while True:
#只有语单循环时才切换音量
text2Voice(msg1)
time.sleep(4)
text2Voice(msg2)
time.sleep(2)
data=light.read()#取环境光线
oled.print(1,3,"环境亮度=%d" % data,1)
if data>1000:
SP.volume(5)
oled.print(1,2,"音量等级= 5",1)
time.sleep(0.5)
elif data>600:
SP.volume(4)
oled.print(1,2,"音量等级= 4",1)
time.sleep(1)
elif data>400:
SP.volume(3)
oled.print(1,2,"音量等级= 3",1)
time.sleep(1)
elif data>200:
SP.volume(2)
oled.print(1,2,"音量等级= 2",1)
time.sleep(1)
else:
SP.volume(1)
oled.print(1,2,"音量等级= 1",1)
time.sleep(1)

