1187|24

2129

帖子

0

资源

纯净的硅(高级)

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

 
本帖最后由 eagler8 于 2022-6-18 03:53 编辑

行空板板身集成了光线传感器、麦克风、蜂鸣器、Wifi、蓝牙、加速度传感器、按键,正面配置有一块LCD彩屏,可实时呈现多种Python运行结果,包括文字、图片、视频,游戏画面,以及数据图表等。

 

 

17.1-174.gif

 

【花雕体验】01上手行空板
http://bbs.eeworld.com.cn/thread-1206624-1-1.html
【花雕体验】02 行空板简单使用
http://bbs.eeworld.com.cn/thread-1206649-1-1.html
【花雕体验】03 搭建行空板开发环境之Mind+
http://bbs.eeworld.com.cn/thread-1206665-1-1.html
【花雕体验】04 测试行空板常用功能

http://bbs.eeworld.com.cn/thread-1206842-1-1.html
【花雕体验】05 搭建行空板开发环境之SSH连接与Jupyter编程

http://bbs.eeworld.com.cn/thread-1207265-1-1.html
【花雕体验】06 搭建行空板开发环境之Thonny编程

http://bbs.eeworld.com.cn/thread-1207286-1-1.html
【花雕体验】07 搭建行空板开发环境之VSCode编程

http://bbs.eeworld.com.cn/thread-1207329-1-1.html

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

http://bbs.eeworld.com.cn/thread-1207410-1-1.html


回复

2129

帖子

0

资源

纯净的硅(高级)

本帖最后由 eagler8 于 2022-6-18 04:50 编辑

1、行空板板载传感器与接口布局图

 

17.1-176-0.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

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

 

安装:

pip install pinpong

 

更新:

pip install -U pinpong

 


回复

2129

帖子

0

资源

纯净的硅(高级)

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

 


 

 


回复

2129

帖子

0

资源

纯净的硅(高级)

4、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() #初始化,连接协处理器,检查固件为空或版本不对则自动烧录

 

17.1-176.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

本帖最后由 eagler8 于 2022-6-18 07:02 编辑

5、行空板板载资源的系列测试
(1)板载蓝色LED灯(简称L)
【科普知识点】发光二极管(英语:light-emitting diode,简称LED)是一种半导体光源,当电流通过它时会发光;即一种电致发光的半导体电子元件,其内电子与电子空穴复合,以光子的形式释放能量。发光二极管结构的核心部分是p-n结,周边部分有环氧树脂密封其引线与框架以保护内部芯线。当p-n结通以正向电流时,能发射可见或非可见辐射,此辐射为透过三价与五价元素所组成复合光源。发光二极管只能够往一个方向导通(通电),叫作正向偏置;当电流流过时,电子与电洞(电子空穴)在其内复合而发出单色光,这叫“电致发光效应”;而光线的波长、颜色跟其所采用的半导体物料种类与故意掺入的元素杂质有关。发光二极管具有效率高、寿命长、不易破损、反应速度快、可靠性高等传统光源不及的优点。

 

发光二极管(LED)于1962年出现时,只能发出低光度的红光,被惠普买下专利后当作指示灯利用。其后发展出其他单色光的版本,时至今日,能够发出的光已经遍及可见光、红外线及紫外线,光度亦提高到相当高的程度。随着白光发光二极管的出现,用途已由初期的指示灯及显示板等指示用途,逐渐发展至近年的照明用途。白光LED的发光效率近期亦有所进步,其每千流明成本,因大量资金投入已使价格下降,近年在照明用途上愈趋普及。

 

17.1-177.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

行空板背面有一颗蓝色LED灯(标记为L)可供用户控制。
L灯为高低电平控制,接到了行空板的P25接口上,因此控制P25即可控制L灯。

 

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

 

17.1-178.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

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

# 行空板板载资源的测试

# 测试程序一:板载蓝色LED灯(简称L)

 

#【花雕体验】08行空板硬件控制pinpong库的系列测试(之一)
# 行空板板载资源的测试
# 测试程序一:板载蓝色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秒 保持状态

 


回复

2129

帖子

0

资源

纯净的硅(高级)

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

 

17.1-179.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

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

 

17.1-180.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

实验串口返回情况

 

17.1-181.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

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

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

 

17.1-182.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

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

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

 

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

 

17.1-183.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

【花雕体验】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) #输出低电平

 


回复

2129

帖子

0

资源

纯净的硅(高级)

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

 

17.1-184.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

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

 

17.1-185.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

实验串口返回情况

 

17.1-186.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

在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)#等待让程序不退出

 


回复

2129

帖子

0

资源

纯净的硅(高级)

实验串口返回情况

 

17.1-187.jpg


回复

2129

帖子

0

资源

纯净的硅(高级)

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

 

17.1-188.jpg


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

查找数据手册?

EEWorld Datasheet 技术支持

最新文章 更多>>
    关闭
    站长推荐上一条 1/8 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表