树莓派GPIO入门

GPIO(General Purpose I/O Ports):通用输入/输出端口,可通过python代码控制GPIO电压,用来完成对LED灯,或者智能小车的控制。
想先操练代码,不想外接设备(主要是怕乱花钱),暂时用万用表测量电压变化,可行吗?

一、GPIO安装与基本操作

我的树莓派是第一代B+型,有26针GPIO引脚而不是40针,具体针脚定义可以参考维基百科树莓派
编程语言可以是Python,也可以是C语言,首先介绍用Raspbian内置的Python方法:

1、安装python与GPIO库

$ python #试试有没有安装python,应该是Raspbian系统自带了
$ which python #查找系统中python路径,原来我的树莓派已经有了python 2.7与3.4版本
$ sudo apt-get install python-rpi.gpio #Python2安装GPIO库,不知哪时候已经安装好了
$ sudo apt-get install python3-rpi.gpio #Python3安装GPIO库
2、进行GPIO引脚操作,参考[树莓派---GPIO应用详解](http://www.jianshu.com/p/f31b90cc756f) 注意: a、这个参考网页中点亮LED的代码中,RPi前缀是多余的,应该删除; b、`channel`也是错误的,应该是具体的针脚`11`; c、还有,GPIO.setup(11,1)后,为啥GPIO.input(11)还是返回`0`低电平? d、针脚设置为输出模式是啥意思,不就是电平高低吗?
$ python
>>> import RPi.GPIO as GPIO #导入RPi.GPIO模块,注意是RPi,不是RPI
>>> GPIO.setmode(GPIO.BOARD) #采用BOARD模式访问(26个针脚,取值范围是从**1~26**,还是**0~25**?),另一种方式是BCM >>> GPIO.cleanup() #释放脚本中的使用的引脚,因为没有进行引脚操作,会有一个关于没有任何引脚的警告:__main__:1: RuntimeWarning: No channels have been set up yet - nothing to clean up! Try cleaning up at the end of your program instead!

二、用实际的小项目来体验一下吧

1、首先试试用树莓派的GPIO控制步进电机:

为啥不用GPIO针脚直接连接步进电机的针脚呢?这是因为树莓派的GPIO针脚输出的电流、电压为控制信号,不可能适用各种设备,还是要注意,别把树莓派给烧了!
所以用树莓派接外部电路时,外接设备尽量用自供电,否则会导致针脚特别烫,甚至有烧焦味!
[步进电机+驱动板](http://blog.csdn.net/lee18254290736/article/details/70187494)
需要驱动板支持,为啥咧?需要了解一些比如**四相五线步进电机**的概念
步进电机的相关知识:待补充 一个用java控制电机的文章,也是一名机械专业学生对代码世界的向往,非常难得:[树莓派遇上Java](http://apqx.me/content/essay/%E6%A0%91%E8%8E%93%E6%B4%BE%E9%81%87%E4%B8%8AJava%EF%BC%88%E4%B8%89%EF%BC%89-%E9%A9%AC%E8%BE%BE%E7%AF%87.html) 2、用wiringPi控制的两个例子,使用的是C语言:
1、树莓派GPIO学习 – 控制家用电灯
2、逗比学树莓派之GPIO

三、物联网IoT:

1、物聯網IoT入門 – Arduino vs Raspberry Pi:Raspberry Pi和Arduino代表著IoT的兩種不同哲學
2、用树莓派搭建简单的传感器物联网应用:传感器通过树莓派将数据传到物联网平台,比如乐联网或者青岛的Yeelink,为什么不搭建自己的物联网平台呢?用VPS就能实现吧?