google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

虫メガネの倍率と焦点距離の関係

 簡単なLEDアレイプロジェクタを作ったのですが、口径の大きなレンズに変えれば投影画像がもっと明るくなるはずです。ということで、ダイソーで大きなサイズの虫メガネを買ってきました。

 倍率は同じ2倍なので、光学位置はほとんどそのままで使えるはず、と思ってやってみたら、全然ダメでした。どうも焦点距離が大きく違っているようです。

 どうしてそんなことが起きたのか、調べてみたのでその結果を整理しておきます。

▼3種類の虫メガネ
3種類の虫めがね
 左が前の記事でLEDプロジェクターを作るのに使った物でこれをAと呼ぶことにします。中央と右の二つが今回買ってきたもので、それぞれB、Cと呼ぶことにします。どれも倍率は2倍と表示されています。

▼Aの虫メガネ
φ65mm
 いつどこで買ったのか記憶がありません。パッケージは捨ててしまいましたが、現物の表示は口径63mmで倍率は2倍と4倍となっています。なお、メインのレンズは2倍で、4倍は小さな副レンズなので今回の記事には関係ありません。

 実測してみると、口径(D)は63mmと現品の表示通りで、焦点距離(f)は125mmでした。これ、レンズの倍率を求める公式の、倍率(X)=250/f の通りになっています。(250/125 = 2倍)

▼Bの虫メガネ
大型
 今回買ってきたけど使えなかったものです。実測すると口径は96mmで、焦点距離は290mmでした。Aと比べて焦点距離が倍近く長いので、差し替えて使えないのは当たり前でした。

 Aと同じ式で計算すると、倍率は 250/290 = 0.86倍 になるはずですが、パッケージの表示は約2倍となっています。誇大表示にも程があるだろうと思ったら、そうではありませんでした。

 虫メガネの倍率計算方法にはもう一つあって、倍率(X)=(250/f) + 1 で計算する式があるそうです。こっちの式で計算すると、倍率は1.86倍となって、表示とほぼ合っています。この虫メガネの倍率は、こちらの式で計算されているようです。

▼Cの虫メガネ
中型
 レンズの口径はBより小さいものの、倍率が約2.5倍と少しだけ高いので、プロジェクターを小型化出来るのではないか、と思って買ってみました。

 測定してみると、口径は72mmありますが、焦点距離はBと同じで290mm、つまり倍率は1.86倍しかありません。これでは全然ダメです。

◆虫メガネの倍率計算方法
 虫メガネの倍率は、明視の距離である250mmを焦点距離(f)で割った値だと思っていたのですが、別の定義もあるようでこれが今回の間違いの原因でした。
 a) 倍率(X)= 250/f
 b) 倍率(X)=(250/f)+1
 上の a) が私が思っていた倍率の計算式なのですが、b)の式で計算することもあるようです。というか、倍率が低い虫メガネでは、b) の式で計算することの方が多いようです。

 ともかく、Aの虫メガネの倍率はa)の式で計算され、B,Cの虫メガネの倍率はb)の式で計算されていたようです。どちらも表示されている倍率は2倍なのですが、使われているレンズの焦点距離は倍以上違っていました。

◆まとめ
 倍率表示の値が同じ虫メガネでも、焦点距離が大きく違うことがあるので、注意が必要のようです。まあ注意しろと言われても、レンズの焦点距離まで表示されていない場合が多そうなので、どうしようも無いのかも知れません。

 レンズを通して向こう側が見えれば、見た感じで判断する。あるいは指で触った感触でレンズのカーブを推定するという職人技でやるしか無いのでしょうか。まあ、最初から焦点距離の判っているレンズを買えば良い話ではあります。

 あと、いろいろ調べてみると、虫メガネやルーペでは b) の式で求めた倍率を表示することが多いようです。なお、顕微鏡の接眼レンズの倍率はa)の式で求めているのでご安心下さい。

 一番大事な話が最後になってしまいました。100円ショップの虫メガネで、焦点距離が判っている物を買うことは難しそうなので、LEDプロジェクターをもっと明るくすることは、とりあえず諦めることにします。頭の中で考えているだけでは無く、実際にやってみることが大切、ということを再認識させられた結果になりました。
 ちなみに、フレネルレンズは面白そうなのでちょっと試してみたい気は残ってます。

