MeArm Piというガジェットをご存じですか。Kickstarterで生まれたプロジェクトで、ロボットアームキットです。コントローラが付属していますが、Raspberry Piからも操作できる、魅力的なガジェットになっています。

今回は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 OptionsP5 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プロジェクトで活用してください。

MeArm Pi

おわりに

Raspberry Piを使ったロボット開発やAI IoTシステム開発を学習したい方はぜひIoTエンジニア養成キットで学習してください。


0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *