268浏览
查看: 268|回复: 26

【花雕体验】14 行空板pinpong库测试外接传感器模块

[复制链接]
本帖最后由 驴友花雕 于 2022-6-30 11:14 编辑

1、pinpong库是一套控制开源硬件主控板的Python库,基于Firmata协议并兼容MicroPython语法,5分钟即可让你上手使用Python控制开源硬件。借助于pinpong库,直接用Python代码就能给各种常见的开源硬件编程。其原理是给开源硬件烧录一个特定的固件,使开源硬件可以通过串口与电脑通讯,执行各种命令。

pinpong库的名称由“Pin”和“Pong”组成,“Pin”指引脚,“PinPong”为“乒乓球”的谐音,指信号的往复。pinpong库的设计,是为了让开发者在开发过程中不用被繁杂的硬件型号束缚,而将重点转移到软件的实现。哪怕程序编写初期用Arduino开发,部署时改成了掌控板,只要修改一下硬件的参数就能正常运行,实现了“一次编写处处运行”。

17.1-2-01.jpg

驴友花雕  初级技神
 楼主|

发表于 2022-6-30 08:52:44

6、蜂鸣器
(1)有源蜂鸣器(Active buzzer)内建了一组固定的频率,只要接通电源,就会发出固定的音调。蜂鸣器的源,这里指的是震荡源。也就是说有源蜂鸣器内部带有多谐振荡器,可以产生 1.5kHZ-2.5kHZ 的电压信号,由此有源蜂鸣器才能发声。有源蜂鸣器、无源蜂鸣器的外型很像,一般有源蜂鸣器会在上面贴一个白色贴纸,另外,有源蜂鸣器底部也会有胶封,无源蜂鸣器的底部可以直接看到电路板。有源蜂鸣器往往比无源的贵一点,就是因为里面多个震荡电路。有源蜂鸣器的优点是,编程控制简单方便,适合大部分的简单使用场景。缺点是只能在固定频率上运行,从而降低了随着应用需求变化而实现备用频率的灵活性。有源蜂鸣器工作的理想信号是直流电,通常标示为VDC、VDD等。因为蜂鸣器内部有一简单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号,从而实现磁场交变,带动铝片振动发音。但是在某些有源蜂鸣器在特定的交流信号下也可以工作,只是对交流信号的电压和频率要求很高,此种工作方式一般不采用。

13.1-10.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 20:09:13


【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
行空板测试外接传感器模块——Mind+代码编程
测试程序二十三:行空板P21口读取DHT11温湿度传感器数值
实验接线:行空板P21口接DHT11温湿度传感器模块


  1. #【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
  2. #行空板测试外接传感器模块——Mind+代码编程
  3. #测试程序二十三:行空板P21口读取DHT11温湿度传感器数值
  4. #实验接线:行空板P21口接DHT11温湿度传感器模块

  5. from pinpong.extension.unihiker import *
  6. from pinpong.board import Board,Pin
  7. from pinpong.board import DHT11
  8. import time

  9. Board().begin()
  10. print("行空板P21口读取DHT11温湿度传感器数值")
  11. DHT11 = DHT11(Pin((Pin.P21)))

  12. while True:
  13.     print("温度=")
  14.     print(DHT11.temp_c())
  15.     print("湿度=")
  16.     print(DHT11.humidity())
  17.     time.sleep(1)
复制代码


回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 16:06:03

PWM信号和舵机转动角度的关系
说到舵机的控制信号,一般是脉宽调制(PWM)信号,如下图,直观反映了PWM信号和舵机转动角度的关系,你也可以简单的理解为,通过给舵机通电的时间控制,结合角度传感器的反馈信号检测和控制,实现了舵机的精确角度控制。舵机的控制信号周期为20MS的脉宽调制信号(PWM),其中脉宽从0.5ms-2.5ms,相应的舵盘位置从0-180度,呈线型变化。也就是说,给舵机提供一定的脉宽,他的输出轴就会保持一定的对应角度,无论外接转矩怎么改变,知道给他提供另外一个脉冲信号,他才会改变输出角度到新的对应的位置上。舵机内部有一个基准电路,产生周期为20MS,宽度为1.5MS的脉冲信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比喻说机器人的关节、飞机的舵面等。


17.1-2-05.jpg

17.1-2-06.gif
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 12:39:15

2、pinpong库导入方法
pinpong库由于支持众多的主控板及开源硬件,因此分成了3个包,board、extension和libs,board包中放置主板支持的功能及常用库,extension为定制类主控,libs中放置其他传感器的扩展库。pinpong库支持多块主控板的使用,因此可以指定板型及端口号并生成对象,因为行空板上固定为协处理器并且端口号固定,因此可以省略掉这些参数而直接初始化。

  1. from pinpong.board import xxx   #board包中的库
  2. from pinpong.libs.xxx    #libs包中的库
  3. from pinpong.extension.xxx    #extension包中的主板

  4. Board().begin() #初始化,连接协处理器,检查固件为空或版本不对则自动烧录
