树莓派文档翻译 - 使用 - GPIO: 树莓派A和B
https://www.raspberrypi.org/documentation/usage/gpio/README.md
2016/6/25
GPIO: 树莓派A和B
##介绍GPIO和在树莓派上进行物理编程
树莓派的强大特性就是那一排在板子周围的GPIO(一般目的的输入输出)插针,就在黄色的视频输出插孔的旁边。
GPIO pins
这些pin是pi和外界世界的物理接口。最简单,你可以把他们当作可以打开和关闭的开关(输入)或者树莓派可以打开或者关闭(输出)。26个插针的17个是GPIO插针,其他的是电源或者接地插针。
## 它们是用来做什么的?我们可以用它们来做什么?
你可以给pin编程,和真实的世界有趣地互动。输入不一定必须来自真的开关;比如:它可以是一个感应器或者其他电脑或设备的一个信号。输出也可以做很多事情,通过打开一个led来给其他的设备传递信号和数据。如果树莓派在网络上的话,你可以在任何地方控制接在它上面的设备,这些设备可以传回数据。通过互联网连接和控制物理设备是很强大的让人兴奋的事情,树莓派正是由这个想法而来。在我们的博客上有很多很棒的例子。
注意:不是说真的在任何地方,当然你需要连接网络的一些东西,连上网络的电脑和电。所以不要给我们因为这一点来给我们写信:)
## GPIO pins是如何工作的?
## 输出
注意:如果你依照下面的教程,误以为GPIO是安全而有趣的。随意地插上线或者电源在你的树莓派上,你可能会弄坏它。如果你插上需要使用很多电量的设备也可能会出现一些问题,led还是亮的,马达不转了。如果你为此担心的话,你可能需要考虑使用一个breakout电路板,比如pibrella知道你有信心完全直接使用GPIO。
先不考虑树莓派,最简单的电路就是用一个电池连接灯和一个开关(这里的电阻用来保护led)
当我们使用GPIO作为一个输出的时候,树莓派替换了上图中的开关和电源。每一个pin都可以打开或关闭,或者在电脑命令里变高或变低。当pin处于高的状态是3.3v,低就是没有。
线面是使用树莓派实现的同样的电路,led直接连接上了GPIO的pin(它可以输出+3v3)和一个接地的pin(0v就相当于电池的负极):
下面的步骤就是写一个程序高数pin升高或者降低。这里是个用python写的例子(看第二步),这里是如何在scratch里做到。
##输入
GPIO的输出很容易;要么开或关,高或低,3v3或者0v。输入就有点复杂了,因为要看具体数码设备的工作了。虽然可以只接一个按钮在输入pin和接地pin上,树莓派会混淆判断按钮是否开或者关。它也许能正常工作,也许不能。这有点像宇宙中漂浮的飞船,没有参照物无法知道它是否上升或者下降,甚至不知道什么是上升或者下降。
这就是为什么你会看见像“pull up”或者“pull down”的词语在树莓派的GPIO的教程里。这是给输入pin一个参照以便于知道什么时候接受一个输入。
如果你想要现在使用GPIO作为输入,可以看一下burping jelly baby 和 quick reaction game的教程,用python实现,或者一个reaction 游戏用 Scratch实现。
##术语表
GPIO
通用型输入输出; 在树莓派上就是特指pin和你能用它们做的事。之所以这么叫是因为你可能用它们达成很多目的。大多数可以用来作为输入或者输出,具体看你自己的程序。
LED
发光二级管,一个小的低耗能的光源,广泛应用在电子产品中。作为介绍树莓派上的现实计算切入点。
现实计算(physical computing)
计算包括所有可以直接连接电脑的实体,包裹标准输入输出设备比如键盘和显示器。think按钮,光,机器人,闹钟,感应器,家庭机器人, 被叫做Babbage的泰迪熊,或者其他的东西。我们喜欢现实计算是因为这很有趣, 这是个很强大的教学和学习的工具,激发创造力, 解决问题和合作研究。不只是显示器的计算吸引所有年龄段孩子,你自己也可以做出很酷的东西。
###附录
当给GPIO编程的时候,有两种方式来指出它们:GPIO的编码和现实中的编码
GPIO的编码
计算机用这种方式来认识GPIO pin。具体的数字对人来说没什么用,他们会 jump about all over the place,所以不方便记住他们。你可以打印一个参考册子或者一个引用电路板插在上面。
现实编码
另外指出pin的方法就是通过简单的从左上(靠近sd卡那边)作为第一个开始数, across and down。这是“现实编码”大概看起来是这样:
我该使用那种方式?
初学者和小孩可能会觉得现实编码会更简单 - 只是简单的数一下。你仍然需要一个图来知道是那些GPIO pin, 那一个是接地的那一个是电源。
大多数情况我们推荐使用GPIO编码,它更使用,大多数的资料上也用这种方式。不过随便你吧 - 只要在一个程序里使用同一个方式就可以了。注意pin编码根据你具体使用的编程语言:Scratch是 GPIO,在python里可以自己选择。
树莓派文档翻译 - 使用 - GPIO: 树莓派A和B的更多相关文章
- 树莓派Zero W GPIO控制
作者:陈拓 chentuo@ms.xab.ac.cn 2018.06.09/2018.07.05 0. 概述 本文介绍树莓派 Zero W的GPIO控制,并用LED看效果. 0.1 树莓派GPIO编 ...
- 树莓派 Learning 003 --- GPIO 001 --- 点亮LED
树莓派 Learning 003 - GPIO 001 - 点亮LED 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 树莓派 Learni ...
- 树莓派 Learning 003 --- GPIO 000 --- GPIO引脚图
树莓派 Learning 003 - GPIO 000 - GPIO引脚图 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 Raspberr ...
- 树莓派4硬件---GPIO篇
树莓派拿到手已经两个多月了,其实从最开始的期待安装好ROS,到前几天完成了ROS的源码编译安装,对linux的调教也时花了些时间的.现在终于想起来,树莓派上还有GPIO,还没有用过了.说干就干,开始. ...
- 【.NET 与树莓派】使用 GPIO 库
上回老周在说准备工作的时候,提到过树莓派用金属盒散热的事情.有朋友会说,加了金属盒子接线不方便,就算用了"T"形板,毕竟是把导线延长了的.其实扩展板就是把原有的引脚引出(类似于延长 ...
- [原创]树莓派CM4配置GPIO复用为i2c
1.简介 项目中需要控制各种外设的电源,正常应该是通过GPIO进行控制,但是树莓派CM4的GPIO管脚有限,因此需要使用i2c扩展IO 查阅CM4-datesheet发现GPIO22和GPIO23可以 ...
- 7、树莓派编程;gpio编程;led闪烁
本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ12226981 1.树莓派接口对照,一定要找到对应的引脚,不要接错了.我画上箭头. 2.安装 下载地址,https://git.drogon.n ...
- 树莓派学习笔记——GPIO功能学习
0.前言 树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派的学习可以分为linux系统学习和linux驱动学习,利用树莓派制作LED流水灯应该算是驱动学习吧.树莓派来自国外,国外嵌入式开 ...
- 树莓派与 Python —— GPIO
首先来直观地认识树莓派提供的 40 个引脚(GPIO,general purpose i/o,接收外界输入,并向外界提供运算处理后的输出): 1. 安装 从远程库(repositories)中下载安装 ...
随机推荐
- Android App 性能优化实践
本文记录了Android App优化需要用到的工具和以及在实践中的Tips.也算对我这半年来部分工作的总结. 工具 Hierarchy Viewer 是 Android SDK 自带的 Layout ...
- Spring Collections XML 配置
List <property name="lists"> <list> <value>1</value> <ref bean= ...
- 8VC Venture Cup 2016 - Elimination Round
在家补补题 模拟 A - Robot Sequence #include <bits/stdc++.h> char str[202]; void move(int &x, in ...
- 贪心 Codeforces Round #288 (Div. 2) B. Anton and currency you all know
题目传送门 /* 题意:从前面找一个数字和末尾数字调换使得变成偶数且为最大 贪心:考虑两种情况:1. 有偶数且比末尾数字大(flag标记):2. 有偶数但都比末尾数字小(x位置标记) 仿照别人写的,再 ...
- js 的try catch应用
<script language="javascript"> try { throw new Error(10,"asdasdasd") } cat ...
- UVa 11388 & 丝帛
一直在想丝帛题要不要贴呢...后来觉得还是贴了吧...反正没人看...blog是开给自己看的...偶尔无聊打打blog也显得生活非常充实... 题意: 给一个gcd和lcm求满足啊他们的最小的a和b. ...
- js 生成m位随机数入门实例
1.根据时间生成m位随机数,最大13位随机数,并且不能保证首位不为0. 例子: function ran(m) { m = m > 13 ? 13 : m; var num = new Date ...
- ACM 水池数目
水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ...
- ACM: HDU 5418 Victor and World - Floyd算法+dp状态压缩
HDU 5418 Victor and World Time Limit:2000MS Memory Limit:131072KB 64bit IO Format:%I64d & ...
- ACM: 限时训练题解-Rock-Paper-Scissors-前缀和
Rock-Paper-Scissors Rock-Paper-Scissors is a two-player game, where each player chooses one of Roc ...