
SPIKE用の「レゴ テクニック カラーセンサー」でRGB値を読み取る方法を紹介します。
この例ではSPIKEアプリ3またはSPIKEアプリLegacyのワードブロックを使用します。

RGB値を読むには「RAWカラー」ブロックを使います。「RAWカラー」は初期設定では隠れていますので、拡張機能ボタンを押して、「センサー拡張」を有効化しましょう。ついでに「ディスプレイ」も有効化しておきます。


プログラムの例です。カラーセンサーを読み取ったRGB値を画面に表示します。これは黄色いブロックを読み取った場合の値です。R=赤、G=緑、B=青という意味です。

レゴ製ブロック(赤/青/緑/黄/白/黒)のRGB値を読み取ってみました。ブロックとセンサーとの距離は1ポッチに調節しました。測定値をもとに、HSPというプログラミング環境で色を塗ってみた結果がこちらです。似ても似つかない色になってしまいました。驚きです。
RGB値から色を判定するプログラムは自分で作る必要があります。

センサーとブロックとの距離によって測定値が大きく変わります。これは距離を変えながら赤色のブロックを読み取った例です。

(2023/08/26追記)
RGBの割合(0~100%)から色を判定するプログラムです。この例では赤、緑、青しか判定しません。
アルゴリズムは他にも考えられるので、試してみましょう。