Arduino制御の人工キャンドルライト
コンポーネントと消耗品
| × | 44 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 7 | ||||
| × | 25 | ||||
| × | 1 |
必要なツールとマシン
> |
|
このプロジェクトについて
少し前に、秋から冬にかけて少し暗くなりすぎるアトリウムの部屋を微妙に照らすプロジェクトに取り組み始めました。ハードLEDライトよりも自然に見えるもの、できれば明滅するキャンドルのライブルックが欲しかったのです。
せっかちな人(動画を見つけるために一番下までスクロールしたくない人)にとって、これは結果です:
...そしてクリスマスバージョン:
さて、話に戻りましょう:
しかし、現実的な人工的な炎を作成する 簡単な作業ではないので、私の考えは、「炎」が直接見えないようにライトを配置することでしたが、それが生成するライトだけが壁に踊ります。
部屋はほとんどガラスの壁でできているので、当然の選択は、窓を保持している白い梁に光を投影させることでした。水平ビームの下部にライトを配置し、垂直ビームに光を下向きに投影することにしました。
<図>
準備と計画
それぞれの「キャンドル」を個別に制御できるようにしたかったので、LEDライトの選択は簡単でした。明らかにWS2812ベースのLEDモジュールのセットであるはずなので、100個の個別のLEDを注文しました。
<図>上の写真でわかるように、各LEDには6つの接続があり、方向 裏側に矢印が付いています。
2つの接続には 5V のマークが付いています 、2つは GND そして、ディンがあります (データ入力)と Dout (データ出力)。 2つの 5V 接続されているので、2つの GND s。したがって、実際には 4つあります 接続; 5V 、 GND 、ディン および Dout 。
「キャンドル」ごとに異なる数のLEDを試した後、 4つの数を思いつきました。 。この数により、各ビームで十分に興味深い光の操作を行うことができ、あまり多くのLEDを必要とせずにリアルなキャンドルの外観を作ることができました。
ただし、もう一度やり直す必要がある場合は、組み立てを簡単にするために、2行2列のLEDモジュールのセットを注文しました。
<図>コントローラはそれほど高度である必要はありませんでした、そして私の仮定は Arduino Nano 十分でしょう。
Arduinoの配置は明らかではありませんでした。結局、上の最初の写真(左端)に見える太い柱の後ろにある水平の梁自体にそれを置くことにしました。柱は、2つのガラスの壁が出会う部屋の隅に配置されています(写真では「右」の壁が示されています)。このようにして、2つの平行なストリング(壁ごとに1つ)にLEDを配置して、各ストリングの物理的な長さを最小限に抑えることができます。これで、各弦の全長は2倍になるのではなく、約4メートル(13フィート)になります。
<図>AdafruitNeoPixelÜberguideはここで本当によく読んでいました。 WS2812 LEDモジュールで遊ぶことを計画しているなら、あなたは間違いなくそれを読むべきです!たとえば、ワイヤーの物理的な長さを制限するのが良い理由を教えてくれました。
ケーブルを隠す...
...私の場合、LEDは水平ビームの下側に配置されるため、それほど難しくはありませんでした。私は安いケーブルチャンネルを探して、IKEAで見つけました(それが皮肉なのか明白なのか、スウェーデンからのものかどうかはわかりません)。
LEDモジュール自体は、強力な両面粘着テープで簡単に配置できました。
LEDモジュールの作成
全体を1本のフルレングスのストリングにはんだ付けしたくなかったので(ビームの下側に物を取り付けようとするとケーブルジャムが発生することを想像しました)、LEDモジュールを<で構築することにしました。強力な>コネクタ ケーブル用。
LEDモジュールは、できるだけ多くの光を反射させるために、垂直ビームのすぐ隣に配置する必要がありました。また、ケーブルをビームに近づけたいと思っていました。そして、LEDの方向を尊重する必要がありました。これにより、(しゃれは意図されていませんでしたが) 2つのバージョンができました。 モジュールの; 右に向かう文字列に配置された1つのセットアップ Arduinoから1つ左 。
<図><図>
2つのモジュールバージョンには、2つの独自のはんだ付けレイアウトが必要でした。主な違いは、データフローを正しいLEDから次のLEDに維持することでした。
<図>LEDはかなり小さく、直径約9 mm(3/8 ")であるため、はんだ付けするのは簡単ではありませんでした。はんだ付けの経験が不足しているため、結果はそれほど良くなく、きれいではありません。しかし、うまくいきました。
はんだ付け
はんだ付けする前に、2行5列の元のセクションから2行2列のLEDモジュールを切り取りました。次に、一方の端を赤に、もう一方の端を黒に塗って、5VとGNDに近い側をマークしました(ばかげた間違いを防ぐため)。
ステップ1 最初のはんだ付けの演習は、各LEDの小さな金属の島にはんだを「一滴」置くことでした。
<図>次のステップは、単純なまっすぐな、近くの接続を接続することでした。
<図>次に、次のケーブルは互いに重なり合っていたため、絶縁を維持する必要がありました。
<図><図>
<図>
全体として、各方向に5つのビームがあり、さらにコーナービームがあり、合計11のビームがありました。各LEDモジュールには4つのLEDがあるため、個々のLEDの数は44です。
いくつかのモジュールの後、私はそれのコツをつかみました、そして最終的に私は約30分で完全なモジュールをはんだ付けすることができました。
「ショートケーブルトリック」
小さなケーブルの多くは絶縁が必要でしたが、ケーブルの全長が1センチメートル未満の場合、内側のコアを露出させるのに十分な絶縁を両端で切断することは困難でした。
それから私はこの(明らかな)トリックを理解しました:
1。 ケーブルの一端をはんだ付けしてから、曲げて希望の長さに切断します。 (この例では、はんだ付けされていない端を Dout に接続する必要があります 下の写真の右下のLEDの。)
<図> <図> <図> <図> <図>2。 断熱材を少し下にスライドさせます。
<図>3。 解放された断熱材から目的の長さを切り取ります。
<図>4。 絶縁体を後ろにスライドさせて、自由端のコアを露出させます。タダー!
<図>このようにして、露出したケーブルコアの正確な長さを作成でき、結果は非常に優れていました。
<図>
LEDモジュールの完成
最後に、LEDモジュールをビームに逆さまに取り付ける必要があるため、粘着テープを保持するために、はんだ付けされ、ケーブルで満たされた裏面を準備する必要があります。
単純に正方形にカットしたランダムな平らなプラスチックを使用するようになりました。これらは、ホットグルーでLEDモジュールに簡単に取り付けられました。
<図>これがすべての完全なモジュールです!やったー!
<図>(この時点で、左に行くものと右に行くものを区別するために、それらにいくつかのマーキングを付けることが重要でした!)
完全なモジュールは、平らになった裏面に強力な粘着テープを使用して簡単に取り付けることができました。
ケーブルの作成
幸いなことに、私は古い電話延長コードのロールを敷設していました。このケーブルには、3本のワイヤー(5V、GND、およびデータ)が必要だったため、4本の別々のワイヤーで十分でした。
特別な圧着工具なしでメスソケットを取り付けるのはそれほど簡単ではありませんでしたが、完全に実行可能でした。
<図><図>
ケーブルチャネルは簡単に取り付けられました。適切な長さにカットし、あらかじめ取り付けられている粘着テープを使用して水平ビームに取り付けます。
<図>完成したマウント済みモジュールは次のようになります。
<図>
自動アクティブ化と非アクティブ化
暗くなったら手動で点灯させたくないので、フォトレジスターを入れました。
単純なオン/オフはしたくありませんでしたが、薄明かりの時間の間に光の強度が徐々に変化しました。このため、「昼光」が「薄明」に変わり、「薄明」が「暗闇」に変わると決めた夕方の時点で、フォトレジスタのアナログ値を知る必要がありました。
下のグラフの赤い曲線は、1日の間にシフトするフォトレジスタからのアナログ読み取り値を表しています(下の実際の読み取り値ではなく、私のフリーハンドの描画だけです)。 2本のかすかな水平線は2つのレベルを示しています。上は「昼光」が「黄昏」に変わる限界、下は「黄昏」が「闇」に変わる限界です。したがって、赤い曲線が上の水平線より上にある場合はDAYと見なし、下の曲線より下にある場合はNIGHTと見なします。
緑の直線は、「クリーンな」日光測定値です。つまり、夜間は最小(0.0)、日中は最大(1.0)であり、薄明中は直線の傾きです。
<図>実際のアナログ測定値を知るために、4つの写真抵抗器をLCD画面と一緒にArduinoに接続して、4つの抵抗器の電流、最小値、最大値を表示しました。悪いものがあるかどうかわからなかったので、4つ使用しました。したがって、それらのほとんどがほぼ同じ読み値である場合、それらが機能することはわかっていました。明らかに、Arduinoが最終的にLEDを駆動するように意図したのと同じ場所にデバイスを配置しました。見た目は次のとおりです:
<図>LCDはかなり限られているので、一度に1つのフォトレジスタの読み取り値を約5秒間表示しました。それから日中、私は時々行き、一枚の紙に数字を書き留めました。 (明らかに、ラップトップに接続したままにして、シリアル接続で番号を送信することもできましたが、日中はラップトップが必要で、一日中アトリウムに座りたくありませんでした。)
結局、「630」以下は暗く、「800」以上は明るいと判断しました。しかし、これらの数値は明らかに、直列に使用した10kΩの抵抗と一緒に私のフォトレジスタにぴったり合うので、絶対的な真実ではありません。
Arduinoソースコード
キャンドルライトだけでなく、さまざまな種類の照明効果を持たせたいと思っていました。このため、私はソースコードをモジュール式に構築し、概要をわかりやすくするために、さまざまなメカニズムをさまざまなファイルに分離しようとしました。
メインの .ino
-ファイルは非常に小さく保たれています。基本的にはすべてを起動して Update()
を呼び出します いくつかのヘルパークラスで(これがトリックを実行します)。
現在、ソースコードは2つの異なる効果をサポートしています。キャンドルライト効果と「クリスマス」効果。現時点では、エフェクトの選択はハードコーディングされています。つまり、切り替えを行う場合は、コードを再コンパイルする必要があります。結局、これはリモコンを使用して制御する必要があります-または、さらに良いことに、スマートフォン。わかります。
コード
AtriumLighting
Arduinoのすべてのソースコードhttps://github.com/emmellsoft/AtriumLighting 回路図
2drkW5vm9e7vAdGPxOsm.fzz 製造プロセス