残像効果を用いた三次元ディスプレイ
三鍋 香織

1

(指導教員：粕川 正充)

はじめに残像効果を利用した POV(Persistent Of Vision=残像, 日本ではバーサライタ) と呼ばれる技術がある. これは LED などの光源が目に残像を残す原理を利用して画像や映像を表示するものである. 例えば一本の誘導棒を左右に振ることによって文字を表示する反復式のものや (図 1), 扇風機の羽に LED を設置して回転させることによって画像を表示する回転式のものなどが実際に販売されている. この POV の利点としては, 実際に使用する LED の数よりも多いみせかけのドット数を表示することができる, つまり LED の数の節約になることがあげられる. 一方, 左右に振ったり回転させたりすることで増やすことができるのは二次元方向のドット数のみである. そこで奥行方向に予め LED の列を増やすことによって三次元ディスプレイとすることも可能ではないかと考え, 本研究では奥行を変えた数本の LED を同時に回転させることで三次元映像の表示を目指した (図 2).

3

ハードウェア

3.1

駆動部分

回転台にはレコード用ターンテーブル DENON DP3000 を用いた. 本来ターンテーブルは磁気信号を読み取ることで回転を制御しわざと 45 回転/分などの遅い回転を実現させているが, この信号を読み取る線を切ることによって制御を失わせ, 約 10 回転/秒=600 回転/分を実現した. このターンテーブルは AC100V の電源で動いており, この 100 Ｖが周波数つまり回転数に影響を与えるため,ACDC コンバータなどで変換することはできない.
ターンテーブルの上にはアルミメッシュ板を丸く切ったもの (直径 30cm), アルミパイプ (直径 4mm × 25cm)10本 (そのうち 6 本を LED の設置に使用) を用いて土台とした. 6 本のうち円の中心から見て対になる 2 本は中心からの距離を等しくし, 半径方向の奥行は 3 段階とした.

図 1: 誘導棒 (株式会社アイテックス)

図 3: 実際に作成したもの

3.2

アルミパイプ 1 本につき 8 ドットマイコン内蔵 LED
スティック× 4 個, つまり 32 ドットの LED を設置し,全体で 32 × 6=192 ドットの LED を用いた. LED の電源はテーブル内に設置したニッケル水素電池 3.6V× 3 個と, ターンテーブルの外部からとってきた 12Vの電源をスイッチング電源を介して５ V に変換して利用する. テーブル内の電池だけでも 30 分程度は駆動させることができるが, 長時間の安定した電力の供給のため, また外部電源 12V をニッケル水素電池に流し充電させるために外部からも電源をとっている. 外部から電源を供給するためには, ねじれることなく回転可能なケーブル Slip Ring with Flange (Adafruit 社)を用いた. LED の制御には Teensy3.1 というマイコンを利用し, この Teensy で LED を制御するためのアダプター OctoWS2811 adaptor を利用する. ここで, よく使われるマイコン Arduino でなく Teensy を用いた
理由としては, 三次元映像を表示する際に大量のメモ

図 2: 本体イメージ図

2

表示部分

関連研究

残像効果を利用した画像を自転車のタイヤに表示している [1] また, こちらでは三次元バーサライタの提案を, 円柱型ではなく, 円盤型に近い形で提案している[2] 本研究ではこれらの例を踏まえて, 三次元ディスプレイとするときにより見やすく分かりやすい形である円柱型を採用した.

35

リを必要とするためである. SRAM の大きさで比較すると,Arduino UNO が 2kB,Arduino MEGA 2580 が8kB であるのに対して,Teensy3.1 は 64kB であるため十分に三次元映像を表示することができる.
また, 正確な一周あたりの回転秒数を測定するために,ターンテーブルの土台に赤外線 LED を, テーブルの上に赤外光を検知できるフォトトランジスタを設置した. テーブルが一回転してフォトトランジスタが赤外
線 LED の部分を通過するたびにそれを検知し, 一周あたりの時間を導き出す (図 4).

概算すると 100(ms) / 30(x 軸方向) = 3.33…(ms) よって, 処理速度が表示速度を上回っているため表示することができる.

5.2

メモリ

各 LED を光らせるのに必要なメモリ数は 3 4 バイトである. これを踏まえたときに現在のプログラムで必要なメモリ数は 4(バイト) × 30(x 軸方向) × 32(y 軸方向) × 6(列)/1024=22.5(kB) となるため,Teensy3.1の SRAM64kB で十分に足りる.

6

結果

縦の線に若干のブレが見られるものの, 数字が読み取れるまでにはなった. しかし, 同じ場所に常に表示することができないためまだ表示時間の調整がまだうまくいっていないものと思われる.

図 4: フォトトランジスタ (上) と赤外線 LED(下)4ソフトウェアプログラミングには ArduinoIDE1.0.6 を用い, 秒数をカウントして, 三段階の奥行に一, 十, 百の位をそれぞれ表示するプログラムを考えた (図 5). 表示したい画像を 30(x 軸) × 32(y 軸) で用意し (図 6),LED 一列あたりの表示時間 time (ms) は, 一周あたりの秒数 / x
軸方向のドット数 30 / LED の列 6 で求めることができるので, その時間だけプログラムを停止させる関数
delay(time) を挟むことによって調整する. プログラム
開始からの時間 s 秒を 10 で割った余りを一の位,100 で割った余りを十の位,1000 で割った余りを百の位とする. この操作と並行して, 一周してフォトトランジスタが値を検知するたびに割り込みをさせ, 一周あたりの正確な秒数を常に計測する.

図 5: 完成イメージ図

5

処理

5.1

速度

図 7: プログラムの出力7

今後の課題

二次元的な映像でなく奥行があることは認識できる
ものの, 現在奥行が三段階しかないため三次元映像を十分に表現できないのでさらに奥行を増やしていきたい.
三次元映像を表示できるようにした後には, 実際に使われている三次元映像のファイル形式を変換して表示できるようなシステムの開発, また, 現在外部からの電源をとるために使っている回転ケーブルを USB 接続に利用し, 最終的には PC 側からプログラムを書き換えるとすぐに反映できるようなディスプレイにしていきたい.

図 6: 表示したい画像

参考文献[1] AwareCycle:自転車装着型残像ディスプレイのス
ポーツビジュアライゼーションへの応用・市岡陽
子 (お茶の水女子大学) 電子情報通信学会 信学技法
MoNA2013-83(2014-3)

OctoWS2811 Library を用いて各 LED の色の設定に 30 μ s,LED を書き換えるのに 50 μ s の時間を要するので,LED 一列あたりを書き換えるのに必要な秒数は 30(μ s) × 32(y 軸方向)+50(μ s)=1010(μs)=1.01(ms) である.
一方, 現在ターンテーブルは約 10 回転/秒つまり 100msで一回転しているため,LED 一列あたりの表示時間を[2] 3D 提示装置としての 3D バーサライタの提案・木崎聡志, 土井滋貴 (奈良工業高等専門学校) 第 19 回
電子情報通信学会 関西支部 学生会 学生会研究発
表講演論文集，D5-1(2014-2-28)

36