yes, my device wasn't entirely horizontal or vertical. However what I am looking for is function that will give me the same value when the device is not in movement, but in any position, it can be on a slant, it can be almost vertically, or in unknown position in some pocket, but without movement.
The problem is that I would like to be able to create a universal function here, that would fit all accelerometer-enabled phones, not my device. I guess I will let the user calibrate it by putting it horizontal without movement and calculating maximum 'real force', multiplying it by some constant like 1.2. Or additionally ignore first/second 'shakes' and process next one, which fill be kind-of filter for the peaks. Because I can't let myself accept any false positives. If somebody have a better solution - please tell. On 31 Sty, 23:11, Streets Of Boston <[email protected]> wrote: > I'm not that familiar with how the sensor works, but judging from the > values you report, i looks like the device is not entire horizontal or > vertical. > > Your computeRealForce hovers around 0.4 (horizontally) or -1 > (vertically). > > I guess you have to find a proper 'baseline' against which you can > measure any deviation. In the horizontal case that would be around > 0.4, in the vertical case that would be around -1. > > However, it could be that your device was not precisely horizontal or > precisely vertical. How would you know the 'baseline'? I don't know... > Maybe 0 or -1 is precisely horizontal or vertical and you can't assume > that your device will be ever exactly horizontal or vertical... > > I guess you have to measure over a period of time and see what the > deviation is. If it's small enough, your phone is in rest. > > On Jan 31, 4:19 pm, kretes <[email protected]> wrote: > > > There has been a few discussions about it, but there is still not a > > good solution. > > Simple problem - recognize when the device is laying somewhere not > > moving (in relation to earth) and when is moving. > > Accelerometer seems to be a good sensor to use. > > > First suprise came to me, when I logged data from the sensor events. > > When the device (htc hero) is laying on the table - the values are > > changing! > > sth. like > > -0.7, -0.7, 10.1 > > -0.6, -0.8, 10.0 > > and so on - fluctuating > > > I haven't expected that, but let's go on - I thought I woudl compute > > the real force, and went with > > > private double computeRealForce(SensorEvent event) { > > return Math.sqrt(Math.pow(event.values[0], 2) > > + Math.pow(event.values[1], 2) > > + Math.pow(event.values[2], 2)) > > - SensorManager.GRAVITY_EARTH; > > > } > > > very similiar approach as seen > > inhttp://github.com/commonsguy/cw-advandroid/blob/master/Sensor/Shaker/... > > and similiar > > inhttp://www.anddev.org/example_detecting_-und-quotshake-und-quot_with_... > > > and the computed value also fluctuates, > > 0,35 > > 0,39 > > 0,4 > > but I can apply force treshold like 0,5 as a kind of filter and > > everything is ok. > > > But when I put my phone to stand vertically - suddenly my computed > > force turned out to be > > -1,01 > > -1,05 > > > I give up - I don't know what is the good enough solution - > > the one that would give around zero value when the device isn't moving > > in relation to earth - is there any? > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

