.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _ar_neopixel: 3.3 - WS2812 RGB ストリップ ============================== WS2812は、制御回路とRGBチップが5050コンポーネントのパッケージ内に統合されているインテリジェントなLED光源です。 この中には、インテリジェントなデジタルポートデータラッチと信号整形増幅駆動回路が内蔵されています。 さらに、高精度の内部オシレーターとプログラム可能な定電流制御部も含まれており、ピクセルポイントの光色の高度な一貫性を効果的に確保します。 データ転送プロトコルは、シングルNZR通信モードを使用します。 ピクセルが電源投入リセット後、DINポートはコントローラからデータを受信し、最初のピクセルが初期の24ビットデータを収集して内部データラッチに送ります。その他のデータは、内部信号整形増幅回路によって整形され、DOポートを介して次のカスケードピクセルに送信されます。各ピクセルの伝送後、信号は24ビット減少します。 ピクセルは、自動的に形状を整える伝送技術を採用しており、ピクセルのカスケード数は信号伝送の速度にのみ依存しています。 * :ref:`cpn_ws2812` **必要なコンポーネント** このプロジェクトでは、以下のコンポーネントが必要です。 便利なのは、一式を購入することです。リンクはこちら: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットに含まれるアイテム - 購入リンク * - ケプラーキット - 450以上 - |link_kepler_kit| 以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 5 20 5 20 :header-rows: 1 * - SN - コンポーネントの説明 - 数量 - 購入リンク * - 1 - :ref:`cpn_pico_w` - 1 - |link_picow_buy| * - 2 - マイクロUSBケーブル - 1 - * - 3 - :ref:`cpn_breadboard` - 1 - |link_breadboard_buy| * - 4 - :ref:`cpn_wire` - 数本 - |link_wires_buy| * - 5 - :ref:`cpn_ws2812` - 1 - |link_ws2812_buy| **回路図** |sch_ws2812| **配線** |wiring_ws2812| .. warning:: 注目すべき一点は電流です。 Pico Wで任意の数のLEDを使用することは可能ですが、そのVBUSピンの電力は限られています。 ここでは、安全な範囲内である8つのLEDを使用します。 ただし、より多くのLEDを使用したい場合は、別の電源を追加する必要があります。 **コード** .. note:: * ファイル ``3.3_rgb_led_strip.ino`` を ``kepler-kit-main/arduino/3.3_rgb_led_strip`` のパスで開けます。 * または、このコードを **Arduino IDE** にコピーしてください。 * **アップロード** ボタンをクリックする前に、ボード(Raspberry Pi Pico)と正しいポートを選択してください。 * ``Adafruit_NeoPixel`` ライブラリがここで使用されます。このライブラリは **Library Manager** からインストールできます。 .. image:: img/lib_neopixel.png .. raw:: html お気に入りの色を選んで、RGB LEDストリップで表示してみましょう! **動作の仕組み** Adafruit_NeoPixel型のオブジェクトを宣言し、 ``PIXEL_PIN`` に接続されています。 ストリップには ``PIXEL_COUNT`` 個のRGB LEDがあります。 .. code-block:: arduino #define PIXEL_PIN 0 #define PIXEL_COUNT 8 // Declare our NeoPixel strip object: Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); // Argument 1 = Number of pixels in NeoPixel strip // Argument 2 = Arduino pin number (most are valid) // Argument 3 = Pixel type flags, add together as needed: // NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) // NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) // NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) // NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) // NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) ストリップオブジェクトを初期化し、すべてのピクセルを「オフ」に設定します。 関数 * ``strip.begin()`` : NeoPixelストリップオブジェクトを初期化(必須)。 * ``strip.setPixelColor(index, color)`` : ピクセルの色を設定(RAM内)。 ``color`` は単一の'パックされた' 32ビット値でなければなりません。 * ``strip.Color(red, green, blue)`` : 単一の'パックされた' 32ビット値としての色。 * ``strip.show()`` : 新しい内容でストリップを更新。 **さらに学ぶ** ランダムに色を生成し、カラフルな流れる光を作成することができます。 .. note:: * ファイル ``3.3_rgb_led_strip_flowing.ino`` を ``kepler-kit-main/arduino/3.3_rgb_led_strip_flowing`` のパスで開けます。 * または、このコードを **Arduino IDE** にコピーしてください。 * **アップロード** ボタンをクリックする前に、ボード(Raspberry Pi Pico)と正しいポートを選択してください。 .. raw:: html または、このWS2812 LEDストリップで色の輪(範囲65535)をサイクルさせることができます。 .. note:: * ファイル ``3.3_rgb_led_strip_rainbow.ino`` を ``kepler-kit-main/arduino/3.3_rgb_led_strip_rainbow`` のパスで開けます。 * または、このコードを **Arduino IDE** にコピーしてください。 * **アップロード** ボタンをクリックする前に、ボード(Raspberry Pi Pico)と正しいポートを選択してください。 .. raw:: html * ``strip.getPixelColor(index)`` : 以前に設定されたピクセルの色をクエリします。 * ``strip.ColorHSV(pixelHue)`` : 色相、彩度、明度を ``setPixelColor()`` または他のRGB互換関数に渡すことができるパックされた32ビットRGB色に変換します。 * ``strip.gamma32()`` : 各ピクセルに割り当てる前に"より真実な"色を提供します。