6408浏览
查看: 6408|回复: 31

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

[复制链接]
6、基础GPIO使用
行空板引脚操作与pinpong通用语法相同。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1

【花雕体验】01上手行空板
https://mc.dfrobot.com.cn/thread-313417-1-1.html
【花雕体验】02 行空板简单使用
https://mc.dfrobot.com.cn/thread-313421-1-1.html
【花雕体验】03 搭建行空板开发环境之Mind+编程
https://mc.dfrobot.com.cn/thread-313427-1-1.html
【花雕体验】04 测试行空板常用功能
https://mc.dfrobot.com.cn/thread-313434-1-1.html
【花雕体验】05 搭建行空板开发环境之SSH连接与Jupyter编程
https://mc.dfrobot.com.cn/thread-313461-1-1.html
【花雕体验】06 搭建行空板开发环境之Thonny编程
https://mc.dfrobot.com.cn/thread-313465-1-1.html
【花雕体验】07 搭建行空板开发环境之VSCode编程
https://mc.dfrobot.com.cn/thread-313468-1-1.html
【花雕体验】08 行空板硬件控制pinpong库的系列测试(之一)
https://mc.dfrobot.com.cn/thread-313470-1-1.html
【花雕体验】09 行空板硬件控制pinpong库的系列测试(之二)
https://mc.dfrobot.com.cn/thread-313486-1-1.html
【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
https://mc.dfrobot.com.cn/thread-313492-1-1.html



驴友花雕  中级技神
 楼主|

发表于 2022-6-20 03:16:14

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
行空板基础GPIO使用——Mind+代码编程
测试程序十六:使用按钮控制行空板外接LED灯的亮灭
实验接线:在行空板P21接一个LED灯,在行空板P22接口接一个按钮模块

  1. #【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
  2. #行空板基础GPIO使用——Mind+代码编程
  3. #测试程序十六:使用按钮控制行空板外接LED灯的亮灭
  4. #实验接线:在行空板P21接一个LED灯,在行空板P22接口接一个按钮模块
  5. #-*- coding: UTF-8 -*-
  6. import time
  7. from pinpong.board import Board,Pin
  8. Board().begin()               #初始化
  9. print("使用按钮控制行空板外接LED灯的亮灭")
  10. btn = Pin(Pin.P22, Pin.IN) #引脚初始化为电平输入
  11. led = Pin(Pin.P21, Pin.OUT) #L灯引脚初始化为输出
  12. while True:
  13.   #v = btn.value()  #读取引脚电平方法1
  14.   v = btn.read_digital()  #读取引脚电平方法2
  15.   print(v)  #终端打印读取的电平状态
  16.   #led.value(v)  #将按钮状态设置给led灯引脚  输出电平方法1
  17.   led.write_digital(v) #将按钮状态设置给led灯引脚  输出电平方法2
  18.   time.sleep(1)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 10:40:16

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
行空板基础GPIO使用——Mind+代码编程
测试程序十七:PWM输出实验,控制LED灯亮度变化
实验接线:外置LED灯接到行空板P21引脚上

  1. #【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
  2. #行空板基础GPIO使用——Mind+代码编程
  3. #测试程序十七:PWM输出实验,控制LED灯亮度变化
  4. #实验接线:外置LED灯接到行空板P21引脚上
  5. # -*- coding: UTF-8 -*-
  6. import time
  7. from pinpong.board import Board,Pin
  8. Board().begin()               #初始化
  9. print("PWM输出实验,控制LED灯亮度变化")
  10. # PWM模拟输出引脚支持: P0  P2  P3  P10  P16  P21  P22  P23
  11. #pwm21 = PWM(Pin(Pin.P21)) #将引脚传入PWM初始化  模拟输出方法1
  12. pwm21 = Pin(Pin.P21, Pin.PWM) #初始化引脚为PWM模式 模拟输出方法2
  13. while True:
  14.     for i in range(1023):
  15.         print(i)
  16.         #pwm21.duty(i) #PWM输出 方法1
  17.         pwm21.write_analog(i) #PWM输出 方法2
  18.         time.sleep(0.05)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 13:12:34

本帖最后由 驴友花雕 于 2022-6-20 13:17 编辑

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
行空板基础GPIO使用——Mind+代码编程
测试程序十九:打印行空板P21口模拟值
实验接线:行空板P21口接一个电位器模块

  1. #【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
  2. #行空板基础GPIO使用——Mind+代码编程
  3. #测试程序十九:打印行空板P21口模拟值
  4. #实验接线:行空板P21口接一个电位器模块
  5. # -*- coding: UTF-8 -*-
  6. import time
  7. from pinpong.board import Board,Pin
  8. Board().begin()               #初始化
  9. # ADC模拟输入引脚支持: P0 P1 P2 P3 P4 P10 P21 P22
  10. #adc21 = ADC(Pin(Pin.P21)) #将Pin传入ADC中实现模拟输入  模拟输入方法1
  11. adc21 = Pin(Pin.P21, Pin.ANALOG) #引脚初始化为电平输出 模拟输入方法2
  12. print("打印行空板P21口模拟值")
  13. while True:
  14.   #v = adc21.read()  #读取模拟信号数值 0-4095 模拟输入方法1
  15.   v = adc21.read_analog() #读取模拟信号数值 0-4095 模拟输入方法2
  16.   print("P21=", v)
  17.   time.sleep(0.5)
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-19 16:25:58