复制代码

17.1-2-02.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 12:57:50

3、实验硬件

17.1-2-03.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 15:59:43

4、9G舵机
是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机主要由外壳、电路板、无核心马达、齿轮与位置检测器所构成。其工作原理是由接收机或者单片机发出信号给舵机,其内部有一个基准电路,产生周期为20ms,宽度为1.5ms 的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。经由电路板上的IC 判断转动方向,再驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。适用于那些需要角度不断变化并可以保持的控制系统。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。一般舵机旋转的角度范围是0 度到180 度。

17.1-2-04.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 17:12:11

【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
行空板测试外接传感器模块——Mind+代码编程
测试程序二十一:行空板P21口控制舵机
实验接线:行空板P21口接9G舵机模块

  1. #【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
  2. #行空板测试外接传感器模块——Mind+代码编程
  3. #测试程序二十一:行空板P21口控制舵机
  4. #实验接线:行空板P21口接9G舵机模块

  5. from pinpong.extension.unihiker import *
  6. from pinpong.board import Board,Pin
  7. from pinpong.board import Servo
  8. import time

  9. Board().begin()
  10. servo1 = Servo(Pin((Pin.P21)))

  11. while True:
  12.     servo1.write_angle(45)
  13.     time.sleep(2)
  14.     servo1.write_angle(90)
  15.     time.sleep(2)
  16.     servo1.write_angle(180)
  17.     time.sleep(2)
  18.     servo1.write_angle(0)
  19.     time.sleep(2)
复制代码


回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 17:22:47

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 17:34:49

【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
行空板测试外接传感器模块——Mind+图形编程
测试程序二十二:行空板P21口控制舵机
实验接线:行空板P21口接9G舵机模块

17.1-2-07.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 17:37:39

实验串口返回情况


17.1-2-08.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 17:40:03

实验场景图


17.1-2-09.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 19:40:24

5、DHT11温湿度传感器
DHT11是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。

17.1-2-10.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 19:43:03

模块描述
(1)可以检测周围环境的湿度和温度
(2)传感器采用DHT11
(3)湿度测量范围:20%-95%(0度-50度范围)湿度测量误差:+-5%
(4)温度测量范围:0度-50度 温度测量误差:+-2度
(5)工作电压3.3V-5V
(6)输出形式 数字输出         
(7)设有固定螺栓孔,方便安装
(8)小板PCB尺寸:3.2cm*1.4cm
(9)电源指示灯(红色)
(10)每套重量约为8g

17.1-2-11.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 20:14:32

实验串口返回情况

17.1-2-12.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 20:33:05

【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
行空板测试外接传感器模块——Mind+图形编程
测试程序二十四:行空板P21口读取DHT11数值并控制LED
实验接线:行空板P21口接DHT11温湿度传感器模块
                行空板P22口接LED模块

17.1-2-13.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 20:35:36

实验串口返回情况


17.1-2-14.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-29 20:38:04

实验场景图

17.1-2-15.jpg

回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-30 08:55:24

(2)无源蜂鸣器(Passive Buzzer)在字义上说,即不带振荡源,在没有振荡电路情况下接上直流电,因输出电压没有变化,蜂鸣器片仍然保持沉默,所以我们需从外接振荡器。看似不方便,但亦有其优点。首先,零件数量少,售价较低是常识吧!其次,我们可脱离一般蜂鸣器只可发出单音的局限,自由控制输出声音频率,便可透过编程写出不同音阶和延续时间,合成一首旋律美妙的音乐。无源蜂鸣器没有内部驱动电路,有些公司和工厂称为讯响器,国标中称为声响器。无源蜂鸣器工作的理想信号方波。如果给予直流信号蜂鸣器是不响应的,因为磁路恒定,钼片不能振动发音。

13.1-11.jpg
回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-30 09:11:48

【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
行空板测试外接传感器模块——Mind+代码编程
测试程序二十五:行空板P21口驱动蜂鸣器(无源)
实验接线:行空板P21口接蜂鸣器模块

  1. #【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
  2. #行空板测试外接传感器模块——Mind+代码编程
  3. #测试程序二十五:行空板P21口驱动蜂鸣器(无源)
  4. #实验接线:行空板P21口接蜂鸣器模块

  5. from pinpong.extension.unihiker import *
  6. from pinpong.board import Board,Pin
  7. from pinpong.board import Tone
  8. import time


  9. Board().begin()
  10. tone1 = Tone(Pin((Pin.P21)))

  11. while True:
  12.     tone1.on()
  13.     tone1.freq(200)
  14.     time.sleep(1)
  15.     tone1.off()
  16.     time.sleep(1)
复制代码


回复

使用道具 举报

驴友花雕  初级技神
 楼主|

发表于 2022-6-30 09:47:36

【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
行空板测试外接传感器模块——Mind+图形编程
测试程序二十六:声光经警报器
实验接线:行空板P21口接蜂鸣器模块,P22口接LED

17.1-2-16.jpg

回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail