ソフトウェアのみでAVRマイコンをUSBデバイスにしてしまうAVR-USBは、いつのまにかV-USBと名称が変わったらしい。
Atmel社の登録商標との対立を避けるために、名称変更を行ったと公式サイトに書かれていた。
以前に作ったAttiny45を使ったマイコン基板がこのV-USBをベースにしている。

先日Arduinoでちょっと動かしてみたシャープの距離モジュールを、今度はこっちに接続して動かしてみようとしたんだけど、A/Dコンバータからの入力をUSBキーボードとしてPCに送るようにファームを書き換えて試してみたところ、どうも正しい値が出てこない。
チェックしてみるとVCCのピンに3.3Vしか出ていない。この基板ってそもそもAttiny45を3.3Vで動作させるように作っていた事を、すっかり忘れていた(笑)。
距離モジュールは5V動作だから、この電圧では正しく動かなくて当たり前。
もあさんのPepperが同じ箱の中に入っていて、こっちは+5Vで動作しているからファームを書き換えてしまえば代わりに使えるはず。と思ったんだけど、せっかくGainer互換機として動いているんだから、この機会にGainerの開発環境も試してみることにした。
かくして当初の目的からどんどんズレていく事に。まあいつもの事だけどね(笑)。
とりあえずPepperがちゃんと動くこと確認しようと思って、まずはそのままPCに挿してみたのだが、デバイスが自動検出されてドライバを読み込み、仮想シリアルポートとして認識されるまでは良かったんだけど、通信ソフトでコマンドを送っても何の反応もない。
念のため先日MTM03で購入したPepperキットのAttiny85に差し替えても結果は同じ。
AVR-USB(V-USB)はUSBハブ経由だとうまく動かない事がある。という話を以前に読んだことをふと思い出して、液晶モニタのUSBポートから本体のUSBポートに挿し直してみると、今度はちゃんと動作した。
USBハブ経由だと電流が足りないんだろうか?でもUSBデバイスとしては認識されてるんだよなぁ。謎だ。
Gainerの開発環境としてはFlashやMax/MSP、Processingなどがあって、お馴染みArduinoの開発環境はそのProcessingをベースにして作られている。
エレキジャックにもあさんが「Ginger/Pepper/Sugarでフィジカル・コンピューティング」という記事を書かれていて、その中でProcessingについても紹介されていたので、それを参考に試してみた。
Processingの最新版を入れてしまったせいで最初Gainer(Pepper)を認識してくれなかったが、ProcessingのLibraryに含まれる
- librxtxSerial.jnilib
- librxtxSerial.so
- RXTXcomm.jar
- rxtxSerial.dll
をGainerのフォルダに上書きコピーしたら、ちゃんと認識されるようになった。
やっと準備ができたので距離モジュールをアナログ入力ポートにつなぎ、テストプログラムを走らせてみたのだが、それでも値が正しく取得できない。
回路をチェックするとPepperのピン番号を逆に数えていて、距離モジュールへの電源が逆接続になっていた。ヤバいと思ってすぐ元に戻したのだが、もうあとの祭り。あっさりとお亡くなりになってしまった。
念のために可変抵抗をつないでみると、こっちは正常に値が出てくるから、距離モジュールが死んでいるのは間違いない。赤外線LEDは光ってるんだけど、受光用の素子がダメになったようだ。
これだけ回り道して結局最初の目的にたどり着けなかったとは、トホホ。
まあ壊れてしまったものは仕方がない。Processingはなかなか良いオモチャになりそうだから、また秋月に行って距離モジュールを買ってくるまではそれで遊んでいよう。
最近のコメント