●Raspberry Pi 4 WiringPi install
2020.05.27
ROBOTの Motor を駆動する制御信号は、Raspberry Pi 4B の GPIO を
使用して行ないます。
日本語の文字列を、Motor を制御する信号に変換するためには、
文字列〜Bit変換をしてなくてはなりません。
これには、Raspberry Pi 用の 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 を回転させるには、GPIO の2端子を使用します。
まず、端子配列を見てみましょう。
$ gpio readall
GPIO の名称とピン配列が表示されました。
9番と11番を右 Motor に割り付けています。
まず、右側の Motor の前進回転を行います。
$ gpio -g mode 9 out
$ gpio -g mode 11 out
$ gpio -g write 9 1
$ gpio -g write 11 0
配線が間違っていなければ、右 Motor が前進回転します。
端子の状態を確認してみましょう
今度は、右 Motor を後進回転させます。
$ gpio -g write 9 0
$ gpio -g write 11 1
gpio 9 →名称 MISO/gpio 9
gpio 11 →名称 SCLK/gpio 11
gpio 8 →名称 CE0/gpio 8
gpio 7 →名称 CE1/gpio 7
左 Motorもやってみましょう。
$ gpio -g mode 8 out
$ gpio -g mode 7 out
$ gpio -g write 8 1
$ gpio -g write 7 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 が消灯して停止します。
----------------------------------------------------------------------------------------------------------------------------