“Edison”でロボットアームをグリングリン動かす(前編):新春電子工作!(1/5 ページ)
“ロボットを動かす喜び”は、ニッポンモノづくりの原動力。その感動をEdisonとロボットアームで“お手軽”に体験。前編は“疑似”ロボットアームを組み立てる。
年の初めのためしとてEdisonで電子工作することに
2014年12月のMaker Faire Tokyo 2014で「Maker Faire Tokyo 2014スペシャルのEdison」を入手した。となれば、工作せずにはいられない。幸せなことにMaker Faire Tokyo 2014スペシャルのEdisonには、Edison for Arduinoに拡張パーツが色々と付いている。そこで、今回はEdison for Arduinoに拡張回路を作って、さらにソフトウェアを動かしてみる。
編集部からは「ロボットアームがグリングリン動くとイイよね!」という「要望」があったが、本格的なロボットアームって結構高い。ものすごく乱暴だが、ロボットキットの安いもので10万円超える。アームだけでもその4分の1はする。ただ、もうちょっと安いものをと思って探してみると、イーケイジャパンの「MR-999」が見つかった。価格は税込みで5940円だ。
MR-999は普通のモーターを5個使ってアームを動かすタイプなので、あまり細かい作業はできそうもないが、とにかく安いので、「年末年始の休みに子どもといっしょの組み立てたい」「冬休みの自由研究で試しに作ってみたい」という目的には適している。秋葉原の「ツクモRobot王国」では、販売だけでなく組み立て済みを展示しているので、購入前にどんな感じで動くのかも確認できる。
展示している2台のMR-999をチェックすること30分。MR-999を動かすために必要な条件を以下のように推察してみた。
- モーターの正逆回転コントロールで、動きを反転
- 単一電池4本使用
- モーターはあまり大きくない……ってことは多分モーター電圧は3ボルト
- ってことは電池を+3ボルトと−3ボルトに分けてあって、それをスイッチでコントロール
- 本体とリモコンは8ピンのコネクタでつながっているから、モーター端子5本と+−の電源とグランドだろう
展示機材を見ただけだったが、実物を購入して確認してみたところほぼ推察通り。8ピンの信号種類だけ、リモコンにはGNDが出ていなかった。
このリモコンと同じことをEdisonでできればMR-999をEdisonから動かすことができる。PCでMR-999をグリングリン動かすというのは専用のUSB接続オプションがあるので、ワザワザ作るとしたら「無線操縦」という機能を加えたい。幸いなことにEdisonには無線LANがあるので、ロボットアームにEdisonとモーター駆動回路を取りつけて、無線で動かすのは不可能じゃないだろう。
Edison側の仕様を考える
7種類の信号線を制御してそれを無線LAN経由でMR-999に伝えるには、Edisonでどうすればよいだろうか。ArduinoならGPIOが多いし、GPIOコントロール用として
Edisonには「MRAA」という関数を用意している。だから、プログラム的な障害はない。
だが、しかし。
C言語とかArduinoの経験はあるけど、Webサーバを立てて、Edisonからリモコンで動かすなんて無理そうだなぁ………、と思っていたところ、Arduino IDEに「Simple Web Server Wi-Fi」というサンプルプログラムを発見した
ただし、このままサンプルコードを実行するとEdisonのWeb serverが応答してしまい、Simple Web Server Wi-Fiが動かない。この解決策にはいくつかあるが、今回は標準Webサーバを避けて、ほかのポート番号を使うことでサンプルコードが動いた。
このサンプルコードは、WebサーバをArduinoで実現し、「H」と「L」のリンクを接続先のWebブラウザでクリックすることでLEDを点灯(ON)にしたり消灯(OFF)にしたりする。ただ、ソースを見ると恐ろしくシンプルなので、「Java Scriptでボタンを設置して処理」ということはできそうもない。
モーター5つを操作するために10個のGPIOが使えるだろうか? Arduinoの場合、シールドのコントロールにGPIOを使うことが多く、それゆえの制限がある。しかし、Edison for Arduinoの場合は、GPIOがフルに使えるはずだ。その“はずだ”を確認するためのプログラムを用意することにした。
Copyright © ITmedia, Inc. All Rights Reserved.