2010年8月29日日曜日

USB2.0デバイスでサーボモーターを制御




ATMEL社のATmega168マイコンでUSB2.0 Low Speedデバイスを作成して、サーボモーターを制御してみました。

千代紙の「手」は娘(7歳)が作ってくれました。バイバイしたつもりだったんですが、わかりましたか?(笑)

使ったソフト/ハードは以下の通り。
(ソフトウェア)
・AVR Studio 4 SP3
・WinAVR(GCCベースのC/C++コンパイラ)
・V-USB(仮想USBデバイスファームウェア)
・libusb-win32(Windows用汎用USBデバイスドライバ)
・Visual Studio 2008 Express Edition SP1(Windows GUI開発環境)
・ResEdit(Win32アプリケーション用GUIリソースエディタ)

(ハードウェア)
・DIGIT製ATmega168汎用基板キット(レギュレーターを3.3Vに変更)
・JR製サーボモーター(14ms周期)
・Ni-Cd電池(4.8V)
・ブレッドボード

電子回路やブレッドボード配線、ソースコード等は時間があったらWebで公開します。

基本的なことができることがわかったので、

  • 次はこれを何に応用するか?
  • 応用できるのか?
  • 製品化できるのか?

等々を検討します。

方針は、すべてフリーで公開することです。
多くの人に良いものを使ってもらうには、Freeがいいんです。志があるから私心はないです。
AVRマイコンはとても優れたマイコンです。どこぞの大手フラッシュマイコンより使い勝手がいい。
でも、日本ではAVRの普及は遅れています。後閑さんがPICを先に日本に普及させました。
PICとAVRマイコンを両方使った私は、AVRマイコンのシンプルな設計の虜となりました。
しかし、AVR関係の書籍や、Webでの日本語技術情報はまだ少ないようです。
アルディーノというイタリア発信のAVRマイコンを使ったオープンソースハードウェアが勃興して欧米ではPICとAVRは人気を2分しているかもしれません。(未確認)
PICを使っている人はAVRマイコンはライバルだと言いますが、私はそうは思いません。

PICよりAVRマイコンのほうが優れていると思っています。実力は雲泥の差だと思っています。

PICは一命令を実行するのに4クロック必要です。しかし、AVRは一命令を実行するのに1クロックで済みます。同じ20MHzの水晶発振器を使っても、AVRのほうが4倍処理速度が速いのです。

PICの8ビットマイコンは、いまだバンクメモリ方式を採用しています。(メモリ空間が非線形)
AVRはメモリ空間が線形(連続していること)です。

CコンパイラはPICは有料。Cコンパイラを使っていて画面にマウスを投げたくなるぐらい使いづらいしわかりにくい。バンクメモリのせいです。バンクメモリなんて「負の遺産アーキテクチャ」です。

AVRマイコンはGCCベースのコンパイラが無料で使用できます。寄付したいぐらいです。

AVRの難点を言うと、ATMEL社(AVRの開発元)よりMicrochip社(PICの開発元)のドキュメントのほうが内容が充実している、ということでしょうか。そこは、ATMEL社の努力に期待したいとおもいます。

と言うことで、私は、AVRマイコンの日本での普及に向けて活動を続けていきたいと思います。
Keep Starting!!!

0 件のコメント: