スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

openFrameworks #3

アニメーション
Beyond Interaction2章 中盤。
描画に変化を付けて、アニメーションです。
無数のボールが壁に当たって跳ね返っています。



ここでは、if文が登場しています。
動画でキャプチャーしているため、やや荒い映像になっていますが、実際の映像は鮮明です。

縁日のスーパーボールすくいを思い出します。



※詳しいプログラムの解説は、「Beyond Interaction」を買って読みましょう
スポンサーサイト

openFrameworks #2

さっそく描画
今日は「Beyond Interaction」の2章前半をやりました。

2章は構造化プログラミングの基礎。
お馴染みのfor文、配列、乱数などですが、さすがメディアアート、最初のプログラムはHello,worldの文字表示ではなく、早速図形描画でした。

特にアルファブレンド(画像の透過)を使うと、奥行き感が出て、かなりクールな感じです。

(10_06_27) ofランダム円
乱数を使って、大きさや中心座標の異なる円を表示
不思議な感じ


(10_06_27) of円の重ね合わせ
これも、アルファブレンドを使って、複数の円を組み合わせているだけです。
3Dもどき?


(10_06_27) ofランダム線
乱数を使って、開始・終了座標の異なる線分を表示
神経細胞みたい


(10_06_27) ofストライプ
乱数で色を決めて、線分を表示
そのまま何かのデザインに使えそう


ポイント
サンプルプログラムのプロジェクトファイルにはopenFrameworksのライブラリを含めると多数のソースファイルがあるのですが、この章で編集したファイルは「testAPP.cpp」というファイルのみ。
しかも、このファイルの中は関数の雛型が用意されているスケルトンプログラムで、この章前半では「setup()」と「draw()」の2つの関数の中でのみの記述です。
「setup()」は実行時一番最初だけ実行される関数で、「draw()」は常に繰り返し実行される関数です。
なので、図形描画はWindowを移動させてたり、他のWindowに隠れて再び表に出てきたときでも、表示されたままです。


どんどん進めてゆきたいと思います。


※詳しいプログラムの解説は、「Beyond Interaction」を買って読みましょう

openFrameworks #1

また本を買ってしまいました。
BNN社から出版されている「Beyond Interaction」
メディアアートのためのオープンプログラミング「openFrameworks」の入門書です。

(10_06_26) openFrameworks


openFramewrksって何?
簡単に言えば、C++でアート作品やクールな表現ができるプログラミングのためのライブラリで、お手軽に利用できるものです。
それ以外の特長は、
・マウスやキーボードなどはもちろん、マイク入力による音声信号処理入力やカメラ入力による画像認識などもリアルタイムにしかも複数処理できる。
・Javaなどに比べ、C言語なので物理計算など高速な計算も得意。
というものです。
MacOSであれば、iPhoneアプリを作ることも可能なようです。


ライセンス
Wikiを見る限り、MITライセンスというもので、GPLなどのコピーレフト(利用して作ったものは同じように開示しなければいけない)よりも緩く、著作権表示・許諾表示を付ければ良いというものっぽいです。


具体例
いくつかアート作品の具体例があるのですが、その中でも印象的なものを紹介します。

・Double-Taker(Snout)


巨大な謎のモンスターが人々を見つめています。
実際は、人の動きに合わせて動くプログラミングされたロボットです。


・Hand from Above


監視カメラに映し出された人々を画像認識し、スクリーンの中で巨大な手が人々をくすぐったり、つまみ上げたりするAR(拡張現実)作品。


なかなか期待できそうです。がんばります。

PSoCマイコン・スタートアップ #2

今回は、第4章の「イルミネーション付きフォト・スタンド」の製作です。
フォト・スタンドは、本に付録として付いている厚紙を切ったり両面テープでとめたりして作るのですが、
メンドーなのでフォトスタンド無しの「イルミネーション」です。



しかし、単なるイルミネーションではなく、近接センサを用いたモノになっています。


概要
ハードは付録基板以外に、LEDと抵抗、適当な線材などを用い、空中配線しました。
電源はレギュレートされたモノが本当は良いですが、今回はエネループ(公称電圧1.2V)を4本使って、テスターで測ったら約5Vだったので、この構成にしました。
ソフトは、本に書いてある通りの動きです。
センサ部(ワイヤーのところ)に手を近付けると、LED全てが同時にじわじわ点灯します。
手を離すとじわじわ消灯し、LEDが順番にじわじわ点灯・じわじわ消灯をしてゆくプログラムになっています。


静電容量式タッチセンサ
PSoCの静電容量タッチセンサには2つ方式があるようです。
・CSA(CapSense Successive Approximation)方式
・CSD(CapSense Sigma-Delta)方式

今回は、後者の方です。
通常の接触or非接触を判定するタッチセンサではなく、数cmの離れた位置でも検知できる近接センサです。
通常のタッチセンサの感度を大きく上げることによって実現可能となります。
といっても、PSoC Designerから「Proximiity - CSD」デバイスを選択して、ちょっと設定してやるだけで簡単に利用できます。


ソフト設計
前回のようにデバイスアイコンを並べて、ルックアップテーブルを作るのは同じですが、
今回は様々な遷移状態があるため、その状態遷移をプログラムしてやる必要があります。
通常のコーディングのように、if then else やswitch caseなどで記述もできますが、PSoC Designerでは、下図のようにステート遷移図をマウスで書くだけでいけます。
(10_06_24) ステート遷移図




備忘録
今回のProximity - CSD デバイスを使うとき、PSoCの端子を3つ使います。
①センサー端子
②「modulation capacitor」と「feedback resistor」の両方に繋がる端子
③「feedback resistor」に繋がる端子

①に関してはどこでも配置可能ですが、②と③については配置可能なピンが限られています。
本に付属している基板「CY3240A Target20 Board」では、「modulation capacitor」と「feedback resistor」が実装されているので、それを利用します。
そうすると、②は「P03」、③は「P31」に繋ぐということになります。



※詳細な仕組み、回路図や実際のコーディング方法など知りたい人は、本を買って見ましょう

PSoCマイコン・スタートアップ

Cypressから6月7日に、「PSoC 5」のスタータ・キットとファミリプロセッサモジュールキットが発売されましたが、今回はそれではありません。

CQ出版より昨年末に発売されている本「PSoCマイコン・スタートアップ」を買いました。
この本には、PSoCが実装された基板とライター付で、すぐに始められるとのことだったので、思わず衝動買いしました。
カテゴリ的には「PSoC 1」です。

(10_06_10) PSoCマイコン・スタートアップ
左上がライター「PSoC MiniProg」、左下がPSoC付の基板「CY3240 Target20」です。
PSoCは、「CY8C21434」が搭載されています。CPUコアは「M8C」の8bitワンチップマイコンです。

環境準備
本に付属しているCD-ROMに入っている開発ソフトと「PSoC Designer 5.0」と書き込み用ソフト「PSoC Programmer 3.06」をインストールします。
PCの推奨環境はWindowsXPですが、Windows7でも32bitのProgram Files(x86)にインストールして問題なく動作しました。

設計
まずは、基板についているLEDをチカチカさせるモノの設計です。
本に従って進めました。流れは以下の通りです。
・PSoC Designerを立ち上げて、新規プロジェクト作成
・Timerを設定
・LEDを選択・設定
・テーブルルックアップという表でドラック&ドロップにて動作条件を決定
・マイコンの型番とピン配を決定してビルド
・PSoC Programmerで書き込む

下図はPSoC Disignerの1部の画面です。
(10_06_20) PSoC Designer
アイコンで「Timer」と「LED」を配置して、それが線で結ばれています。
右側は「Timer」の設定画面で、時間間隔を1500msecに設定していることがわかると思います。
このように、全くコーディングせずに、ほぼドラック&ドロップだけで設計できてしまいました。
もちろんC言語を使ってコーディングも可能です。

注意点
おそらくWindows XPの場合は、問題なく進むと思いますが、Windows 7の場合は最初ドライバ「PSoC MiniProg」の認識に失敗しました。その後、マニュアルでPSoCをインストールしたフォルダを指定してドライバのインストールをすると、インストールはされるのですが「デジタル署名がうんぬん・・・」などのエラーが出て、やはりダメでした。
解決方法は、最新のPSoC Programmerをインストールすることです。
エレバカは、2010/6/19の時点での最新バージョン、「PSoC Programmer 3.12Beata」をインストールして解決しました。
このとき、既にインストールしたPSoC Programmer 3.06はアンインストールしなくても、両方共存できるようです。

実行結果
チカチカっぷりを動画で、しかも無駄にフルHDで撮影しました。
単純にチカチカさせているだけではなく、LEDが消灯するときに、じわじわ消えてゆくように設定しています。

