LEDタワーアート
コンポーネントと消耗品
| × | 288 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 12 | ||||
| × | 10 |
必要なツールとマシン
> |
| |||
| ||||
| ||||
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
このプロジェクトのインスピレーションは、円柱と平面の交差によって作成される多数の曲線です。 LEDライトショーを作成したかったのですが、最近すでにいくつかのLEDキューブを作成しました。ハードウェアとソフトウェアの両方の観点から、何か違うことをしたかったのです。そして、これはプログラミングするのに楽しい環境になると思いました。キューブと同じくらいの可能性を秘めていますが、明らかに異なります。
このタワーには8mmAPA106プログラマブルLEDを使用することを選択しました。通常のRGBLEDよりも高価ですが、ハードウェアとソフトウェアの両方の観点から、はるかに簡単に操作できます。シフトレジスタなし-すべてが2本のデータラインによって制御されます。また、ISR(割り込みサービスルーチン)やLEDのレイヤー間の多重化もありません。これらのLEDは常にオンになっています。
シリンダー/タワーを12個のリングを積み重ねて組み立てることにしました。リングの直径は8 "で、各リングには1"間隔で24個のLEDが含まれています(実際にはπ* 8/24ですが、1インチに近い)。リング自体は1インチ離れているため、LEDは両方向に1インチ離れています。アクリルロッドを使用してリングを固定し、タワーを形成します。
APA106 LEDは、最大輝度と白色で60 maを消費できるため、最悪の場合、このタワーは17アンペアを消費する可能性があります。しかし、これらのLEDは非常に明るいので、ソフトウェアで10%を超える明るさに設定することはめったにありません。そして、タワー全体を白くすることも、実際にはどこでも行われていません。したがって、実際には、USBポートを使用して電源を入れるのに問題はありませんでした。また、別の電源を使用する場合は、2アンペアで問題ないようです。
建設
アマゾンで直径8インチの金属リングを見つけました。LEDリングのベースとして適していると思いました。簡単にはんだ付けできることがわかったときは、実際には嬉しい驚きでした。「簡単」という用語は相対的なものです。十分に熱くするためには重くて多くの熱が必要なので、40ワットのはんだごてを完全に上げ、はんだが溶ける前に通常5〜10秒間そこに置いておく必要がありました。最初にリングをはんだで濡らしました。 LEDをはんだ付けする前に、LEDのリードにクリップヒートシンクを常に使用しました。
<図>しかし、私は自分より少し進んでいます。 LEDをリングにはんだ付けする前に、下の図に従ってLEDを24個リードフォームする必要があります
<図>リードフォーム操作の一環として、アースリードの端に小さな曲げを入れました。識別が容易になるだけでなく、リングへの取り付けも容易になります。
LEDをリングにはんだ付けする前の別の準備手順は、LEDが配置されるリング上の24個の偶数スペースをマークすることです。また、LEDを取り付ける際にリングを垂直にクランプする必要があることもわかりました。リングを所定の位置に保持するために、以下の装置を使用することになりました。
<図>いくつかのLEDがリングにはんだ付けされたら、以下に示すように、データ入力リードをデータ出力リードに接続する必要があります。 LEDを保護するために、クリップオンヒートシンクが常に使用されることに注意してください。
<図>すべてのLEDがリング上にあると、リング全体に1つのデータ入力リードがあり、その向かいにあるデータ出力リードがその上の次のリングに進む準備ができているはずです。この時点で、すべての+5ボルトのリード線を22ゲージの錫メッキされた銅線の真っ直ぐな部分で接続する準備が整いました。片方の端を万力で固定し、もう一方の端をペンチで強く引っ張って、26インチの長さのワイヤーをまっすぐにします。次に、下に示すようにLEDに取り付けます。
<図>完成したリングができたら、私が含めたテストスケッチを使用してそれをテストできます。テストは重要です-完成したタワーの真ん中にあるときよりも、不良LEDやコールドはんだ接合を今すぐ修正する方がはるかに簡単です!テストは、オープンデータ入力ピンをUNOピン6に接続することによって実行されます。含まれているテストスケッチは、このビデオのものとは多少異なりますが、リングが正しく機能しているかどうかを示しているはずです。
次に、さらに11個のリングを作成する必要があります。大変な作業ですが、少し練習すれば、1つの指輪を数時間に短縮することができます。
各リングのLEDが他のリングの対応するLEDと整列していることが重要です。 LEDが完全に間隔を空けられている場合、これは問題ではありませんが、間隔に十分な小さなバリエーションがあるため、1つのリングを他のリングのテンプレートとして使用し、常にオープンデータ入力リード(同じ場所にあるデータ出力リードに接続されていないもの)。 (私の塔をよく見ると、最初の2つのリングは互いにうまく整列していません。しかし、その後、このテンプレートアプローチを使用して、結果を大幅に改善しました。)
少なくとも4つのリングを作成したら、タワーの組み立てプロセスを開始できます。下の4つのリングの最初の組み立ては、おそらく建設の最も重要な部分です。ピサの斜塔は作りたくない!リングを組み合わせるには、リング間に1インチのスペースを作成するために高さ22mmのスペーサーが必要です。スペーサーには3D印刷された黒いプラスチックを使用しましたが、1/4インチのドウェルも同様に機能します。スペーサーを固定するために、一時的な接着剤である小さなブルータックを使用しました。
<図>リングは、6本の12インチの長さのアクリル棒を使用してタワーを形成するために一緒に保持されます。これらのロッドを適用する前に、すべてを正確に配置することが重要です。ロッドがリングに熱接着されると、変更を加えることはほぼ不可能になるため、最初に必要な場所にすべてを配置します。すべてが整ったら、タワーを横向きにして、アクリルロッドをリングに熱接着します。下の写真は、最初の3本のロッドが取り付けられた最初の4つのリングを示しています。その後、さらに3つ、合計6つが取り付けられました。ロッドはLEDの間に配置され、各ロッドの間に4つのLEDがあります。
<図>すべてのロッドがリングに取り付けられたら、スペーサーを取り外して、リングを追加するときに再利用できます。 12個のリングがすべて配置されると、リング間にアース、+ 5v、およびデータラインを接続する準備が整います。これは、22ゲージの錫メッキ銅線を使用して行われます。電源レールは、12個のリングすべてと並列にリンクされています。
2つのデータラインがあり、それぞれに144個のLEDがあります。1つは上部6リング用(最終的にはUNOピン6に接続)、もう1つは下部6リング用(最終的にはUNOピン7に接続)です。各データラインは、一番下のリングから始まり、一番上のリングまで続きます。当初はデータラインを1本だけにする予定でしたが、リング8までに、不思議な不要な光の点滅が見られるようになりました。最初は電源レールかもしれないと思っていましたが、レールにコンデンサを追加しても効果がなかったので、タワーを2本のデータラインに分割しました。それで問題は解決しました。
<図>上の写真は完成したタワーの写真です。 ArduinoUNOは下部にインストールされています。私は実際に残りの4本のアクリル棒を使用してUNOを吊り下げ、ホットグルーを使用してすべてを接着しました。別のアプローチは、UNOを内部に持つベースにタワーを取り付けることです。 UNOへの接続は4つあり、12個のリングすべてに接続するアースレールと+ 5vレール、およびピン6と7への2本のデータラインがあります。
<図>
ソフトウェア
APA106のようなプログラム可能なLEDは、それらを制御するために使用されるデータパルスのタイミングを処理する利用可能なライブラリがいくつかあるため、使いやすいです。私がAPA106LEDで行った以前のプロジェクト(私の2番目の5x5x5 RGBキューブとトライアングルアートプロジェクト)では、Adafruitの人気のあるNeoPixelソフトウェアライブラリを使用しました。ただし、このタワーにはFastLEDライブラリを選択しました。それはたくさんの素晴らしい機能に加えて、私が便利だと思ったいくつかの速い数学関数を持っています。また、かなり粗雑な43ステップのレインボーパレットを256ステップのパレットに簡単に置き換えることができました。何百もの関数、事前定義されたパレット、およびこのプロジェクトでは使用しなかったその他のものがありますが、このプロジェクトと将来のプロジェクトの両方に最適です。そして、私が非常に便利だと思ったFastLEDのさらに別の機能は、フェードを簡単に実行できることです。
LEDとその色を簡単に指定できる機能が好きです。このタワーでは、setColor(row、column、color)の形式である必要があります。ここで、rowはどのリング上にあり、columnはそのリング上のどの位置にあります。この1つのルーチンは、LEDがオンになっているデータラインからのすべての変換と、データチェーン内でのその位置を処理します。
FastLEDライブラリの強力なツールの1つは、すべてのWeb名前付きカラーのオブジェクトクラスです。色をCRGB ::HotPinkとして指定するだけです。ここで、CRGBはクラスであり、HotPinkはそのクラスのメンバーです。しかし、クラスメンバーは入力を続けるのが難しく、パラメーターとして関数に渡すのが面倒なので、#defineステートメントを使用して、CRGB ::なしで名前だけで参照できる名前付きの色の小さなパレットを設定しました。
特定のLEDの色を0から255までのレインボーパレットの色相として設定する別の関数があります。これら2つの関数の間で、10個の名前付き色を簡単に指定したり、タワー内の任意のLEDの色相の滑らかなレインボーパレットを生成したりできます。
私が作成したもう1つの基本的な関数は、rotate(ring、direction)でした。これは、リングの内容をそのリング上で回転させます。各呼び出しは1つのステップですが、このルーチンを使用して、タワー全体のコンテンツを回転させたり、タワーの一部を反対方向に回転させたりすることができ、多くの興味深い効果を生み出すことができます。
FastLEDライブラリについてもう1つ言及できるのは、使用しているAPA106LEDを直接サポートしていることです。 AdafruitのNeoPixelライブラリもAPA106で動作しましたが、正しく設定するには、セットアップを試してみる必要がありました。 FastLEDを使用すると、使用しているLEDとしてAPA106を指定するだけで、セットアップが自動的に行われます。
最初に言ったように、このタワーで作成できるより興味深い効果の1つは、円柱と平面の交差です。最初は、数学を使ってその場でこれを達成しようと考えました。しかし、UNOが十分に高速であるかどうかという問題があり、テーブルでそれを実行するのは非常に簡単であることが判明したので、後者のアプローチを採用しました。基本的に、このテーブルは、平面とタワーの交差点を18の異なる角度で照らし、交差点が発生する高さを変えることができます。ショーのいくつかの異なる場所で結果が表示されます。
同じテーブルアプローチを使用して、円柱と球のさまざまな交差を作成しました。飛行機との交差点ほど効果的ではありませんが、機能しました。それを使用するショーには1つの効果があります。これらのテーブルは両方とも、RAMを消費しないように、プログラムメモリに保存されます。
ソフトウェアパッケージに含まれているUNOのスケッチは3つあります。
1)単一のリングのクイックテスト。
2)番組の45秒のプレビュー
3)16の異なる効果またはアニメーションを含む8分間のショー
この記事のビデオでは、3つすべてがここに示されています(ただし、リングテストはビデオのものとは多少異なります)。
ソフトウェアに関する最後の1つ。さまざまなアニメーションが呼び出されるメインループの最後に、ソフトウェアリセットを追加しました。通常、これは必要ありませんが、ソフトウェアのどこかにバグがあります。リセットしないと、すべてのアニメーションを何度も通過した後、プログラムがハングします。おそらく、必要なときにRAMのスタックから何かが外れないことがあります。 FastLEDライブラリの問題でさえあるかもしれません。しかし、私はそれを見つけることができませんでした。ソフトウェアのリセットにより、最も洗練されたソリューションではありませんが、スムーズな操作が保証されます。
コード
- LEDタワーアートのArduinoコード
- タワーアート用のソフトウェア
LEDタワーアートのArduinoコード Arduino
このダウンロードは、3つのスケッチを含む単一のzipファイルです。1)ピン6からの単一のリングをテストするためのリングテスト
2)クイックショー-45秒のプレビュー
3)繰り返す前に8分間続く番組
プレビューなし(ダウンロードのみ)
タワーアート用ソフトウェア Arduino
このダウンロードは、3つのスケッチを含む単一のzipファイルです。1)ピン6からの単一のリングをテストするためのリングテスト
2)クイックショー-45秒のプレビュー
3)繰り返す前に8分間続く番組
プレビューなし(ダウンロードのみ)
回路図
製造プロセス