ナイトライトを作る - Wio Terminal
このレッスンのこの部分では、Wio TerminalにLEDを追加し、それを使ってナイトライトを作成します。
ハードウェア
ナイトライトにはアクチュエータが必要です。
アクチュエータはLEDであり、電流が流れると光を放つ発光ダイオードです。これは2つの状態、オンとオフを持つデジタルアクチュエータです。1の値を送るとLEDが点灯し、0の値を送ると消灯します。これは外部のGroveアクチュエータであり、Wio Terminalに接続する必要があります。
ナイトライトのロジックは擬似コードで次のようになります:
Check the light level.
If the light is less than 300
Turn the LED on
Otherwise
Turn the LED off
LEDを接続する
Grove LEDは、LEDの選択肢があるモジュールとして提供されており、色を選ぶことができます。
タスク - LEDを接続する
LEDを接続します。
-
お気に入りのLEDを選び、LEDモジュールの2つの穴に脚を挿入します。
LEDは発光ダイオードであり、ダイオードは一方向にしか電流を流すことができない電子デバイスです。つまり、LEDは正しい向きで接続する必要があります。そうでないと動作しません。
LEDの脚の一方は正極ピンで、もう一方は負極ピンです。LEDは完全に丸いわけではなく、一方が少し平らになっています。平らな側が負極ピンです。LEDをモジュールに接続する際には、丸い側のピンがモジュールの外側にある**+**とマークされたソケットに接続され、平らな側がモジュールの中央に近いソケットに接続されるようにしてください。
-
LEDモジュールには、明るさを調整するためのスピンボタンがあります。小さなプラスドライバーを使用して、反時計回りに回して最大まで回してください。
-
Groveケーブルの一端をLEDモジュールのソケットに挿入します。これは一方向にしか挿入できません。
-
Wio Terminalをコンピュータや他の電源から切断した状態で、Groveケーブルのもう一方の端をWio Terminalの右側のGroveソケットに接続します。これは電源ボタンから最も遠いソケットです。
💁 右側のGroveソケットはアナログまたはデジタルセンサーおよびアクチュエータと一緒に使用できます。左側のソケットはI2Cおよびデジタルセンサーおよびアクチュエータ専用です。I2Cは後のレッスンで取り上げます。
ナイトライトをプログラムする
ナイトライトは、内蔵の光センサーとGrove LEDを使用してプログラムできます。
タスク - ナイトライトをプログラムする
ナイトライトをプログラムします。
-
この課題の前の部分で作成したVS Codeのナイトライトプロジェクトを開きます。
-
setup
関数の最後に次の行を追加します:pinMode(D0, OUTPUT);
この行は、Groveポートを介してLEDと通信するために使用されるピンを設定します。
D0
ピンは右側のGroveソケットのデジタルピンです。このピンはOUTPUT
に設定されており、アクチュエータに接続され、データがピンに書き込まれます。 -
ループ関数の
delay
の直前に次のコードを追加します:if (light < 300)
{
digitalWrite(D0, HIGH);
}
else
{
digitalWrite(D0, LOW);
}このコードは
light
値をチェックします。これが300未満の場合、D0
デジタルピンにHIGH
値を送信します。このHIGH
は1の値であり、LEDを点灯させます。光が300以上の場合、ピンに0の値であるLOW
値が送信され、LEDが消灯します。💁 アクチュエータにデジタル値を送信する場合、LOW値は0Vであり、HIGH値はデバイスの最大電圧です。Wio Terminalの場合、HIGH電圧は3.3Vです。
-
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 -
光センサーを覆ったり外したりします。光レベルが300以下の場合、LEDが点灯し、光レベルが300を超えるとLEDが消灯することに気づくでしょう。
💁 このコードはcode-actuator/wio-terminalフォルダにあります。
😀 ナイトライトプログラムは成功しました!