●Raspberry Pi 4 WiringPi install
2020.05.27 更新:2026.05.16
ROBOTの Motor を駆動する制御信号は、Raspberry Pi 4B の GPIO を使用して行ないます。
日本語の文字列を、Motor を制御する信号に変換するためには、
文字列〜Bit変換をしてなくてはなりません。
これには、RasPi 用の GPIO 制御をしてくれる便利な Software に WiringPi という Program があります。
この Software は、開発者が 2019年8月に開発をやめてしまったので、
今後の maintenance や Kernerl の Version UP に伴う変更などは期待する事ができません。
Raspberry Pi GPIO Pin 配列

【Wiring Pi install】
まず WiringPi という Software を install します。
$ apt-get install wiringpi
下記 Command で version 確認を行います。
$ gpio -v

python3 の Bind
$ sudo apt-get install python3-pip
$ sudo pip3 install wiringpi
wiringpi ver 2.50 が install された。
version 確認するとWiringPi のversion は2.5 であり小規模修正部分があるみたい。
最新にするには、2.52 にしなければならない。
下記の latest.deb をあてて最新にします。
$ sudo wget https://project-downloads.drogon.net/wiringpi-latest.deb
$ sudo dpkg -i wiringpi-latest.deb
【python version 確認】
default で使用される python の version も確認しておきましょう。
$ python -V

python2.7 系は、2020年4月25日に ver2.7.18 を最後にして support 終了となりました。
python の版数が 2.7 になっている場合は、以下の要領で変更します。
まず、python2.7 の symbolic linkを削除します。
$ cd /usr/bin
$ sudo unlink python
新たに python3.7 の symbolic link を作成します。
$ cd /usr/bin
$ sudo ln -s python3 python
python3 が default で使用される様になりましたので
python の Version を確認します。
$ python -V
python 3.7.3 が表示されれば OK です。
【GPIO の Test】
では、GPIO の Test をしてみましょう。
Motor を回転させるには、1つの Motorで GPIO の2端子を使用します。
まず、端子配列を見てみましょう。
$ gpio readall

GPIO の名称とピン配列が表示されました。
【GPIOの代表的なピンの配置方法】
GPIO 2, 3: I2C(SDA, SCL)
GPIO 7. 8: (CE1, CE0)
GPIO 9, 10, 11: SPI (MOS0, MIS1, SCLK)
GPIO 14, 15: UART (TXD, RXD)
GPIO 18, (PCM_CLK)
GPIO 17,22,23,24,25, 27: 汎用デジタル入出力
Motor制御には汎用デジタル入出力の 17, 22, 23, 24, 25, 27 番pinを使用します。
GPIO 17番と27番を右 Motor に割り付けました。
まず、右側の Motor の前進回転を行います。
$ gpio -g mode 17 out
$ gpio -g mode 27 out
$ gpio -g write 17 1
$ gpio -g write 27 0
半田付け端子の状態を確認してみましょう
配線が間違っていなければ、右 Motor が前進回転します。
今度は、右 Motor を逆回転させます。
$ gpio -g write 17 0
$ gpio -g write 27 1
GPIO 22番と23番を左 Motor に割り付けました。
左 Motorも回転させてみましょう。
$ gpio -g mode 22 out
$ gpio -g mode 23 out
$ gpio -g write 22 1
$ gpio -g write 23 0
左 Motor が前進回転します。
Motor 駆動 IC の回路と、配線は間違っていなかった様です。
【Python Program】
nano を起動して python を使用した、Motor の制御 Program voice-remocon.py を作成します。
$ cd /home/pi
$ sudo mkdir WiringPi
$ cd /home/pi/WiringPi
$ sudo nano voice-remocon.py
voice-remocon.py Program
【voice-remocon.py の実行】
制御文の実行形式は、下記の様になります。
まず、julius を起動して、音声を受け付ける様にします。
$ cd /home/pi/julius
$ julius -C julius.conf
julius が起動して、<<< please speak >>> が表示されたら
voice-remocon を起動します。
$ cd /home/pi/WiringPi
$ python voice-remocon.py
音声受付の処理
voice-remocon が起動したら、RasRobo が
「音声リモコンを起動しました」と返事をしてくれます。
音声命令を聞き取れる様になったので話かけてみます。
「スタンバイ」と言うと、「命令受付モードに入ります」と
返事をしてくれて、前面 LED が点灯します。
これで、「前進」・「左前」・「右前」・「バック」・「左後」・「右後」と
いう言葉を受け付けてくれます。
Motor が回転して動作中ならば「停止」という言葉を受け付けてくれます。
ここで Motor の騒音問題発生。
↓
Raspberry Pi ROBOT ギアの騒音と雑音対策
何も話しかけなければ 20秒で Time Out して「命令受付モードを解除します」と
返事をしてくれて前面 LED が消灯して停止します。
----------------------------------------------------------------------------------------------------------------------------
