2016-09-04 6 views
0

나는 (가속도계를 통해) 손 떨림을 감지하고 흔들림 강도에 따라 진동 주파수를 변조하는 안드로이드 응용 프로그램을 개발 중입니다.Android 주파수 진동

나는 표준 편차를 통해 진동 강도 (아래 코드) 얻을 수 있어요 :

public void regressionCalc() { 
    //Calculating sum values 
    double sumZ; 
    double meanZ; 
    sumZ = 0; 

    final TextView accZText = (TextView) findViewById(R.id.accelText); 
    accZText.setText(""); 

    for (int r = 0; r < recArray.length; r++) { 
     sumZ = sumZ + recArray[r]; 
    } 
    meanZ = sumZ/recArray.length; 

    //Calculating standard deviation 
    double sumXu2; //this represents E((x-xbar)^2) 
    sumXu2 = 0; 
    for (int x = 0; x < recArray.length; x++) { 
     sumXu2 += ((recArray[x]-meanZ)*(recArray[x]-meanZ)); 
    } 
    double SD; 
    SD = Math.sqrt(sumXu2/(recArray.length-1)); 
    tremorIntensity = SD; 

    accZText.setText(String.format("%.2f", tremorIntensity) + ""); 
    accZText.setTextSize(80); 
} 

을하지만 진동과 ​​함께 작동하는 방법을 모르겠어요. 전화 회귀 강도가 회귀 값을 기준으로 감소 또는 증가하고 싶습니다.

누구나 저에게 올바른 길을 가르쳐 줄 수 있습니까? 미리 감사드립니다.

+0

가능한 복제 [안드로이드 장치가 진동을하는 방법?] (http://stackoverflow.com/questions/ 13950338/how-to-make-an-android-device-vibrate) –

+0

아니요, 진동 강도에 대한 변조 주파수에 대해 말하고 있기 때문에 다릅니다. 당신이 나를 도울 수? –

답변

0

내 댓글에 대답은 * 패턴에 따라 장치 버즈를 만드는 방법을 보여줍니다 : 이미 강도를 흔들어 값을 가지고 있기 때문에, 문제의 나머지는 당신의 강도 값을 사용

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
long[] pattern = {0, 100, 1000, 300, 200, 100, 500, 200, 100}; 
v.vibrate(pattern, -1); 

pattern에 대한 값을 생성하십시오.

하드웨어 수준에서 부저는 그냥 켜기 또는 끄기이므로 pattern의 변화를 가장 잘 시뮬레이트하는 데 어떤 변경이 시행 착오인지 판단해야합니다. 그것은 tremorIntensity에 비례하여 각 on 값을 만드는 것처럼 간단 할 수 있습니다

long[] pattern = {0, tremorItensity * factor, 100} 

* Here it is.

+0

먼저 귀하의 회신에 감사드립니다. 사실 나는 하나의 벨 (2 또는 5 또는 12)을 가지고 있으며이 값에 따라 전화를 진동시켜야합니다. 손이 강하게 흔들리고 느린 것을 상상해보십시오. 진동은 손 떨림의 강도에 따라 주파수를 점차 감소시켜야합니다. 이해가 되니? –

+0

그것은 일종의 의미를 가지지 만 어떤 패턴이 원하는 효과를 창출하는지는 알지 못합니다.이 효과는 질문에서 강도 또는 빈도로 다양하게 설명됩니다. 서로 다른 패턴으로 실험 해보십시오. –

+0

정확하게, 정확한 패턴을 알고 싶습니다. 그리고 당신의 도움을 기대하고 있습니다. –