YACTL:別のクリスマスツリーガーランド

なんで?



新しい年の前に、多くの人がクリスマスツリーをドレスアップして、あらゆる種類の小物のおもちゃ、そしてもちろん、明るいガーランドで飾ります。

Habréでは最近、自家製の花輪をテーマにいくつかのバリエーションがありますが、100,500未満であるため、これは明らかに十分ではないと考えました。 新年の精神を​​怒らせないために、私はこの偉大な精神への贈り物としてクリスマスの花輪の私のバージョンをもたらします。



また、このプロジェクトは、息子の初期教育の一環として「私は何を、どのように、そしてなぜ、そして実際にではなく、トピックについてトリッキーな質問を探して尋ねる」というスタイルで考案されました。 このため、すべてを可能な限りシンプルで手頃な価格にしようとしました。











何から?



箱の中に少しうずくまって、個別にアドレス指定可能なRGB LEDのテープをいくつか見つけました。 野生では、WS2801、WS2811、WS2812、Neopixelsなどの異なる名前が付けられています。

これらのテープの主な特長は、RGB LEDを個別に制御し、RGBカラーコンポーネントと輝度を変更できることです。



テープの違いは電気的なものです。 非常に失礼な場合は、次のように説明できます。

WS2801は非常に最初のバージョンです。 データは、2本の信号線-DATAおよびCLOCKを介して送信されます。 電源は通常12ボルトです。 RGB LEDは個別に接続されます。

WS2811は新しいバージョンです。 データは1本のワイヤ-DATAで送信されます。 WS2811コントローラー自体が時間間隔を計算し、そのコードで従わなければならないため、CLOCK信号はありません。 通常、5ボルトで駆動します。 RGB LEDも個別に接続されます。

WS2812WS2811と同じですが、LED(5050など)に統合されているため、テープがよりコンパクトになり、LEDをより密に配置できます。 通常、5ボルトで駆動します。 LEDチップには6つのピンがあります。

WS2812BはWS2812に似ていますが、LEDとチップ自体の電力が組み合わされているという違いがあります(すべてのオプションに個別の電源があります)。 LEDチップには4つのピンがあります。



LEDストリップのバリエーションは、eBay、Alibaba / AliExpressおよびこのタイプの店舗で購入できます。



プログラミングの観点から見ると、 FastLED @ GitHubライブラリを使用すると、その差は非常に滑らかになります。 つまり、多くの手間をかけずに1つのプロジェクトでさまざまな種類のプログラム可能なテープを組み合わせることができます。 しかし、息子は、父親の機知と図書館の便利さに感謝しませんでした。



自宅で3本のテープを見つけました。1本はWS2801コントローラー(25個のLED)に基づいており、2本はWS2811コントローラー(20個と15個のLED)に基づいています。 合計60個のLED子犬の喜び。

2つのWS2811 Iを直列に接続しました。



読者の探究心がすでに推測しているように、そのようなLEDストリップを制御するにはコントローラーが必要です。 当初は、コンパクトですぐに使えるため、Arduino Pro Miniボードを使用する予定でしたが、何らかの理由で、底なしビンに1つも見つかりませんでした。 しかし、 Teensy 3.1 (Cortex-M4 @ 72MHz、256KBフラッシュ、64KB RAM)を見つけました。 少しやり過ぎですが、少しでも多くの方が良いです。



12ボルトと5ボルトのテープを一緒に使用するため、5ボルト変換で12 V / 1 Aの電源から回路全体に給電し、2番目のテープとマイクロコントローラーボードに電力を供給しました。 MP2307DNに基づくパルスDC-DCモジュールKIS-3R33Sを使用して変換しました。これは、出力で最大3Aを出力し、ほとんど加熱しません。 もちろん、モジュールは7805のようなものと交換できますが、適切な冷却に注意する必要があります(10個のLEDごとに約1〜1.5ワット)。







コンポーネントリスト:











接続方法



すべてが非常に単純に接続されているため、実際には回路はありません。

Teensy 3.1は5ボルトで動作します。 これらの5ボルトにWS2811テープがあります。 12ボルトでは、WS2801に基づいたテープがあります。

WS2801テープは、次のようにTeensy 3.1に接続されます:DATA-11、CLOCK-13。

WS2811テープは、Teensy 3.1コマーシャルに接続されています:DATA-14。







ワイヤと部品の束は、4つのAA要素を格納するための箱にうまく詰められました。 私は通常、そのような箱にとてもシンプルで速いものを集めます。







魔法とは何ですか?



魔法は、このすべての不名誉を支配し、3歳の息子を喜ばせるコードの中にあります。

GitHubにコードを投稿しました: github.com/nochkin/LightBottlegithub.com/FastLED/FastLEDライブラリが必要です)

コードでは、すべてが非常に単純です。LEDがスムーズに移行し、現在の色がLEDストリップに沿ってさらに移動する色が擬似ランダムに選択されます。 木では、光が落ちているように見えます。 または、たとえば、木をひっくり返したり(息子のアドバイス)、逆にリボン自体を掛けたり(私の不合理な申し出)した場合。



コードの最初に、構成用の変数をいくつか導き出しました。

LEDS1_NUM / LEDS1_PIN-LEDの数と最初のテープを接続するためのピン

LEDS2_NUM / LEDS2_PIN-2番目のテープを接続するためのLEDとピンの数

LEDS_SATURATION-最大彩度

LEDS_BRIGHTNESS-最大輝度(60個のLEDでは、およその消費は、輝度255で800 mA、128で400 mA、64で200 mAでした)

hueStep-1サイクルでの色変更ステップ

UPDATE_DELAY-テープの色を「実行」する速度



両方のテープはsetup()で構成されているため、テープが1つしかない場合は、テープコントローラーに対応する行を1つだけ残して、LEDS2_NUMをリセットできます。



そして漫画?



このクラフトのビデオを添付しています。 電話の質とポートレートの向きをおaびします。





また、すべてのハブロビテスに来てくれて、おめでとうございます。 やった!






All Articles