2021/12/15 よりサイトリニューアルしました

M5stackで2足歩行ロボットの作成⑥「micropythonで液晶画面に表情をつけてサーボモーターと連動させる」

m5stack顔

前回、WEBサーバーとpca9685制御のmicropythonプログラムを合体させました↓

 

今回は、M5stackの画面に表情を付けるプログラムを組んでいきたいと思います。

サムネイルにあるとおり質素なものですので、ずっと同じ表情だと少しあれなんでサーボモーターが動作した時に口をぱくぱくさせる感じに仕上げます。

それでは、あらかじめロボット(サーボモーター)、pca9685、m5stack、電池などのハードウェアをPCとつなげておきます。

プログラムは、前回作成したserver.pyに追加していきます。

 

server.py

from m5stack import lcd のライブラリで、表示関係の関数が使えるようになります。下記にドキュメントへのリンクを張っておくので参考にしてください。↓

https://github.com/m5stack/M5Stack_MicroPython/blob/master/README.md#lcd

 

posiの変数に、両目と口の表示位置を格納しています。M5stackは320×240なので、xとy(横軸と縦軸)で座標を決めておきます。今回lは左目、rは右目、uは口の座標としています。

lcd.clearのメソッドは、引数に背景色を選択できます。

続いて表情を表示させる関数nomale_lcdを定義しています。lcd.circle は、指定した半径の円状のグラフィックを表示させるメソッドになります。引数の第一、第二に座標、第三に半径、第四が枠の色で第五が塗りつぶしの色になります。lcd.recth は、四角のグラフィックを表示できます。座標を決めて、第三引数にwhidth,第四にheightを指定します。

クライアントがWEBサーバーに接続後のwhileに入る前にnomale_lcdを呼び出して、M5stackの電源投入後に表情が表示されるようにしています。

あとはサーボモーターの関数が実効された場合、口を開ける動作にしたいので、前後左右それぞれのプログラムの先頭にlcd.recthを入れています。

サーボの動作終了後に口が開きっぱなしになるので、一旦クリアして、再度デフォルトの状態のnomale.lcdを呼び出しています。

こんな感じになります。↓

 

次回はこのプログラムをmain.pyに変更し、ハードウェアを全部脳みそに詰め込んで、表示部だけを外側から見えるようにして完成に持っていきたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です