読者です 読者をやめる 読者になる 読者になる

そのボード、僕が積んでおきます。

たくさんの電子工作基板が積みっぱなしになってるので、頑張って工作しようとしていますが、どんどん溜まっていっております。

【ロボット事始め】Vstoneさんのピッコロボを愛でる。【Konashiでコントロール】

ロボット Arduino konashi JavaScript

このままだと、実際に作業してから2ヶ月が経過しちゃいそうなので、忘れないうちに書いておくことにする。この2ヶ月の間に色々なことを経験してて、それがあまりに刺激的だったんで、blogが完全に沈黙してしまったりしましたが私元気です。

 

先日のエントリー

は、実は、転職間際、すでに前職の有給消化に突入してから書いたものだった。エントリ中の資料の個人情報は、すでに前職のものとなってしまった。

 

2015年4月から、アスラテック株式会社で、「ロボットエバンジェリスト」なる肩書をいただいてお仕事をしている。「V-Sido OS」というロボット制御OSで、世の中に色々なロボットが増えたらいいな、と思って活動している。

 

このエントリーは、そんなロボットのお仕事を始める前夜のTweetに遡るところから始まる。

 

f:id:hine:20150527005703j:plain

 

3月、忘れもしない、前職の送別会の日、時間調整でいつもの通り秋葉原をぷらぷらしていたら、アールティさんのロボットアイルで思わず目に入ったのが、こちら。

 

https://instagram.com/p/zn7-ydhY7W/

 

ピッコロボ(piccorobo) | ヴイストン株式会社

  • およそ1万円というリーズナブルなお値段
  • 4自由度(サーボモータ4つ)という、処理が手に収まるレベル感
  • Arduino互換ボードでの制御
  • カワイイ!

と、これは買わない理由がないでしょ。というか、Arduinoでデバイスいじり始めた人で、まだロボットを触ったことない人、これ、本当にオススメだよ。

ってことで、勢いで買って帰ったのでした。

 

組み立ては数時間、ウェブページ見ながらやっていけば、難しいところはない。

 

制御ボードはArduino互換の「Freeduino UNO」。

Arduino標準の5V以外にも3.3VのIOが選択できたり、センサーやサーボがつなぎやすいようなピンが実装されているが、基本的には完全にArduinoArduino IDEで開発できるし、ピンの並びも基本的に全く同じだ。

 

この制御ボードで制御するサーボモータは、こちらのPWMサーボ。PWMというのは、pulse width modulationの頭文字を取ったもので、簡単に言うと電気信号を高速でON/OFFを繰り返してそのON/OFFの長さなどで制御を行う方式で、ArduinoではAnalogWrite()を用いてコントロールする、比較的扱いやすいものだ。

 

デモプログラムは、ここにある。

デモプログラムを使う - VstoneWiki

デモプログラムの説明でもある通り、USBで接続した制御ボードとのシリアル通信で簡単なアルファベットを送るとモーションが実行されるような仕様になっている

 

見ての通り、めっちゃラブリーだ。

我が家ではこの子を「もっちー」と名付けた。我が家の中では「おもち」に似ている、ということになったからだ。(ちなみに、四角い頭ではなく、胴体のもにょっとした感じが)

 

でも、こうなってくると、線がつながっているのが非常に可哀想な気がしてくる。もっちーをワイヤーから解き放つのだ!

 

ということで、シリアル通信ができて、ワイヤレスにししやすいと言って思い出したのが、いつも愛用している、konashiだ。

しかも、小型化拡張ボードを使えば、めっちゃ小さく収まる。

 

Arduino的には、Serialではなく別のピンでSoftwareSerialを使うようにして、実装してみた。変更は極めて少なくて済む。元のプログラムからちょっとだけ変更してkonashi経由でSoftwareSerialのUARTでアルファベットを送ってみたら、有線と同じように動いた。konashi用のプログラムはいつもどおり、jsdo.itで書いて、iPhoneのアプリから実行した。

 

この段階では、基本的にはArduino側がモーションのデータも持つメインの制御プログラム、シリアルでつながるkonashiなどはただ単に「きっかけとなる信号を送るだけ」となっている。せっかくJavaScriptで色々いじれるのであれば、Arduino側のプログラムを変化することなく色んな動きが作れたら面白いよね、と思って、JavaScript側でモーションもコントロールできるように拡張して、前進や旋回などのボタンまで実装してみた。

 

ということで、いつもどおり、jsdo.itでコードは 公開している。

そして、これもまたいつもどおり、僕がJavaScriptでプログラム書くときにいつも使わせてもらっている、enchant.jsを利用している。

いや、ほんとにね、慣れるとちょっとしたアプリを書くのが楽なのよ、enchant.js。

 

ってことで、さっきのと差がわかりにくいけど、出来上がったのが、こちら。

ほら、やっぱり線がない方がラブリーだよ!

 

追加で説明をしておくと、jsdo.itの説明の中にArduino側のプログラムを書いておいたので、そのプログラムをFreeduinoに書込みする。そして、konashiのTxをFreeduinoの14番ピンに、Rxを15番品に接続、Freeduinoの3.3VとGNDを、それぞれkonashiの3.3VとGNDに接続しすれすればOK。

 

電源を入れてからiPhoneのkonashiアプリを立ち上げ、アプリケーションを読み込み実行し、konashiに接続すればロボットを動かせるはず。

 

Vstoneさんは、タブレット用のコントローラアプリとかも作ってくれていて、それ用の拡張機器なんかも用意してくれてるけど、こんな感じで自分で作ってみるのも面白い。自分でUIも作れるし、モーションも自由自在だ。

何よりも自分の手でロボットを思うとおりに動かすことは、とても面白いことだからだ。そして、思ってたよりも思うどおり動いてくれないのもやっぱりロボットだ。ロボットと対話しながら、ロボットが思うように動いてくれるように少しづつ一緒に前に進んでいくのは本当に楽しい。

 

ということで、およそ2ヶ月前にやったことをblogに書いたんだけど、その後このモッチーは、RaspberryPiを積んで、音声認識/音声応答したりできるようになったりしてるけど、その話はまた機会があれば。

 

あと、小さなハックとしては、そもそもこのピッコロボは単3電池6本で動いていて、それが頭のなかに入っていたのだけれど、頭の中を少し 広く使いたかったので、こちらの充電池に変更した。

充電式IMPULSE 充電池 ニッケル水素電池 6P形 6TNH22A

充電式IMPULSE 充電池 ニッケル水素電池 6P形 6TNH22A

 

 いわゆる角電池型の充電池で、これに替えたことで、頭のなかがとってもスッキリして、その後の色々な改造が可能になった。普通のArduino用のモバイル電源としてもいいんじゃないかと思う。

 

ということで、初めてロボットを触る人には、このピッコロボ、とてもオススメです。