3.実際につくってみよう!-LEDを点灯させる-

 ARDUINOの公式サイトから、ソフトウェアをダウンロードする。
 URL : http://arduino.cc/en/
 ダウンロードが完了し、ARDUINOを立ち上げるとコードエディターが起動する。
 コードエディターに下のように記述し、ARDUINOは右図のようにLEDを設置する。


4.LEDを点滅させる

次はブレッドボードを使い、LEDを点滅させる。
上記では抵抗を使っていないが、LEDの寿命のために基本的に抵抗は必ず使う。
ブレッドボードは、縦に電流が流れているので、それを意識して13番からGNDに流れるように組む。



6.光センサーを使ってみる

光センサーを使い、光のしきい値より明るいとLEDが消灯、暗いと点灯する仕組みをつくる。
光センサーを指や手で覆って、暗いとき明るい時のLEDの変化をみる。

7.サーボを使ってみる

さきほどの光センサーを使いサーボを動かしてみる。サーボの白線は、デジタルポートのどれか(この場合は0番)に赤い線は、5Vと光センサーの間に、黒い線はGNDに設置する。動きの仕組みは、光センサーの0〜1023の値をサーボの0度〜180度に変換している。

8.ArduinoとProcessingを連携 -センサーの値を送信する-

ProcessingからArduinoの情報を取得して、リアルタイムに情報を視覚化する。
Arduinoのアナログインにセンサーからの情報を入力する。
センサーは、光センサーを使用する。
今回は、Serial通信を使って連携を行なう。


・配線例
【Arduino】
・ArduinoのAnalog in 0に抵抗値を接続
・USBケーブルで、ArduinoをPCに接続
・Analog in の値を取得 – analogRead()
・シリアルで値を送信 – Serial.print()


【Arduino】
・ArduinoのAnalog in 0に抵抗値を接続
・USBケーブルで、ArduinoをPCに接続
・Analog in の値を取得 – analogRead()
・シリアルで値を送信 – Serial.print()

【Arduino側のプログラム】
・setup() – 初期設定
・シリアル通信を開始
・loop() – メインループ
・Analog in 0 の値を読み取る
・Analog in の値の範囲は、0〜1024
・Serialで一度に出力できる範囲は、0〜255 (1 BYTE)
・入力値を、0〜255の範囲にマッピング (map関数)
・シリアルで補正した値を送信
・一定間隔静止して、繰り返す


【Processing】
・シリアルポートに接続
・シリアルポートから値を読み取る
・光センサーの値を変化させると、Processingモニター上で背景色、描画色、円の大きさが変化する

【Processing側プログラム】
・setup() – 初期設定
・シリアルポートを設定
・Serialクラスを初期化
・serialEvent() – シリアルイベント
・シリアル通信でデータを受信した際に発生するイベント
・read() で値を取得する (0〜255)
・取得した値をモニタする – println()
・draw() – 描画
・取得した値を背景のグレースケールのレベルに対応させている


完成!光センサーの値を変化させると、背景色の濃度が変化する






















9.ArduinoとProcessingの連携2 -複数のセンサーの値を送信する-


先程と同様にArduinoに読み込んだ2つのアナログセンサーの値を、Processingに送信して視覚化してみる。
Arduino側の配線は、2つのアナログ入力(Analog Pin 0と1)を使用。



【Arduino側プログラム】
センサーを複数扱うには配列を使います。
その配列の中にAnalog Pin 0と1を格納します。
【Processing側プログラム】
今回のArduinoとProcessingの通信では、まず実際のセンサーの値を送る前に、Processingからデータを送って欲しいというきっかけの合図を送る仕組みになっています。今回のサンプルでは任意の一文字(例えば’A'など)をArduinoに送ると、通信の開始のきっかけになります。ひとつのきっかけでArduinoからセンサーの数だけデータをコンマ区切りで送出し、最後に改行コードをつけます。Processingはこの一連のメッセージを受信して、受信が完了したら次のデータを要求するため再度任意の文字列(例えば’A'など)を送信します。
プログラムを実行すると、センサーの値で大きさと明るさの変化する円が描かれます。

- Copyright © ARDUINO LESSON - Skyblue - Powered by Blogger - Designed by Johanes Djogan -