2017-09-06 13:45 | カテゴリ:1/32モデル
今度はメイン基板の電飾の製作です。

(FS1401)
FS1401.jpg

ここはいわゆる「原子炉」を模した電飾となります。
丸窓が多数開いた壁面で、窓を通して「原子炉の燃え方」(?)が見える想定です。(笑)


続きは、、、


ここの電飾をどの様に実現するかを検討しました。
多数の窓にひとつづつLEDをアサインするのもちょっと面倒です。
裏側に厚手のアクリル板をあてて、全体を数個のLEDでぼやっと照明させることにします。
厚手のアクリル板の手持ちがなかったので、5mm角のアクリル棒材を寄せ集めて、板状にして導光材とします。

(FS1402)
FS1402.jpg

壁側にもアルミテープを貼って反射効率を上げます。
裏面の導光部は、ボール紙でカバーを製作して、先ほどのアクリル材を保持させて、下部にCPU付フルカラーLEDを4個仕込みました。

(FS1403)
FS1403.jpg

これを原子炉部分の裏側に貼り付けました。

(FS1404)
FS1404.jpg

そして、main基板をその上に取り付けました。

(FS1405)
FS1405.jpg

あとは、これまでの様にアルミパイプでまとめたファイバーをLEDに差し込んでいきます。

さて、この原子炉風ギミック(?)の電飾なんですが、WEBで色々調べるとみなさん方はカラーLEDをうまく使われて、赤い色や黄色などがチラチラまたたく良い感じで表現されていました。
こちらも負けてはいられません。
CPU付のLEDの特徴は、コマンドで色調を自由に変化させられると言う事にあります。そこで、それを活かして、原子炉の「休止状態」(制御棒が挿入されていて核反応が抑えられている状態)から、始動して、運転状態に持っていく様子を表現したいと思います。
そのために、

「休止状態」=LEDは消灯
「始動開始」=LEDは暗い青色
「運転状態」=LEDは明るい赤

を意識して、徐々に色と明るさを数秒間かけて変化させるようにプログラムを工夫してみました。
まずはちょっとしたデモ動画をご覧ください。

(FS1406)



暗い青色から始まって、紫色を経て赤色に徐々に変化していきます。
また、全体的に発光がまたたいている感じが出せていると思います。

プログラムをちょっとご紹介します。
例えば、LEDのRGBの各数値を格納する配列を定義します。
このRGBのセットを10-20個定義しておきます。



//------- 原子炉色調 始動時-------------------------

LED_Color[0][0] = 0; // Red
LED_Color[0][1] = 0; // Green
LED_Color[0][2] = 2; // Blue

LED_Color[1][0] = 0;
LED_Color[1][1] = 0;
LED_Color[1][2] = 2;

LED_Color[2][0] = 0;
LED_Color[2][1] = 0;
LED_Color[2][2] = 3;
.
.
.
LED_Color[20][0] = 1;
LED_Color[20][1] = 0;
LED_Color[20][2] = 4;



そのうえで、これらの配列の各色のどこの設定を取り出して表示するかを決めます。
原子炉の場合は4個のLEDを使用していますので、上記の配列のある点から連続して4個の色の組み合わせを選択します。
そのうえで、その4個の組み合わせを毎回、ひとつづつずらせてLEDに表示させます。


//========= 原子炉 ==========================
ApG = SpG;
for (i = 0; i <= 3; i++) {
LED_Gen[i][0] = LED_Color[GenP + ApG][0];
LED_Gen[i][1] = LED_Color[GenP + ApG][1];
LED_Gen[i][2] = LED_Color[GenP + ApG][2];
ApG = ApG + 1;
if (ApG >= 4) ApG = 0;
}

SpG = SpG + 1;
if (SpG >= 4) SpG = 0;

GenPは、色の配列の表示させるポイントの先頭値。
ApGは、表示させる色を変えるためのポインター。
SpGは、何番目の色から表示を始めるかのポインターです。

これで、

1,2,3,4
2,3,4,1
3,4,1,2
4,1、2、3
1,2,3,4

の色の順番で繰り返し表示されます。

あとは、数秒ごとにGenPのポインターを+1していけば、表示する色が少しづつズレていきます。


年のせいで、この仕組みを考えるのに結構てこずりました。(笑)


管理者のみに表示する