5.温度メータを作ろう
・「棒グラフで点灯する」ブロックのヒント
このブロックは、LED点灯数を0個から8個の範囲で決定するだけなので、色を変更することはできません。色は固定値で、数の大きさによって青から赤色に自動設定されます。
そのため、点灯する場所のLEDは常に同じ色になります。
・講座では4℃単位の点灯ですが、以下のようにすると18~25℃まで1℃単位の点灯になります。
・「緑で点灯する」ブロックのヒント
このブロックは、LED色を自在に変えることはできますが、全部のLEDが点灯してしまいます。
NeoPixelには「n番目のLEDをc色に設定する」と「設定した色で点灯する」ブロックを組み合わせないと、LED色と位置を決められません。
そのため、棒グラフのようなLED表示をするためには、ブロック単体で設定することはできず、そのためのプログラムを組まなくてはなりません。
フルカラーLEDの使い方(色の作り方)は、こちらでも紹介しています。
・チャレンジのヒント
サーボモータは左回りで角度を決めています。そのため、「温度 × 3 + 30 = サーボ角度」で求めた値は、左回りのメモリになってしまいます。
では、市販の温度計と同じように、右回りで針を示すようにするにはどうすればよいでしょうか。
答えは簡単で、角度を180から引き算すればよいだけなのです。
180 ー (温度 × 3 + 30) = サーボ角度
・サーボモーターのヒント
micro:bitが標準で利用できるのは、ホビー用のサーボモーターです。PWM制御で角度を決める方式で、通常は0~180度の回転ができます。中には0~270度や360度回転(モーターのように回転)できるものもあります。
「サーボを出力する端子」ブロックを実行した後(サーボモーターにPWM信号が入力されている間)は、決まった角度が維持され、外から手で動かそうとしても元に戻る力が働きます。これをキャンセルするには、「デジタルで出力する端子」または「アナログで出力する端子」ブロックで、0を実行します。
また、回転速度はサーボモーター部品毎に決まっており、ブロックの指定で制御することはできません。