M5Stamp続き。
やってみたこと
M5StampのLEDを動かしてみたいと思って、いくつかやってみた。
M5Stamp LEDについて
M5Stamp C3には、"programmable RGB LED (SK6812)"というのが付いている。
回路図を見ると、こんな感じで、電源とDOUT、DINの計4ピンだけが出ているシンプルなもの。
このDINが、ESP32-C3のGPIO2に接続されている。
SK6812を調べてみると、マイコン内蔵のRGB LEDとのこと。
NeoPixelというブランド名が付いている。
秋月でも売られていて、データシートも確認できる。
マイコン内蔵RGBLED SK6812MINI(5個入): LED(発光ダイオード) 秋月電子通商-電子部品・ネット通販
サンプルプロジェクト
このLEDを動かせるサンプルがないか調べたが、2つ見つかった。
公式ドキュメントから
公式ドキュメントに、M5StackのGitHubリポジトリへのリンクがあった。
Arduino IDEから使うものと、ESP-IDFから使うものの2つがある。
ESP-IDF Examplesから
VSCodeでESP-IDF Examplesを見ると、前にも"blink"プロジェクトがあるのは見ていて、GPIOでHighLow制御するものだろうと思い込んでいたが、led_strip
での制御(WS2812(SK6812互換品)などが対象)を使うこともできるようだった。
プロジェクト設定のBlink LED type
で、単純なGPIOのものか、led_strip
を使うタイプか、選択ができそう。
あと、ひとつ前の画像にあるが、"The led_strip
is installed via component manager"と記載がある。自分でcomponent managerからのインストールが必要ということ?
ただ、このリンクからはどこにも飛べなかった。
led_strip
のインストール?
"ESP-IDF Examples"ウィンドウの左上を見ると、"ID Component Registry"というリンクがあり、ここをクリックすると、同名のタブが開いた。
コンポーネントの検索ができて、とりあえずターゲットESP32-C3で検索すると、上のほうに"espressif/led_strip"というのが出てきた。
これを開いてみると、インストールできそうなボタンが見つかった。
"Install"ボタンを押してみたが、特に反応が見られない。
改めて上記ページを見ると、"To add this component to your project, "という文言があるので、コンポーネントの追加はプロジェクトごとになるよう。
ということは、サンプルプロジェクトを作ったら、そこに自動で入れてくれていそうな気がする。
ので、おそらくここでのインストールは不要と思う。
サンプルプロジェクト選択
公式ドキュメントからのサンプルのほうが、M5Stampに合わせた設定をやってくれていそうで、スムーズにいきそうな気がするが、ESP-IDF Examplesからのほうが、自分で設定が必要なので、理解が深まりそうに思う。
ので、後者のサンプルを使ってみる。
サンプルプロジェクト作成
今までと同様に進める。
作成直後はこんな感じ。
今度は、"component manager"のリンクをクリックすると、"idf_component.yml"のタブが開いて、"espressif/led_strip"の記述があった。
これをもとに自動でライブラリをダウンロードしてくれるのか?
サンプルプロジェクト設定
まず下記3点は今までと同様に設定する。
- "ESP-IDF: Set Espressif device target"でターゲットを"esp32c3"に設定。
- "ESP-IDF: Select port to use (COM, tty, usbserial)"でデバイス接続したCOMポートを指定。(デバイス接続しておく必要がある)
- "ESP-IDF: Select Flash Method"で、書き込み方法を"UART"に指定。
最後のやつだけは、前回自分でコマンドを起動していなくて、書き込みの実行前にツールが出してきて設定待ち状態になった。
今回、あらかじめ設定しておいて、後のコマンド実行がスムーズになるようにする。
次、"ESP-IDF: SDK Configuration editor"コマンドで設定。
サンプルプロジェクトの設定を検索すると、LEDに関する設定が3つ出てきた。
ちなみに、設定項目の右の〇i をクリックすると、説明文が下に出てきた。
"Blink LED type"は、2通り出てきた。
デフォルトで"RMT-Addressable LED"になっていたので、そのままで。
それ以外、"Blink GPIO number"は、今回はGPIO2につながっているので、2にしておく。
"Blink period in ms"は、デフォルトの1000 (1秒周期で点滅)のままで。
これでSaveする。
ビルド、実行
"ESP-IDF: Build, Flash and start a monitor on your device"コマンドで。
ビルド成功、LEDも点滅した(^^)
コンソールにもメッセージ出てる。
以上
ちょっとずつM5Stampが分かるようになってるのでいい感じ。