光 Advent Calendar 2014 5日目の記事です。
とあるWeb制作者の方が「Nexus 7 の対応は闇だ」と話していたので、光で照らすことにしました。
※これはネタ記事です。デザインや Web の技術とは 1px も関係ありません。
用意するもの
- Nexus 7(闇)
- 白色LED(光)
- PocketDuino(Arduino Uno でも可)
PocketDuino
Arduino / PocketDuinoとは
Arduino は、初心者向けマイコンボードの一種で、C++言語風の「Arduino言語」または「スケッチ」とよばれるプログラムを PC や Mac から USB 経由で書き込み、実行することができるものです。
参考: 最近話題の『Arduino』とは一体何なの?何ができるの?まとめ | IDEA HACK
PocketDuino は、Arduino 互換機の一種です。
Android 上で「Arduino言語」を書いたり、ファームウェアをアップデートしたり、センサーの値を受け取って Android アプリに渡したりできます。
PocketDuino は、まだ市販されていませんが、先日の Maker Faire Tokyo 2014 で販売されていたものを購入しました。
今回は、Nexus 7(闇)の電力を使って、白色LED(光)で照らすことにしました。
プログラム
まずは、「Arduino言語」または「スケッチ」とよばれるプログラムを書きます。
Arduino IDE とよばれる開発環境には、最初から LED を点滅させるプログラムが最初から入っていますので、そちらを少しだけ書き換えて使います。
// LED connected to digital pin 2
const int led = 2;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
2行目で、定数 led に、2 を代入していますが、これは PocketDuino のデジタルピン 2 に LED を接続するということです。
変数でも構いませんが、プログラムの実行中に LED を別のピンに差し替えることはないため定数にしています。
12行目の digitalWrite(led, HIGH) で、LED を点灯させ、次の行の delay(1000) で1秒待たせています(つまり、LED は1秒点灯し続けます)。
14行目の digitalWrite(led, LOW) で LED を消灯させ、次の行の delay(1000) で1秒待たせています(つまり、LED は1秒消灯し続けます)。
12〜15行目は void loop() {} で囲まれているため、12〜15行目はひたすらループします。
つまり、1秒ごとに LED が点灯したり消灯したりという動作を繰り返します。
セットアップ
Mac に PocketDuino を USB 接続し、Arduino IDE で (→) ボタンを押すと、プログラムがコンパイルされて PocketDuino に書き込まれます。
LED の長い方の脚を PocketDuino の2番ピンに、短い方の脚を PocketDuino の GND と書かれているピンに差し込みます。
PocketDuino の USB 端子を、Nexus 7 下部の USB 端子に差し込みます。
すると、Nexus 7 から PocketDuino に電力が供給され、LED が点滅を始めます。
明日の 光 Advent Calendar 2014 は KanaLier さんです。