LOLシールドを使った LEDアレイプロジェクターの製作

 なんだか大げさなタイトルですが、実は大したことやってません。

 以前Arduino の LOLシールドを作ったのですが、高輝度のLEDを使ったので直視できないほどの光量があります。この光をレンズで投影すれば、プロジェクターが作れそうだなーと思っていたので、やってみました。

 先に完成品の写真です。

▼LEDアレイプロジェクタ
自作のLEDプロジェクタ
 名前は立派なのに貧乏臭い外観ですみません。手っ取り早く段ボール箱で作りました。大きなレンズから緑の光が出ているのが謎めいていて、かっこいいです。

▼内部
LEDプロジェクタ内部
 ArduinoとLOLシールドが入っています。パーツの固定には緑の養生テープを使っています。

LEDプロジェクタ内部、レンズは虫メガネ
 レンズは虫メガネで、このレンズは口径62mm、倍率2倍の物。焦点距離を測ってみると約125mmでした。プロジェクターと言うからには、フォーカシング機構を付けたいところですが、面倒なので約2m先にピントが合う位置で固定しています。

▼投影している様子
投影している様子
 これは投影距離が約 80cmの状態で、投影サイズは40cm×21cmになりました。単色光なので一枚レンズでも比較的シャープに結像しています。

 距離を増やせば投影サイズはもっと大きくなりますが、その分暗くなります。投影距離によりますが、昼間の部屋の明るさだと苦しくて、少し暗くする必要があります。

◆動画  (?rel=0)

 マトリックスが 9x14 と粗いので表現力はイマイチですが、動画が表示出来るので面白いです。イベントなどで使うと目立つと思います。それに何しろ安く作れます。

 ここまでの工作は小学生の夏休みの工作レベルですが、実はプログラムにちょっと手を入れています。

▼文字の反転
 LOLライブラリを使って表示させているのですが、そのままでは裏文字になってしまいます。ということで、何らかの方法で表示をひっくり返さないといけません。やり方はいろいろありそうですが、判り易い方法ということで、ライブラリのcherliplexing.cpp の下記の部分を修正しました。

