锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【花雕体验】08 行空板硬件控制pinpong库的系列测试(之一)

时间:2022-11-17 10:00:00 u型光式传感器系列37板型电阻器1密封控制连接器23芯d耐压传感器传感器

行空板集成了光传感器、麦克风、蜂鸣器Wifi、蓝牙、加速度传感器,按钮,正面配置LCD彩屏可实时呈现多种颜色Python操作结果包括文字、图片、视频、游戏图片、数据图表等。

在这里插入图片描述
【花雕体验】01上手行空板
https://blog.csdn.net/weixin_41659040/article/details/125234791
花雕体验02 简单使用行空板
https://blog.csdn.net/weixin_41659040/article/details/125241515
花雕体验03 构建行空板开发环境Mind
https://blog.csdn.net/weixin_41659040/article/details/125253024
【花雕体验】04 测试行空板的常用功能
https://blog.csdn.net/weixin_41659040/article/details/125270783
花雕体验05 构建行空板开发环境SSH连接与Jupyter编程
https://blog.csdn.net/weixin_41659040/article/details/125319343
花雕体验06 构建行空板开发环境Thonny编程
https://blog.csdn.net/weixin_41659040/article/details/125326750
花雕体验07 构建行空板开发环境VSCode编程
https://blog.csdn.net/weixin_41659040/article/details/125330242
花雕体验08 行空板硬件控制pinpong库系列测试(一)
https://blog.csdn.net/weixin_41659040/article/details/125336810

1.行空板载传感器及接口布局图

2.单片机协处理器负责行空板上的板载元件和GPIO因此,我们通过控制Python需要使用控制pinpong库(固件内置,不用安装)。

安装:

pip install pinpong 

更新:

pip install -U pinpong 

3、pinpong库是一套控制开源硬件主控板Python库,基于Firmata协议并兼容MicroPython语法可以在5分钟内使用Python控制开源硬件。

借助于pinpong库,直接用Python代码可以编程各种常见的开源硬件。其原理是为开源硬件烧录特定的固件,使开源硬件通过串口与计算机通信执行各种命令。

pinpong库的名字由Pin”和“Pong”组成,“Pin指引脚,PinPong乒乓球的谐音是指信号的往复。

pinpong图书馆的设计是将重点转移到软件的实现上,以便开发者在开发过程中不受复杂硬件模型的束缚。即使在程序编写的早期阶段使用Arduino在开发和部署过程中,它被改为控制板。只要修改硬件参数,就可以正常运行,实现一次到处编写。

官方文档:https://pinpong.readthedocs.io/zh_CN/latest/

点击观看pinpong入门视频互动视频教程:

https://www.bilibili.com/video/BV17K4y1T7MF

4、pinpong库导入方法
pinpong库分为三个包,因为它支持许多主控板和开源硬件,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() #初始化,连接协处理器,检查固件是空的或错误的版本 

5.一系列测试行空板载资源
(1)板载蓝色LED灯(简称L)
发光二极管(英语:light-emitting diode,简称LED)它是一种半导体光源,当电流通过时会发光;它是一种电致发光的半导体电子元件,其内部电子和电子空穴以光子的形式释放能量。发光二极管结构的核心部分是p-n环氧树脂密封周围的引线和框架,以保护内芯线。当p-n可见或非可见辐射可以发射可见或非可见的辐射,这是由三价和五价元素组成的复合光源。发光二极管只能向一个方向引导(通电),称为正偏置;当电流过时,电子和电孔(电子孔)发出单色光,称为电致发光效应;光的波长和颜色与半导体材料的类型和故意混合的元素杂质有关。发光二极管具有效率高、寿命长、不易损坏、反应速度快、可靠性高等优点。

发光二极管(LED)1962年出现时,惠普购买专利后,只能发出低光红光作为指示灯。其他单色光其他单色光版本,到目前为止,能发出的光已经遍布可见光、红外线和紫外线,光度也提高到了相当高的水平。随着白光发光二极管的出现,用途已经从最初的指示灯和显示板逐渐发展到近年来的照明用途。白光LED近年来,发光效率也有所提高。由于大量资金投入,其每千流明成本降低了价格,近年来在照明用途上越来越普及。

行空板背面有蓝色LED灯(标记为L)可供用户控制。
L灯由高低电平控制,接收空板P因此,在25接口上控制PL灯可控制25。

语法:Pin(Pin.P25, Pin.OUT).write_digital(电平信号) 返回值:无 输入参数:1高电平, 0低电平 

花雕体验08行空板硬件控制pinpong库系列测试(一)
行空板载资源测试
测试程序1:蓝色板:蓝色板:LED灯(简称L)

#【花雕体验】08行空板硬件控制pinpong库系列测试(一) # 行空板载资源测试 # 测试程序1:蓝色板:蓝色板:LED灯(简称L)  # -*- coding: UTF-8 -*- from pinpong.board import Board,Pin
import time

Board().begin()    #初始化
#引脚初始化为电平输出模式,P25为L灯的引脚
led = Pin(Pin.P25, Pin.OUT) 
print("板载蓝色LED灯测试")

while True:
  #led.value(1) #输出高电平 方法1
  led.write_digital(1) #输出高电平 方法2
  print("1点亮LED") #终端打印信息
  time.sleep(1) #等待1秒 保持状态

  #led.value(0) #输出低电平 方法1
  led.write_digital(0) #输出低电平 方法2
  print("0熄灭LED") #终端打印信息
  time.sleep(1) #等待1秒 保持状态

实验场景图(点亮熄灭蓝色LED)

【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
行空板板载资源的测试——Mind+图形编程
测试程序二:板载蓝色LED灯(简称L)

实验串口返回情况

(2)板载A、B按钮开关
【科普知识点】按钮开关是指利用按钮推动传动机构,使动触点与静触点按通或断开并实现电路换接的开关。按钮开关是一种结构简单,应用十分广泛的主令电器。在电气自动控制电路中,用于手动发出控制信号以控制接触器、继电器、电磁起动器等。在按钮未按下时,动触头与上面的静触头是接通的,这对触头称为常闭触头。此时,动触头与下面的静触头是断开的,这对触头称为常开触头:按下按钮,常闭触头断开,常开触头闭合;松开按钮,在复位弹簧的作用下恢复原来的工作状态。

按钮开关的结构种类很多,可分为普通揿钮式、蘑菇头式、自式、自复位式、旋柄式、带指示灯式、带灯符号式及钥匙式等,有单钮、双钮、i钮及不同组合形式。一般是采用积水式结构,由按钮帽、复位弹簧、静触头、动触头和外壳等组成,通常做成复合式,有一对常闭触头和常开触头,有的产品可通过多个元件的串联增加触头对数。还有一种自持式按钮,按下后即可自动保持闭合位置,断电后才能打开。

行空板上有三个按键:Home、A、B,其中Home按键仅供Home菜单使用,A、B按键可供用户调用(注:由于AB按键同时被映射为了键盘的AB按键,因此除了使用pinpong调用,还可以用unihiker库中的键盘事件调用)。

在pinpong库中,按钮有两种方式调用,一种是直接读取 查询式,第二种是中断事件回调式。查询式 :

语法:button_a.is_pressed() button_b.is_pressed()
返回值:按钮按下返回True,按钮没有按下返回False
输入参数:无

【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
行空板板载资源的测试——Mind+代码编程
测试程序三:板载A、B按钮开关(查询式)

#【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
# 行空板板载资源的测试——Mind+代码编程
# 测试程序三:板载A、B按钮开关(查询式)

# -*- coding: UTF-8 -*-
from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin

Board().begin()
#引脚初始化为电平输出模式,P25为L灯的引脚
led = Pin(Pin.P25, Pin.OUT)
print("板载A、B按钮开关(查询式)")

