今回はメディアアート入門ということで、電子工作、フィジカル・コンピューティングとして私も最初に行ったArduinoを使って、LEDを光らせてみよう!
いわゆる「Lチカ」です!!
メディアアートはやってみたいが、電子工作などやったことがないArduinoを初めて触るという方でもわかるような記事になっています。
美術館でも街中でも 、メディアアートが最近よく目に見かけるようになってきました。
メディアアートに興味があり、見るだけでなく自分でも作ってみたいという方向けに、私自身試行錯誤しつつ勉強しながら、皆様のお役に立てるようにと思っています。
【用意するもの】
・Arduino Uno R3
・Arduino IDE(統合開発環境)
下記サイトからダウンロードしてください。
Arduino Uno R3 (ボード)入手先(スイッチサイエンス)
・赤いLED
秋月電子
LEDを点滅させよう!(「Blinking LED」)
まずは、Arduino UnoボードとArduino LEDが正常に動作するかテストしてみる。
そのための一番初めに実行すべきプログラムがこれ、「Lチカ」です。
Arduinoに直接挿したLEDをチカチカと点灯させてみます。
<発光ダイオード(LED)について>
「K」の文字がある短いリード線を<カソード>、
「A」の文字があるながいリード線を<アノード>といいます。
カソード(「K」短い方)はマイナス側(GND)に、アノード(「A」長い方)はプラス側に接続する。
*「GND」………グラウンド。ゼロ地点のこと。電流は高いところから低いところへ流れるイメージ。電池のマイナス側のこと。
LEDをArduino Unoボードに接続したら、コードを書いてArduinoにすべきことを伝えます。コードはマイコンに与える命令のリストです。
*ここでは、プログラム全体が「スケッチ」、それを構成する一行あるいは複数行が「コード」という捉え方をします。
ここ(上の図)にスケッチを描いていきます。
Basics / Blink(Lチカのスケッチ)
//LEDに接続したピンの番号
int ledPin = 13;
//setupは最初に一度だけ実行される
void setup() {
//LEDに接続したピンのモードをOUTPUT(出力)にセット
pinMode(ledPin, OUTPUT);
}
//loopはArduinoボードの電源がオンである限り、繰り返し実行される
void loop() {
//LEDに接続したピンの値をHIGHにセットしてLEDを点灯
digitalWrite(ledPin, HIGH);
//1000ms(1s)待つ
delay(1000);
//LEDに接続したピンの値をLOWにセットしてLEDを消灯
digitalWrite(ledPin, LOW);
//1000ms(1s)待つ
delay(1000);
}
上のコードが書き込むスケッチです。
// はメモでコードとしては無視されます。
一行ずつのコードを解説
それでは一行ずつコードを説明します。
int ledPin = 13;
LEDに接続したピンの番号は13ですよ、ということ。以下 “ ledPin’” と出てきたら、” 13” を置き換えていると考える。
void setup()
この行は、次のブロック(「{ 」 から 「}」 まで)が「setup()」という名前で呼び出されていることをArduinoに告げています。
“ setup()” は最初に一回だけ実行される。
{
この波カッコでコードの「ブロック」が始まる。
pinMode(LED, OUTPUT); //デジタルピン(13=LED)を出力に設定
pinMode()
はピンをどう設定するかをArduinoに伝えます。
デジタルピンは入力(INPUT)か出力(OUTPUT)のどちらかとして使えます。
この例の場合、LEDをコントロールするために出力ピンが必要なので、LEDが接続されているピンの番号と「モード」(OUTPUT)を指定しました。
pinModeは関数です。
関数の後ろのカッコの中に置かれる言葉や数字を<引数>と言います。
INPUTとOUTPUTはArduino言語の定数です。
定数は変数と同じように値を割り当てて使いますが、一度設定したら途中で変更することができません。
}
この閉じ波カッコは setup() 関数の終わりを示しています。
void loop()
{
loop () は、あなたのインタラクティブ・デバイスの振る舞いを決める部分です。
loop () はボードの電源が切られるまで、何度も繰り返し実行される。
DigitalWrite(LED, HIGH); //LEDを点ける
“ DigitalWrite” は出力に設定されたピンをオンまたはオフにする。 最初の引数(LED)は、どのピンをオンオフするか特定するためのものです。 (ledPin という定数がピン番号の13に置き換わる) 二つ目の引数で、ピンをオン(HIGH)にするか、オフ(LOW)にするかを指定しています。
delay(1000);
“delay()” は引数で指定したmsだけマイコンをじっと座らせます(停止させる)。 msは千分の1秒だから 、1000msは1秒。LEDは1秒停止する。
digitalWrite(ledPin, LOW);
LEDをオフにする。
delay(1000);
1秒待つ(停止する)。
}
loop関数の終わりを表す波カッコ。 ループの頭に戻る。
まとめ
どうでしたか?
LEDはうまく点滅したでしょうか? 今回は、あまり細かいことは気にせずにおおまかにどうなってるかを理解できらばいいです。 私自身最初にLEDがついた時はとても感動しました。 それでは、また続きますね。
コメント