LEDディスコフロア:9ステップ(写真付き)

LEDディスコフロア:9ステップ(写真付き)

目次:

Anonim

このプロジェクトはhockeyman271によるPixel Drop Ceilingに触発されたもので、その指示がないと実行できないでしょう。

このLEDディスコフロアはArduino経由でコンピューター制御されているWS2801 36mm RGB LEDを使用しています。私は36mm WS2801を選択しました。それはそれらのより低いプロファイル(5mm深さ)のためです。これは私が私の床タイルのそばにそれらを置くことを可能にしました。

---------------------------------------------------------------------------------------------

添加;

私はそれ以来この指示に追加の変更を加えました。 Arduinoは現在、素晴らしいFastLEDライブラリを使用し、ラップトップを必要としない別のプログラムを実行しています。この手順の最後に、手順3と4を飛ばして説明する手順を追加しました。

用品:

ステップ1:ステップ3/4の代替FastLED

ArduinoはFastLED 3.1 NoisePlusPalette http://github.com/FastLED/FastLED/tree/master/exaを使ってプログラムすることができます。また、arduinoをプログラミングしているコンピュータにFastLED 3.1ライブラリをインストールする必要があります。

プログラム中のピン番号は必ず下記のように変更してください。

あなたがあなたのArduinoのために電源を使用するならば、あなたはそれへの電源を入れそして次にLEDへの電源を入れることができますそしてあなたは行っています!

コード

---------------------------------------------------------------------------------

#含める

#define LED_PIN 3 #define DATA_PIN 2 #define CLOCK_PIN 3 #define NUM_LEDS 120 #define BRIGHTNESS 64 #define LED_TYPE WS2801 #define COLOR_ORDER GBR CRGB LED NUM_LEDS;

#define UPDATES_PER_SECOND 100

//この例は、FastLEDを使用して//色の「パレット」を設定および使用する方法をいくつか示しています。 // //これらのコンパクトなパレットは、アニメーションをその場で、すばやく、簡単に、少ないオーバーヘッドで色を変更する簡単な方法を提供します。 // //パレットの使用は理論的に比べて実際にははるかに単純です。最初に//このスケッチを実行して、コードを読みながら//明るい部分を見てください。このスケッチは8つ(またはそれ以上)の異なる配色を持っていますが、//全体のスケッチはAVR上で約6.5Kまでコンパイルされます。 // // FastLEDはいくつかの事前設定されたカラーパレットを提供し、//自分のカラースキームをパレットで簡単に作成することができます。 // // FastLEDコンパクトパレットのより抽象的な '理論と実践'に関するいくつかの注意事項がこのファイルの最後にあります。

CRGBPalette16 currentPalette。 TBlendType currentBlending;

extern CRGBPalette16 myRedWhiteBluePalette;外部定数TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;

