春の花の光るメッセージボード(古民家ギャラリー ツキザワの家 2023 4/29〜5/5)

古民家ギャラリー ツキザワの家は、西和賀町にある藁葺き屋根の旧家の古民家を改修した展示施設です。奥羽自然観察会を主宰しているカタクリの会の瀬川 強さんが運営していて、瀬川強さんの写真作品と、水彩画家 川崎茂花さんの西和賀の山野草を描いた襖絵が常設展示されています。今回は「春の花」の企画展(2023 4/29〜5/5)に参加させていただくことになりました。

「光るメッセージボード」はガラス用マーカーペンで透明なアクリル板にメッセージを書くと下から照らしているLED光源でメッセージが浮き出て見えるものです。光がアクリルの内部から外(空気)に出ようとするとき、臨界角42.2°以下では100%反射(全反射)して外に出られなくなります。マーカーのインクが表面にあると、全反射せずに光が外に出てくることができます。これがメッセージが光る理由です。

マーカーのインク以外でも、アクリルの表面に傷などがあると凹凸で散乱して光が外に出てきます。凹凸の密度が高いほど光が出てきて、凹凸のないところからは光は出てきません。レーザー加工機でアクリルの表面を加工すると、写真の濃淡に対応するように光らせることができます。

原理は単純ですが、写真の濃淡に応じて凹凸をつけるのは少し工夫が必要です。
(1)  [写真素材は白黒] カラー写真で素敵に見えても白黒にすると何が写っているかわからなくなることがあります。白と黒のメリハリのある写真が良いでしょう。
(2)  [網点] 印刷物の写真のように200線ぐらいの網点を使います。無料で使える画像処理ソフトGIMPでは、フィルターメニュー > 変形 > Newsprint… で網点にすることができます。
(3)  [トーン] レーザー加工機で網点加工すると、飛びやすく潰れやすい性質があります。飛びやすいというのは、小さな点はアクリルが溶けないのである程度大きな点になるまで加工が始まりません。潰れやすいというのは、逆に周りが加工されている中に加工しなくても良い点があっても一緒に解けてしまいまって、余分に加工されてしまいます。
(4)  [網点の凹凸] 網点は白から徐々に点が大きくなって、50%を超えると黒の中の白点が小さくなっていきます。単純に言えば0%から50%までは凹凸が増えていきますが、50%を超えると凹凸は減っていきます。
(5)  [白黒反転] レーザー加工では黒い部分が加工されて凹凸になり、凹凸が光を散乱させて白く光ります。つまり、黒と白が反転するので、あらかじめ白黒写真の白黒を反転させます。
(6)  [左右反転] アクリルの裏面にレーザー加工をした方が反射光量が得られるので、画像は左右反転して正面から見たときに正しい像になるようにします。

この中で(3)と(4)はトーンカーブで調整します。

原画の0(黒)-255(白)を143(黒)-230(白)に変換しています。黒付近と白付近で傾きを変えているのは”飛びやすくて潰れやすい”性質を補正するためです。(実際の作業では白黒反転した後で、トーンカーブを適用しています。)このトーンカーブを調整すればもっときれいになるのではないかと思います。

 

LEDユニットは3Dプリンターで作りました。

 

Fusion360のスクリーンショットはユニット下面を見た図になります。LED基板とUSBコネクタ(USB Type-Cコネクタ 電源供給用)と配線が収まります。

照明用LEDは秋月電子通商の太陽光LEDモジュール(白色LED)5Vを使っています。目に優しい自然光に近い光というのが特徴です。75mm角用はLEDモジュールを1個、150mm角用は2個連結して使います。

https://akizukidenshi.com/catalog/g/gM-15933/

2023.04.02

色相環で表示するテーブルランプ時計(ESP32+NeoPixelRing)

木工品の中に入れて光らせるテーブルランプを作ります。

OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA

Wi-Fi経由でNTPサーバーから時刻を取得して、24時間でランプの色を色相環を一周させます。
8時:赤(あか)
10時:橙(だいだい)
12時:黄橙(きだいだい)
14時:黄(き)
16時:黄緑(きみどり)
18時:緑(みどり)
20時:青緑(あおみどり)
22時:緑青(みどりあお)
0時:青(あお)
2時:青紫(あおむらさき)
4時:紫(むらさき)
6時:赤紫(あかむらさき)
毎時3分間と1分ごとの10秒間は少し光り方を変化させることにしました。また、日中は明るく、夜間は暗く光るようにしています。

ESP32(MH-ET LIVE  ESP32 MiniKit)でシリアルフルカラーLEDを制御するのですが、暑い夏にハンダ付けをするのが面倒になったので、NeoPixelRing(12個)を使いました。VCC、GND、IO16だけ使います。コンパクトにするためにヘッダーピンは使わずに直接ハンダ付けをします。ケースは適当に3Dプリンターで出力しました。

OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA
OLYMPUS DIGITAL CAMERA

Arduinoプログラムは以下のものを使いました。WiFiのSSIDとパスワードが必要です。

 

 

 

ESP32と8x32LEDモジュールでNTP時計を作る(その2)

2019年8月に「ESP32と32×8フルカラーLEDでデジタル壁時計をつくる」という記事を書きましたが、そのデジタル壁時計は壊れずにいまも使い続けています。この時に使ったLEDモジュールは「Quimat Arduino用RGB LED パネル 5050 SMD WS2812B」というものでしたが、同じものは入手できなくなったようです。このパネルのLEDの配線は左右方向にジグザグでした。

新たに購入したパネルは「BTF-LIGHTING WS2812B ECO RGB合金ワイヤー 8X32cm 265ピクセル LEDマトリックスパネル 5050SMD」で価格は2799円と安くなっています。問題はLEDの配線が上下方向にジグザグなことです。これはプログラムを少し変更するだけで対応できます。前回の数字フォントは輝度を0から100の間で変化させて斜体を表現しましたが、今回はシンプルに0か100のON-OFFで作りました。

配線は前回と同様にVDD(5V)、GND、IO16を使いました。

筐体はLEDマトリクスを購入したときに付いてきた白い発泡ウレタンを使いました。ESP32用のケースは即席で3Dプリンターで作成しました。

 

変更したのはsetPosArray()とColonFont[FontHeight][ColWidth]とNumFont[10][FontHeight][FontWidth]、および、NTPへのアクセス間隔を1200秒ごとにしました。

 

 

 

 

いわてメイカー展@11/28に出展します

今年もいわてメイカー展@11/28に出展します。

https://fabterrace.site/makerfesiwate/

山の地形の3Dプリントを紹介します。岩手山、鳥海山、秋田駒ヶ岳などの3Dプリントを手にとって登山路などを辿ると思い出が蘇ることでしょう。

趣味なら無料で使えるLabVIEW Communityもデモします。

 

好きな山域を3Dプリントしよう

山の立体ディスプレイ
遠くから眺めてよし、頂を目指すもよし。頂から遠くの山を眺めるもよし。
思い出の山、これから登る山を3Dプリントしてみましょう。地理院地図の3Dツールを使って好きな山域のSTLファイルを作成します。STLファイルは小さな3角形のメッシュで3次元形状を表現するファイル形式で、多くのアプリケーションで共通に使われています。地理院地図の3Dツールは緯度、経度に沿った長方形の範囲の標高データをSTLファイルで出力します。そのまま3Dプリントしても良いのですが、手に持って色々な方向から山域を眺めるには外形が円形の方が便利ですから、ここでは外径115mmのディスク状にする方法を説明します。
黒部渓谷・立山・剱岳を含む山域の3Dプリントの例です。PLAクリアフィラメントでプリントしてフルカラーLEDで下から照らすと立体感が増します。

OLYMPUS DIGITAL CAMERA

