今回はMeArm Piの紹介と、MeArm Piを使った面白いプロジェクトを紹介します。
MeArm Piの組み立て
MeArm Piは何種類かあるらしく、私たちが手に入れたものはMeArm V3となっています。V1やV2とは構造が異なるので注意してください。MeArm V3の場合、以下の動画を参考にして組み立てられます。
ただ、この動画のボードと実際に製品に入っていたボードが異なったので、製品としての安定度はまだまだ低いのかも知れません。組み立ては小さな六角レンチが大変で、1時間半くらいかかりました。
Node.jsのインストール
サンプルとして使えるサーバはNode.jsで書かれています。そこでRaspberry PiにNode.jsをインストールします。
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo apt-get install -y git pigpio nodejs npm
$ git clone http://github.com/mimeindustries/mearm-js.git
$ cd mearm-js
$ npm install
Node.jsはnなどを使って最新版がインストールできますが、MeArmが依存しているライブラリがv8.x系でないとインストールできませんでした。aptでインストールできる最新版がv8.x系なので、それを使うか、nを使ってv8.x系をインストールしてください。
I2Cの有効化
MeArmは通信にI2Cを使いますのでraspi-configで有効化します。 raspi-config
を使って 5 Interfacing Options
の P5 I2C
を選択して有効化します。
$ sudo raspi-config
サーバの起動
そしてサーバを起動します。
$ sudo nodejs ./server.js
サーバは http://(Raspberry PiのIPアドレス)/
で立ち上がりますので、Webブラウザでアクセスします。
デモはBlockly、JavaScript、Python、Snap!の4種類で用意されています。
今回はJavaScriptを選択しました。デモコードは以下のようになっています。
function wave_arm(times) {
var i;
for (i = 0; i < times; i++) {
mearm.moveLowerTo(85);
mearm.moveUpperTo(0);
mearm.moveBaseTo(85);
mearm.openGrip();
mearm.closeGrip();
mearm.moveBaseTo(-85);
mearm.moveLowerTo(20);
mearm.moveBaseTo(0);
mearm.openGrip();
mearm.closeGrip();
mearm.moveLowerTo(85);
mearm.moveUpperTo(0);
}
}
wave_arm(1);
動きはアーム全体の左右の動き、クレーン部分の上下の動き、ハサミの動きとなっています。同じIPアドレスを指定してサーバのWebSocketサーバに接続し、実行します。
実行すると、下の動画のようにきびきびと動作するはずです。
画像認識と組み合わせるデモ
このMeArm Piとカメラモジュールを組み合わせたデモを作られている方がいます。
MeArmPi で Object tracking – kodamapのブログ
こちらのプロジェクト、ソースコードも公開されており、非常に面白いので実際に試してみました(ライセンスはMIT Licenseとなっています)。
READMEを読めば困ることはないと思いますが、下記のようにコマンドを打ち込んでいきます。raspi-configでカメラを有効にするのを忘れないでください。
$ sudo apt update
$ sudo apt install python3-pip -y
$ sudo apt install libatlas3-base libwebp6 libtiff5 libjasper1 libilmbase12 libopenexr22 -y
$ sudo apt install libgstreamer1.0-0 libavcodec57 libavformat57 libswscale4 libqtgui4 libqt4-test -y
$ pip3 install opencv-python
$ pip3 install flask
$ sudo modprobe bcm2835-v4l2
$ sudo pigpiod
最後にサーバを実行します。
$ python3 app.py
そうすると http://(Raspberry PiのIPアドレス):5000
でサーバが立ち上がります。この時、先ほどのMeArmデモのサーバも立ち上げたままにしておきます。Webブラウザでアクセスすると、カメラが表示されます。
ここにオブジェクトを写すと、それをトラッキングしてくれます。動作例は下記の動画です。
まとめ
MeArm Piはパワーがある訳ではないので、ものを掴んだり運んだりするのは大変でしょう。しかしサーボモータを4つ使って上下左右の動きとハサミをコントロールする動きは様々な応用が考えられます。仕組みはシンプルなので、MeArm Piを別なプロジェクトに組み込んだりすることもできるでしょう。単体としてはもちろん、別なセンサーなどと組み合わせても面白そうなガジェットです。ぜひIoTプロジェクトで活用してください。
おわりに
Raspberry Piを使ったロボット開発やAI IoTシステム開発を学習したい方はぜひIoTエンジニア養成キットで学習してください。
]]>