Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加速度传感器在我的玩具车上的应用_Java_Android - Fatal编程技术网

Java 加速度传感器在我的玩具车上的应用

Java 加速度传感器在我的玩具车上的应用,java,android,Java,Android,我用我的android应用程序控制了一辆手工玩具车 我所做的控制是手动驾驶的,这意味着我通过向arduino发送字符来触摸按钮来移动汽车 现在,我想进入下一个阶段,使用加速计传感器。当我倾斜手机时,我已经获得了x、y、z轴的读数,但我不知道下一步该怎么做 我面临两个选择: 我是否应该将加速计值发送到arduino,并让arduino决定速度(通过PWM)和要启动的电机 使用android studio比较轴的值,例如,如果x轴大于5,应用程序将向arduino发送一个字符,使汽车以所需速度前进。

我用我的android应用程序控制了一辆手工玩具车

我所做的控制是手动驾驶的,这意味着我通过向arduino发送字符来触摸按钮来移动汽车

现在,我想进入下一个阶段,使用加速计传感器。当我倾斜手机时,我已经获得了x、y、z轴的读数,但我不知道下一步该怎么做

我面临两个选择:

  • 我是否应该将加速计值发送到arduino,并让arduino决定速度(通过PWM)和要启动的电机
  • 使用android studio比较轴的值,例如,如果x轴大于5,应用程序将向arduino发送一个字符,使汽车以所需速度前进。 这是我用来获取值的代码,最后我尝试将字符“F”发送到arduino以使汽车向前移动,但什么也没发生。我知道发送代码没有问题,因为我在手动驾驶活动中使用了相同的代码(使用按钮)
  • 代码
    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
    
        TextView tvX= (TextView)findViewById(R.id.x_axis);
        TextView tvY= (TextView)findViewById(R.id.y_axis);
        TextView tvZ= (TextView)findViewById(R.id.z_axis);
    
        Sensor mySensor = sensorEvent.sensor;
        if (mySensor.getType() == Sensor.TYPE_ACCELEROMETER) {
            float x = sensorEvent.values[0];
            float y = sensorEvent.values[1];
            float z = sensorEvent.values[2];
            last_x = x;
            last_y = y;
            last_z = z;
    
            tvX.setText(Float.toString(last_x));
            tvY.setText(Float.toString(last_y));
            tvZ.setText(Float.toString(last_z));
    
            if(last_x > 5f){
                if(btSocket!=null){
                    try
                    {
                        btSocket.getOutputStream().write("F".toString().getBytes());
                    }
                    catch (IOException e)
                    {
                        msg("Error");
                    }
                }
            }
        }
    }