
*目的
OSOYOO アルドゥイーノ用Magic I/O シールドは、初心者のための強力なボードです。このMagicボードを使えば、様々なセンサーやアクチュエーターを今までよりもずっと簡単に接続することができます。
このレッスンでは、 UNOボードで動作するOSOYOO light detectモジュールの使い方を紹介します。このセンサーの出力をモニターして、アルドゥイーノが明暗を知ることができるようにします。光が一定レベル以下になると、アルドゥイーノはLEDを点灯させます。

*モジュールについて
OSOYOO Light Detectモジュールは、フォトセルを内蔵しており、DIYプロジェクトから産業オートメーションまで、幅広い用途で一般的に使用されているセンサーです。一般的に、LDRまたはフォトレジスターの抵抗は、周囲の光の強さが増すと減少します
つまり、このモジュールからの出力信号は、明るい場所では「HIGH」、暗い場所では「LOW」となります。フォトセルは、光を検知するためのセンサーです。フォトセルは、光を感知するセンサーで、小型で安価、低消費電力で使いやすく、消耗しないという特徴があります。そのため、玩具やガジェット、家電製品などによく搭載されています。CdSセル(硫化カドミウム)、LDR(Light-Dependent Resistors)、フォトレジスターなどと呼ばれることもあります
このように、光の量をルクスやミリカンデラで正確に判断することはできません。暗いところでは、フォトレジスタの抵抗値は数MΩにもなりますが、明るいところでは数百Ωにもなります。暗いところでは、フォトレジスターの抵抗値は数MΩにもなるが、明るいところでは、数百Ωにもなる。フォトセルは非常に低コストで、サイズや仕様も豊富で入手しやすいが、非常に精度が悪い。同じロットのフォトセルセンサーであっても、それぞれのフォトセルセンサーは他のフォトセルセンサーとは少しずつ異なる動作をします。そのばらつきは、50%以上になることもあります。このような理由から、フォトセルセンサーは「変化」には使用しないでください。
このグラフは、光量の違いによるセンサーの抵抗値の目安を示しています。

光センサーは、私たちの日常生活の中でよく見られ、主にインテリジェントなスイッチに使用され、一般的な電子設計にも使用されていますが、より簡単かつ効果的にするために、私たちは対応するモジュールを提供しています。光センサーは半導体です。カメラ、ガーデンソーラーライト、芝生ランプ、貨幣検知器、クオーツ時計、オルゴール、ギフトボックス、ミニナイトライト、音と光のコントロールスイッチなどの自動制御スイッチ分野で広く使用されています。

- OSOYOO UNOボード(アルドゥイーノUNO rev.3完全対応)×1
- OSOYOO Magic I/O Shield for アルドゥイーノ×1
- Light Detect Module×1
- ED Module×1
- OSOYOO 3-pin PNPケーブル×2
- USBケーブル×1
- PC×1

まず、Osoyoo Magic I/OシールドをUNOボードに装着します。

次に、Magic I/Oシールドのポートに3ピンPNPケーブル2本を使って、以下のようにモジュールを接続します。
LED モジュール – D9
フォトセンサーモジュール – A0


*コードについて
*注意:アルドゥイーノにスケッチコードをアップロードする際は、バッテリーをオフにするか、電源アダプターを抜いてください。
上記の操作が完了したら、アルドゥイーノボードとコンピュータをUSBケーブルで接続します。 緑色LEDが点灯(PWR表示)します、
グラフィカル・プログラミング・ソフトウェア「Mixly」を開きます。Mixlyが英語でない場合は、まず言語を変更してください。

