543浏览
查看: 543|回复: 1

【试用测评】pinpong板——语音播报电位器值

[复制链接]
本帖最后由 云天 于 2021-4-30 11:20 编辑

IMG_20210430_093151.jpg


【pinpong板】
PinPong Board是一款专为学习Python语言而设计的课堂类教学主板,可以满足用户所有需求,不仅可以用来制作智能检测设备,还可以制作成无线通讯设备,实现智能家居以及人工智能等。
一、产品特点
1、PinPong Board完全兼容传统的Arduino,还在Arduino原有功能的基础上集成了2路电机驱动、OLED显示、红外接收/发射、光线传感器、声音传感器、温湿度传感器、陀螺仪等新型传感器等硬件功能。
2、WiFi与局域网相连接可以实现无线下载程序功能,让你摆脱USB线的束缚。远距离的更新程序,同一个局域网内的设备可以进行无线传输,主从机设置,甚至一个PC端同时控制局域网内的所有设备。
3、基于Python编程,提供PinPong使用教程及大量的example,方便学习使用Python驱动硬件。
4、多元化编程方式和编程平台,可依据学习情况选择Python图形化编程、Python语言编程不同的编程方式;Mind+、Python等编程平台为开发者提供了极大的自由度和支持准备。

【pyttsx3】
QQ截图20210430090415.png


pyttsx3是Python中的文本到语音转换库,他可以脱机工作。Mind+的python模式中安装pyttsx3库。
【程序代码】
  1. #语音播报模块
  2. import pyttsx3
  3. #实验效果:使用D8按钮控制外接LED灯亮灭
  4. #接线:使用windows电脑连接一块PinPong主控板,主控板D7接一个LED模块
  5. import time
  6. from pinpong.board import Board,Pin,ADC  #导入ADC类实现模拟输入
  7. #模块初始化
  8. Board("PinPong Board").begin()  #初始化,选择板型和端口号,不输入端口号则进行自动识别
  9. adc0 = ADC(Pin(Pin.A3)) #将Pin传入ADC中实现模拟输入
  10. btn = Pin(Pin.D8, Pin.IN) #引脚初始化为电平输入
  11. engine = pyttsx3.init()
  12. print('准备开始语音播报...')
  13. #设置发音速率,默认值为200
  14. rate = engine.getProperty('rate')
  15. engine.setProperty('rate', rate - 50)
  16. #设置发音大小,范围为0.0-1.0
  17. volume = engine.getProperty('volume')
  18. engine.setProperty('volume', 0.6)
  19. #设置默认的声音:voices[0].id代表男生,voices[1].id代表女生
  20. voices = engine.getProperty('voices')
  21. engine.setProperty('voice', voices[1].id)
  22. i=0
  23. while True:
  24.   v = btn.read_digital()  #读取引脚电平
  25.   if v:
  26.       i=1-i
  27.   if i:
  28.     #添加朗读文本
  29.     value_str=str(adc0.read())
  30.     print(value_str)
  31.     engine.say(value_str)#读取A0口模拟信号数值
  32.     #等待语音播报完毕
  33.     engine.runAndWait()
复制代码
【演示视频】
英文播报

中文播报


电位器控制彩灯亮度

  1. #语音播报模块
  2. import pyttsx3
  3. #实验效果:使用D8按钮控制外接LED灯亮灭
  4. #接线:使用windows电脑连接一块PinPong主控板,主控板D7接一个LED模块
  5. import time
  6. from pinpong.board import Board,Pin,NeoPixel,ADC  #导入ADC类实现模拟输入
  7. #模块初始化
  8. Board("PinPong Board").begin()  #初始化,选择板型和端口号,不输入端口号则进行自动识别
  9. adc0 = ADC(Pin(Pin.A3)) #将Pin传入ADC中实现模拟输入
  10. btn = Pin(Pin.D8, Pin.IN) #引脚初始化为电平输入
  11. NEOPIXEL_PIN = Pin.D9
  12. PIXELS_NUM = 1 #灯数
  13. np = NeoPixel(Pin(NEOPIXEL_PIN), PIXELS_NUM)
  14. engine = pyttsx3.init()
  15. #设置发音速率,默认值为200
  16. rate = engine.getProperty('rate')
  17. engine.setProperty('rate', rate - 50)
  18. #设置发音大小,范围为0.0-1.0
  19. volume = engine.getProperty('volume')
  20. engine.setProperty('volume', 0.6)
  21. #设置默认的声音:voices[0].id代表男生,voices[1].id代表女生
  22. voices = engine.getProperty('voices')
  23. # 普通话发音
  24. engine.setProperty('voice', 'zh')
  25. print('准备开始语音播报...')
  26. engine.say('语音播报')
  27. #等待语音播报完毕
  28. engine.runAndWait()
  29. i=0
  30. while True:
  31.   v = btn.read_digital()  #读取引脚电平
  32.   if v:
  33.       i=1-i
  34.   if i:
  35.     #添加朗读文本
  36.     value=adc0.read()
  37.     value_str=str(value)
  38.     np[0] = (value, 0 ,0) #通过调节电位器改变RGB灯的亮度
  39.     print(value_str)
  40.     engine.say(value_str)#读取A0口模拟信号数值
  41.     #等待语音播报完毕
  42.     engine.runAndWait()
复制代码














云天  高级技匠
 楼主|

发表于 2021-5-1 07:58:36

import qrcode
from pinpong.board import Board
from pinpong.libs.dfrobot_ssd1306 import SSD1306_I2C #导入ssd1306库
from skimage import io,data
Board("uno").begin()  #初始化,选择板型和端口号,不输入端口号则进行自动识别

oled=SSD1306_I2C(width=128, height=64) #初始化屏幕,传入屏幕像素点数
data = 'http://www.baidu.com/'
img_file = r'image1.png'

# 实例化QRCode生成qr对象
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=1,
    border=1
)
# 传入数据
qr.add_data(data)

qr.make(fit=True)

# 生成二维码
img = qr.make_image()

# 保存二维码
img.save(img_file)
# 展示二维码
img=io.imread(img_file,as_grey = bool)#以上的读取图片函数

print(img[0][0])
#img.show()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail