Φωτογραφία Ηλίας Τερπένης
Accelerometre
από Ηλίας Τερπένης - Saturday, 2 June 2012, 3:19 PM
 
Θα ήθελα να ρωτήσω τι είναι αυτό που υπολογίζει ο αισθητήρας αυτός και πώς θα μπορούσα να υπολογίσω την ταχύτητα με την οποία η συσκευή κινείται.
 
Φωτογραφία Βασίλης Κόλιας
Απάντηση: Accelerometre
από Βασίλης Κόλιας - Monday, 4 June 2012, 5:21 AM
 

Την επιτάχυνση σε 3 άξονες.

Εφ'όσον ο sensor σου δίνει την επιτάχυνση είναι εύκολο να υπολογίσεις την ταχύτητα σε ένα συγκεκριμένο χρονικό διάστημα.

Φωτογραφία Βασίλης Κόλιας
Απάντηση: Accelerometre
από Βασίλης Κόλιας - Monday, 4 June 2012, 5:28 AM
 

πολύ πρόχειρα θα χρησιμοποιούσες κάτι σαν και αυτό:

float data[]= event.values;

double x= data[SensorManager.DATA_X];
double y= data[SensorManager.DATA_Y];
double z= data[SensorManager.DATA_Z];

double a= Math.sqrt(Math.pow(x, 2)+Math.pow(y, 2)+Math.pow(z, 2));

Date now= new Date(System.currentTimeMillis());
long Dt= ( now.getTime()-last)/1000;
last= now.getTime();
float Dv = a * Dt;

v=v+Dv;

Φωτογραφία Ηλίας Τερπένης
Re: Απάντηση: Accelerometre
από Ηλίας Τερπένης - Monday, 4 June 2012, 9:45 AM
 
Σχετικά με το παράδειγμα που αναπτύξατε.Εφόσον δίνω τις τιμές του αισθητήρα σε έναν πινακα τύπου float data. δεν θα μπορούσα να τις πάρω απλά γράφοντας data[0] για το χ, data[1] για το y k.o.k. Το ότι χρησιμοποιώ data[SensorManager.DATA_X], σημαίνει οτι το SensorManager.DATA_X είναι δείκτης σταθερά.
επίσης εάν θέλω να επεμβαίνω στις λειτουργίες τις συσκευής για παράδειγμα οταν συμβαίνει ένα γεγονός να σταματάει το κινητό να χτυπάει ποια permissions χρειάζομαι.
Φωτογραφία Χρήστος Μαργώνης
Απάντηση: Re: Απάντηση: Accelerometre
από Χρήστος Μαργώνης - Monday, 4 June 2012, 9:53 AM
 
Δε κατάλαβα ακριβώς τι εννοείς αλλά όσον αφορά τα permissions
εδώ είναι όλα, οπότε βλέπεις πιο σου χρειάζεται.
Φωτογραφία Ηλίας Τερπένης
Re: Απάντηση: Re: Απάντηση: Accelerometre
από Ηλίας Τερπένης - Monday, 4 June 2012, 10:02 AM
 
ποια η δια φορα μεταξυ του data[0] και του data[SensorManager.DATA_X]
Φωτογραφία Χρήστος Μαργώνης
Απάντηση: Re: Απάντηση: Re: Απάντηση: Accelerometre
από Χρήστος Μαργώνης - Monday, 4 June 2012, 2:54 PM
 
Το data[0] μας δίνει το αντικείμενο στη θέση 0 του πίνακα data.
Ενώ το data[SensorManager.DATA_X] μας δίνει το αντικείμενο στη θέση SensorManager.DATA_X, αν είναι ακέραιος ο αριθμός, θετικός και υποθέτοντας πως δεν είναι μεγαλύτερος από το μέγεθος του πίνακα.
Κατα πάσα πιθανότητα όμως θα μας δώσει ArrayOutofBoundsException.
Φωτογραφία Βασίλης Κόλιας
Απάντηση: Accelerometre
από Βασίλης Κόλιας - Monday, 4 June 2012, 5:33 AM
 

επίσης μπορείς να πάρεις την ταχύτητα και με gps, ανάλογα με τις ανάγκες της εφαρμογής