レーザープロジェクタを自作して遊んでいます。ソフトウェアを工夫していろいろやってみています。
twitter: @edy555

17th December 2013

Post

レーザープロジェクタをKinectで制御するソフトウェア

Maker Faire Tokyo 2013で展示した、Kinectで撮った輪郭画像をレーザープロジェクタで映すデモのソフトウェアについてセットアップ方法です。

Mac OSXを前提としています。必要なモジュールは以下です。

  • Jack OSX
  • Quartz Composer
  • Synapse for Kinect
  • Xcode
  • OpenLASE
  • QCOpenLaseTrace

Jack OSX

http://jackosx.com/ からダウンロードして、インストールしておきます。

Quartz Composer

Apple Developer の Downloads からGraphic Tools for Xcode を選択。
ダウンロードした graphics_tools_for_xcode.dmg をクリック。
Quartz Composer.app を /アプリケーション 等の適切な場所にドラッグしておきます。

image

Synapse for Kinect

サイトからSynapse for Macと、Quartz Composer example project + pluginsをダウンロード。それぞれ展開する。QuartzKinectディレクトリに含まれているSynapse Kinect.pluginとqcOSC.pluginを、/Users/Your Name/Library/Graphics/Quartz Composer Plug-ins/ディレクトリに移動しておく。

Xcode

OpenLASEとプラグインをビルドするために必要。XcodeをApp Storeからインストールしておく。Xcodeを起動し、Preferences>Downloadsを開き、Command Line Toolsをインストールしておく。

OpenLASE

brewでインストールするためにbrewをセットアップする。

$ curl -fsSk https://raw.github.com/mxcl/homebrew/go | ruby

必要なツールをインストール。

$ brew install cmake
$ brew install ffmpeg
$ brew install qt

OpenLASEをインストール

$ brew tap edy555/homebrew-openlase
$ brew install openlase --HEAD

QCOpenlaseTrace

OpenLASEのtrace機能をQuartz Composerから使うためのプライグインです。brewでインストール可能です。

$ brew install qc-openlase-trace --HEAD

/Users/Your Name/Libraries/Graphics/Quartz Composer Plug-Ins/に、QCOpenLaseTrace.pluginがインストールされているはずです。

使い方

http://github.com/edy555/QCOpenLaseTraceにサンプルパッチSynapseDepth.qtzがあるので、これを使う手順を説明する。ダウンロードしておく。

あらかじめKinectとレーザプロジェクタをUSBで接続しておく。

Synapseを起動し、Kinectのデプス画像が表示されることを確認する。
image

JackPilotを起動、Preferenceを開き、Input/Output Deviceでレーザプロジェクタの音声デバイスを選択する。Output Channelsが6になっていることを確認する。

image

OKであれば、Startボタンを押しておく。

Quartz Composerで、SynapseDepth.qtzを開く。Quartz Composerの画面でデプス画像が表示されることを確認する。

image

image

JackでRoutingボタンを押してConnection Managerを開く。libolというセクションがあることを確認し、下記の接続をする。

  • libol/out_x → system/playback_2
  • libol/out_y → system/playback_1
  • libol/out_g → system/playback_5

image

コマンドラインからjack_connectコマンドを利用して接続を行うことも可能です。シェルスクリプトにしておくと便利です。

jack_connect libol:out_x system:playback_2
jack_connect libol:out_y system:playback_1
jack_connect libol:out_g system:playback_5

うまく動作しているなら、デプス画像の輪郭がレーザプロジェクタで表示されるはずです。

トラブルシューティング

●サウンドデバイスが認識されない。

CM6206チップを使用したUSBサウンドデバイスをMac OSXで使用するためにはcm6206 enablerが必要です。下記からダウンロードしてインストールしておきます。

http://www.dr-lex.be/software/cm6206.html

●サウンドデバイスが認識されない。

サウンドデバイスをUSBで接続しただけでは認識しないことがあります。USBを接続した状態のままスリープし、再度レジュームすると認識します。

●チャネル数が2のままとなる。

Audio MIDI Setupを開き、チャネル数を設定します。

image

●Kinectが動作しない

Kinectにはいくつかのモデルがあり、SynapseはModel 1414で動作しますが、新しいモデルである1473では動作しないことが報告されています。

http://synapsekinect.tumblr.com/post/6307790318/synapse-for-kinect

●brewでのビルドに失敗する

 brew doctorコマンドでbrewの状態を確認してください。正常であれば-vdオプションを付けて、出力されるメッセージをお知らせください。

$ brew install qc-openlase-trace --HEAD -vd

Tagged: kinectlaseroscQuartz Composercm6206synapsejack

