【雕爷学编程】Arduino动手做(201)---行空板硬件控制之基础GPIO的使用

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百零一:DFRobot 行空板 python 教学微型计算机架构开发板 Linux WiFi 蓝牙

在这里插入图片描述
在这里插入图片描述
知识点:行空板(unihiker)
是一款由上海智位机器人(DFRobot)专为Python编程教育而设计的开源硬件,是一块有着树莓派级别性能,如micro:bit一样简单易上手,可以运行完整Python程序的神奇板子!行空板拥有自主知识产权,自带Linux操作系统和Python环境,还预装了常用的Python库,能够轻松胜任各种编程相关的开发场景,如搭建物联网系统、体验人工智能应用、编写电子游戏、进行科学实验、设计声光互动、开发可穿戴设备等。同时,行空板作为智能终端设备,其板子本身采用微型计算机架构,集成LCD彩屏、WiFi蓝牙、多种常用传感器和丰富的拓展接口。

在这里插入图片描述

6、基础GPIO使用
行空板引脚操作与pinpong通用语法相同。

在这里插入图片描述

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

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

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

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

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

实验串口返回情况

在这里插入图片描述
实验场景图

在这里插入图片描述

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

在这里插入图片描述

实验串口返回情况

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

实验串口返回情况

在这里插入图片描述

实验场景图

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

在这里插入图片描述

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

在这里插入图片描述
行空板支持8路10位PWM,分别对应引脚为: P21 P22 P23(金手指部分P0 P2 P3 P10 P16)

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

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

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

实验串口返回情况

在这里插入图片描述
实验场景图

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

在这里插入图片描述

实验串口返回情况

在这里插入图片描述

(4)模拟输入(ADC)
【科普知识点】模拟输入是指输入模拟信号(模拟量)。可以说,模拟输入就是输入连续信号。模拟输入是指传统方式的输入.数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信号,经前级放大进入功率放大器,功率放大器还是模拟的。模拟量是与数字量对应的,所谓“模拟量”就是一般经常见到的,未经转化的连续变化量;数字量是断续的量,一般是(但不全是)经过转化的,可以用数字表示的量。举例说:用数字万用表测一个电压或电流信号,显然这时的量是连续变化的,所以是模拟量。到了万用表里,经过转换(称为A/D转换),就变成可以用数字计算机处理的量,这时就叫数字量了。再如:传统的手表,指针是连续移动的,所显示的时间就是模拟量的时间,而石英表、电子表显示的就是数字量的时间。所以,可以说,模拟输入就是输入连续信号。

在这里插入图片描述
【科普知识点】模拟数字转换器(英语:Analog-to-digital converter, ADC, A/D 或 A to D)是用于将模拟形式的连续信号转换为数字形式的离散信号的一类设备。一个模拟数字转换器可以提供信号用于测量。与之相对的设备成为数字模拟转换器。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。然而,有一些模拟数字转换器并非纯的电子设备,例如旋转编码器,也可以被视为模拟数字转换器。模拟数字转换器的分辨率是指,对于允许范围内的模拟信号,它能输出离散数字信号值的个数。这些信号值通常用二进制数来存储,因此分辨率经常用比特作为单位,且这些离散值的个数是2的幂指数。例如,一个具有8位分辨率的模拟数字转换器可以将模拟信号编码成256个不同的离散值(因为28 = 256),从0到255(即无符号整数)或从-128到127(即带符号整数),至于使用哪一种,则取决于具体的应用。

在这里插入图片描述

行空板支持8路12位高精度模拟输入ADC,分别对应引脚为: P0 P1 P2 P3 P4 P10 P21 P22

在这里插入图片描述

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

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

实验串口返回情况

在这里插入图片描述

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

在这里插入图片描述

实验串口返回情况

在这里插入图片描述

实验场景图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/84830.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云轻量应用服务器端口怎么打开?图文方法来了

腾讯云轻量应用服务器端口放行在哪设置?在防火墙中可以开启端口号,腾讯云轻量应用服务器端口怎么开通?在轻量服务器管理控制台的防火墙中开启端口,如果是CVM云服务器在安全组中开通,腾讯云服务器网以轻量应用服务器开通…

升级你的GitHub终端认证方式:从密码到令牌

升级你的GitHub终端认证方式:从密码到令牌 前言 GitHub官方在2021年8月14日进行了一次重大改变,它将终端推送代码时所需的身份认证方式从密码验证升级为使用个人访问令牌(Personal Access Token)。这个改变引起了一些新的挑战&am…

《合成孔径雷达成像算法与实现》Figure3.6

代码复现如下: clc clear all close all%参数设置 TBP 100; %时间带宽积 T 10e-6; %脉冲持续时间%参数计算 B TBP/T; …

网络:CISCO、Huawei、H3C命令对照

思科、华为、锐捷命令对照表 编号思科华为锐捷命令解释1 2writesavesave保存3456 如果你所处的视图为非系统视图,需要查看配置的时候,需要在该配置命令前加do。 在特定的视图之下,有对应的特定命令。例如,在接口视图下的ip addre…

2023年,App运行小游戏,可以玩出什么创意?

疫情过后,一地鸡毛。游戏行业的日子也不好过。来看看移动游戏收入:2022年,移动游戏收入达到920亿美元,同比下降6.4%。这告诉我们,2022年对移动游戏市场来说是一个小挫折。 但不管是下挫还是上升,移动游戏市…

LC-杨辉三角

LC-杨辉三角 链接:https://leetcode.cn/problems/pascals-triangle/submissions/ 上图就是一个杨辉三角,每个数等于他左上角的数与右上角的数之和。 第一行就是一个1;第二行是两个1;第三行的2就是它肩膀上两个1之和,其余的类似。…

