能够正常运行Linux服务的树莓派显然没做到物尽其用——毕竟Web服务、BT下载这些功能并不突出,好些路由器就可以做到,也没什么折腾的噱头。要释放树莓派强大的功能,目光自然要放在可编程的GPIO端口上。
树莓派GPIO介绍
树莓派的输入输出端口由板子左上角的26个针脚构成:
第一版和第二版树莓派的针脚定义有些不同:
如果分不清哪个是1号管脚,可以把板子翻过来,只有1号管脚的焊口是正方形的,其他都是圆形(上图也有示意)。
26个管脚中,GPIO有17个管脚,5个GND和4个VCC(3.3V和5V各两个)。
点亮LED灯
以下需要一些简单的电子元器件进行试验,请自行淘宝。
-
面包板
-
导线若干(公母线、公公线、母母线)
-
LED灯(一包,电压范围2.2V – 3.3V)
-
电阻(一包,从几十欧到1M欧都有)
连接方式
-
LED灯和100欧左右电阻串联
-
正极(LED长针脚)接3.3V输出(Pin 1),负极接GND(Pin 6)
-
不放心可以先用万用表测量一下电压
程序控制LED灯
GPIO的端口输出可以通过很简单的方式控制。这里需要用到一个库 wiringPi。
建议在自己电脑上用git clone这个库
git clone git://git.drogon.net/wiringPi
然后把源代码scp到树莓派上,进入代码目录,然后运行./build它就可以自己编译、安装了。
[email protected] ~ $ gpio -v
gpio version: 2.13
Copyright (c) 2012-2013 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
This Raspberry Pi is a revision 2 board.
wiringPi对端口的定义和树莓派有一些区别,它把树莓派不连续的GPIO端口按照0~16的顺序一一对应编号。因此使用wiringPi时,需要用wiringPi定义的方式来访问端口。比如GPIO17在wiringPi里其实就是0号端口。
这一次VCC不从3.3V的一号口引出来,而是接到了Pin 11,GPIO 17上。这个端口在wiringPi里被定义为0号。
运行下面的命令就可以点亮LED灯:
gpio mode 0 out # 0号端口输出模式
gpio wirte 0 1 # 0号端口输出高电平
通过脚本的控制,可以让LED灯发出闪烁的效果
#!/bin/bash
while true; do
gpio write 0 1
sleep 0.5
gpio write 0 0
sleep 0.5
done
最后完工全貌:
题图来源:维基百科LED条目
===========================
小白小黑开了个微信公众号,公众号 – “黑白杂谈”, 微信号 talking_ted,或者扫描下面的二维码,欢迎大家踊关注。