ヘルニアクソ野郎エンジニアblog

~ヘルニアでHell near~

M5stackで2足歩行ロボットの作成②「micropythonでPCA9685を制御してサーボモーターを動かしてみる」 

calendar

前回、micropythonで2足ロボを作るための開発環境構築についてまとめました。↓

 

今回は早速、micropythonでサーボモーターを制御するプログラムを作成します。

サーボモーターの制御には「pca9685」のサーボドライバを使うので、正確に言えばこれを制御するプログラムになります。

raspberrypiのwebiopiにはpca9685のpythonライブラリがありましたが、M5stackにもmicropythonでpca9685を制御するライブラリがありましたので、これを使う事にします。

それでは、まずpca9685のライブラリをダウンロードします。

 

スポンサーリンク

micropython-adafruit-pca9685

git-hubのリポジトリから下記のモジュールをDLし、USB経由でM5sackのフラッシュに保存します。

motor.py, pca9685.py, servo.py, setup.py, stepper.py

リンクはこちら↓

https://github.com/adafruit/micropython-adafruit-pca9685

 

ターミナルが使えるなら、git cloneでDLし、その後M5stackに移動させます。

ターミナルが使えないならサイトから直でファイルをDLして、thonny IDEでM5stackへ転送する事も可能です。

これでpca9685のライブラリが使えるようになります。

続いて、pc,M5stack,pca9685,サーボモーター,電源,のハードウェアの接続をしておきます。

 

ハードウェアの接続

M5stack ハード構成

図のように接続し、PCとM5stackをUSBケーブルでつないでおきます。

モーター用の電源は、たしか4V程度でも動作したはずですので、乾電池でもOKです。

ちなみに、ここでは過去にラズパイで作成したロボットがあるので、それを使ってテストします。↓

 

最後に制御プログラムを作成します。

 

mtest.py

M5stackは、microphthonのファームウェアが入っていれば起動後にまず「main.py」のプログラムを読みに行きます。

今回は、最終的にはmain.pyに「モーター制御」や「WEBサーバー」など、全てまとめて1つのファイルにする予定ですが、とりあえずテストとしてPC上から動作確認をしてみます。

以下のプログラムをPC上に作成し、実行してみます。

必要なライブラリをインポートします。

i2cのインスタンス化は、引数に0(I2Cペリフェラルを識別),22(SCLに使用するピンを指定するピンオブジェクト),21(SDAに使用するピンを指定するピンオブジェクト)を指定しています。

servoのインスタンス化の引数にi2cを指定すれば、サーボモーターを動作させる下準備ができます。

インスタンスメソッドのpositionは、第一引数にサーボモーターのチャンネル、第二引数に角度を指定しています。

(サーボモーターのチャンネルは、pca9685に接続したモーターのチャンネルを指定すれば良いです。)

whileでループさせているので、実行すれば下のようになります。

 

次回はM5stackのWIFI APとWEBサーバーの設定を作りたいと思います。