SunSPOTのアプリケーションを作ってみる

これですべての準備が整いました。
これから、LEDを光らせるSunSPOTのアプリケーションを作成していきたいと思います。


まずはNetBeansを起動してください。
そして、「ファイル」->「新規プロジェクト」をクリックします。


SunSPOTのプロジェクトには、「SunSPOT Application」と「SunSPOT Host Application」がありますが、
今回は「SunSPOT Application」を選択し、次へ進みます。



プロジェクトの設定です。適当なプロジェクト名をつけましょう。
今回は「LEDSample」としましたが、わかりやすい名前なら何でも構いません。
入力が終わったら「完了」を押すとプロジェクトが作成されます。



左のカラムに先程のプロジェクトが表示されます。
「+」をクリックして展開し、「src」->「org.sunspotwoeld」->「StartApplication.java」をダブルクリックしてソースコードを展開します。

今はなにも考えずに以下のプログラムをコピーしてStartApplication.javaにまるごと上書きしてください。

package org.sunspotworld;

import com.sun.spot.sensorboard.EDemoBoard;
import com.sun.spot.sensorboard.peripheral.ITriColorLED;
import com.sun.spot.util.*;

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class StartApplication extends MIDlet {

    private ITriColorLED [] leds = EDemoBoard.getInstance().getLEDs();

    protected void startApp() throws MIDletStateChangeException {
        leds[0].setRGB(100,0,0);                // LEDの色を指定(R,G,B)
        leds[3].setRGB(0,100,0);
        leds[7].setRGB(0,0,100);

        while(true) {
            leds[0].setOn();                   // LEDを光らせる
            leds[3].setOn();
            leds[7].setOn();
            Utils.sleep(500);                   // 500ミリ秒ウェイトする
            leds[0].setOff();                   // LEDを光らせる
            leds[3].setOff();
            leds[7].setOff();
            Utils.sleep(500);                   // 500ミリ秒ウェイトする
        }
    }

    protected void pauseApp() {
    }

    protected void destroyApp(boolean unconditional) throws MIDletStateChangeException {
    }

}

少し乱暴な説明ですがご了承を…。


プログラムの上書きが完了したら、プロジェクト名を右クリックして「Build Project + Deploy to Sun SPOT」をクリックします。
コンパイルが行われ、アプリケーションがSunSPOTに転送されます。

転送に失敗する時は?
転送に失敗する人は以下の原因が考えられます。

  • SunSPOTが接続されていない
  • SunSPOTのアップグレードが完了していない
    • 前の工程に戻ってSunSPOTのアップグレードを行ってください。
  • コンパイルに失敗している
    • プログラムに不備がないかチェックしてください

無事に転送が完了したら、SunSPOTのリセットボタンを押します。



このようにLEDが点灯していたら成功です。お疲れ様でした。


ソースコードを眺めながら、光の色やLEDの光る位置を変えるにはどうすればいいか考えてみましょう。