注釈
こんにちは。 Facebook の SunFounder Raspberry Pi & Arduino & ESP32 愛好者 コミュニティ へ ようこそ! 仲間 の 愛好者 と 一緒 に Raspberry Pi、 Arduino、 ESP32 を さらに 深く 探求 しましょう。
なぜ 参加 する の です か?
専門的 な サポート : コミュニティ と チーム の 支援 に より、 購入 後 の 問題 や 技術的 な 課題 を 解決 できます。
学習 と 共有 : ヒント や チュートリアル を 共有 し、 スキル を 向上 させましょう。
限定 プレビュー : 新製品 の 発表 や 先行 情報 に いち早く アクセス できます。
特別 割引 : 最新 製品 を 対象 に した 限定 割引 を 利用 できます。
イベント プロモーション と プレゼント : プレゼント 企画 や 祝日 キャンペーン に 参加 できます。
👉 私たち と 一緒 に 探索 と 創作 を 始める 準備 は できました か? [here] を クリック して、 今すぐ 参加 しましょう!
NeoPixel LED ストリップ
はじめに
この プロジェクト では、 Raspberry Pi 上 で SPI 通信 を 使用 して アドレス 可能 な RGB LED ストリップ( NeoPixel )を 制御 する 方法 を 学びます。 NeoPixel は 内部 に ドライバ を 持つ インテリジェント な RGB LED で、 チェーン 内 の 各 LED を 個別 に 制御 できます。 本 プロジェクト では、 基本 的 な 色 制御 と、 ストリップ 全体 を 異なる 色 で 点灯 させる 方法 を 実演 します。
配線 図
セットアップ
コード を 実行 する 前 に、 必要 な ライブラリ を インストール する 必要 が あります:
この ライブラリ は、 SPI 通信 を 使用 して NeoPixel LED を 制御 する ため の 必要 な 機能 を 提供 します。
sudo pip install git+https://github.com/sunfounder/sunfounder-imu-python.git --break-system-packages
コード
以下 の Python コード は、 NeoPixel LED ストリップ を 制御 し、 さまざま な 色 を 順番 に 切り替え ます:
import time # Used for delays
import board # Provides board-specific pin definitions
import neopixel_spi as neopixel # NeoPixel SPI driver
# Create an SPI object using the default SPI bus of the board
spi = board.SPI()
LED_COUNT = 12 # Number of LED pixels in the strip
PIXEL_ORDER = neopixel.GRB # Color order used by the LEDs (Green, Red, Blue)
# Create a NeoPixel strip object over SPI
# auto_write=False means we must call strip.show() to update the LEDs
strip = neopixel.NeoPixel_SPI(spi, LED_COUNT, pixel_order=PIXEL_ORDER, auto_write=False)
time.sleep(0.01) # Short delay to ensure the strip is ready
strip.fill(0) # Turn all pixels off (color value 0 = off)
strip.show() # Send the data to the LED strip
try:
while True:
print("RGB test")
# Display red on all LEDs
print("Red")
strip.fill((255, 0, 0)) # Full red, no green, no blue
strip.show()
time.sleep(1)
# Display green on all LEDs
print("Green")
strip.fill((0, 255, 0)) # Full green
strip.show()
time.sleep(1)
# Display blue on all LEDs
print("Blue")
strip.fill((0, 0, 255)) # Full blue
strip.show()
time.sleep(1)
# Turn all LEDs off
# print("Off for 10 seconds")
strip.fill((0, 0, 0)) # All channels 0 = off
strip.show()
time.sleep(1)
# Gracefully handle script termination (e.g., via KeyboardInterrupt)
except KeyboardInterrupt:
pass
この Python スクリプト は、 NeoPixel SPI ドライバ を 使用 して 12 個 の LED を 持つ WS2812 リング の 基本 的 な 制御 を 実演 します。 実行 すると:
スクリプト は SPI インターフェース を 初期化 し、 WS2812 LED リング を 準備 します。
すべて の LED は、 1 秒 間隔 で 赤、 緑、 青 に 順番 に 切り替わり ます。
各 色 の 切り替え は、 デバッグ 用 に コンソール に 表示 されます。
各 サイクル の 間 に、 LED は 一時 的 に 消灯 します。
この プログラム は、
Ctrl+Cで 中断 される まで 連続 して 実行 されます。
トラブルシューティング
LED リング が 正しく 点灯 しない
原因: 配線 ミス、 または 電源 不足
解決策: VCC が 5V で ある こと、 GND が 共通 で ある こと、 および データ 線 が DIN( 場合 に よって は RGB と 表記 )に 接続 されて いる こと を 確認 してください。
色 が 正しく 表示 されない
原因: LED の 色 順序 の 不一致
解決策:
neopixel.RGBやneopixel.GRBWなど、 異なる ピクセル 順序 を 試して ください。
SPI が 動作 しない
原因: SPI が 無効、 または ハードウェア の 競合
解決策:
sudo raspi-configを 使用 して SPI を 有効 化 してください。
ライブラリ の インポート に 失敗 する
原因: 依存 関係 の 不足
解決策:
sudo pip3 install adafruit-circuitpython-neopixel-spi --break