二分之一

Just Jason's Blog

nodejs(pi-gpio)控制树莓派GPIO引脚

一、基础概念

树莓派(Raspberry Pi)是啥?树莓派有啥用?请参考wikipedia上树莓派条目

GPIO,通用型的输入输出(General Purpose I/O)的简称。

nodejs真是无处不在,可玩性越来越高了,连硬件控制都能胜任了。

pi-gpio,是帮助树莓派控制GPIO的nodejs基础库,代码托管地址:https://github.com/rakeshpai/pi-gpio

二、关于树莓派GPIO引脚配置

树莓派GPIO引脚,较为混乱,各引脚之间没有逻辑关系,使用的是Broadcom芯片的命名。pi-gpio使GPIO的管理更加简单,参考以下图来进行管理。 P1在左上角。

图一:(来自pi-gpio)

图二:(更详细的GPIO引脚分布图)

/assets/upload/gpio_2.jpg

图三:(GPIO物理分布图)

三、安装pi-gpio

1、如果你还没有安装nodejs的npm,你可以通过以下方式简易安装

sudo apt-get install nodejs npm

2、在树莓派下做以下操作(安装pi-gpio所有操作,请使用root账户登陆)

git clone git://github.com/quick2wire/quick2wire-gpio-admin.git
cd quick2wire-gpio-admin
make
sudo make install
sudo adduser $USER gpio

3、接下来,在打开工程目录,用nodejs的npm安装 pi-gpio

npm install pi-gpio

四、pi-gpio的使用

var gpio = require("pi-gpio");

gpio.open(16, "output", function(err) {     // Open pin 16 for output
    gpio.write(16, 1, function() {          // Set pin 16 high (1)
        gpio.close(16);                     // Close pin 16
    });
});

方法列表:

每个方法都有一个回调函数,因为引脚操作是异步的。

1、.open(pinNumber, [direction = "output"], [callback])
打开引脚,别名:.export
pinNumber:引脚号码,记住,引脚号码树莓派上的物理引脚号码
direction:[可选],方向可以是“input”(简写:in)或“output”(简写:out),这取绝于你要做什么引脚。默认是“output”
callback:[可选],引脚可用时的回调函数,当出错时,第一个错误即是error对象

2、.close(pinNumber, [callback])
关闭引脚
参数解释类似.open

3、.setDirection(pinNumber, direction, [callback])
改变方向
参数解释类似.open

4、.read(pinNumber, [callback])
读取引脚当前的值,当方向为“输入input”时,用途更大;
参数解释类似.open
callback,有两个参数,第一个参数为可能出错的参数error,第二个参数为引脚的当前值可能是数字“0”或“1”

5、.write(pinNumber, value, [callback])
写入一个引脚的值;第二个参数必须数字“0”或“1”;

运行和测试:

npm install && npm test

最后修改时间:2014年9月9日星期二晚上7点49