marunomaruno-memo

marunomaruno-memo

leJOS 0.8.5 で超音波センサーが動かない -> ポート4以外に接続で動く

2009年11月17日 | LEGO
leJOS 0.8.5 で超音波センサーが動かない -> ポート4以外に接続で動く
=========================================================

leJOS 0.8.5 を使うと、超音波センサーからの値(getDistance()
メソッドの返り値)がつねに 255 のままになる。なぜだろう?

PC の環境は以下のとおり。
WindowsXP SP2
JavaSE1.6

leJOS のフォーラムには、以下の記事があった。
「.8.5 on NXT2.0- Ultrasonic/Color Sensor don't return
values.」
http://lejos.sourceforge.net/forum/viewtopic.php?t=1706
これによると、超音波センサーだけではなく、色センサーでも
同じ現象が起きているようだ。
この現象の対処は、ポート4 ではなく、別のポートにセンサー
をつなげればよい。

上記のプログラムも、ポート4 以外につなげたところ、センサー
は働くことを確認できた。


なお、NXT に、leJOS 0.8.0 に入れなおしたところ、超音波
センサーからの値はちゃんと読み取れるようになった。
ちなみに、このプログラムは leJOS 0.6.0、leJOS 0.7.0 のい
ずれでも動作する。


確認プログラムは以下のとおり。
---
import lejos.nxt.Button;
import lejos.nxt.LCD;
import lejos.nxt.Sound;
import lejos.nxt.UltrasonicSensor;

public class USSensor01 {

    public static void main(String[] args) {

        // 超音波センサーオブジェクトをポート4で生成する。
        UltrasonicSensor ultrasonicSensor = 
                     new UltrasonicSensor(SensorPort.S4);
        
        while (!Button.ESCAPE.isPressed()) {
            LCD.refresh();
            
            // 超音波センサーの値の表示
            LCD.drawString("US = " +
                     ultrasonicSensor.getDistance(), 0, 3); 
        }
        Sound.pause(1000);
    }
}
---


以上



最新の画像もっと見る

コメントを投稿