树莓派python gpio 模仿iic_Adafruit的树莓派教程:GPIO配置
概览
树莓派最令人兴奋的特点之一是它有一个GPIO连接器可以用来接其他的硬件设备。
GPIO连接器实际上是由许多不同类型的接口组成的:
真正的GPIO(General Purpose Input Output,通用输入/输出)针脚,你可以用来控制LED灯的开和关。
I2C(Inter-Integrated Circuit)接口针脚,使你能够仅使用2个控制针脚连接硬件模块。
SPI(Serial Peripheral Interface,串行外设接口)接口用以连接SPI设备,概念上与I2C接口类似,但是标准不同。
Serial Rx和Tx针脚用于和其他的串行外围设备通信。
另外,一些针脚可被用于PWM(pulse Width Modulation, 脉冲宽度调制)进行电源控制,以及PPM(Pulse Position Modulation,脉冲位置调制)控制马达。
在这篇教程里,你实际上用不着组装任何东西,但你将学到如何配置你的树莓派并且安装有用的类库来为连接外部电子元件做准备。
注意:这篇教程只适用于Raspbian和Raspbian衍生的系统(例如Occidentalis)
GPIO连接器
下面的图表展示了第一版树莓派的GPIO连接器的针脚(当这篇文章发布时存在的版本)第二版的只是用27针替换了21针,其他都是一样的。
除了供电针脚(包括GND,3.3V和5V),所有的GPIO针脚均可被用于数字输入或输出。标记为SCL和SDA的针脚可被用于I2C。标记为MOSI,MISO和SCKL的针脚可以用于连接高速SPI设备。
所有针脚有一个3.3V的逻辑电平并且不是5V安全的,所以输出电平是O-3.3V并且输入电平也不应高于3.3V。如果想要连接5V的输出电平作为树莓派的输入电平,你需要使用一个电平位移器
一个流行的连接到树莓派的做法是接一块扩展板(Pi Cobbler)。
一定要确认确认再确认连接线的第一针标识靠近树莓派的角落。如果你使用的是灰色的连接线,它是红色条纹,而黑色的连接线是白色的条纹。那一针一定不能挨着TV连接口。把连接线翻个个或者拧一下使它翻到正确的方向。
这里使用了一个带状电缆来连接GPIO到一个无焊点的面包板上,这样你就可以在它上面连接其他电子元件了。
Adafruit Pi Code
为了方便那些想要连接电子元件到他们的小派上的人们,Adafruit编写了许多可以扩展的非常有用的代码集合。这包含了大量电子元件的简单Python类库,例如显示,传感器和PWM控制等等。
要获得这些代码,你需要使用一个名为”git”的软件。这预装在Occidentalis里面了,但是在Raspbian上你必须通过在终端里输入下面的命令来安装。
你会在桌面上找到终端LX Terminal的快捷方式。
在我们更加深入之前,先运行一下下面的命令。这将会确保能找到你所要安装的软件包并且是最新版本。无论你是在什么路径下。
sudo apt-get update
update命令将会花费一点时间,特别是当你第一次在小派上运行的时候。最终它会变成一个命令提示符”$”并且这时已经可以敲下一个命令了。
sudo apt-get install git
一旦git安装完成(如果原来没有装过)你就可以使用下面的命令”check out” Adafruit Pi Python代码库到你自己的小派上了。
git clone http://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
cd Adafruit-Raspberry-Pi-Python-Code
ls
如果上面的步骤出现了一些问题,你会看到一条错误信息。通常导致安装失败的原因有以下几点:
网络连接问题
命令拼写错误。要记得Linux下是大小写敏感的。最好是在树莓派上直接打开这个页面,这样你就只需要复制粘贴就可以了
在这里你将会找到好多好东东,我们会在今后的教程里用到它们。
配置GPIO
GPIO针脚可被用于数字输出和数字输入。作为数字输出,你可以写程序切换某些针的高低电平。如果置为3.3V就是高电平,0V就是低电平。要使得一个针脚控制LED灯,你需要一个1kΩ的电阻连接到LED上,因为GPIO针脚可管理的电量很小。
如果你用针脚作为数字输入,你可以把开关和简单的传感器连到一针上然后检查它是否打开或关闭(也就是是否激活)。
一些使用GPIO的Adafruit项目:
要使用Python对GPIO端口进行编程,我们需要安装一个十分有用的Python 2 类库,它叫做Rpi.GPIO。这个Python类库使我们了能够十分容易的控制GPIO针脚。
安装流程对于Raspbian或者Occidentalis来说都是一样的。实际上,一些版本的Raspbian已经包含了这个类库,但是也推荐你升级到最新版本,这是值得的。
sudo apt-get update
要安装RPI.GPIO,你首先需要安装RPi.GPIO所需的Python Development toolkit。
通过下面的命令来安装:
sudo apt-get install python-dev
然后安装Rpi.GPIO:
sudo apt-get install python-rpi.gpio
你可能会收到提示,只需要按’Y’确认就行了。
就是这样了,现在你可以尝试我上面提到的那些项目了。
配置I2C
I2C是一个广泛使用的芯片通信设计标准。所以我们可以在树莓派上连接许多带I2C接口的芯片和模块。
以下是一些使用I2C设备和模块的Adafruit项目:
如果你正在使用Occidentalis,那你的小派已经配置好I2C接口了,如果你使用Raspbian,你需要打开LXTerminal终端窗口并且输入下面的命令:
sudo nano /etc/modules
并且在文件末尾添加下面两行:
i2c-bcm2708
i2c-dev
编辑完成后,你需要重启来使改动生效。
如果在Raspbian上你的I2C有问题,那最好升级到最新版本。这篇教程的测试版本是2012-10-28。
I2C总线允许你连接多个设备到树莓派上,每一台设备都有一个唯一地址,这通常可以通过改变模块上的跳线进行设置。能看到哪台设备连接到你的小派上非常有用,因为这样可以让你确保所有事情都正常工作。
要达到这一点,你需要在命令行里敲入下面的命令来安装i2c-tools工具。
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
根据你的发行版,你可能会找到一个这样的文件:
/etc/modprobe.d/raspi-blacklist.conf
如果没有这个文件,那什么都不用动,如果找到了这个文件,你需要编辑它注释掉下面两行:
blacklist spi-bcm2708
blacklist i2c-bcm2708
通过在行首添加一个’#’来进行注释。
通过键入下面的命令打开编辑器:
sudo nano /etc/modprobe.d/raspi-blacklist.conf
然后像下图那样编辑文件,然后使用CTRL+X和CTRL+Y保存退出。
一旦完成,你就可以通过下面的命令看到连接的设备了(假设你使用的是512MB的Model B型树莓派)
sudo i2cdetect -y 1
上图显示有两个I2C地址被使用 – 0×40和0×70。
注意如果你还使用的是先前版本的树莓派(256MB的Model B型)那你需要把命令改为:
sudo i2cdetect -y 0
树莓派不同型号的I2C端口不同。所以要记住:512M的小派使用i2c端口1,256MB的使用端口0!
测试和配置
最好的测试方法是挑选一个项目(最好从一个十分简单的项目开始)然后自己亲手试一试。
下面是我推荐的一些可以作为入门项目的教程:
树莓派python gpio 模仿iic_Adafruit的树莓派教程:GPIO配置相关推荐
- 树莓派python编程自学-一些缩短树莓派学习曲线的书籍、课程和网站
树莓派是一款小型单板计算机,最初用于教学和学习编程和计算机科学.但如今它有更多用处.它是一种经济的低功耗计算机,人们将它用于各种各样的事情 -- 从家庭娱乐到服务器应用,再到物联网(IoT) 项目. ...
- 树莓派python图形化编程_BlockPi: 树莓派图形化编程软件,轻松控制GPIO、SenseHAT、Picamera等硬件。...
BlockPi 一个专门为树莓派设计的图形化编程平台,基于Google Blockly构建,适用于树莓派爱好者或者少儿编程学习. A visual programming editor app for ...
- 树莓派python编程小车_Sunny的树莓派小车DIY教程(附视频)
一.组件介绍 大家好,我是Sunny.今天将给大家带来系列教程<树莓派小车系列>,先给大家介绍介绍我这次使用到的一些组件. 1.树莓派 2.小车底盘 3.小车车轮(马达) 4.L298N电 ...
- 树莓派python交互界面实例_树莓派综合项目2:智能小车(二)tkinter图形界面控制...
一.介绍 树莓派综合项目2:智能小车(一)四轮驱动中,实现了代码输入对四个电机的简单控制,本章将使用Python 的图形开发界面的库--Tkinter 模块(Tk 接口),编写本地运行的图形界面,控制 ...
- 树莓派 python 无人机_DIY一个基于树莓派和Python的无人机视觉跟踪系统
DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站几乎已经是标配.如果想来点高级的--在无人机上直接处理拍摄的图像并实现自动控制要怎么实现呢?其 ...
- 树莓派python物体识别_基于树莓派和Tensowflow的物体识别
近来这篇文章很火:How to build a robot that "sees" with $100 and TensorFlow (作者是Lukas,CrowdFlower创始 ...
- 树莓派python控制舵机_使用树莓派控制16路舵机驱动板(pca9685)
使用树莓派控制16路舵机驱动板(pca9685) 在树莓派上,可以通过RPI.GPIO方便地输出PWM进行舵机控制. 使用RPI.GPIO 创建一个 PWM 实例: 1 p =GPIO.PWM(cha ...
- 树莓派python编程小车_【树莓派】树莓派小车(三)Python控制小车
正文之前 由于最近忙于复习赶考,所以暂时没有拿起树莓派小车,直到昨天,终于空出时间来把代码整理一下来和大家分享. 正文 在树莓派小车系列之二中,讲到了树莓派的引脚定义方式有两种: PHYSICAL N ...
- 树莓派自启动python程序,远程树莓派桌面,重装树莓派系统,串口驱动,永不休眠,树莓派旋转屏幕方向,树莓派定时重启,修改矫正树莓派时间,raspbian Linux 系统命令常用
一.树莓派4B自启python的脚本方法 1.rc.local文件修改 (1)新建运行脚本 pi@zero:~/raspberry $ sudo nano test.sh #!/bin/sh cd / ...
最新文章
- iis7下站点日志默认位置
- 大工计算机基础在线3,大工16秋《计算机应用基础》在线测试3-满分100分.pdf
- Redis的优势和特点
- Elasticsearch常用操作:集群管理篇
- 【深度学习入门到精通系列】Python批量实现图像镜像翻转
- 【MATLAB】矩阵操作 ( 矩阵下标 | 矩阵下标排列规则 )
- greenplum配置高可用_Greenplum 的高可用是怎么做到的?
- tmux 上滚_实践中的tmux:回滚缓冲区
- 一次Java解析数独的经历,java面试题,java高级笔试题
- ORA-01089 数据库无法正常关闭
- 校招对项目实战要求分析
- python建筑工程中的应用_Python最佳工程实践,建立一个完美的工程项目
- Atitit.为什么小公司也要做高大上开源项目
- Linux内核编程02:Kbuild子系统
- linux root定时脚本,shell之定时周期性执行脚本的方法示例
- python中exec是什么意思_Python中的exec()
- 45.0.概率论与数理统计-区间估计,枢轴量法
- paper 43 :ENDNOTE下载及使用方法简介
- setDaemon python守护进程,队列通信子线程
- margin 重叠问题的理解
热门文章
- LeetCode17——Letter Combinations of a Phone Number(手机几个按键对应的字母(符号)组合)
- matlab教程蚁群算法,蚁群算法怎样用MATLAB仿真
- VS2013崩溃,无法打开项目的解决方案
- VMWare虚拟机NAT模式静态IP联网配置
- Python 字符串 String 内建函数大全(1)
- SpringBoot开发案例之整合Spring-data-jpa
- Apache 配置:是否显示文件列表
- Android sqlite数据库操作通用框架AHibernate(二)源码-用于交流
- 记一次解决问题的掉坑过程
- create_proc_read_entry中函数的说名