(1)数字输出
【科普知识点】数字信号的输出是高、低电平,负载端需要数字处理电路,将收到的脉冲进一步转化为需要的信号。二进制的数字信号为010100101100101010100111……,数字输出的波形如图。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-19 16:50:04

本帖最后由 驴友花雕 于 2022-6-20 02:25 编辑

行空板板载四路3pin引脚(P2.0三针接口),包括P21(~A)\P22(~A)\P23(~)\P24,具体位置见图。

所有引脚均支持数字输出,电平电压为3.3V。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-19 16:51:57

本帖最后由 驴友花雕 于 2022-6-20 02:09 编辑

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
行空板基础GPIO使用——Mind+代码编程
测试程序十四:制外接LED灯一秒闪烁一次
实验接线:在行空板P21接一个LED灯

  1. #【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
  2. #行空板基础GPIO使用——Mind+代码编程
  3. #测试程序十四:外接LED灯一秒闪烁一次
  4. #实验接线:在行空板P21接一个LED灯
  5. # -*- coding: UTF-8 -*-
  6. import time
  7. from pinpong.board import Board,Pin
  8. Board().begin()               #初始化
  9. print("外接LED灯一秒闪烁一次")
  10. led = Pin(Pin.P21, Pin.OUT) #引脚初始化为电平输出
  11. while True:
  12.   #led.value(1) #输出高电平 方法1
  13.   led.write_digital(1) #输出高电平 方法2
  14.   print("1") #终端打印信息
  15.   time.sleep(1) #等待1秒 保持状态
  16.   #led.value(0) #输出低电平 方法1
  17.   led.write_digital(0) #输出低电平 方法2
  18.   print("0") #终端打印信息
  19.   time.sleep(1) #等待1秒 保持状态
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-19 16:57:09

本帖最后由 驴友花雕 于 2022-6-20 02:03 编辑

实验串口返回情况
【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-19 17:07:50

本帖最后由 驴友花雕 于 2022-6-20 02:00 编辑

实验场景图
【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1




回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-19 17:12:35

本帖最后由 驴友花雕 于 2022-6-20 01:57 编辑

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
行空板基础GPIO使用——Mind+图形编程
测试程序十五:外接LED灯0.5秒闪烁一次
实验接线:在行空板P21接一个LED灯
【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 01:53:53

实验串口返回情况


【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 02:44:38

(2)数字输入
【科普知识点】数字信号是指用一组特殊的状态来描述信号,典型的就是当前用最为常见的二进制数字来表示的信号,之所以采用二进制数字表示信号, 其根本原因是电路只能表示两种状态,即电路的通与断。在实际的数字信号传输中,通常是将一定范围的信息变化归类为状态0或状态1, 这种状态的设置大大提高了数字信号的抗噪声能力。不仅如此,在保密性、抗干扰、传输质量等方面,数字信号都比模拟信号要好,且更加节约信号传输通道资源。数字信号输入是逻辑编码,由0和1组成。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 02:48:30

行空板板载四路3pin引脚(P2.0三针接口),包括P21(~A)\P22(~A)\P23(~)\P24,具体位置见图。

所有引脚均支持数字输入,电平电压为3.3V。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 02:51:16

行空板板载四路3pin引脚(P2.0三针接口),包括P21(~A)\P22(~A)\P23(~)\P24,具体位置见图。

所有引脚均支持数字输入,电平电压为3.3V。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 03:22:15

实验串口返回情况

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 03:24:29

实验场景图

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 09:14:52

(3)模拟输出(PWM)
【科普知识点】模拟量输出是计算机或控制系统输出的模拟量,在单片机控制系统中,输出信号中模拟量为数不少,它们是单片机输出的数字信号经过模拟量输出通道处理后得到的。模拟量输出通道的任务是把计算机处理后的数字量信号先通过数据总线、隔离装置,再通过D/A转换器转换成模拟电压或电流信号,经放大用以驱动相应的执行器,从而达到控制的目的。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 09:37:12

【科普知识点】PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。PWM的一个优点是从处理器到被控系统信号都是数字形式的,再进行数模转换。可将噪声影响降到最低(可以跟电脑一样)。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 10:04:04

行空板支持8路10位PWM,分别对应引脚为:  P21 P22 P23(金手指部分P0 P2 P3 P10 P16)

注意: 其中P8与P2共用一路PWM,P9与P10共用一路PWM,因此P8与P9也可以使用PWM,但使用时P2和P10不能使用。

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 10:42:51

实验串口返回情况

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 10:45:50

实验场景图

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2022-6-20 11:46:20

【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)
行空板基础GPIO使用——Mind+图形编程
测试程序十八:PWM输出实验,控制LED灯亮度变化
实验接线:外置LED灯接到行空板P21引脚上
【花雕体验】10 行空板硬件控制pinpong库的系列测试(之三)图1

回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail