センサーを追加する - Wio Terminal
このレッスンのこの部分では、Wio Terminalの光センサーを使用します。
ハードウェア
このレッスンのセンサーは、光を電気信号に変換するフォトダイオードを使用する光センサーです。これはアナログセンサーで、0から1,023の整数値を送信し、標準的な測定単位(ルクスなど)に対応しない相対的な光の量を示します。
光センサーはWio Terminalに内蔵されており、背面の透明なプラスチック窓を通して見ることができます。
光センサーをプログラムする
デバイスは内蔵の光センサーを使用するようにプログラムできます。
タスク
デバイスをプログラムします。
-
前の課題の部分で作成したVS Codeのナイトライトプロジェクトを開きます。
-
setup
関数の最後に次の行を追加します。pinMode(WIO_LIGHT, INPUT);
この行は、センサーハードウェアと通信するために使用されるピンを設定します。
WIO_LIGHT
ピンは、オンボード光センサーに接続されたGPIOピンの番号です。このピンはINPUT
に設定されており、センサーに接続され、ピンからデータが読み取られます。 -
loop
関数の内容を削除します。 -
空になった
loop
関数に次のコードを追加します。int light = analogRead(WIO_LIGHT);
Serial.print("Light value: ");
Serial.println(light);このコードは、
WIO_LIGHT
ピンからアナログ値を読み取ります。これは、オンボード光センサーから0-1,023の値を読み取ります。この値はシリアルポートに送信され、このコードが実行されているときにシリアルモニターで読み取ることができます。Serial.print
は改行なしでテキストを書き込むため、各行はLight value:
で始まり、実際の光の値で終わります。 -
光レベルを継続的にチェックする必要がないため、
loop
の最後に1秒(1,000ms)の小さな遅延を追加します。遅延はデバイスの消費電力を減らします。delay(1000);
-
Wio Terminalをコンピュータに再接続し、前と同じように新しいコードをアップロードします。
-
シリアルモニターを接続します。光の値がターミナルに出力されます。Wio Terminalの背面の光センサーを覆ったり外したりすると、値が変わります。
> Executing task: platformio device monitor <
--- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at http://bit.ly/pio-monitor-filters
--- Miniterm on /dev/cu.usbmodem101 9600,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Light value: 4
Light value: 5
Light value: 4
Light value: 158
Light value: 343
Light value: 348
Light value: 344
💁 このコードはcode-sensor/wio-terminalフォルダーにあります。
😀 ナイトライトプログラムにセンサーを追加することに成功しました!