け い ざ ん の D I Y 工 房

◆Home
◆住まいの D I Y
◆パソコン D I Y
◆ROBOT D I Y
◆電子工作 D I Y
◆Science

●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
110


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 が消灯して停止します。


----------------------------------------------------------------------------------------------------------------------------
・けいざん美術館
・Blog 油絵もろもろ
・EXCEL VBAであくせく
・けいざんの食べログ


                 Site Designed by Kasio Keizan