【Linux 网络】网络层协议之IP协议

IP协议 IP协议所处的位置网络层要解决的问题IP协议格式分片与组装网段划分特殊的IP地址IP地址的数量限制私网IP地址和公网IP地址路由 IP协议所处的位置 IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。 网络层要解决的问题 网络…

JavaScript数据结构【进阶】

注:最后有面试挑战,看看自己掌握了吗 文章目录 使用 splice() 添加元素使用 slice() 复制数组元素使用展开运算符复制数组使用展开运算符合并数组使用 indexOf() 检查元素是否存在使用 for 循环遍历数组中的全部元素创建复杂的多维数组将键值对添加到对象…

Python web实战之Django 的缓存机制详解

关键词:Python、Web 开发、Django、缓存 1. 缓存是什么?为什么需要缓存? 在 Web 开发中,缓存是一种用于存储数据的临时存储区域。它可以提高应用程序的性能和响应速度,减轻服务器的负载。 当用户访问网页时&#xff…

Latex安装与环境配置(TeXlive、TeXstudio与VS code的安装)编译器+编辑器与学习应用

TeXlive 配置Tex排版系统需要安装编译器+编辑器。TeX 的源代码是后缀为 .tex 的纯文本文件。使用任意纯文本编辑器,都可以修改 .tex 文件:包括 Windows 自带的记事本程序,也包括专为 TeX 设计的编辑器(TeXworks, TeXmaker, TeXstudio, WinEdt 等),还包括一些通用的文本编…

学C的第三十三天【C语言文件操作】

相关代码gitee自取: C语言学习日记: 加油努力 (gitee.com) 接上期: 学C的第三十二天【动态内存管理】_高高的胖子的博客-CSDN博客 1 . 为什么要使用文件 以前面写的通讯录为例,当通讯录运行起来的时候,可以给通讯录中增加、删…

timerfd和timer

note timerfd对应的时钟到期后&#xff0c;对应内部数据(uint64)计数加1 timerfd支持read方法&#xff0c;poll方法 code #include <sys/timerfd.h> #include <poll.h> #include <thread> #include <stdio.h> #include <string.h> #include …

赛码网-01串的魔法(dp) 100%AC代码(C)

———————————————————————————————————— ⏩ 大家好哇&#xff01;我是小光&#xff0c;嵌入式爱好者&#xff0c;一个想要成为系统架构师的大三学生。 ⏩最近在准备秋招&#xff0c;一直在练习编程。 ⏩本篇文章对赛码网的01串的魔法 题目做…

芯片常见测试手段:CP测试和FT测试

参考链接&#xff1a; 芯片测试的术语解释&#xff08;FT、CP&#xff09;&#xff0c;持续更新...._ft测试_染不尽的流年的博客-CSDN博客 如何区分芯片cp测试和ft测试 (baidu.com) 芯片常见测试手段&#xff1a;CP测试和FT测试 - 测量仪表 - 电子发烧友网 芯片测试是极其重要…

【三维重建】【深度学习】instant-nsr-pl代码Pytorch实现--训练自己的数据集

【三维重建】【深度学习】instant-nsr-pl代码Pytorch实现–训练自己的数据集 基于Instant-NGP的神经表面重建&#xff1a;该存储库包含 NeRF 和 NeuS 的简洁且可扩展的实现&#xff0c;用于基于 Instant-NGP 和 Pytorch-Lightning 框架的神经表面重建&#xff0c;旨在为基于 Ne…

如何使用appuploader制作apple证书​

转载&#xff1a;如何使用appuploader制作apple证书​ 如何使用appuploader制作apple证书​ 一.证书管理​ 点击首页的证书管理 二.新建证书​ 点击“添加”&#xff0c;新建一个证书文件 免费账号制作证书只有7天有效期&#xff0c;没有推送消息功能&#xff0c;推送证书…

三大方法助你轻松消除内存卡中的病毒,告别烦恼

在数字化时代&#xff0c;内存卡成为了我们存储重要数据的关键设备之一。然而&#xff0c;恶意病毒的存在可能威胁到我们的数据和隐私。所幸的是&#xff0c;我们可以采取一些方法来清理内存卡中的病毒。在本文中&#xff0c;我们将为你介绍三招&#xff0c;让你轻松去除内存卡…

P15 电路定理——巧妙-灵性-智慧

1、戴维南定理 2、戴维南定理的证明 对于线性含源的一个结构&#xff0c; 右边接一个支路N&#xff0c;再用电流源替代N 情况一&#xff1a;A没有独立源&#xff0c;那么A可以等价于一个电阻 情况二&#xff1a;A有独立源&#xff0c;例证法&#xff1a; 使用叠加法&#xf…

Streamlit 入门教程:构建一个Dashboard

Streamlit 是一个用于创建数据科学和机器学习应用程序的开源 Python 库。它的主要目标是使开发人员能够以简单的方式快速构建交互式的数据应用&#xff0c;而无需过多的前端开发经验。Streamlit 提供了一种简单的方法来转换数据脚本或分析代码为具有可视化界面的应用程序&#…

[Docker精进篇] 详细配置和部署镜像(一) 文末送书

前言&#xff1a; 容器提供了将应用程序的代码、运行时、系统工具、系统库和配置打包到一个实例中的标准方法。 文章目录 一. 认识Docker1️⃣docker服务端2️⃣docker客户端3️⃣docker仓库 二. 使用Docker1️⃣卸载旧的2️⃣安装 yum-utils3️⃣添加阿里云镜像&#xff1a;4️…