魔女っ娘BBSで小出ししていた夏休みの工作モノだが、休み中に仕上げると宣言しておきながら、あと一歩のところで目標は達成できず。休みも終わったということで、今日までの進捗状況を報告しておく。やはり休みの前半をFateに費やしていたのが敗因かも知れない...で、そっちもコンプリートできず。二娘を追う者は二娘をも得ずという諺が痛く感じられる。なお、これは正式レポートではないので、バックグランドの解説や回路など、細かいところは省略する。
レーザープロジェクタというのは、レーザーを光源にしたプロジェクタのことで(まんま(^^;)、その使用形態は大きく2つに分けられる。一つは飛び交うレーザービームを観客に見せるもの。もう一つはスクリーン上にレーザースポットを走らせて、グラフィックを描くもの。前者はインパクトが強く、ディスコや各種ステージの演出に頻繁に用いられていて、なじみ深いだろう。レーザーライトショーについては、この辺からいろいろ辿れると思う。
さて、今回の企みは、そのレーザープロジェクタなるモノを自作して、どこかの壁に落書きしようというものである(ぉぃ(^^;)。レーザープロジェクションシステムを構成する主要コンポーネントは、レーザー、スキャナ、コントローラの三つである。レーザーは直接変調のできる固体レーザー(単色のみ)と、数波長を同時に生成できるガスレーザー(別途PCAOMが必要)があり、状況に応じて使い分けられている。スキャナにはポリゴンミラースキャナ(ラスタ走査式)と、ガルバノメータスキャナ(ベクトル描画式)の二通りがあり、レーザープロジェクタには後者が用いられる。コントローラは、スキャナにビームを振らせるためのベクトル信号を発生する装置(マイコン基板やPC等)である。
業務用プロジェクタに使われる0.1〜数Wクラスのレーザーは、誰でも安全に扱えるような物ではないし、\数十〜百万以上もするので簡単には入手できない。しかし、共立電子産業からコストパフォーマンスの良いレーザーモジュールが発売され、状況は一変した。これについてレポートしているサイトがいくつかあり、それらによると公称5mWのところ、その10倍もの出力の個体があるというのだ。
私も早速何個か購入してパワー計で計測してみたところ、そのままの状態で軒並み15mW程度も出ていた(ぉぃ(^^;)。ビームを白紙に当ててみると目も眩むほどの明るさで、小規模プロジェクションには十分な出力と思われる。しかし、モジュールの温度がある範囲内にないと極端に出力が落ちてしまうので、出力を安定化させるためマイコン制御のペルチェ素子等で加熱・冷却して、ケース温度を最適値に保つように制御してやらなねばならない。所詮安物のレーザーモジュールなので仕方ないだろう。
レーザーが手に入ったということで、あとはガルバノメータスキャナさえあればシステムは完成したようなものである。しかし、一式揃えるには廉価品で\十数万、標準的なもので\数十万もするので、やはり遊びで買えるような代物ではない。結局これは自作することになり、今回のプロジェクトの最重要課題となった。実は数年前にも挑戦して敗退しており(ヘボすぎて評価すらしてない(^^;)、今回はそのリベンジとなる。閉ループ制御スキャナの自作は、相変わらず先人がおらず試行錯誤の連続だったが、何とかカタチにすることができた。ここまで開拓しておけば、あとは誰でも簡単に自作れると思う。右のイメージはガルバノメータの主要部品で、ジャンクの寄せ集めなのでアンプを含めた2軸分で\1万程度に収まった。各部品は次の通り。
組み立て中のガルバノメータ。今回はムービングマグネット型なので、無用なリラクタンストルクを避けるため、完全コアレス構造としてみた。珪素鋼板の加工には精密な金型が必要で、コアの自作が困難というのもあるが。磁束のリターンパスが無いので、トルク定数はかなり低い(2.5mN-m/A)。
閉ループ制御とは、制御対象の状態(温度・速度・位置など)をフィードバックして指令値と比較しながら、誤差を無くすように制御することをいう。いわゆるサーボ制御のこと。写真は回転子の位置を測るための検出器の拡大である。光学式やら電磁式やら色々考えたが、構造の簡単な静電式を採用してみた。これは2組の電極(位置により静電容量の比が変化する)に交流電圧を加え、流れる電流の不均衡分を位置として検出するというもの。シャフトを押さえているバネは可動電極にGND電位を与え、同時に軸受けに与圧してガタをなくす役目をなしている。
ミラーマウント。鏡を適当なサイズに切ってφ5mmアルミ棒を加工したマウントに接着。光学システムに使う鏡はほぼ例外なく表面鏡である。使用した鏡はエドモンドにて購入(150x38x1mmの表面鏡が\2200)。
ガルバノメータを駆動するサーボアンプ。使いやすいDSPが入手できなかったので、いにしえのアナログサーボ回路で行ってみた。安価なアナログ部品だけで済むのでローコストだが、制御成績を上げにくい。ドライバもリニアアンプなので、発熱が結構凄いことになっている(^^;。
サーボのステップ応答(光学振れ角30度のとき)はこんな感じ。ン十万する高性能スキャナで500〜700μs程度なので、ジャンクな自作スキャナで1ms強なら、まずまずといったところか。予想していたよりもかなり良い性能で、とりあえず満足のいく結果となった。
コントローラは単にベクトル信号とレーザーのON/OFF信号を生成すればいいので、とても簡単だ。主な部品は、マイコンチップと、フレームファイルをストアしておくフラッシュメモリ、それとベクトル情報をX軸とY軸への制御信号として生成する12bit-2chのDACだけ。
最近は困ったことに、特にデジタルICにおいてDIP部品の存在しないものが多くなり、今後は電子工作においても面実装部品の使用は避けて通れない課題となってきた。今のうちにQFPの実装に慣れておく必要がある。
とりあえず、適当にビームを振り回すだけの機能はできたので、部屋を暗くしてレーザーライトショーの真似事をやってみた。こういう場合、テクノサウンドをBGMにするものだが、適当な音源が無かったので代わりにスキャナの動作音を一緒に入れてある。
続いてベクトルグラフィックでも行ってみようか...と来たところで、重大な誤算に気付いた。「データはどうするのか?」。画像ファイルがあっても、その線画ベクトルをデータ化しなければならない。しかも、画像を扱うにはGUIアプリを書かなければならないのだ。いままでGUIアプリは仕事では安直にVB5を使ってきたが、自宅にはVC6しか所有しておらず、VCではCUIアプリしか書いたことがなかった。時間は残り少ない。これからVCのGUIプログラミングに入門して間に合うのだろうか。
結局、画像からベクトルを拾っていくというたったそれだけの機能のGUIアプリを書くのに3日もかかるという状況で、最終日になってようやく完成はした。が、コントローラのF/Wのベクトルグラフィック対応を残して時間切れ。やっぱり見通しが甘かったのとFateにハマっていたのが敗因か。今後はギャルゲも計画的にやらないとダメみたいだ....(-_-;。
気を取り直して焦らずまったりと進めていく。ベクトルデータを作成できるようになったので、F/W対応を済ませてデータ転送、表示してみた。テレビジョンの実験ではないが、お約束どおり「イ」を表示してみる。なかなかイイ感じだ(笑)。単純なフレームなので、フリッカはほとんど感じられない(43fps)。
次に、アッピーたんを表示してみる。やや複雑なフレームなので26fps程度。これくらいになるとフリッカが感じられるようになる。一部のラインでスキャナの遅れを待たずにブランキングをかけてみたが、やはりタイミングがずれてしまった。ちゃんと始点終点では制定時間だけ待ってからブランキングをON/OFFした方がいいようだ。そして最後の仕上げとして、適当なビルの外壁にギコ猫たんをこっそり投射してみる(35fps)。これでとりあえず、当初の目標を達成!(^_^)。
ILDAテストパターンを表示してみる。ILDAテストパターンとは、スキャナの調整や性能評価に用いられる標準フレームデータである。テレビジョンシステムでいうモノスコープパターンのようなもの。業務用のプロジェクタでは、ILDAテストパターンを 30kpps(走査角は問わないが、多くは8度)で正しく走査できることがベクトルグラフィック対応の標準となっている。
写真は、18kpps、8度のときの表示。この自作スキャナの場合、8度ではこの程度の速度が限界のようだ。閉ループ制御としては良い方ではないが、開ループ制御のスキャナ(〜12k)よりは良いといえる。
とりあえず、これでプロジェクトはコンプリート。あとはレポートにまとめるだけだが、達成感と同時に次のプロジェクトが気になって気力ゲージが一気にダウン(^^;。はてさて、正式レポートはいつになることやら。つーか、誰もこんな製作には興味を持たないか...(^_^;。
シリンドリカルレンズ等で扇状に広げられたレーザー光は、流体の可視化によく用いられている。レーザーシートに接した煙などの微粒子は明るく輝き、すっぱり切断されたようにその断面が観測できる。レーザービームをスキャナで高速に振っても同様な効果が得られると考えらるので、試しに蚊取り線香の煙を可視化してみた。なお、スキャン速度はカメラに合わせて60Hzとしている。