6th December 2013

Post with 11 notes

レーザプロジェクタの部品調達先

レーザプロジェクタを作りたい方のために、主な部品の調達先の例を挙げておきます。他にもあると思いますので探してみて下さい。

Laser Module

image

色々なところで販売されていますが、私はDealextremeで購入しました。$10くらい。

http://dx.com/p/30mw-532nm-green-laser-module-3v-11-9mm-26888

Gavloscanner

image

Phoenix Technology PT-30kというスキャナーです。Aliexpressやebayで購入可能。買ったところはここです。

http://www.aliexpress.com/item/scanning-galvo-LASER-LIGHT-SHOW-GALVO-laser-30k-scanner-kits/508092772.html

もっと安価なスキャナもありますが、性能の点で上記がおススメです。

6 Channel USB Sound Card Adapter

image

CM6206というチップを使ったサラウンドオーディオ対6チャネルUSBアダプタです。AliexpressまたはDealextremeで購入可能。私が買ったところとは別ですが下記は同じ商品です。

http://www.aliexpress.com/item/Free-shipping-wholesale-1pcs-lot-6-Channel-5-1-Optical-USB-Sound-Card-adapter-converter-in/921207028.html

以上合わせて$300くらいでプロジェクタを製作できると思います。

Tagged: laserprojectoraliexpressdealextremeusbsoundlasergalvo

3rd December 2013

Link

Dance on Laser Projection →

Tagged: laserdance

5th November 2013

Post with 3 notes

MFT2013参加してきました

MFTから北海道に帰ってきました。会場は大盛況で沢山の方にレーザプロジェクタをご覧いただくことができました。目を輝かせて見てくださるお客様や、かぶり付きで機械を観察する方、熱心に質問を下さる方も沢山いて、4日間の遠征で正直ちょっと大変でしたが、出展して本当に良かったです。

ブースに貼ってあった資料ですが、現場は会場の隅で暗かったので大変見にくく申し訳無かったです。もっと大きな紙に印刷するとともに、配布するチラシも用意すべきでした。簡単な内容紹介でしたが、下記に資料をPDFで置いておきます(4.4MByte)。

https://db.tt/oUpQqK0H

実は、シルエットを映すだけではなく、ポーズを構えると表示にアイテムが付け加わるという動作をQCで作っていたのですが、残念ながら現場ではうまく動作しませんでした。過去にも失敗していますのでKinect2連敗です。まぁ失敗は想定内でしたので、バックアップとしてシルエットでのデモ展示としました。こんなのでしたということで事前にテストした時の動画をリンクしておきます。

http://youtu.be/j2l4v4aEWJI

ブースに来てくれた方、お話をさせていただいた方、手伝っていただくなど沢山の方にお世話になりました。ありがとうございました。

Tagged: mft2013laserprojectorkinectquartz composer

23rd October 2013

Post with 1 note

レーザープロジェクタをもう一台製作しました

MFT出展にあたって、バックアップも兼ねてプロジェクタをもう一台製作することにしました。デモはいくつかあるので、もう一台あれば同時に展示できます。

まずはガルバノミラーを中華通販サイトで探します。今回は30k pps品を買ってみました。2週間程で届きましたが、税関で開封してチェックされたようです。日本郵便のテープで再梱包されていました。

image

荷物の中身です。予想に反して、コントローラカードやILDAやマイクコネクタが入っていましたが、今回は使いません。通販サイトの商品写真を見るとヒートシンクのフィンが有無2種類あるようですが、フィン無しでした。

image

ケースに納めるための配置を検討します。前回製作したものより、電源やドライバカードが大きく、若干の配置変更が必要でしたが、大きさは210 x 75 x 200 mmと前回とほぼ同じにすることができました。材料はMDFとアルミ板です。

image

MDFをテーブルソーでカット、ドリルで穴あけをして、接着剤でコの字型に組みます。前面と後面はアルミ版とし、溝を掘って差し込みます。アルミ板の穴あけはハンドニブラとステップドリルです。

image

仮に組んでみました。うまく入りそうです。ヒートシンクは後面アルミ板にネジ止めして放熱します。

image

レーザーモジュールは中華通販サイトから購入してあったものを使います。リード線が出ているのですが、到着した時には切れて外れていました。スイッチを押すと光る機能がありますが、これは不要なので、配線をし直しスイッチを無効にしています。

image

レーザーモジュールの電源は3V, 300mA程度が必要です。15Vからシリーズレギュレータで電圧を下げると結構熱くなります。こういうときはスイッチングレギュレータとして100円ショップで買えるシガーソケット用のUSBアダプタを流用するのが簡単です。このアダプタは12-24Vの入力を5Vに降圧、500mA程度の出力を取り出せます。簡単に分解できます。

