2010-12-08 33 views
5

Sí, actualmente estoy preguntándome sobre esto. En mi caso de uso, los dispositivos estarán a una distancia de 50 cm a 10 m y me gustaría que tengan una precisión de al menos 10 cm. (Por lo tanto GPS no es una opción)Medir la distancia entre dos dispositivos iOS

2 maneras vienen a la mente:

sonido: le pregunté acerca de esto en los foros dev y estoy en contacto con laanlabs, sobre el código de su sonar ruler.

Imagen en un dispositivo + Cámara en el otro: Parece más fácil de configurar, ya que mi caso de usuario involucra al usuario frente a un dispositivo a 90 grados de todos modos. Pero sería más trabajo para el usuario enfrentar al camero en la dirección y no reaccionaría a un cambio en la distancia.

Ahora la pregunta: ¿Alguien sabe de algún código que hace algo como esto ya? Posiblemente un proyecto C-non general para iPhone?

+2

Sí, pero si fuera posible, preferiría hacerlo con sonido, porque entonces el usuario no tiene que mirar al camero en la dirección correcta. El dispositivo remoto siempre será un iPad porque la pantalla de un iPhone es pequeña para mi propósito. El dispositivo de entrada puede ser un iPhone o iPad, de todos modos es universal. – Bersaelor

+0

No puede usar el sonido entre dos dispositivos iOS a menos que sepa exactamente la hora en que se reprodujo el sonido. –

+0

Desea lograr una precisión demasiado alta. No mide la distancia entre puntos. El dispositivo es un objeto del mundo real con dimensiones propias. Y su longitud es de aproximadamente 10 cm (para iPhone/iPod). ¿Qué punto del dispositivo debería ser el punto de inicio para medir? @Kim Burgess sugiere un buen método, pero todo depende de la posición del micrófono. Ahora es 35 cm, pero si gira el dispositivo - 45 cm. Todo depende del punto de partida – 5hrp

Respuesta

3

Método con la cámara: ya sabemos el tamaño para cada dispositivo. Toma una foto del dispositivo, calcula su altura/ancho para determinar el tipo de dispositivo (iPhone/iPod o iPad), que calcula una distancia.

Por ejemplo, si el dispositivo es iPhone, sabe que su tamaño es de 115x58 mm. En la imagen es píxeles NxM. Ahora puedes calcular la distancia. (Si N & M menor, entonces la distancia es mayor)

+0

GUESS Voy con algoritmos de reconocimiento de imagen ahora, buscando en OpenCV mientras escribo esto. – Bersaelor

3

Si se va a utilizar el método de sonido Un enfoque sería tener Un dispositivo emiten un sonido, el dispositivo B continuación, se escucha de este en todo momento y en la detección de resonancia de un sonido secundario. Esto le daría un tiempo de ida y vuelta desde el que puede calcular la distancia; no se olvide de compensar la latencia entre la reemisión de detección también.

+1

@Sharrp muestra un buen punto con respecto al origen de las mediciones si necesita una distancia precisa.No soy un desarrollador iThing y no estoy seguro de cuán precisos son sus giroscopios, pero debería ser capaz de obtener la orientación del dispositivo a partir de esto. Usando un poco de matemática y conocimiento de las dimensiones del dispositivo y dónde se encuentran el altavoz y el micrófono, puede compensar la orientación del dispositivo. –

+1

Esta información podría codificarse en el audio echo * del * dispositivo B * para que * el dispositivo A * pueda calcular la distancia precisa (ish). –

0

No estoy seguro acerca pero esto es lo que encontré de una de las respuestas en esta cuestión de forma previa How to measure distance between two iphone devices using bluetooth?

a través de Bluetooth para la localización es un campo de investigación muy conocido. La respuesta corta es: no puedes. La intensidad de la señal no es un buen indicador de la distancia entre dos dispositivos Bluetooth conectados, porque está demasiado sujeto a las condiciones del entorno (¿hay una persona entre los dispositivos? ¿Cómo está el propietario sosteniendo su dispositivo? ¿Hay una pared? Hay alguna superficie reflectante de RF?). Con Bluetooth puedes obtener una resolución de distancia de unos pocos metros, pero no puedes calcular la dirección, ni siquiera aproximadamente.

Puede obtener mejores resultados utilizando varios dispositivos bluetooth y triangulando la intensidad de la señal, pero incluso en este caso es difícil ser más preciso que algunos metros en sus estimaciones.

Cuestiones relacionadas