RAPIRO(ラピロ)のサーボモータの通電をOFFにする

Maker Fair 2014 Tokyoが近づいてきました。去年初めて行ったんですが、個人的にはすごく居心地の良いイベントでした。ブラブラ歩いているだけで楽しい感じ。今年も是非行きたいですが、東京遠征なので結構お金がかかる。。。最近Mac MiniやらiPhone 6やらディスプレイやら食卓テーブルやら羽毛布団やら友人の結婚式x2でどう考えてもお金を使い過ぎです。でもまー、行かずに後悔するより行って後悔した方がいいと思うので、多分行くことにはなると思っていますが。

あと、最近になって自分の中でロビの存在が気になりだしました。言わずと知れた、組み立て式ロボですね。週刊で供給されるパーツを全部揃えると14万円近くしますが、すばらしい出来だと思います。すごいよディアゴスティーニ。

最初は出来が良すぎて『なんだい、そんなカスタマイズもできないような既製品!』と突っぱねたんですが、「ロボと対話する」「ロボと一緒に暮らす」ってどんな感じだ?というのを検証するのには、現状これが一番良い気がするのです。Pepper?うーん、すみません、開発者としてはとても良い題材だと思いますが、一緒に暮らしたいかと言われたら、NOです。シンプルに、見た目がちょっと生理的に苦手なので。

でも、前述のとおり、お金がありません。なので、ここは浮気をせずに、今そばにいるラピロを立派なコミュニケーションロボに育て上げることにします。その方が、自分にとって確実に力になりますし。

ということで、前置きがとても長くなりましたが、今回は超超久しぶりのラピロの工作話です。

ラピロはプログラミングで自由に動かせるのが大きな強みですが、使い方によっては、別にモーターは動かなくてもいいよ、というときもあるかと思います。先ほど言った、コミュニケーション主体のロボにする場合とか。コミュニケーション主体であっても、手を動かすぐらいはもちろんやって欲しいですが、基本的にはモーターを動かさないことの方が圧倒的に多いと思います。

そんな場合でも、デフォルトの状態でArduinoボード経由でRaspberry Piに電源供給をしていると、ラピロがずーっと「ジー」っていう音(サーボの待機音)を出すことになります。これはなんだか落ち着かないですし、サーボモータの寿命も縮めてしまいそうな気がします(よくわかっていませんが)。

かと言って、Raspberry Piに直接電源を供給するようにしてしまうと、Arduinoボード経由の操作(サーボ&LED制御)ができませんし、何よりラピロの頭が開きっぱなしになってしまいます(もしくは、電源コード用の穴開けが必要)。それは嫌なので、ここでは電源をArdunoボード経由でとりつつ、基本的にサーボモータに通電しないよう設定してみたいと思います。

前置きが長かった割に、やることはとても簡単です。RAPIRO公式ページのサーボモータ制御基盤仕様によると、「Rapiro基板のA3ピンを用いてサーボモータへの電源供給を管理できます」とのこと。で、実際にラピロのArduinoサンプルスケッチを見てみると、setup関数の最後で digitalWrite(POWER, HIGH) としています。POWERは17ピン(=A3ピン)で定義されていますね。

ということで、ここを digitalWrite(POWER, LOW)に変えてやって、このスケッチをラピロのArduinoボードに書き込んでやります。これで、ラピロにAC電源を繋いで、背中のスイッチを押してやればモータ駆動なしでRaspberry Piを駆動することができます(うまくいかない場合は、ここに書いてあるシリアル設定がdisableになっているか確認。enableだと立ち上がらないことがあります)。SSHでログインするようにすれば、HDMIケーブルも挿さなくてよくなるので、RAPIROの頭を閉じた状態で色々作業することができるようになります。

さて、これをやると、「とりあえず基本はサーボをOFFにしておいて、必要なときだけサーボをONにする」ということもやりたくなりますが、これはやりはじめると色々クリアしなきゃいけないことが出てきそうな気がする(あくまで予感ですが)ので、これは本当に必要になったらやろうと思います。