image

チップはMC34063Aです。改造は簡単です。

image

この基板の良いところは、分圧抵抗を変更すると電圧を自由に調整できることです。オリジナルの状態では1.2kと3.6kで5Vに設定されていました。定数変更で、3.6kのチップ抵抗に3.3kを並列に重ねることで出力を3Vに設定してみました。これをレーザーモジュールの電源とします。発熱も殆どありません。電圧を下げてもインジケータのLEDはちゃんと光りました。

image

次はミラー制御信号を取り出すためのUSBサウンドアダプタです。5.1chサラウンド用と銘打ったUSBサウンドアダプタを使用します。C-MediaのCM6206というチップを使った製品で、DACが6chも使うことができます。このうちの3chを、XとY、それと輝度信号として使います。

image

分解します。

image

基板の裏面からDCカットコンデンサ手前の信号を取り出します。バイアスと電源も取り出します。

image

DACから取り出した信号をドライバとレーザーモジュールを駆動するための制御基板を作ります。DCオフセットを修正して、輝度変調信号とします。X,Y信号はドライバーがバランス入力なので、取り出した信号をバイアスとともにそのまま入力します。

image

レーザーモジュールの輝度変調は、モジュールに付いている基板を改造することにしました。回路を調べてみると、可変抵抗で調整できる定電流源の構成となっていましたので、ここに輝度変調信号を加えられるようにしました。抵抗とコンデンサを一つずつ外して、リード線を一本引き出すだけです。可変抵抗は輝度調整にそのまま使えます。

image

仮組します。レーザーモジュールは位置を合わせて、MDFを重ねた台にアルミ板に穴をあけた固定金具で設置します。

image

テストしてみたところちゃんと絵が出ました。ちょっと表示が小さかったので、ドライバボードのVRを調整しました。それでも小さめなので、アンプを追加した方が良さそうです。あと左右反対なので極性も入れ替える必要があります。

image

動作OKだったのでケースを完成させます。ラッカースプレーを塗ります。

image

蓋は透明アクリル板です。板を切り出し、両端に端材を付けて2.5mmの穴を開け、3mmのタップを切ってケースにネジ止めできるようにしておきます。

image

ケース内に納めて完成です。基板の固定は木ネジです。

image

うまく動作しているようです。明るい部屋でもそれなりに見えます。

image

image

前回とほぼ同じ構成ですが、レーザー周りの回路をシンプルにできました。あと前回のスキャナーは20k pps品でしたが、今回はより高性能に30k pps品を選択しています。価格は倍以上ですが、描画性能は段違いで、くっきりとカドが立っています。ドライバボードの発熱も少なくなっているようで放熱器無しでも安心して使えます。(左が前回、右が今回)

Tagged: laserprojectorgalvopt-30kopenlase

5th October 2013

Post

MFT2013出展します

Maker Faire Tokyo 2013

2013/11/3-4に行われるMaker Faire Tokyoに出展することになりました。申込してみたところ承認を頂きましたので、北海道から参戦します。レーザー関連をメインに展示させていただくつもりです。

Tagged: mftmft2013

27th August 2013

Video

ツイッターで送ったキーワードから、WolframAlphaで検索して、レーザでドローイングしています。今回MFT2013の展示を申し込んでみました。現在はMac OSXで制御していますが、Raspberry Piで実装して展示したいと思っています。

Tagged: twitterlaserprojector

18th August 2013

Photo with 24 notes

北海道大学で行われたクリエータの集まり「お盆ミーティング」にて展示するために、キーワードでお絵描きするレーザプロジェクターを作ってみました。人物やキャラクターの名前を入力すると、wolframalphaという知識ベースから、そのキーワードに関するパラメータ関数を取得して、数値的に描画します。

北海道大学で行われたクリエータの集まり「お盆ミーティング」にて展示するために、キーワードでお絵描きするレーザプロジェクターを作ってみました。人物やキャラクターの名前を入力すると、wolframalphaという知識ベースから、そのキーワードに関するパラメータ関数を取得して、数値的に描画します。

Tagged: laserprojectorwolframalpha

3rd August 2013

Photoset

サッポロオープンラボにて「ひかりテルミン」展示してきました。レーザプロジェクターとレーザレンジスキャナーの合わせ技で手と耳と目で音を感じます。

サッポロオープンラボ http://sapporolab.com/

Tagged: thereminlaserprojectorlaserrangescaner

5th May 2013

Video with 1 note

WolframAlphaで取得した数式でオシロドローイングしてみました。

Tagged: oscilloscopewolframalphamacosx