Raspberry PiでGPIOをアクセスしてみます。
簡単な方法としては、/sys/class/gpio 以下にアクセスする方法があるのですが、今回は速度を重視して直接叩いてみることにしました。
基本のコードはこちらになるのですが、今回はそれをベースにインタフェース誌12月号の記事が書かれていて、さらに改良されているようなのでそちらのダウンロードページからサンプルプログラムを引っ張ってきて使ってみます。
ダウンロードしたサンプルプログラム集「sp01_sp07.zip」を解凍し、gpio_cフォルダ内のgpio_c.cをRaspberry Piの適当なフォルダにコピーします。
これを編集して、最後の部分のgpio_init()とtestmain()を修正します。今回はGPIO7にLEDをつけただけなので、下記のように修正しました。
void gpio_init() { int i; setup_io(); INP_GPIO(7); // must use INP_GPIO before we can use OUT_GPIO OUT_GPIO(7); } void testmain() { int p; while(1){ gpio_write(7,1); sleep(1); gpio_write(7,0); sleep(1); } }
修正後、
$ gcc gpio_c.c -o gpio_c $ sudo ./gpio_c
として実行すると、1秒ごとにLEDが点灯と消灯を繰り返しました。