void setup(){delay(3000); //電源投入時の安全遅延FastLED.addLeds(leds、NUM_LEDS); FastLED.setBrightness(明るさ); currentPalette = RainbowColors_p; currentBlending = BLEND; }

void loop(){ChangePalettePeriodically();

静的uint8_t startIndex = 0; startIndex = startIndex + 1; / *モーションスピード* /

FillLEDsFromPaletteColors(startIndex);

FastLED.show(); FastLED.delay(1000 / UPDATES_PER_SECOND); }

void FillLEDsFromPaletteColors(uint8_t colorIndex){uint8_t明るさ= 255; (int i = 0; i <NUM_LEDS; i ++){leds i = ColorFromPalette(currentPalette、colorIndex、brightness、currentBlending); colorIndex + = 3。 }}

//ここに示されている色のいくつかの異なるパレットがあります。 // // FastLEDはいくつかの「プリセット」パレットを提供します:RainbowColors_p、RainbowStripeColors_p、// OceanColors_p、CloudColors_p、LavaColors_p、ForestColors_p、およびPartyColors_p。 // //さらに、手動で独自のカラーパレットを定義することも、//その場でカラーパレットを作成するコードを書くこともできます。すべてここに表示されています。

void ChangePalettePeriodically(){uint8_t secondHand =(millis()/ 1000)%60;静的uint8_t lastSecond = 99; if(lastSecond!= secondHand){lastSecond = secondHand; if(secondHand == 0){currentPalette = RainbowColors_p; currentBlending = BLEND; if(secondHand == 10){currentPalette = RainbowStripeColors_p;} currentBlending = NOBLEND; if(secondHand == 15){currentPalette = RainbowStripeColors_p;} currentBlending = BLEND; if(secondHand == 20){SetupPurpleAndGreenPalette();} currentBlending = BLEND; if(secondHand == 25){SetupTotallyRandomPalette();} currentBlending = BLEND; if(secondHand == 30){SetupBlackAndWhiteStripedPalette();} currentBlending = NOBLEND; if(secondHand == 35){SetupBlackAndWhiteStripedPalette();} currentBlending = BLEND; if(secondHand == 40){currentPalette = CloudColors_p;} currentBlending = BLEND; if(secondHand == 45){currentPalette = PartyColors_p;} currentBlending = BLEND; if(secondHand == 50){currentPalette = myRedWhiteBluePalette_p;} currentBlending = NOBLEND; if(secondHand == 55){currentPalette = myRedWhiteBluePalette_p;} currentBlending = BLEND; }}}

//この関数はパレットを完全にランダムな色で塗りつぶします。 void SetupTotallyRandomPalette(){(int i = 0; i <16; i ++){currentPalette i = CHSV(random8()、255、random8()); }}

//この関数は、コードを使用して、//白黒のストライプのパレットを設定します。パレットは事実上16個のCRGBカラーの配列であるため、//さまざまなfill_ *関数を使用して設定できます。 void SetupBlackAndWhiteStripedPalette(){// 16個のパレットエントリすべてを「ブラックアウト」します… fill_solid(currentPalette、16、CRGB:: Black); // 4番目ごとに白に設定します。 currentPalette 0 = CRGB:: White; currentPalette 4 = CRGB:: White; currentPalette 8 = CRGB:: White; currentPalette 12 = CRGB:: White;

}

//この関数は紫と緑のストライプのパレットを設定します。 void SetupPurpleAndGreenPalette(){CRGBパープル= CHSV(HUE_PURPLE、255、255); CRGBグリーン= CHSV(HUE_GREEN、255、255)。 CRGB黒= CRGB::黒。 currentPalette = CRGBPalette16(緑、緑、黒、黒、紫、紫、黒、黒、緑、緑、黒、黒、紫、紫、黒、黒); }

//この例は、PROGMEM(フラッシュ)に格納されている静的カラーパレットを設定する方法を示しています。これはほとんどの場合RAMよりも豊富です。このような静的なPROGMEMパレットは、64バイトのフラッシュを占有します。 const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM = {CRGB:: Red、CRGB:: Gray、// 'white'は赤と青に比べて明るすぎますCRGB:: Blue、CRGB:: Black、

CRGB::赤、CRGB::灰色、CRGB::青、CRGB::黒、

CRGB::赤、CRGB::赤、CRGB::灰色、CRGB::灰色、CRGB::青、CRGB::青、CRGB::黒、CRGB::黒}。

