una primaria portatil para niños materiales magnetico hacer gratis faciles cómo conseguir con como casera cartón carton brújula brujula android orientation compass-geolocation android-sensors

primaria - Cómo hacer una brújula precisa en Android



como hacer una brujula de carton para niños (1)

Tengo un par de sugerencias para usted:

1) Su dispositivo no puede ser calibrado . Para hacerlo, muévalo en forma de 8 ( vea esto ). Si no lo hace, si su dispositivo está calibrado o no realiza algunas pruebas, apunte el dispositivo hacia alguna dirección cardinal conocida y compare los valores. Normalmente, si un dispositivo no está calibrado, verá grandes variaciones en el valor de azimut para pequeñas rotaciones. Eso es lo que me preocupa.

Ahora, no olvide que el sensor le da el rumbo a Magnetic North, ¡y no a True North ! Esta diferencia se conoce como declinación del campo magnético y su valor cambia de un lugar a otro y de vez en cuando debido a cambios en el campo magnético de la Tierra. Esta aplicación puede calcular algunos de los valores para usted con relativa precisión. No estaría demasiado preocupado por esto ya que la declinación es típicamente pequeña, pero es posible que estés buscando una buena precisión (donde vivo la declinación es 3º, actualmente).

2) Manténgase alejado de objetos metálicos o cosas que generen un campo magnético fuerte . Por ejemplo, ¡no hagas pruebas si tienes tu teléfono cerca de la computadora o de algún teclado físico! Esto es veneno puro para probar la geolocalización de la brújula. Algunas aplicaciones pueden medir la intensidad del campo magnético (si el dispositivo lo admite). Cuando te acerques a las cosas metálicas, experimentarás valores más altos y fuertes cambios en las direcciones. Para divertirse, también hay algunos " detectores de metales ": esta aplicación reconoce los cambios en el campo magnético y vibra cuando estás cerca de "objetos metálicos" o cosas que interfieren magnéticamente con el dispositivo.

3) Recuerde actualizar el rodamiento cuando incline su dispositivo en modo horizontal. (¡El artículo es una lectura obligatoria! ) Esto se debe a que el valor de acimut se basa en la rotación del eje perpendicular al plano del teléfono. Cuando gira el dispositivo a horizontal, este valor se cambia en +/- 90º! ¡Esto no se resuelve deshabilitando el modo de paisaje de la aplicación! Tendrá que determinarlo programáticamente mediante el análisis de las rotaciones alrededor de los otros dos ejes (pitch and roll). Esto no es trivial, pero hay algunos ejemplos en algún lugar de la red.

Edición: Si está interesado en algún código, visite Mixare , es un marco de realidad aumentada de código abierto bajo la GPL3 para Android. Eche un vistazo a su código sobre orientación, geolocalización de brújula y marcación.

PD: no tengo ningún tipo de conexión con los creadores de las aplicaciones mencionadas.

Mi aplicación para Android muestra la dirección de un lugar particular en el mundo y, por lo tanto, necesita obtener el grado de brújula.
Este es el código que he estado usando para calcular los grados:

public void getDirection() { mySensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); List<Sensor> mySensors = mySensorManager.getSensorList(Sensor.TYPE_ORIENTATION); if(mySensors.size() > 0){ mySensorManager.registerListener(mySensorEventListener, mySensors.get(0), SensorManager.SENSOR_DELAY_UI); } else{ TextView alert = (TextView)findViewById(R.id.instruct); alert.setText(getString(R.string.direction_not_found)); myCompassView.setVisibility(myCompassView.INVISIBLE); } } private SensorEventListener mySensorEventListener = new SensorEventListener(){ @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } @Override public void onSensorChanged(SensorEvent event) { // TODO Auto-generated method stub compassBearing = (float)event.values[0]; float bearing; bearing = compassBearing - templeBearing; if (bearing < 0) bearing = 360 + bearing; myCompassView.updateDirection(bearing); } };

Este método generalmente funciona pero a veces simplemente se equivoca al norte, ¿qué debo hacer para obtener una ubicación más precisa?