Robotica Facil. Robots, kits, circuitos, sensores, motores, etc.. SR1 Robot Multifuncional Robótica Fácil  
Página Principal Novedades Ayuda Ver Carrito Catálogo
Kits Robots Circuitos electrónicos Sensores robotica Motores y servos para robots Ruedas y Orugas para robots
Soportes y hardware Tornillos y separadores Libros robotica Radio Modem, Transmisores de Vídeo Robots Fotograficos
Fuentes de Alimentacion Componentes electrónicos Varios robotica Proyectos de Robotica Tutoriales de Robotica
SENSOR BRUJULA DIGITAL CMPS03 S320160

SENSOR BRUJULA DIGITAL CMPS03. Clic para ampliar

La brujula digital CMPS03 es un sensor de campos magneticos que una vez calibrado ofrece una precision de 3-4 grados y una resolucion de decimas. Tiene dos interfaces, mediante pulsos temporizados (modulación en anchura), o bien por medio de un bus I2C, lo que facilita su comunicación con una amplia gama de microcontroladores, incluyendo los Basic Stamp, Basic X, OOPIC y otros lenguajes compilados. Este sensor magnetico esta especificamente diseñado como sistema de navegacion para robots. La brujula esta basada en los sensores KMZ51 de Philips que son lo suficientemente sensibles como para captar el campo magnetico de la tierra. Usando dos de estos sensores colocados en angulo de 90 grados, permite al microprocesador calcular la direccion de la componente horizontal del campo magnetico natural.

Conexionado y Funcionamiento

En la siguiente imagen se puede observar las conexiones de los diferentes pines del CMPS03, entre los que destaca la patilla 4 y la 2 - 3, que corresponden a los dos posibles interfaces que incorpora: el PWM (Pulse Witdh Modulation - Modulación por anchura de pulso) y el bus I2C formado por las señales SDA (señal de datos) y SCL (señal de reloj) y que es un interfaz serie bidireccional sincrono.

Conexiones de sensor brujula digital CMPS03

En la salida 4, se obtiene una señal PWM en la que el pulso positivo representa el angulo de la brujula. El pulso varia en duración desde 1mS (0º) hasta 36,99 ms (359,9 º), o dicho de otra forma, el pulso es igual a 100 uS por cada grado mas 1ms de tara. La señal permanece a cero durante 65 ms entre pulsos, por lo que el periodo de trabajo es de 65mS + la anchura del pulso. El pulso es generado por un contador de 16 bits del propio procesador, con una resolucion de 1 uS, aunque en la practica no es recomendable hacer mediciones con una resolucion de mas de 0,1º (10uS). Cuando use el interfaz PWM, es necesario conectar a +5V mediante 2 resistencias de 47 Kohm, los pines 2 y 3 (SCL - SDA) del interfaz I2C, ya que no se incluye resistencias de pull-up en el circuito.

Parte trasera del sensor CMPS03

La otra posibilidad es la de usar el interfaz I2C formado por los pines 2 y 3, que nos permite una lectura directa del valor en grados de la dirección. El protocolo de comunicación I2C empleado en el modulo, es el mismo que se emplea con la populares eeprom como la 24C04. Primero se envía un bit de comienzo, la dirección. del modulo (0XC0) con el bit de lectura a cero, y a continuación el numero del registro que se desea leer. Después se vuelve a mandar el bit de comienzo y la dirección. del modulo con el bit de lectura a uno (0XC1). Ahora se puede leer uno, o los dos bytes correspondientes a los registros de 8 y 16 bits respectivamente. (El byte de mayor peso se lee primero en los registros de 16 bits).

Registros

La brújula tiene un total de 16 bytes de registros, algunos de los cuales forman registros de 2 bytes tal y como puede verse en la siguiente tabla:

Registro Función
0 Numero de Revisión del Software
1 Dirección. en 1 byte 0-255 para 0 - 360º
2,3 Dirección. en 2 bytes 0-3599 para 0 - 359,9º
4,5 Test interno señal diferencial sensor 1
6,7 Test interno señal diferencial sensor 2
8,9 Test interno, valor de calibración 1
10,11 Test interno, valor de calibración 2
12 Sin usar, devuelve 0
13 Sin usar, devuelve 0
14 Sin usar, devuelve 0
15 Comando de calibración, escribir 255 para calibrar

El registro 0 es la Revisión del software que actualmente es el 8. El registro 1 es la dirección. en grados convertida en un valor entre 0 y 255 y que puede ser muy útil en ciertas aplicaciones donde resulta complicado utilizar la escala de 0 a 360 grados que requiere dos bytes y que esta disponible en los registros 2 y 3 (el 2 es el mas significativo) con un valor que va entre 0 y 3599 que equivale a 0 -359,9º. Los registros 4 a 11 son de uso interno y del 12 al 14 no se usan, por lo que no deberán leerse con el fin de no consumir el ancho de banda del bus I2C. El registro 15 se usa para calibrar la brújula tal y como se especifica mas adelante.

