C言語でGPIOポートを制御できるWiringPiというライブラリがあります。
ラズベリーパイのターミナルから「apt-get」コマンドで簡単にインストールできればいいのですが、残念ながらWiringPiは、GitHubからダウンロードして自分のパソコンでビルドして使う形になります。
以下、ラズパイにWiringPiをインストールする手順です。
ちなみに現在では、WiringPiをPythonやPHP、Rubyからも利用できるようです。
GitHubからWiringPiをダウンロードする
ラズパイがネット環境に繋がっているとします。
以下のコマンドをターミナルから実行
git clone https://github.com/WiringPi/WiringPi.git
実行したディレクトリにWiringPiというディレクトリが作成されていればダウンロード成功です。
WiringPiのビルド
gccコンパイラでビルドをします。
まず先ほどダウンロードしたWiringPiディレクトリに移動
cd WiringPi
次にビルドを行います。
sudo ./build
これでWiringPiライブラリを使える環境が整いました。
ちなみにターミナルからGPIOコマンドを利用できるgpioコマンドも使えるようになっているので、このコマンドのバージョン確認ができれば、うまくインストールできています。
gpioコマンドのバージョン確認方法
gpio -v
表示イメージ
Copyright (c) 2012-2018 Gordon Henderson |
This is free software with ABSOLUTELY NO WARRANTY. |
For details type: gpio -warranty |
Type: Model A+, Revision: 01, Memory: 256MB, Maker: Sony |
* Device tree is enabled. |
*--> Raspberry Pi Model A Plus Rev 1.1 |
* This Raspberry Pi supports user-level GPIO access. |
gccでのコンパイル方法
gccでコンパイルする際は、-lwiringPiオプションをつけてコンパイルします。
gcc -o 《実行ファイル名》 《C言語ソースコード名》 -lwiringPi
ちなみにわたしはC言語で圧電スピーカーを鳴らすためにこのWiringPiというライブラリをインストールしました。
その時に使ったプログラムです。
atuden.c
3 | #include <wiringPi.h> // WiringPiのライブラリ |
4 | #include <softTone.h> // WiringPiのソフトウェアトーンライブラリ |
18 | const int scale[MAX] = {C, E, D, G, G, D, E, C, 0, E, C, D, G, G, D, E, C}; |
22 | if (wiringPiSetupGpio() < 0) { |
23 | printf ( "gpio error.\n" ); |
26 | if (softToneCreate(SPK) != 0) { |
27 | printf ( "softToneCreate error.\n" ); |
30 | for (i = 0 ; i < MAX ; ++i) { |
31 | printf ( "%03d\n" , scale[i]); |
32 | softToneWrite(SPK, scale[i]); |
このプログラムだと以下のようにコンパイルします。
gcc -o atuden atuden.c -lwiringPi
実行方法
sudo ./atuden
ラズパイのGPIO25のポートに圧電スピーカーをつなげると音がでます。
ただし、このプログラム自体は圧電スピーカをつなげなくても実行はできますので、確認用にお使いください。
実行するとターミナルには以下のように表示されるはずです。
余談ですが、C言語で電子回路関係のプログラミングをしているとなぜか「いじっている」という感じになりますね。(わたしだけですかね)
コメント
助かりました。dorogon.netが見つからなくて、WiringPiをインストールできないで困っていました。情報が古かったのですね。無事、インストールできました。ありがとうございます。
管理人です。わたしも同じ経験をしたので、お役に立ててよかったです!