1292浏览
查看: 1292|回复: 2

【试用测评】pinpong板——MPU6050控制物理沙盒

[复制链接]
【试用测评】pinpong板——MPU6050控制物理沙盒图1
【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等编程平台为开发者提供了极大的自由度和支持准备。

【pyPhysicsSandbox 】
pyPhysicsSandbox 是基于 Pymunk 的一个 2D 物理库,他可以很容易的通过 Python 实现对 2D 物理引擎的模拟。

【试用测评】pinpong板——MPU6050控制物理沙盒图2

【程序代码】
  1. from pyphysicssandbox import *
  2. # -*- coding: utf-8 -*-
  3. #效果:打印检测到的加速度与角速度
  4. #接线:使用windows电脑连接一块arduino主控板
  5. import time
  6. from math import *
  7. from pinpong.board import Board
  8. from pinpong.libs.dfrobot_mpu6050 import MPU6050
  9. K1 =0.05   # 对加速度计取值的权重
  10. dt=20*0.001  #注意:dt的取值为滤波器采样时间
  11. angle1=0.0
  12. Board("PinPong Board").begin()#初始化,选择板型和端口号,不输入端口号则进行自动识别
  13. accelgyro = MPU6050()
  14. accelgyro.init()
  15. if accelgyro.connection():
  16.      print("MPU6050 connection successful")
  17. else:
  18.      print("MPU6050 connection failed")
  19. window("Python物理沙盒测试程序", 1024, 600)
  20. gravity(0.0, 500.0)                     #  设定重力参数
  21. floor       = static_rounded_box((0,570), 1024, 25, 3) # 最下面的地板,静止的
  22. floor.color = Color('brown')
  23. floor.friction=1.0 #摩擦力
  24. floor.elasticity=0.5 #弹性
  25. box2 = static_rounded_box((974,320), 50, 250, 5 ) # 右下品红色的圆角正方形
  26. box2.color = Color('magenta')
  27. box3 = static_rounded_box((0,320), 50, 250, 5 ) # 左下品红色的圆角正方形
  28. box3.color = Color('magenta')
  29. wheel1                 = ball((500, 130), 30)        
  30. wheel1.color           = Color('green')
  31. wheel1.draw_radius_line=True
  32. wheel1.friction        = 1 #摩擦力
  33. wheel1.elasticity=0.5 #弹性
  34. wheel1.wrap  = False
  35. wheel2                 = ball((600, 130), 30)        
  36. wheel2.color           = Color('green')
  37. wheel2.draw_radius_line=True
  38. wheel2.friction        = 1 #摩擦力
  39. wheel2.elasticity=0.5 #弹性
  40. wheel2.wrap  = False
  41. chassis=box((470,0),160,100)
  42. chassis.color=Color("blue")
  43. pin((500,130),wheel1,(470,0),chassis)
  44. pin((500,130),wheel1,(470,100),chassis)
  45. pin((600,130),wheel2,(630,0),chassis)
  46. pin((600,130),wheel2,(630,100),chassis)
  47. def my_observer(keys):
  48.      global K1 ,dt,angle1
  49.      buf = accelgyro.get_motion6()
  50.      ax=buf[0]
  51.      az=buf[2]
  52.      gy=buf[4]
  53.      angleAx=atan2(ax,az)*180/3.1415926 #加速度计算角度
  54.      gyroGy=-gy/131.00 #陀螺仪角速度,注意正负号与放置有关
  55.     #一阶互补滤波
  56.      angle1 = K1 * angleAx +(1-K1) * (angle1 +gyroGy * dt)
  57.      #print("ax:{} ay:{} az:{} gx:{} gy:{} gz:{}".format(buf[0], buf[1], buf[2],buf[3],buf[4],buf[5]))
  58.      print(angle1)
  59.    
  60.      motor(wheel1,angle1)
  61.      motor(wheel2,angle1)
  62.      time.sleep(20*0.001)
  63. add_observer(my_observer)
  64. run()
  65. print("测试完成")
复制代码

【视频演示】


云天  初级技神
 楼主|

发表于 2021-4-29 22:34:33

#语音播报模块
import pyttsx3

#实验效果:使用D8按钮控制外接LED灯亮灭
#接线:使用windows电脑连接一块PinPong主控板,主控板D7接一个LED模块
import time
from pinpong.board import Board,Pin,ADC  #导入ADC类实现模拟输入
#模块初始化
Board("PinPong Board").begin()  #初始化,选择板型和端口号,不输入端口号则进行自动识别
adc0 = ADC(Pin(Pin.A3)) #将Pin传入ADC中实现模拟输入
btn = Pin(Pin.D8, Pin.IN) #引脚初始化为电平输入
engine = pyttsx3.init()
print('准备开始语音播报...')
#设置发音速率,默认值为200
rate = engine.getProperty('rate')
engine.setProperty('rate', rate - 50)
#设置发音大小,范围为0.0-1.0
volume = engine.getProperty('volume')
engine.setProperty('volume', 0.6)
#设置默认的声音:voices[0].id代表男生,voices[1].id代表女生
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)
i=0
while True:
  v = btn.read_digital()  #读取引脚电平
  if v:
      i=1-i
  if i:
    #添加朗读文本
    engine.say(str(adc0.read()))#读取A0口模拟信号数值
    #等待语音播报完毕
    engine.runAndWait()
回复

使用道具 举报

rzegkly  版主

发表于 2021-4-30 08:12:37

学习python进行中,云台的文章很赞,
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail