如何控制加速度计并在Android遥控车中使用它

时间:2013-12-14 00:55:15

标签: android bluetooth accelerometer dtmf

我想用Android手机驾驶遥控车。 我使用蓝牙耳机作为接收器。 我的手机发送DTMF音,当它被耳机接收时,它被分析 微控制器打开/关闭汽车电机。

我用加速计检测手机动作......(前/左/右/后) 并且在每次运动中它都会播放特定的DTMF音色。

一切正常但有问题:

当传感器值连续变化时,音调会大量播放!

问题:我怎样才能让音调播放一次? (如代码中所示)

这是代码:

 X = (TextView)findViewById(R.id.x);
    Y = (TextView)findViewById(R.id.y);
    Z = (TextView)findViewById(R.id.z);

    toneGenerator= new ToneGenerator(AudioManager.STREAM_DTMF,ToneGenerator.MAX_VOLUME);



    sel = new SensorEventListener(){  
public void onAccuracyChanged(Sensor sensor, int accuracy) {

        }  

        public void onSensorChanged(SensorEvent event) {  

              float[] values = event.values; 
              float x = values[0];  
              float   xx = Math.round(x) ;
              float y = values[1]; 
              float   yy = Math.round(y) ;
              float z = values[2];  
              float   zz = Math.round(z) ;

              X.setText("x:" + xx);  

              Y.setText("y:" + yy);
              Z.setText("z:" + zz);

              if (xx>-1 & xx<1 & zz>3 & zz<8 ) {
                state.setText ("normal");

                toneGenerator.startTone(ToneGenerator.TONE_DTMF_5);


                   new CountDownTimer(50, 500) { 
                    public void onTick(long millisUntilFinished) { } 
                    public void onFinish() { 
                     toneGenerator.stopTone();
                  }}.start();
              }

              if (xx>-1 & xx<1 & zz>8 ) {

                state.setText ("front");

                     toneGenerator.startTone(ToneGenerator.TONE_DTMF_2);
                       new CountDownTimer(50, 500) { 
                        public void onTick(long millisUntilFinished) { } 
                        public void onFinish() { 
                         toneGenerator.stopTone();
                      }}.start();

任何建议???

1 个答案:

答案 0 :(得分:0)

这有点困难,因为人类不能忍受100%的身体任何部位。

您是否尝试将手机放在桌子上以查看其发生的情况?