const LEDPosition PROGMEM ledMap[126] = {
/*
// Normal (for direct LED view)
L(13, 5), L(13, 6), L(13, 7), L(13, 8), L(13, 9), L(13,10), L(13,11), L(13,12), L(13, 4), L( 4,13), L(13, 3), L( 3,13), L(13, 2), L( 2,13),
L(12, 5), L(12, 6), L(12, 7), L(12, 8), L(12, 9), L(12,10), L(12,11), L(12,13), L(12, 4), L( 4,12), L(12, 3), L( 3,12), L(12, 2), L( 2,12),
L(11, 5), L(11, 6), L(11, 7), L(11, 8), L(11, 9), L(11,10), L(11,12), L(11,13), L(11, 4), L( 4,11), L(11, 3), L( 3,11), L(11, 2), L( 2,11),
L(10, 5), L(10, 6), L(10, 7), L(10, 8), L(10, 9), L(10,11), L(10,12), L(10,13), L(10, 4), L( 4,10), L(10, 3), L( 3,10), L(10, 2), L( 2,10),
L( 9, 5), L( 9, 6), L( 9, 7), L( 9, 8), L( 9,10), L( 9,11), L( 9,12), L( 9,13), L( 9, 4), L( 4, 9), L( 9, 3), L( 3, 9), L( 9, 2), L( 2, 9),
L( 8, 5), L( 8, 6), L( 8, 7), L( 8, 9), L( 8,10), L( 8,11), L( 8,12), L( 8,13), L( 8, 4), L( 4, 8), L( 8, 3), L( 3, 8), L( 8, 2), L( 2, 8),
L( 7, 5), L( 7, 6), L( 7, 8), L( 7, 9), L( 7,10), L( 7,11), L( 7,12), L( 7,13), L( 7, 4), L( 4, 7), L( 7, 3), L( 3, 7), L( 7, 2), L( 2, 7),
L( 6, 5), L( 6, 7), L( 6, 8), L( 6, 9), L( 6,10), L( 6,11), L( 6,12), L( 6,13), L( 6, 4), L( 4, 6), L( 6, 3), L( 3, 6), L( 6, 2), L( 2, 6),
L( 5, 6), L( 5, 7), L( 5, 8), L( 5, 9), L( 5,10), L( 5,11), L( 5,12), L( 5,13), L( 5, 4), L( 4, 5), L( 5, 3), L( 3, 5), L( 5, 2), L( 2, 5),
*/
// Swap UP Down (for Lenz projection)
L( 5, 6), L( 5, 7), L( 5, 8), L( 5, 9), L( 5,10), L( 5,11), L( 5,12), L( 5,13), L( 5, 4), L( 4, 5), L( 5, 3), L( 3, 5), L( 5, 2), L( 2, 5),
L( 6, 5), L( 6, 7), L( 6, 8), L( 6, 9), L( 6,10), L( 6,11), L( 6,12), L( 6,13), L( 6, 4), L( 4, 6), L( 6, 3), L( 3, 6), L( 6, 2), L( 2, 6),
L( 7, 5), L( 7, 6), L( 7, 8), L( 7, 9), L( 7,10), L( 7,11), L( 7,12), L( 7,13), L( 7, 4), L( 4, 7), L( 7, 3), L( 3, 7), L( 7, 2), L( 2, 7),
L( 8, 5), L( 8, 6), L( 8, 7), L( 8, 9), L( 8,10), L( 8,11), L( 8,12), L( 8,13), L( 8, 4), L( 4, 8), L( 8, 3), L( 3, 8), L( 8, 2), L( 2, 8),
L( 9, 5), L( 9, 6), L( 9, 7), L( 9, 8), L( 9,10), L( 9,11), L( 9,12), L( 9,13), L( 9, 4), L( 4, 9), L( 9, 3), L( 3, 9), L( 9, 2), L( 2, 9),
L(10, 5), L(10, 6), L(10, 7), L(10, 8), L(10, 9), L(10,11), L(10,12), L(10,13), L(10, 4), L( 4,10), L(10, 3), L( 3,10), L(10, 2), L( 2,10),
L(11, 5), L(11, 6), L(11, 7), L(11, 8), L(11, 9), L(11,10), L(11,12), L(11,13), L(11, 4), L( 4,11), L(11, 3), L( 3,11), L(11, 2), L( 2,11),
L(12, 5), L(12, 6), L(12, 7), L(12, 8), L(12, 9), L(12,10), L(12,11), L(12,13), L(12, 4), L( 4,12), L(12, 3), L( 3,12), L(12, 2), L( 2,12),
L(13, 5), L(13, 6), L(13, 7), L(13, 8), L(13, 9), L(13,10), L(13,11), L(13,12), L(13, 4), L( 4,13), L(13, 3), L( 3,13), L(13, 2), L( 2,13),

/*
// Rotate 180 degree
L( 2, 5), L( 5, 2), L( 3, 5), L( 5, 3), L( 4, 5), L( 5, 4), L( 5,13), L( 5,12), L( 5,11), L( 5,10), L( 5, 9), L( 5, 8), L( 5, 7), L( 5, 6),
L( 2, 6), L( 6, 2), L( 3, 6), L( 6, 3), L( 4, 6), L( 6, 4), L( 6,13), L( 6,12), L( 6,11), L( 6,10), L( 6, 9), L( 6, 8), L( 6, 7), L( 6, 5),
L( 2, 7), L( 7, 2), L( 3, 7), L( 7, 3), L( 4, 7), L( 7, 4), L( 7,13), L( 7,12), L( 7,11), L( 7,10), L( 7, 9), L( 7, 8), L( 7, 6), L( 7, 5),
L( 2, 8), L( 8, 2), L( 3, 8), L( 8, 3), L( 4, 8), L( 8, 4), L( 8,13), L( 8,12), L( 8,11), L( 8,10), L( 8, 9), L( 8, 7), L( 8, 6), L( 8, 5),
L( 2, 9), L( 9, 2), L( 3, 9), L( 9, 3), L( 4, 9), L( 9, 4), L( 9,13), L( 9,12), L( 9,11), L( 9,10), L( 9, 8), L( 9, 7), L( 9, 6), L( 9, 5),
L( 2,10), L(10, 2), L( 3,10), L(10, 3), L( 4,10), L(10, 4), L(10,13), L(10,12), L(10,11), L(10, 9), L(10, 8), L(10, 7), L(10, 6), L(10, 5),
L( 2,11), L(11, 2), L( 3,11), L(11, 3), L( 4,11), L(11, 4), L(11,13), L(11,12), L(11,10), L(11, 9), L(11, 8), L(11, 7), L(11, 6), L(11, 5),
L( 2,12), L(12, 2), L( 3,12), L(12, 3), L( 4,12), L(12, 4), L(12,13), L(12,11), L(12,10), L(12, 9), L(12, 8), L(12, 7), L(12, 6), L(12, 5),
L( 2,13), L(13, 2), L( 3,13), L(13, 3), L( 4,13), L(13, 4), L(13,12), L(13,11), L(13,10), L(13, 9), L(13, 8), L(13, 7), L(13, 6), L(13, 5),
*/
};

 このテーブルでLEDの1番から126番までのLEDが、ピンマトリックスのどの位置に接続されているかが定義されています。つまり、この定義を変えれば裏文字に変更することが出来ます。

 Normal (for direct LED view) がオリジナルの状態で、Swap UP Down (for Lenz projection) がプロジェクターで使う場合(この記事の状態)、Rotate 180 degree は点対称の状態で、何かの時に使えるかも知れません。簡単に元に戻せるように、使わない定義は消さずにコメントアウトした状態で残しています。

