WAVESHARE Motor Driver HATが動いた。(JetBot組み立て開始(その3))
JetBotのBoM(部品リスト)に記載されているAdafruit DC MOTOR + STEPPER FEATHERWING A【2927】は入手に時間が掛かる(○ルツで納期5日間)ので、代替え品を探していたところWAVESHARE Motor Driver HAT for Raspberry Pi, I2C Interface(千○電商で在庫あり)が動きました。Jetson Nanoの40 pin GPIO Headerに直接指すことができます。
動作用のデモコード(Motor_Driver_HAT_Code.7z)は製品Wikiページにありますので、ダウンロードします。
ファイルの拡張子が7zですので、まずは解凍ツール(p7zipとp7zip-full)をインストールして、デモコードを解凍します。
jetbot@jetbot:~$ sudo apt install p7zip p7zip-full
jetbot@jetbot:~$ 7z x Motor_Driver_HAT_Code.7z
解凍したフォルダ(Motor_Driver_HAT_Code/python)へ移動してmain.pyを実行するとPCA9685ライブラリを読み込んだ際にsmbusモジュールが無いというエラーが出力されます。
jetbot@jetbot:~$ cd Motor_Driver_HAT_Code/python
jetbot@jetbot:~/Motor_Driver_HAT_Code/python$ python main.py
Traceback (most recent call last):
File "main.py", line 3, in <module>
from PCA9685 import PCA9685
File "/home/jetbot/Motor_Driver_HAT_Code/python/PCA9685.py", line 5, in <module>
import smbus
ImportError: No module named smbus
pipコマンドでsmbusモジュールをインストールする必要があります。
その後、main.pyを実行すればモーターが回りますが、動かすだけのコードになっており、モーターが回り続けてしまいますので、止めるコードを追加してください。(timeモジュールを追加して、モーターを回し始めて1秒後にモーターを止めるコードにしました。)
jetbot@jetbot:~/Motor_Driver_HAT_Code/python$ sudo apt install python-pip
jetbot@jetbot:~/Motor_Driver_HAT_Code/python$ pip install smbus
jetbot@jetbot:~/Motor_Driver_HAT_Code/python$ python main.py
jetbot@jetbot:~/Motor_Driver_HAT_Code/python$ diff main.py main.py_org
4d3
< import time
52,54d50
< time.sleep(1)
< Motor.MotorRun(0, 'forward', 0)
< Motor.MotorRun(1, 'backward', 0)