while True:
    if (button_a.is_pressed()==True): #判断按钮A是否被按下
        print("按钮A按下,点亮LED")
        led.value(1) #输出高电平
    if (button_b.is_pressed()==True): #判断按钮B是否被按下
        print("按钮B按下,LED熄灭")
        led.value(0) #输出低电平

实验场景图(按下A按钮点亮蓝色LED)

【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
行空板板载资源的测试——Mind+图形编程
测试程序四:板载A、B按钮开关(查询式)

实验串口返回情况

在pinpong库中,按钮有两种方式调用,第二种是中断事件回调式。

语法:button_a.irq(trigger=触发模式, handler = 回调函数) button_b.irq(trigger=触发模式, handler = 回调函数)

返回值:无

输入参数:

trigger:触发模式,有上升沿(Pin.IRQ_RISING)、下降沿(Pin.IRQ_FALLING)、电平跳变(Pin.IRQ_RISING+Pin.IRQ_FALLING)三种

【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
行空板板载资源的测试——Mind+代码编程
测试程序五:板载A、B按钮开关(中断回调式)

#【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
# 行空板板载资源的测试——Mind+代码编程
# 测试程序五:板载A、B按钮开关(中断回调式)

# -*- coding: UTF-8 -*-
from pinpong.extension.unihiker import *
from pinpong.board import Board,Pin
import time

Board().begin()
#引脚初始化为电平输出模式,P25为L灯的引脚
led = Pin(Pin.P25, Pin.OUT)
print("板载A、B按钮开关(中断回调式)")

def btn_a_rasing_handler(pin):#中断事件回调函数
  print("按钮A按下,点亮LED")
  led.value(1) #输出高电平

def btn_b_falling_handler(pin):#中断事件回调函数
  print("按钮B按下,LED熄灭")
  led.value(0) #输出低电平

button_a.irq(trigger=Pin.IRQ_RISING, handler = btn_a_rasing_handler)#上升沿触发
button_b.irq(trigger=Pin.IRQ_FALLING, handler = btn_b_falling_handler)#下降沿触发

while True:
    time.sleep(1)#等待让程序不退出

实验串口返回情况


(3)板载光线传感器(模拟量)
【科普知识点】光线传感器通常是指能由能敏锐感应光能量,并将光能量转换成电信号的器件。它是一种传感装置,主要由光敏元件组成,主要分为环境光传感器、红外光传感器、太阳光传感器、紫外光传感器四类,主要应用在改变车身电子应用和智能照明系统等领域。现代电测技术日趋成熟,由于具有精度高、便于微机相连实现自动实时处理等优点,已经广泛应用在电气量和非电气量的测量中。然而电测法容易受到干扰,在交流测量时,频率响应不够宽及对耐压、绝缘方面有一定要求,在激光技术迅速发展的今天,已经能够解决上述的问题。图为光敏电阻。


行空板正面屏幕上方有一颗光线传感器,可以获取环境光线强度(注:单位为模拟输入值,非勒克斯)。

语法: light.read() 注:光线传感器接到行空板的P29接口上,因此还可以通过ADC输入方法读取。

返回值:光线强度值,0-4095。

输入参数:无

【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
行空板板载资源的测试——Mind+代码编程
测试程序六:板载光线传感器(模拟量)

#【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
# 行空板板载资源的测试——Mind+代码编程
# 测试程序六:板载光线传感器(模拟量)

# -*- coding: UTF-8 -*-
import time
from pinpong.board import *
from pinpong.extension.unihiker import *

Board().begin()               #初始化

while True:
    light_value = light.read()
    print("光线强度:%d"%(light_value)) #终端打印信息
    time.sleep(1) #等待1秒 保持状态

实验串口返回情况

【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
行空板板载资源的测试——Mind+图形编程
测试程序七:使用板载光线传感器(模拟量)来控制LED

实验串口返回情况

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章