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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

3、实验硬件

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

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

from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
from pinpong.board import Servo
import time

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

while True:
    servo1.write_angle(45)
    time.sleep(2)
    servo1.write_angle(90)
    time.sleep(2)
    servo1.write_angle(180)
    time.sleep(2)
    servo1.write_angle(0)
    time.sleep(2)

实验测试视频(29秒)

https://v.youku.com/v_show/id_XNTg4MTgyMDg0OA==.html

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

在这里插入图片描述

实验串口返回情况

在这里插入图片描述

实验场景图

在这里插入图片描述

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

在这里插入图片描述

模块描述
(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

在这里插入图片描述

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

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

from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
from pinpong.board import DHT11
import time

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

while True:
    print("温度=")
    print(DHT11.temp_c())
    print("湿度=")
    print(DHT11.humidity())
    time.sleep(1)

实验串口返回情况

在这里插入图片描述

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

在这里插入图片描述

实验串口返回情况

在这里插入图片描述

实验场景图

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
from pinpong.board import Tone
import time


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

while True:
    tone1.on()
    tone1.freq(200)
    time.sleep(1)
    tone1.off()
    time.sleep(1)

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

在这里插入图片描述

实验场景图

在这里插入图片描述

7、超声波测距模块
(1)主要参数
使用电压:DC—5V
静态电流:小于2mA
电平输出:高5V
电平输出:底0V
感应角度:不大于15度
探测距离:2cm-450cm
高精度 可达0.2cm
接线方式:VCC、trig(控制端)、echo(接收端)、 GND

在这里插入图片描述

测距原理
超声波具有频率较高,沿直线传播、方向性好、绕射小、穿透力强、传播速度慢(约340m/s,与声速相同)等特点。超声波对固体和液体的穿透能力强,尤其对于在阳光下不透明的固体,可以穿透几十m的深度。超声波遇到杂质或分界面时会产生反射波,利用这一特性可构成超声波探伤仪或测距仪。超声波遇到移动物体时会产生多普勒效应(DopplerEffect),使接收到的频率发生变化,由此可制成多普勒测距系统。超声波测距原理是超声波发射探头发出的超声波脉冲,经媒质(空气)传到物体表面,反射后通过媒质(空气)传到接收探头,测出超声脉冲从发射到接收所需的时间,根据媒质中的声速,求得从探头到物体表面之间的距离。设探头到物体表面的距离为L,超声在空气中的传播速为v,从发射到接收所需的传播时间为t,则有:L=vt/2。由此可见,被测距离L与传播时间之间具有确定的函数关系,只要能测出时间t,即可求出距离L,通过软件实现直接在显示器上显示L的值。

在这里插入图片描述

(3)【花雕体验】14 行空板pinpong库测试外接传感器模块(之一)
行空板测试外接传感器模块——Mind+图形编程
测试程序二十七:行空板P21驱动超声波测距
实验接线:行空板P21口接Trig,P22口接Echo

在这里插入图片描述

(4)实验串口返回情况

在这里插入图片描述

(5)实验场景图

在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
光照传感器OPT101的工作原理是基于光敏二极管的光生伏特效应。光敏二极管将输入的光信号转换成电信号,经过运算放大电路放大后,通过ADC采集电压。光敏二极管的电压与光照强度成正比,因此可以通过测量电压的大小来判断光照的强弱。OPT101通过将光敏二极管与运算放大器、ADC采集和晶振等组合在一起,实现了光照信号的转换和放大。\[3\] 在具体的应用中,光照传感器OPT101可以通过连接到Arduino的A0引脚来读取光照强度的数值。通过编写相应的代码,可以将读取到的光照强度数值通过串口显示出来。例如,可以使用以下代码来实现通过串口显示检测室内光线变化的数值与波形: ```c void setup(){ Serial.begin(9600); // 设置串口波特率为9600 pinMode(A0, INPUT); // OPT101连接引脚A0,并设置为输入模式 } void loop(){ Serial.println(analogRead(A0)); //将读取的A0模拟值输出到串口监视器 delay(500); // 延时500毫秒 } ``` 这段代码会不断地读取A0引脚的模拟值,并通过串口将其输出到串口监视器中。通过观察串口监视器中的数值变化,可以了解到光照强度的变化情况。\[2\] #### 引用[.reference_title] - *1* *3* [BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)](https://blog.csdn.net/ShenZhen_zixian/article/details/103542972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【花雕小实验01】使用万用表测量OPT101模拟光照传感器模块](https://blog.csdn.net/weixin_41659040/article/details/125177011)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驴友花雕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值