前回、3Dプリンタでottoを印刷してBluetoothリモコンで操作してみました。↓
今回は、以前より作ってみたかった「腕付きの2足歩行ロボット」を、ブラウザから操作できる仕組みで再現してみましたので、その内容をここでまとめようと思います。
外観に関しては、私の好きなロボット「plen bit」をモチーフに、3Dプリンタで印刷してみました。
まだまだ改善の余地があるものの、最低限「動作する」部分までは出来ましたので、これをご覧になっている皆様の、何かの役に立てれば幸いでございます。
初めに
腕付きの2足歩行ロボット 概要
足のサーボ4つに加え、腕の部分にサーボ4つを加えました。合計8つのサーボを制御させます。
ブラウザからサーボモーターを制御させたかったので、カメラ画像も載せることができるM5stackの「unitv2」を使用する事にしました。下記のような感じです。
unitv2(html/js/python cgi) ⇒ uart ⇒ raspberry pi zero w ⇒ i2c ⇒ pca9685 ⇒ サーボモーター
一見、ラズパイゼロにWEBサーバーを立てれば、カメラも使えるのでunitv2を使う意味が問われますが、いかんせんzero wはシングルコアで動作が遅い。WEB通信の遅延が無視できないレベルですので、unitv2を使う事にしました。(ラズパイ3,4はデカ過ぎて入らない。。)
外観について
「plen bit」をモチーフ
これは、著作権にあれなので、がんばって自分用に3Dプリンタで作成してください。
プログラム
html/css/js/python
unitv2側:webサーバー(python http.server)を立てて、htmlのボタンクリックでjs発火、ajaxで値をpython cgiへpostし、ラズパイへuart通信で転送します。
raspberry pi w側:uartで転送された値を受け取り、値に紐づいた動作をするようpca9685をi2cで制御。
※各プログラムの詳細につきましては過去記事でまとめています。こちらで確認できます。↓
完成
こんな感じになりました。↓
ゆくゆくはもっとボタンを増やして動作のレパートリーを増やしたり、LEDを点灯させたり、micやスピーカーなども付けてみたいと思っています。
。。そのまえにモーションが粗すぎるのでまず修正からですが(-_-;)