大まかな作成手順
(1) 地理院地図の3Dツールを使って立体ディスプレイを作る山域(正方形)のSTLファイルを作成します。
(2)Fusion360を使って直径115mmの円筒状にくり抜くツールとなるSTLファイルを作成します。
(3) Fusion360に山域のSTLファイルを読み込んで縮尺を調整します。
(4)くり抜きツールのSTLファイルも読み込んで、山域メッシュとツールメッシュの両方に含まれる部分を結合ツール(交差)で取り出してSTL形式で保存します。
(5) 3Dプリンターでプリントします。

 

(1) 地理院地図の3Dツールで山域のSTLファイルを作成
まず地理院地図で作成する山域を表示します。ここでは富士山で説明します。
「作図・ファイル」ツールでプリントしたい範囲に円を描きましょう。
3Dツールでは3D化する範囲の指定方法として「大(縦横2048px)」「小(縦横1024px)」「カスタム」がありますので、「カスタム」を選び、四隅の選択点をドラッグして先ほど描いた円に外接する正方形を指定して「OK」ボタンを押します。
ブラウザに新しいタブが作られて指定した範囲の3次元の地図が表示されます。
画面の右下端に3種類のファイルのダウンロードボタンが表示されますので、STLファイルをダウンロードします。画面の立体表示には等高線などが描かれていますが、STLファイルには描かれません。dem.stlという名前になっていますので、MtFuji.stlなど分かりやすい名前に変更すると良いでしょう。このSTLデータは一辺(長方形の場合は長辺)が150mmのデータになっています。

(2) 円筒形状のツールSTLファイルの作成(2回目以降は不要)
Fusion360のソリッドモードで、左上のブラウザの原点タブにあるXY面を右クリックしてスケッチを作成します。原点を中心として直径115mmの円を描いてスケッチを終了します。スケッチで描いた円をクリックして押し出しツールで115mmの長さの円筒を作成します。ブラウザのボディタブで円筒のボディを右クリックして「メッシュとして保存」を選択します。Cylinder.stlとして保存し、このデザインを閉じます。

(3) 山域STLファイルの読み込みと縮尺変更
新規デザインで新しいページを開きます。「挿入」メニューの「メッシュを挿入」を選択し、MtFuji.stlを開きます。この時、「上方向を反転」ボタンを押して、Y軸とZ軸の方向を反転します。「中心」ボタンを押して、メッシュデータの中心を原点に移動し、「地面に移動」ボタンを押してデータの底面がXY面と一致させます。
メッシュモードを選択し、「修正→メッシュを尺度指定」を使って一辺150mmの正方形の範囲のデータを一辺115mmに縮小します。縮小してもデータの底面がXY面になるように、「点」(縮小拡大の基準点)に底面の中心を指定します。視点を「下」にすれば選択しやすくなります。「エンティティ」は縮小拡大するメッシュを指定します。150mmを115mmに縮小したいので縮小倍率は0.77(≒115/150)と入力して「OK」ボタンを押します。データの底面がXY面にあることを確認してください。
(4) ツールSTLファイルの読み込みと結合ツール(交差)
Cylinder.stlを読み込みます。メッシュモードの結合ツール(交差)を選択し、「ターゲットボディ」にMtFujiメッシュボディ、「ツールボディ」にCylinderメッシュボディを指定します。もしも厚みが大きくてプリント時間が余分にかかりそうな場合は、結合ツールを実行する前にMtFujiメッシュボディをZ軸のマイナス側に移動します。下げすぎて底に穴を開けないように注意します。
作成したメッシュボディを右クリックし、「メッシュとして保存」を選んで、例えばMtFujiDisk.stlのようにファイル名をつけて保存します。

(5) 3Dプリンターでプリント
作成したSTLファイル(たとえば、MtFujiDisk.stl)を3Dプリンターでプリントします。

OLYMPUS DIGITAL CAMERA