2016-10-05
Raspberry Pi プログラミングの第一歩、Lチカサンプル集です。
GPIO14のとなりにGNDがあって便利なので、これを使います。ブレッドボード上などで配線するならGPIO14以外でも構いません。その場合は、以降のサンプルプログラムで指定しているピン番号を適宜書き換えてください。
echo 14 >/sys/class/gpio/export
echo out >/sys/class/gpio/gpio14/direction
echo 1 >/sys/class/gpio/gpio14/value
echo 0 >/sys/class/gpio/gpio14/value
echo 14 >/sys/class/gpio/unexport
上記手順をシェルスクリプトにして連続点滅するようにしました。このスクリプトは無限ループし、Ctrl+Cを押して停止するしかないので、最後のunexportは実行されません。
#!/bin/sh
echo 14 >/sys/class/gpio/export
sleep 0.1
echo out >/sys/class/gpio/gpio14/direction
while :
do
echo 1 >/sys/class/gpio/gpio14/value
sleep 0.5
echo 0 >/sys/class/gpio/gpio14/value
sleep 0.5
done echo 14 >/sys/class/gpio/unexport
同じことをPythonでやります。いちおう最後に cleanup と書いてありますが、無限ループしますので、この行は実行されません。ちゃんと正常終了するプログラムを作る場合は、行儀良く後始末の cleanup をしておいた方がいいでしょう。
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(14, GPIO.OUT) while 1: GPIO.output(14, GPIO.HIGH) time.sleep(0.5) GPIO.output(14, GPIO.LOW) time.sleep(0.5) GPIO.cleanup()
初めにwiringPiのソースコードをダウンロードしてインストールする必要があります。
sudo apt-get install git git clone git://git.drogon.net/wiringPi cd wiringPi/出力モードに設定してから、1を書き込むと点灯、0を書き込むと消灯します。
./build
gpio -g mode 14 out gpio -g write 14 1 gpio -g write 14 0
bcm2835ライブラリがおすすめです。
http://www.airspayce.com/mikem/bcm2835/
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.50.tar.gz
tar zxvf bcm2835-1.50.tar.gz
#include <bcm2835.h> #define PIN 14 int main() { if (!bcm2835_init()) return 1; bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP); while (1) { bcm2835_gpio_write(PIN, HIGH); bcm2835_delay(500); bcm2835_gpio_write(PIN, LOW); bcm2835_delay(500); } bcm2835_close(); return 0; }
gcc -Ibcm2835-1.50/src blink.c bcm2835-1.50/src/bcm2835.c
./a.out