程式下載請按我
這是力維寫的簡易倒車雷達程式, 將超音波感應器值轉換為發音頻率, 和NXT內建的 Try Ultrasonic功能是一樣的。 但在距離極小以及極大的時候, 超音波感應器本身的雜訊還不小, 所以我們用8個變數來存放距離值後取平均, 這樣可以讓整組data圖表平滑一點。 各位朋友可以實際操作看看。
這是力維寫的簡易倒車雷達程式, 將超音波感應器值轉換為發音頻率, 和NXT內建的 Try Ultrasonic功能是一樣的。 但在距離極小以及極大的時候, 超音波感應器本身的雜訊還不小, 所以我們用8個變數來存放距離值後取平均, 這樣可以讓整組data圖表平滑一點。 各位朋友可以實際操作看看。
還有第二個使用陣列的版本, 請按我
============================================
import lejos.nxt.*;
import lejos.util.Delay;
class radar_v1_0
{
public static void main(String args[])
{
Button.ESCAPE. addButtonListener(new ButtonListener()
{
public void buttonPressed(Button b){System.exit(1);}
public void buttonReleased(Button b){}
}); //定義NXT灰色鍵可中斷程式
UltrasonicSensor us = new UltrasonicSensor(SensorPort. S1); //宣告1號超音波感應器
int distance1=0,distance2=0, distance3=0,distance4=0, distance5=0,distance6=0, distance7=0,distance8=0;
while(true)
{
distance8 = distance7;
distance7 = distance6;
distance6 = distance5;
distance5 = distance4;
distance4 = distance3;
distance3 = distance2;
distance2 = distance1;
distance1 = us.getDistance();
Sound.playTone((distance1+ distance2+distance3+distance4+ distance5+distance6+distance7+ distance8)/8*10,100); //將8個距離值平均後轉為發音頻率
LCD.drawInt((distance1+ distance2+distance3+distance4+ distance5+distance6+distance7+ distance8)/8,0,0); //顯示平均值
Delay.msDelay(100);
LCD.clear();
}
}
}