// FastLEDコンパクトパレットに関する追加の注意事項// //通常、コンピュータグラフィックスでは、パレット(または「カラールックアップテーブル」)には256個のエントリがあり、それぞれに特定の24ビットRGBカラーが含まれています。その後、単純な8ビット(1バイト)値を使用して//カラーパレットにインデックスを付けることができます。 // 256エントリのカラーパレットは768バイトのRAMを占有します。これはArduinoでは//おそらく "多すぎる"バイトです。 // // FastLEDは、RAMに768バイトのコストをかけることができるセットアップ用に、従来の256要素パレットを提供しています。 // //ただし、FastLEDはコンパクトな代替手段も提供します。 FastLEDは、16個の異なるエントリを格納する//パレットを提供していますが、IFにアクセスすることもできます//実際には256個のエントリがあります。これは、16個の明示的なエントリ間で//補間して、各ペア間に15個の中間パレットを作成することによって実現されます。 // //たとえば、コンパクトパレットの最初の2つの明示的なエントリをGreen(0,255,0)およびBlue(0,0,255)に設定し、//仮想パレットから最初の16のエントリを取得した場合(256)の場合は、// Greenが表示され、その後に緑から青、そして次に青から滑らかなグラデーションが続きます。

ステップ2:部品

  • Arduino Uno R3
  • Arduinoプロトボード
  • USB 2.0 A to Bケーブル

  • ミニブレッドボード

  • イギリスのプラグアンドケーブル(多分古いそしてやかん鉛を使用する)

  • 36mm WS2801 LED(私は中国からのEbayでこれらが安いとわかった)

  • 12V 5A電源スイッチ

  • Lexan MARGARDクリアプラスチックポリカーボネートシート5mm(Ebayのオフセット)
  • 厚さ9 mm、幅21 mmの木製ストリップ
  • 半透明の白い自己接着ビニール
  • Jinxを実行するためのWindows PC /ラップトップ!
  • LEDワイヤー

グリッドに使用される材料は完全にあなたの好み次第です、私は最低限の木工技術を持っています、しかし、グリッド構造はうまく耐えます。私はLexan Margardは強度が高く、「耐摩耗性」があるので試してみることを勧められていて、これまでのところうまくいっています。半透明のビニールはちょっと最後の選択であり、私は欲しいものを正確に入手するのに苦労しました。私は理想的にはすりガラスの外観の後でしたが、半透明で不透明ではないものを見つけるのに苦労しました。達成された拡散量は、LEDがどれほどビニルに近いかに関わらず満足のいくものであった。

ステップ3:回路

回路はAdafruitの配線図に基づいています。

私はArduinoとLED用のアース線の間のアース接続を分割するために小さなブレッドボードを使いました。これは私がちょうどLEDにつながる4本のワイヤーを持つことを可能にしました。プラス線は電源からLEDまで直行していました。私は資格のある電気技師に電源スイッチへのプラグの配線を依頼しました。プラグを取り付ける前に有資格の専門家に相談することを強くお勧めします。あるいは、私はオンラインで入手可能なラップトップ充電器のスタイルの12V電源を見ました。

ステップ4:Arduinoのプログラミング

照明効果をLEDに送るために、私はGlediator SketchでArduinoをプログラムしました。

www.solderlab.de/index.php/downloads/category/4-glediator

ノートパソコンをUSB経由でArduinoに直接接続しているので、Bluetooth通信に必要なボーレートの変更は必要ありません。ですから、接続されているCOMポートを使ってスケッチをArduinoにアップロードするだけです。ここで正しいピクセル数を選択したことを確認してください。

"#define Num_Pixels 120"ピン番号もまだ:

int SDI = 2。

int CKI = 3。

ステップ5:制御ソフトウェア

Pixel Drop CeilingのInstructable Jinxで述べたように!そしてGlediatorはあなたのWS2801 LEDを制御する素晴らしい仕事をします。私はJinxに行くことにしました!これはセットアップが本当に簡単だとわかりました。私が試したとしてもBluetoothオプションを使用する必要はなかったので、Jinxを実行している私のラップトップはUSB 2.0 AからBへのケーブルを介してArduinoに直接接続します。

これは私が120個のLEDを使ってセットアップしたときのスクリーンショットです。使用するチャンネル数はLED /ピクセル×3(R、G、B)です。また、Fast Patch画面では、LEDを並べた順序でSnakelinesを選択したこと、および36mm WS2801が緑青赤で表示されているため、チャンネルの順序がRGBではなくGBRであることを確認することもあります。

