中二の時に同級生数人とロボット同好会を学校で発足させたのですが、今では中学ロボット同好会はロボット研究部に昇格し、高校にもロボット同好会ができています。
で、ロボットを作るためにはマイコンでモーターを回す回路を設計したりプログラムを作れるようにならないといけません。
がこれまで、いちから独学で回路もプログラムもとなると相当の実力をつけているころには高校生ということになってしまっていました。
なぜそんなに時間がかかるか考えると、プログラムをするためにはマイコンボードができてないと学習できない、基板設計するにはプログラムでどういうことをするのか理解していないといけない…..という無限ループになるからだということになりました。
そこで、僕らの学年の部長だったT-Engineとクラブ向けの学習用マイコンボードがついたロボットキットをつくることになりました。
完成した基板があることによりプログラムの学習が早期からできるというのが目論見です。しかもマイコンは汎用マイコンを搭載しファームウエア等もあえて搭載しないので今後1から回路設計した場合でもそのときの経験はそのまま利用することができます。また回路図を読むことによりどういう回路ならこういうことが実現できるのかという教科書にもなるため回路の学習の基礎にもなればと思っています。
これを用いて中学初期あたりから学習すれば早期にロボット作成の基本が学習できる”はず”です。
構成としてはAVRマイコンと2チャンネルのモータードライバとUSBシリアル変換&書込回路をワンボードにしたマイコンボードとタミヤのユニバーサルプレートにギアボックスをセットにしたものになると思います。
拡張性を考えてI2C、デジタル入出力、アナログ入力ポートも備えています。
で、僕はマイコンボードの設計をするので以下のような感じになっています。
あと、AVRStudioを使って1からレジスタを操作してプログラムをするまえに、NQCのように簡単にプログラミングができるような開発環境も用意することにしたのでそちらも開発しています。
Windowsだけの対応ですがC#で開発しています。といってもコンパイル時にこっそり用意しておいたヘッダファイルをインクルードし、リンク時に用意しておいたライブラリをくっつけるという作業をしているだけなのですが…
それでも1から操作するよりは容易にプログラミングに慣れることができると思います。以下は開発中の開発環境です。一番大変なのは実際の動作とは全く関係のない部分なのですが、コードの色分けを実装するとこでしたね(笑)。できればVisualStudioのInteliSenceのような入力補完機能をつけるのが目標です。
インクルードが全くないのに用意された関数がつかえます。
これはコンパイル時にこっそり用意しておいたライブラリのヘッダファイルをインクルードし、ライブラリをリンクするという作業を裏で行うのことにより実現しています。というかただそれだけなのですが…
追伸
DCCデコーダの開発用のための実験基板ができました。AVRとモータードライバとBEMF用の回路が載っています。