You can download the code directly, then click “Open” in Mixly to choose the code you download:
Or you can do as following operations:
コードを直接ダウンロードして、Mixlyの「開く」をクリックして、ダウンロードしたコードを選択することができます。
- Click “SerialPort” block; “SerialPort “ブロックをクリック
- Drag “Serial printIn” to the blank space; “Serial printIn “を空白にドラッグ
- Click “In/Out” block; “In/Out “ブ ロックをクリック
- Drag “AnalogWrite PIN#” to fit with “Serial printIn” block;”AnalogWrite PIN#”を “Serial printIn “ブロックに合わせてドラッグ
- Click “Control” block;”Control “ブロックをクリック
- Drag “if do” block under “Serial printIn” block, fit the two blocks; “Serial printIn “ブロックの下にドラッグし、2つのブロックに合わせる
- Click the setting icon in “if do” block, then you’ll see branch blocks; “if do “ブロックの設定アイコンをクリックすると、分岐ブロックが表示される
- Drag “else” block to fit “if“block; “else “ブロックを “if “ブロックに合わせてドラッグ
- Click the setting icon in “if do else” block to close the branch blocks. if do else “ブロックの設定アイコンをクリックし、分岐ブロックを閉じる。




Then follow the below operations:
- Click “Logic” block; “Logic”ブロックをクリックします
- Drag the first block “=” to fit “if do else” block, and change”=” to “>“; 最初のブロック「=」を「ifdoelse」ブロックに合わせてドラッグし、「=」を「>」に変更します。
- Click “In/Out” block; “In / Out”ブロックをクリックします
- Drag “AnalogWrite PIN#” to fit the left slot of “=” block; ” AnalogWritePIN#”をドラッグして、”=”ブロックの左側のスロットに合わせます
- Click “Math” block; “Math” ブロックをクリックします。
- Drag the first block “0” to fit the right slot of “=” block, and change “0” to “500” . 最初のブロック”0″をドラッグして”=”ブロックの右側のスロットに合わせ、”0″を”500″に変更します。



- Click “In/Out” block; “In / Out”ブロックをクリックします。
- Drag “DigitalWrite PIN#” to fit “if do else” block, and edit the parameter to “DigitalWrite PIN# 9 Stat HIGH“; “DigitalWrite PIN #” ドラック、”If do else”ブロックに合わせる、”DigitalWrite PIN#9”のパラメータのスタットHIGHに変更する。
- lick “Control” block; ”Control”ブロックをクリック
- Drag “Delay” block under “DigitalWrite PIN#” block, fit the two blocks, and edit the parameter to “Delay ms 3000“; “Delay”ブロックを”DigitalWrite PIN#”ブロックの下にドラック、2つのブロックに合わせ、”Delay”のパラメータ ms を”3000″に変更する
- Click “In/Out” block; ”In/Out”ブロックをクリック
- Drag “DigitalWrite PIN#” to fit “if do else” block, and edit the parameter to “DigitalWrite PIN# 9 S ”DigitalWrite PIN#”ブロックをドラックして”if do else”ブロックに合わせて 、 ”DigitalWrite PIN#”パラメータ9の Statを”LOW”に変更する。



この実験では、フォトレジスターをアルドゥイーノのアナログ入力に接続し、analogRead()関数で値を読み取ります。アルドゥイーノが読み取った値に応じて、プログラムは9番ピンをHIGHまたはLOWに設定し、LEDナイトライトを点灯または消灯させます。しきい値は500です。読み取ったアナログ値が500未満の場合、アルドゥイーノはLEDをオンにします。
プログラム全体のブロックは以下の通りです。

上記の操作が完了したら、次のようにします。
- プログラムが完了したらSaveをクリックします。
- ボードタイプとシリアルポートを選択します。UNOボードの場合はアルドゥイーノ/Genuino Unoを、Mega2560の場合はアルドゥイーノ/Genuino MegaまたはMega2560を選択してください。
- COMメニューからアルドゥイーノボードのシリアルデバイスを選択してください。これを確認するには、アルドゥイーノボードを外してメニューを再度開くと、消えた項目がアルドゥイーノボードになっているはずです。
- 次に、コードをアップロードします、もしアップロードに失敗した場合は、プロンプトに従ってコードをチェックし、修正してください。
- 最後に、ステータスが ”Upload success!”に変ります。


*プレイのしかた
部屋が明るい場合、LEDが点灯しないかもしれません、その時はフォトレジスターを覆って点灯させてみてください。カバーを外して、再び消灯するかどうかを観察してください。
同時に、シリアルモニターを開くと、以下のような出力データが得られます

Note:
*注意:シリアルモニターを使用する場合は、ボーレート(baudrate: )の設定がコードの定義と同じ通信速度であることを確認してください。
