2011年9月24日土曜日

とうロボを機にマイコンについて考える 其ノ壱

今週のアタマに「とうロボ」がありました。とうロボと言うのは東海地区のロボコンをやっている大学で技術交流を兼ねてロボコンをやろうというもので、今年初めての開催です。
偉いことを言ってますが、たまたまお声を掛けて頂いたので、出ない理由はないと出場しました。夏休みと引換に…

結果を言えば惨敗だぜ…まー一年生主体で作ったロボットを幾ら俺でも2、3日じゃ完璧には動かせないぜ。(プログラムを詰め切れないという意味で)
ちなみに正面中央のタッチセンサが完璧に動作さえすればすべて動きはプログラムしてあったので得点はできたはずなんだけど、やっぱり接触系のセンサの方が確実だと思ったのが誤算か。

そんなこんなであったのですが、詳しい結果やロボットに関してはウェブサイトや他の人が上げてくれると思うので、今回は自分の話を。

今回、自分の目標として幾つか新機軸(?)を考えていました。その中で、ロータリーエンコーダ以外はやってみたい事は殆どできたので良かったのかと思っています。
その内の一つとしてどうやってマイコンで制御するかということがありました。そう聞くと随分大雑把な、あるいは初歩的な事かと思われますが 、個人的には画期的だと思ったけれど、大会後の交流会でも誰も気がついてくれなかったので。
自分の印象としてどうしても相手のロボットを見ても機構的なところや外見で判断しやすいところにばかり目が行きあまりプログラムや制御の話題というのはそういった場所では聞かないのでしょうがないのかと。

自分が知っている限りロボコンに使われるマイコンは基本的にH8やSH2、R8Cといったルネサス系のマイコンが多い様に思える。もちろん場合によってはARMやPICといったものを使っているかもしれないがそれほど見たことはない(自分の近くがたまたまそうなだけかもしれないが)。なぜかと言ったら入手性の良さとポート数であると思う。H8/3048F、3052Fであれば100pin近くのピンが有る。複数のセンサから入力し、複数のモータなどに出力を行う場合そのぐらいは必要となる。あるいは内蔵の機能、A/D変換、PWM出力、タイマ、パルスカウンタ、etc…といった機能が要件を満たすだけ搭載されていなければならない。最近ではいっそのことFPGA上に組んでしまえばとも言うが値段的にも技術的にも難しい。

そういった事から昨年までも自分はH8マイコンを使ってロボットを動かしていたが、ここで幾つかの問題に立ち当たった。個人的にやっている分にはコレでも全く問題ないのだが、技術を後輩に伝えていく場合には若干の問題があった。何かといえば、マイコンは買ったらプログラムをしなければ動かないが、どうやってプログラミングをするかとした時に開発環境という問題が出てくる。ここで言う開発環境とはもちろんIDEの問題である。少し前までや、マイコンの入門書などではテキストエディタで書いてコマンドプロンプト上でコンパイルというのが普通であったが、最近ではほとんのマイコンで専用のIDEが用意されており、その上でデバッカも含めた環境でプログラムするのが普通になっている。しかしそのソフトが意外に高かったり、フリー版は使用期限、容量制限がある。例えばルネサスの統合開発環境HEWなんかは評価版では60日を過ぎると64kバイトまでしかコンパイルできないなどといった制限がある。

結果として我がサークルではAVRマイコンを使用している。まず価格が安い、マイコン自体が数百円、開発環境であるAVRStudioも無償、コンパイラのWinAVRも無償、プログラムライターのAVRISPmkIIも3000円とすべての環境を揃えてもH8マイコンボードと同じ程度という最大の強みがあります。なので非常に敷居が低く始められる。自分のような定期的にマイコンを壊す人間も怖くない。という最大の特徴がある。

長くなってしまったので其ノ弐に続きます。