树莓派 gpio usb_树莓派gpio编程

树莓派 gpio usb_树莓派gpio编程概览树莓派最令人兴奋的特点之一是它有一个GPIO连接器可以用来接其他的硬件设备。GPIO连接器实际上是由许多不同类型的接口组成的:真正的GPIO(GeneralPurposeInputOutput,通用输入/输出)针脚,你可以用来控制LED灯的开和关。I2C(Inter-IntegratedCircuit)接口针脚,使你能够仅使用2个控制针脚连接硬件模块。SPI(SerialPeriph…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

概览

树莓派最令人兴奋的特点之一是它有一个GPIO连接器可以用来接其他的硬件设备。

树莓派 gpio usb_树莓派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针,其他都是一样的。

树莓派 gpio usb_树莓派gpio编程

除了供电针脚(包括GND,3.3V和5V),所有的GPIO针脚均可被用于数字输入或输出。标记为SCL和SDA的针脚可被用于I2C。标记为MOSI,MISO和SCKL的针脚可以用于连接高速SPI设备。

所有针脚有一个3.3V的逻辑电平并且不是5V安全的,所以输出电平是O-3.3V并且输入电平也不应高于3.3V。如果想要连接5V的输出电平作为树莓派的输入电平,你需要使用一个电平位移器

一个流行的连接到树莓派的做法是接一块扩展板(Pi Cobbler)。

树莓派 gpio usb_树莓派gpio编程

一定要确认确认再确认连接线的第一针标识靠近树莓派的角落。如果你使用的是灰色的连接线,它是红色条纹,而黑色的连接线是白色的条纹。那一针一定不能挨着TV连接口。把连接线翻个个或者拧一下使它翻到正确的方向。

这里使用了一个带状电缆来连接GPIO到一个无焊点的面包板上,这样你就可以在它上面连接其他电子元件了。

Adafruit Pi Code

为了方便那些想要连接电子元件到他们的小派上的人们,Adafruit编写了许多可以扩展的非常有用的代码集合。这包含了大量电子元件的简单Python类库,例如显示,传感器和PWM控制等等。

要获得这些代码,你需要使用一个名为”git”的软件。这预装在Occidentalis里面了,但是在Raspbian上你必须通过在终端里输入下面的命令来安装。

你会在桌面上找到终端LX Terminal的快捷方式。

树莓派 gpio usb_树莓派gpio编程

在我们更加深入之前,先运行一下下面的命令。这将会确保能找到你所要安装的软件包并且是最新版本。无论你是在什么路径下。

sudo apt-get update

树莓派 gpio usb_树莓派gpio编程

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项目:

http://learn.adafruit.com/raspberry-pi-e-mail-notifier-using-leds

http://learn.adafruit.com/playing-sounds-and-using-buttons-with-raspberry-pi

http://learn.adafruit.com/basic-resistor-sensor-reading-on-raspberry-pi

树莓派 gpio usb_树莓派gpio编程

要使用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项目:

http://learn.adafruit.com/mcp230xx-gpio-expander-on-the-raspberry-pi

http://learn.adafruit.com/adafruit-16×2-character-lcd-plus-keypad-for-raspberry-pi

http://learn.adafruit.com/adding-a-real-time-clock-to-raspberry-pi

http://learn.adafruit.com/matrix-7-segment-led-backpack-with-the-raspberry-pi

http://learn.adafruit.com/mcp4725-12-bit-dac-with-raspberry-pi

http://learn.adafruit.com/adafruit-16-channel-servo-driver-with-raspberry-pi

http://learn.adafruit.com/using-the-bmp085-with-raspberry-pi

如果你正在使用Occidentalis,那你的小派已经配置好I2C接口了,如果你使用Raspbian,你需要打开LXTerminal终端窗口并且输入下面的命令:

sudo nano /etc/modules

并且在文件末尾添加下面两行:

i2c-bcm2708

i2c-dev

树莓派 gpio usb_树莓派gpio编程

编辑完成后,你需要重启来使改动生效。

如果在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保存退出。

树莓派 gpio usb_树莓派gpio编程

一旦完成,你就可以通过下面的命令看到连接的设备了(假设你使用的是512MB的Model B型树莓派)

sudo i2cdetect -y 1

树莓派 gpio usb_树莓派gpio编程

上图显示有两个I2C地址被使用 – 0×40和0×70。

注意如果你还使用的是先前版本的树莓派(256MB的Model B型)那你需要把命令改为:

sudo i2cdetect -y 0

树莓派不同型号的I2C端口不同。所以要记住:512M的小派使用i2c端口1,256MB的使用端口0!

测试和配置

最好的测试方法是挑选一个项目(最好从一个十分简单的项目开始)然后自己亲手试一试。

下面是我推荐的一些可以作为入门项目的教程:

http://learn.adafruit.com/raspberry-pi-e-mail-notifier-using-leds

http://learn.adafruit.com/playing-sounds-and-using-buttons-with-raspberry-pi

http://learn.adafruit.com/matrix-7-segment-led-backpack-with-the-raspberry-pi

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182239.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • kali安装步骤失败 选择并安装软件_kali怎么装arpspoof

    kali安装步骤失败 选择并安装软件_kali怎么装arpspoof1.在我刚刚安装好kali系统后,使用arpspoof命令显示无此命令这时需要安装,于是百度下来的结果:apt-getinstalldsniffssldump2.但是会出现:“E:无法定位软件包问题”于是百度上大佬的解决办法是:更新:source.list文件中是有关Ubuntu软件更新的源服务器的地址,默认为Ubuntu官方地址,为提高速度我们可以修改为其他服务器地址cd/e…

  • j2me开发环境搭建[通俗易懂]

    j2me开发环境搭建[通俗易懂]学习j2me的开发也有半年了,很多东西需要记住并不断实践。 j2me的环境搭建过程。 要准备的东东:1.JDK;2.开发工具Eclipse;3.eclipseMe;4.WTK;   一、下载jdk,并安装,安装好后配置环境变量,假设现在jdk的安装目录是E:/ProgramFiles/Java/jdk1.6.0_10,那么按如下配置环境变量:

  • java过滤器Filter「建议收藏」

    java过滤器Filter「建议收藏」一、简介Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断如是否有权限访问页面等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、…

  • 在pycharm中使用tensorflow_使用中是什么意思

    在pycharm中使用tensorflow_使用中是什么意思QtDesigner的介绍在PyQt中编写UI界面可以直接通过代码来实现,也可以通过QtDesigner来完成。QtDesigner的设计符合MVC的架构,其实现了视图和逻辑的分离,从而实现了开发的便捷。QtDesigner中的操作方式十分灵活,其通过拖拽的方式放置控件可以随时查看控件效果。QtDesigner生成的.ui文件(实质上是XML格式的文件)也可以通过pyuic5工具转换成…

  • simhash是什么_批复的适用情况

    simhash是什么_批复的适用情况需求是这样的:给出一个文档集合,以及一个领域概念集合,要求根据这些领域概念计算文档的相似性。首先想到的是利用余弦相似性计算。起初得到的集合有大概几万篇文档,如果对每对文档进行余弦相似度计算,会导致时间复杂度较高,于是发现了Simhash方法。由于已经给出了用于计算哈希值的关键词(即这些领域概念),就省去了对文章进行分词的步骤。每篇文档都用其领域概念列表计算出文档的哈希值,并使用这些

  • ChecklistBox的使用总结[通俗易懂]

    ChecklistBox的使用总结[通俗易懂]前言ChecklistBox看起来一个很简单的控件,使用的时候想要达到理想的效果是需要费一番功夫的,这篇博客对于近一两周来项目中主界面设计用到的ChecklistBox方法做了一点小小的总结。图示常用方法1.添加项checkedListBox1.Items.Add(“吃饭”);checkedListBox1.Items.Add(“睡觉”);checkedListB

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号