2008年 3月 06日 木曜日
[Sun SPOT で外付けLEDを点滅させよう(4)] おまけ。eDemoボード上のLEDも光らせてみる。
前回までで、Sun SPOTに外付けLEDを接続して点滅させてみました。
最後におまけとして、eDemoボード上のlEDを光らせるプログラムもご紹介します。この場合も、APIが提供されているのでとても簡単です。

Sun SPOTには LEDが8個付いているのですが、3色(RGB:24bit)のLED(写真をよく見ると、1つのLEDの中に赤、緑、青のLEDが入っています)なのでかなりの色が出せます。
今回は、500ms間隔でランダムな色に光らせるプログラムを書いてみたいと思います。
# プログラム
| package org.sunspotworld; import com.sun.spot.sensorboard.EDemoBoard; import com.sun.spot.sensorboard.peripheral.ITriColorLED; import com.sun.spot.util.*; import java.util.Random; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class StartApplication extends MIDlet { private ITriColorLED[] leds = EDemoBoard.getInstance().getLEDs(); private Random rand = new Random(); protected void startApp() throws MIDletStateChangeException { new BootloaderListener().start(); initLeds(); // 500ms間隔でLEDをランダムな色に光らせる while (true) { setNewColor(); Utils.sleep(500L); } } // LEDの初期化 private void initLeds() { for (int i = 0; i < leds.length; i++) { leds[i].setRGB(0, 0, 0); leds[i].setOn(); } } // LEDに新しい色を設定 private void setNewColor() { int r = rand.nextInt(256); // R(赤): 0 ~ 255 int g = rand.nextInt(256); // G(緑): 0 ~ 255 int b = rand.nextInt(256); // B(青): 0 ~ 255 for (int i = 0; i < leds.length; i++) { leds[i].setRGB(r, g, b); } } protected void pauseApp() { } protected void destroyApp(boolean arg0) throws MIDletStateChangeException { } } |
8つのSun SPOTを同時に光らせてみました。結構キレイです 
# タイマを使ってもいいですね
.... protected void startApp() throws MIDletStateChangeException { .... |
Posted at 02:54午前 3 06, 2008 by Shuichi Machida in SunSPOT | 投稿されたコメント[0]