今天我们继续来讨论关于使用Java编程语言通过pi4j开源库来进行树莓派编程的问题。
之前或许大家有注意到,我们所有的java程序的源码都是在vim中写的,虽说vim是linux下最好的编辑器了,但是它毕竟不适合Java程序员,动不动就写错的长长的类名,大量本来无需记忆的变量名,以及编译命令的使用,都大大降低了我们的编程效率。那么能不能在我们所熟知的IDE中来编译树莓派的程序呢?答案当然是可以。
一、准备工作
首先,要声明一点, 我们并不是要在树莓派上安装IDE,树莓派虽然处理速度已经很快了,但是跟我们的PC还是没法比的,我们有时在PC上编写程序都会感觉到IDE有些卡,更不要提在树莓派上开发了,还是留着那点儿内存来运行最终的程序吧。
那我们在PC上开发程序之前,首先要拿到pi4j库的jar包。它们被存放在/opt/pi4j/lib目录中。如果你不熟悉linux下的scp命令,你可以使用WinSCP工具lib下面的4个包下载到你的PC上。
登陆后下载:
至此准备工作就做完了。
2.新建项目,导入jar包
这里我以Idea 14为例,其他ide大同小异。
启动Idea,新建一个Java工程。选择Project Structure。配置如下图所示:
导入jar包
选择路径
此时新建一个类测试一下,是不是熟悉的自动补全又粗线了!!
三、编译和上传
这里写了一个小例子来进行测试,还是一个控制led灯的Demo。
public class Test {
public static void main(String[] args) throws InterruptedException{
GpioController controller= GpioFactory.getInstance();
GpioPinDigitalOutput led = controller.provisionDigitalOutputPin(RaspiPin.GPIO_00, "led", PinState.LOW);
while(true){
led.toggle();
System.out.println("led is toggled!");
Thread.sleep(3000);
}
}
}
写好之后,点击build按钮,编译程序。
编译成功后,会在项目路径下找到out文件夹:
接下来就是将其上传到树莓派上去,注意在上传时要连着包结构一起上传哟。
四、运行结果
用SSH登陆树莓派,来到你的上传目录下,使用如下命令运行程序(包名改成你自己的):
sudo java -classpath .:classes:/opt/pi4j/lib/'*' com.wjc.resistor.Test
运行结果如下:
此时你的树莓派GPIO_0上接的小灯也应该在闪烁了。
五、小结
之前我们有提过,pi4j虽然使用Java来控制GPIO,但是本质上肯定还是调用了底层封装好的库文件,这个库文件其实就在pi4j-core.jar包中:
关于这个so库,其代码也是开源的,感兴趣的童鞋可以利用它研究一下pi4j的底层实现原理。
点此下载pi4j源码