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

~ヘルニアでHell near~

Raspberry piで2足歩行ロボットの作成④「Python Adafruit_PCA9685ライブラリでモーションの作成」

calendar

前回、ロボットの足にあたるサーボモーターを組み立てて、足と胴体をくっつける「ロボットの骨格」を作成しました。↓

 

今回は、このロボットをプログラムで歩かせたいと思います。

最終的にはwebiopiでブラウザからの操作を考えているので、deviceInstanceのライブラリを使ってモーションを作成したい所ですが、こちらは微調整するのにいちいち再起動する必要があったので、ある程度の所まではAdafruit_PCA9685ライブラリを使用して開発していく事にします。

Pythonのプログラムですので、ラズパイにプリインストールされている「Thonny Python IDE」などのエディタを使えばイイと思います。

なお、開発環境については第1回目の記事でまとめているので、参考にして下さい。↓

 

で、モーションの元となる「モーション図」みたいなやつですが、ググれば山ほど出てくるのでここでは割愛いたしますm(__)m

ちなみに以下のプログラムのモーションはオリジナルですので、少々変な動作にはなっていますが、そこは愛嬌ということでよろしくネ♡

 

スポンサーリンク

モーションプログラム

test.py

pwm.set_pwm()のインスタンスメソッドの第二引数が開始パルス、第三引数が終了パルスとなっていますが、ここの値でサーボモーターの角度が決まります。

ざくっと説明すれば、開始が0とすれば、「終了パルスが150=0°」「終了パルスが500=180°」となります。

したがって、サーボの位置を真ん中(90°)にしたければ開始0,終了が175になります。(ざくっと)

これを基準に、前後左右に歩かせるプログラムを作成していきます。

なお、今回使用しているサーボモーターは格安のレビュー最悪品ですので、初期位置をセンター(90°)にしていてもズレる事が多いので、そこは175の値を前後させて90°になるよう微調整します。

プログラムを実行すれば、インプット関数で数字を入力する画面になるので、任意の番号を入力します。

番号に応じて前進、後退、左旋回、右旋回、初期位置、の関数が実効されます。

終了時は、1~4以外のキーを入力すれば強制終了となります。

少々使い勝手が悪いかもしれないので、その辺は自由に改造して頂ければと思います。

 

プログラムの実行

作成したプログラムを実行すれば、下のように動作するはずです。

 

決してスムーズとは言い難いですので、気になる方は個人で自分好みに合わせたモーションに変更してください。

次回は、今回作成したプログラムをもとに、webiopiで使えるPythonプログラムを作成します。