ラズパイ:C言語でGPIOポートを制御できるWiringPiのインストール方法

ラズパイ:C言語でGPIOポートを制御できるWiringPiのインストール方法 C言語

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

表示イメージ

gpio version: 2.46
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
 
Raspberry Pi Details:
  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

1#include <stdio.h>
2#include <stdlib.h>
3#include <wiringPi.h> // WiringPiのライブラリ
4#include <softTone.h> // WiringPiのソフトウェアトーンライブラリ
5#define C 262
6#define D 294
7#define E 330
8#define F 349
9#define G 392
10#define A 440
11#define B 494
12#define Cc 523
13 
14#define MAX 17
15const int SPK = 25;   // スピーカーのGPIO
16// ドレミファソラシドの周波数値を持つ配列
17//const int scale[8] = {262, 294, 330, 349, 392, 440, 497, 523};
18const int scale[MAX] = {C, E, D, G, G, D, E, C, 0, E, C, D, G, G, D, E, C};
19/* ドーミーレーソー、ソーレーミードー、ミードーレーソー、ソーレーミードー */
20int main(void) {
21  int i; // カウント用
22  if (wiringPiSetupGpio() < 0) {  // WiringPi初期化
23    printf("gpio error.\n");
24    return EXIT_FAILURE;
25  }
26  if (softToneCreate(SPK) != 0) { // Software Toneの初期化
27    printf("softToneCreate error.\n");
28    return EXIT_FAILURE;
29  }
30  for (i = 0 ; i < MAX ; ++i) {     // ドレミファソラシドの出力
31    printf("%03d\n", scale[i]);   // コンソールへ周波数値を表示
32    softToneWrite(SPK, scale[i]); // 音の出力
33    delay(500); // 500ミリ秒間同じ音を出力するために処理を遅延
34  }
35  return EXIT_SUCCESS;
36}

このプログラムだと以下のようにコンパイルします。

gcc -o atuden atuden.c -lwiringPi

実行方法

sudo ./atuden

ラズパイのGPIO25のポートに圧電スピーカーをつなげると音がでます。
ただし、このプログラム自体は圧電スピーカをつなげなくても実行はできますので、確認用にお使いください。

実行するとターミナルには以下のように表示されるはずです。

262
330
294
392
392
294
330
262
000
330
262
294
392
392
294
330
262

余談ですが、C言語で電子回路関係のプログラミングをしているとなぜか「いじっている」という感じになりますね。(わたしだけですかね)

コメント

  1. いとう伊藤 勝 より:

    助かりました。dorogon.netが見つからなくて、WiringPiをインストールできないで困っていました。情報が古かったのですね。無事、インストールできました。ありがとうございます。

タイトルとURLをコピーしました