1
0

More than 1 year has passed since last update.

【Seeed UG 2022】micro:bit の傾きで LEDテープの色の色相を変化させる(Groveシールドなどを利用)

Last updated at Posted at 2022-12-23

はじめに

こちらは、Seeed UG Advent Calendar 2022 の 23日目の記事です。

具体的な内容は、以下の動画の通りで、少し補足すると、micro:bit の傾きを LEDテープの色の色相に対応させるという内容です。実装としては、micro:bit の x方向の傾きの値を、LEDテープの色に対応させるようなことを行っています。

利用した Seeed製品

この中で利用している Seeed製品は、以下となります。

●micro:bit用GroveシールドV2.0 - Seeed Studio

●Grove RGB LED テープ 防水 (WS2813 - 30 LED/m - 1m) - Seeed Studio

自分は、上記の製品を個別に買った形ではなく、以下のキットになっているものを買いました。

●micro:bit Grove 入門キット - Seeedウィキ(日本語版)

プログラム

MakeCode で実装した内容は、以下のとおりです。

今回のプログラム

ここから、少し実装した内容の補足を書きます。

拡張機能: pxt-neopixel

上記のプログラムでは、LEDテープを扱う部分で、以下の拡張機能を用いています。

●neopixel 0.7.5 (microsoft/pxt-neopixel)

今回使っている「micro:bit用Groveシールド・LED テープ」と、この拡張機能の組み合わせは、簡単に LEDテープを扱える組み合わせなので、個人的にすごくオススメです。

実装について

LEDテープの接続

LEDテープと Groveシールドは、Groveコネクタでの接続です。
Groveシールドに、Grove接続をするためのコネクタは複数ありますが、P0 が含まれるコネクタを使っています。

「最初だけ」の部分

「最初だけ」のブロック内の実装について、少し補足します。

4つのブロックのうち最初の 2つは、拡張機能「pxt-neopixel」のブロックを使っています。
自分が今回使っている LEDテープの LED の数 30個を指定して、その中の 10個だけを使うということをやるための変数も指定しています。

その後の2つは、この後に使うフラグ的な変数の設定と、視覚的に micro:bit のプログラムの処理が開始されたことが分かるようにする、micro:bit本体上の LED を光らせる処理です。

ボタンを押した時の処理

今回、micro:bit上のボタンを押した時の処理を、以下のように実装しました。

  • Aボタンを押す: フラグ的な変数を有効化する
  • Bボタンを押す: LEDテープ全てを消灯、フラグ的な変数をリセット
  • A・Bボタンを同時押し: 全ての LED をレインボーパターンで点灯

上記のフラグ的な変数を有効化した場合の処理は、この後に補足する「ずっと」の中の処理に関わってきます。

「ずっと」の部分

上で書いていた「フラグ的な変数」が有効化された場合、30個の LED のうちの 10個を HSL を使った色指定で点灯させるようにしています。

また、HSL の中の色相の値は、micro:bit の x方向の傾きによって動的に変化するようにしました。その際、傾きの値がとる範囲と色相の値の範囲が異なるため、この部分は値をマップする処理を入れています。

余談

昨年の Seeed UG のアドベントカレンダー用の記事でも、「micro:bit と Grove」という方向の内容で記事を書いていたというのが、検索して分かりました。

●【Seeed UG 2021】 micro:bit と Groveモジュールの話(2021年12月) - Qiita
 https://qiita.com/youtoy/items/25f9167f56343492b457

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0