El bus I2C del circuito no incorpora las necesarias resistencias de pull-up, por lo que será necesaria su implementación en el mismo, para ello es recomendable utilizar dos resistencias de 1K8 en caso de utilizar el bus a 400 KHz y de 1K2 o 1K si se utiliza a una frecuencia de 1Mhz. Solo son necesarias 2 resistencias en total para todo el bus, no por cada circuito que este conectado al mismo. El sensor de brújula digital esta diseñado para ser compatible con la velocidad estándar de reloj de 100 Khz, aunque esta pueda aumentarse si tiene en cuenta lo siguiente:

A velocidades superiores a los 160 KHz, la CPU no puede responder lo suficientemente rápido como para leer los datos, por lo que hay que incorporar un retardo de 50 us al finalizar la escritura del registro de dirección. Si se hace esto de forma correcta, es posible comunicar con el modulo a velocidades superiores a 1 MHz. Esto solo afecta a programas escritos en lenguajes de alta velocidad y bajo nivel como es el ensamblador, y no afecta a las aplicaciones escritas para los compiladores internos como son el Basic stamp, el OOPIC o el Basic X o similares. El modulo de sensor de brújula siempre actúa como un esclavo, nunca como un master del bus I2C.

El pin 7 se utiliza para seleccionar entre 50 Hz (puesta a cero) o 60 Hz (puesta a uno). Esto es debido a una desviación errónea de unos 1,5º causada por el campo generado por la red eléctrica. Sincronizando la conversión con la frecuencia en herzios de la red, se consigue disminuir el error a tan solo 0,2º. El pin si tiene un resistencia interna de pull up, por lo que si se deja sin conectar, funcionara a 60 Hz. El circuito realiza una conversión interna cada 40ms (50 Hz) o cada 33,3 ms (60Hz) de acuerdo con la conexión de esta entrada. No hay ningún tipo de sincronismo entre la realización de la conversión y la salida de los datos, ya que cuando estos son leídos se devuelven el valor mas reciente que este almacenado en su respectivo registro.

El pin 6 se usa para calibrar el sensor magnético. Esta entrada tiene su propia resistencia de polarización (pull up) y puede dejarse sin conectar una vez realizada la conversión.

Los pines 5 y 8 están marcados como no conectados, aunque el pin 8 es en realidad el reset del microprocesador, con el fin de poder programarlo una vez soldado al circuito impreso. Esta entrada no tiene resistencia de pull up.

Calibración

ATENCION: Antes de realizar la calibración, el modulo deberá mantenerse perfectamente horizontal con los componentes hacia arriba y los dos sensores en la cara inferior. Mantener el modulo alejado de objetos metálicos y muy especialmente de objetos magnéticos como imanes y altavoces. También es necesario conocer con precisión la dirección. en la que se encuentran los cuatro puntos cardinales, por lo que es absolutamente necesario comprobarlo con una brújula magnética.

La calibración de la brújula digital puede hacerse por cualquiera de los siguientes dos métodos:

El Método I2C

Ese Método consiste en escribir 255 en el registro 15 del modulo por cada uno de los cuatro puntos cardinales. El valor 255 es borrado internamente cada vez que se completa la calibración Los puntos de calibración pueden hacerse en cualquier orden, pero siempre es necesario calibrar los 4 puntos. Por ejemplo:

1 Apunte el circuito hacia el Norte. Escriba 255 en el registro 15
2 Apunte el circuito hacia el Este. Escriba 255 en el registro 15
3 Apunte el circuito hacia el Sur. Escriba 255 en el registro 15
4 Apunte el circuito hacia el Oeste. Escriba 255 en el registro 15

El Método del pulsador.

Consiste en utilizar un pulsador entre masa y el pin 6 del circuito, con el fin de iniciar la calibración Tenga en cuenta que este pin tiene una resistencia de polarización interna y puede dejarse sin conectar una vez realizada la calibración Para realizar la calibración, bastara con poner a masa el pin 6 momentáneamente por cada uno de los puntos cardinales. De igual forma que con el otro Método, los puntos pueden calibrarse en cualquier orden, pero siempre es necesario calibrar los 4 puntos cardinales. Ejemplo:

1 Apunte el circuito hacia el Norte. Pulse momentáneamente en pulsador.
2 Apunte el circuito hacia el Este. Pulse momentáneamente en pulsador.
3 Apunte el circuito hacia el Oeste. Pulse momentáneamente en pulsador.
4 Apunte el circuito hacia el Sur. Pulse momentáneamente en pulsador.

y eso es todo.

 

Haga clic en el botón COMPRAR para añadir este producto a su carrito de la compra.

35,05-Euros.
IVA incluido
AÑADIR AL CARRITO DE LA COMPRA

SENSOR BRUJULA DIGITAL CMPS03

Vea mas productos de esta categoría en:

Sensores y detectores para robótica.

Ir a la Página Principal de www.SuperRobotica.com

Actualizada el 29/12/2023 © 2002 -2023 INTPLUS ®. Todos los derechos reservados