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

~ヘルニアでHell near~

Raspberry piで2足歩行ロボットの作成⑤「webiopi deviceInstanceライブラリを使いPython でモーションの作成」

calendar

前回、Adafruit_PCA9685ライブラリを使ってロボットの歩行モーションプログラムを作成しました。↓

 

今回はブラウザからi2c制御を可能にするため、webiopiで使える「deviceInstanceライブラリ」を利用したPythonプログラムを作成します。

記述の方法が異なりますが、前回作成したプログラムを見本とすれば、サーボを動かす順番、角度などが分かりますので、あとはそれをwebiopiに合った記述に変更していくだけです。

webiopiやdeviceInstanceライブラリなど、環境構築については第2回の記事でまとめていますので、そちらを参考願います。↓

 

はじめに、html、css、javascriptにも変更があるので、変更箇所を抜粋して記載しておきます。

各種ファイルは、第2回で作成した場所、pi/webiopi/のディレクトリ配下にあるはずです。

 

スポンサーリンク

HTML/css

motor.html

class n の部分を上記のように変更します。

上下左右ボタンに加え、中央に「SET」のボタンを配置しました。

これはサーボモーターの位置を「初期位置」に戻すボタンとします。

  

style.css

border: solid にn classを追加しました。

また、n class にマージンを追加しました。

追加したボタンのスタイリングをしただけです。

 

javascript

motor.js

追加したボタン(SET)の関数呼び出しと、イベント処理を追加しました。

続いて、Pythonのプログラムを変更します。

 

Python

macro_pwm.py

macro_pwm.pyを、上記のように変更します。

deviceInstanceのメソッドを使えるように、pwm0 = deviceInstance(“pwm0”)でインスタンス化しています。

pwm0.pwmWriteAngle()は、第一引数がサーボのチャンネル、第二引数が角度になります。

それぞれjavascriptからのマクロ呼び出しに対して、前進、後退、左右旋回、初期位置、の動作になるよう設定しています。

 

動作確認

それでは、ブラウザから実際にプログラムを動かしてみます。

予めラズパイのwebiopiを起動させておき、

ブラウザから「ラズパイのローカルIP:8000/test/motor.html」 にアクセスします。

パスワード入力後、任意のボタンをクリックして、意図した動作が実行されればOKです。

※サーボモーターによって角度の誤差が生じるので、動作が不安定であれば微調整をお願いします。

 

次回は、頭にラズパイ、電源、ドライバ、などを収納して完成させたいと思います!