COMポートはあなたのArduinoが使っているもので、Windowsのデバイスマネージャを使って見つけられるものです。

目的の効果を選択し、設定> 出力開始をクリックして、ライトが点灯するのを確認します。 Jinxの最新バージョン!複数の領域のプログラミングを可能にし、私はこれを使って 'ストロボ'効果で6つの長方形を分離し、 'オートカラー'と 'オーディオコントロール' = 70年代のディスコをチェックしました!

AndroidデバイスまたはiPadでは、リモートデスクトップアプリを使用してPC /ラップトップをリモートで制御することもできます。

このソフトウェアをダウンロードした場合は寄付してください。

www.live-leds.de/jinx-v2-0-a-double-jinx-in-one/

ステップ6:建設 - フロアグリッド

私はこのプロジェクトで私のピクセルを囲むようにグリッドを構築することを選択しました。それは主にその上に立っているときのウェイトを分散させることと、色をよりシャープにするために各ピクセルから光を分離することです。

それらを敷設するとき私たちは故意に私たちのキッチンにいくつかのタイルを残しました。残った面積は1640 x 930 mmです。私は120ピクセルを持っていたので、これを置くための最善の方法は15の8つのコラムでした。使われた木は20mm幅で各ピクセルのまわりにおよそ90から100mmの正方形の間に残っていました。

カットを節約するために、我々は16本の木の長さのウェイ(1640mm)を置き、それから各ピクセルの後に小さい98mmのピースを置きました。ワイヤーが木の下を走ることを可能にするために、我々はそれぞれの部分の下に小さな隙間を切りました。すべてのピクセルと木材は、接着剤銃と多くの接着剤棒を使って接着されていました!

ステップ7:建設 - Lexan 'Floor'

たくさんの調査をした後、私はLexan Margardを調べることを勧められました。これは 'Abrasion Proof'、 'Virtually Unbreakable'、透明Perspexです。物理学に詳しい友人に相談した後、5mm厚のオプションを購入しました。私のグリッドのスペースはだいたい10cm四方で、椅子やハイヒールを扱うのに十分な体重配分ができました(とにかく)。十分に5mmのLexanも、ディスコフロアをキッチンタイルと同じ高さにすることを可能にしました。

唯一の欠点は、私がオンラインで見つけたサプライヤが1メートル未満の断片しかカットできないということでした。これは、2つの断片で終わることを意味し、理想的ではありませんでした。私はそれ以来私が必要とするサイズを実際にすることができるように地元の供給業者を見つけましたので、私は将来アップグレードします。

ステップ8:拡散ビニール

このプロジェクトの最後の段階は拡散材料です。ここで私はRitrama半透明自己接着ビニール「5-7年」http://www.signmakingandsupplies.co.uk/ritrama-translucent-self-adhesive-vinyl-5-7-year-2464-p.aspを使用しましたLEDの光を透過させる半透明のビニールですが、目には見えません。これは自己接着性であるため、付着するのはかなり簡単でした。また、将来的にはつや消しビニールでこれにアップグレードするかもしれません。

ステップ9:仕上げ仕上げ

半透明のビニールを下にしたLexanをグリッドの上に置き、端をシリコンでシールしました。

Jinxで 'Chases'を試してみてください。私は(私がビデオのために使用したもの)シーケンスで実行されるさまざまな効果の追跡を設定しました。 Jinxではデスクトップのショートカットを追跡して開くように変更することもできます(Jinxのマニュアルを参照)。このショートカットをWindowsの起動フォルダに追加すると、Windowsの起動時にLEDがアニメーションし始めます。

どんな質問でも遠慮なくしてください、そして、私は最善を尽くします。

私はInstructablesでのいくつかの競技会にこれを入れるつもりですので、私に投票してください!

での大賞

パーティーしよう!チャレンジ