普通、これをやろうとするとPWMを使ってコーディングして結構大変なのですが、PSoCの場合、LEDを選択する場合に何種類か選べて、「with Decay」という素子を選んで、設定にてDecay Timeを適当に決めてやれば簡単にできました。
他にも例えば「Decay on/off」という素子を選べば、点灯するときもじわじわ点灯するようになります。

感想
まだ、本の一部をやっただけですが、PSoCはかなり色々なことが簡単にできそうです。
特にPICマイコンをそこそこやってきた人には、かなり使いやすいと思います。
逆に電子工作初心者にとっては、色々なことが出来過ぎて、開発画面にちょっと面を喰らうかもしれません。
この手の本を買うとなかなか最後まで進みませんが、今回はがんばってマスターしたいと思います。

メガネ不要な3D

裸眼3Dには、主に2つの方式があるようです。
Google先生に色々聞いて調べました。


①レンチキュラー方式
左目用と右目用の画像をそれぞれ短冊状に分割し、それを交互にディスプレイに配置したものです。
そして、かまぼこ型の凸レンズが横にたくさん並んだシートを画像の上に貼り付けたものです。
レンズの光学的な屈折を利用して、左目には左目画像、右目には右目画像が行くようにしています。

How_a_lenticular_lens_works.png
出典元:http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:How_a_lenticular_lens_works.png

特徴
・輝度は落ちない。広範囲の視点で3Dが可能
・2Dと3Dを切り替えることはできない。

前回紹介したインテグラル立体テレビは、レンチキュラー方式の仲間のようです。


②視差バリア方式
こちらも、画像自体は、左目用と右目用でそれぞれ短冊状に分割し、それを交互にディスプレイに配置します。
これを単純にバックライトで照らすだけだと、混ざった画像のままです。
そこで、バックライトと画像の間に、視差バリアというスリット付きの壁を置きます。
そのスリットを通った光だけが、画像を表示しますが、
左目に行く光は左目用の画像だけを通過し、右目に行く光は右目の画像だけを通過するようにスリットを配置することにより立体視が可能になる仕組みです。

LCD_schematic_(3D_view).png
著作者:Tosaka
出典元:http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:LCD_schematic_(3D_view).PNG

特徴
・視差バリアを電気的にON/OFF制御することにより3Dと2Dの切り替えが可能
・視差バリアにより、輝度が落ちる、視点が固定されるというデメリットあり

ちょっと前の製品例だと、Wooケータイ「H001」の3D表示に採用されている方式です。
また、2011年3月に発売予定のニンテンドー3DSに採用されると噂されているシャープの液晶ディスプレイもこの方式です。

↓えっ、こんなに飛び出すの!?

※これはジョーク動画ですよ

インテグラル立体テレビ

5/27~5/30で行われていた「NHK技研公開2010」に行ってきました。
東京の世田谷区にあるNHK放送技術研究所の2フロアでの展示会で、
スーパーハイビジョンやインテグラルテレビのデモも行っていました。
その中で気になった展示を紹介します。

インテグラル立体テレビ

(10_05_31) インテグラル立体テレビ

現在主流の3Dテレビは、アクティブシャッター方式の専用眼鏡をかける必要があります。
一方で、このインテグラル立体方式は、眼鏡不要で裸眼で3Dが見られるというものです。

仕組みは、レンズアレーと呼ばれる微小レンズ群を用いて、光学的に行っています。
被写体をレンズアレー越しに撮影すると、微小レンズの1つ1つに被写体が細かく映ります。
このとき、それぞれ細かく映っている被写体が角度によって微妙に異なっているのがポイント。
この映像をまたレンズアレーを通して表示すると、立体像ができます。

これにより、視点を上下や左右動かして見てみると、確かに真正面では隠れて見えない部分が
視点を動かすと見えるようになったりします。


昨年もインテグラル立体テレビを出展していたようですが、
昨年との違いは、途中に画像処理を入れている点で、画質が向上したようです。

(10_05_31) インテグラル立体テレビ2


実際にインテグラル立体テレビを見た感想ですが、まだまだ実用化には遠いなぁと感じました。
NHKとしても20年以内に実用化したいと考えているレベルの研究です。
05 | 2010/06 | 07
Su Mo Tu We Th Fr Sa
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 - - -
プロフィール

エレクトリックバカ

Author:エレクトリックバカ

ポケコンでプログラミングに目覚め、PICマイコンで電子工作に希望を抱き、来たるべきUGDの時代を夢見て眠る。
そんな うだつが上がらないサラリーメン。
先生、電子工作はおやつに入りますか?




Electric Baka

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。