▼ピンとLEDの関係
LOLシールドのLEDアサイン表
 LOLシールドのIOピンとLEDの接続については先人の方が書かれた記事が大変参考になります。ikkeiさんの記事にある回路図が判り易いのですが、私なりに作ってみたのが上の表です。なお、表の中の数字がLED番号を表します。

 12ピンの総当たりは12x11=132の組み合わせがあり、そこにLOLシールドの14x9=126個のLEDを置くわけですが、その対応関係は上の表のようになっています。黄色で塗った部分は素直な直交配置になっており、その外側の水色の部分では、対称な位置を番号が行ったり来たりするようにアサインされています。表の右下の空白は使われていない部分です。

◆まとめ
 手で持てるサイズの小さな箱から光が出て、文字や図形が次々と表示されるのは凄く不思議な感じがします。これ、5Vで0.12Aくらいしか電流を消費しないので、USBモバイルバッテリーで長時間動かすことが出来るはずです。

 LOLのライブラリには、この記事の動画に出て来たもの以外に、テトリスやピンポンゲームなどいろいろなものがあるので、試してみると面白いと思います。

 レンズのサイズが小さいので、現状ではLEDから出た光の一部しか使えていません。もっと口径の大きなレンズを使えば投影する画像を明るく出来るはずなので、適当なレンズを探してみたいと思います。
カレンダー
11 | 2018/12 | 01
- - - - - - 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 31 - - - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード