Google Codeにソースコードなどをまとめておきました。
既にDreamWaverという名称が使用されていたので、やむなく"dream-waver"というプロジェクト名になりました。
回路は、トランジスタアレイによる単純なパルス発生器です。Arduino を使って最初にやる例題程度のものなので特に難しい点はありません(私はアマチュアですのであらぬ間違いをしている可能性があります。錯誤等ございましたら、忌憚なくご指摘ください)。
Arduino MEGA のピン2〜13を使って、12チャンネル構成にしています。
L1〜L12は、DreamWaver の振動部の自作アクチュエータのコイルです。直流抵抗が約120Ωのハンドメイドのパーツになります。
LEDを各チャンネルにつけてありますが、これは、プログラム作成時の確認用です。さすがに水をぱしゃぱしゃやりながらプログラムの開発/テストはしたくないので、手持ちのLEDと抵抗をつけました(実はこれ30年くらい前にまとめ買いした年代物のLEDと抵抗です。当時はLEDはとても高級品でいた。しかし半導体って長持ちだわ。抵抗は念のためテスターで値を確認して経年劣化がないか確かめました)。
リセットスイッチはなくてもいいんですが、何か起こったときのエマージェンシー用に取り付けました。これも年代物のSWを使いました。
部品(振動部を除く)
- TD62038AGP 2個
- LED 12個
- 抵抗1kΩ 12個
- タクトSW 1個
- DCコネクタ 1個
- Arduino MEGA 用のユニバーサル基盤
- 普通のユニバーサル基盤
- ピンヘッド
- ピンコネクタ
- ケーブル類
- コネクタ類
意外にコストがかさむのがコードやコネクタ類です。チャンネル数を多くしたいので、それに比例してコストがかかってきます。コードは近所の電気屋でジャンクとして売られていたAVケーブルを使いましたが、いろいろ問題がありました。安物買いのなんとやらという結果になってしまいました。やはりちゃんとしたケーブルやコネクタを使うべきです!
ハードウエアの最初の構想では、DAコンバータによって生成した滑らかな波形を使って、水波を発生させるつもりでした。しかし、いろいろ実験してみると、必ずしも与えた波形信号通りに水が動いてくれる訳ではなく、特に波の周期を大きくした場合、全然波立たないというような現象が観察されました。どうもサインカーブなどを正確に水面に発生させるのは難しそうです。ということで、DAコンバータ、PWM等による滑らかな波形をあきらめて、いっそのことパルスを発生させる時間間隔を制御する方式のほうが問題がわかりやすくなるだろうと考えました。そうなってくるといろいろ単純に考えられるようになり、回路も単純、振動部の構成も単純化できました。
ハードウエアについては、現状で最も満足いかない点は、電源です。
ArduionoとDreamWaverシールドにそれぞれACアダプタから給電しています。振動部の消費電力がかなりあるので、そうせざるを得ませんでした。現状でDreamWaverシールドおよび振動部の瞬間的な最大消費電力は15W程度にはなっています。これだけの電力をまかなえる電池がなかなか見当たりません。やむなく、ポータブル化をあきらめました。
波の周期だけをコントロールすることに決めたので、ソフトウエアも単純化されています。もっといろいろな実験をするためには、波の周期を設定するだけでは不十分なので、この点は改善すべきだと考えています。
スラーダーで12chある振動部の周期を独立に変更できるようにしています。また、レコーディングの機能があるので、一度やった操作を何回でも繰り返し試すことができるのが面白い機能だと思います。
振動部の自作アクチュエータについては、項を改めて。
とりあえず LED を光らせるところまでは、作成していただけると思います。
0 件のコメント:
コメントを投稿