|

El CM02 es un radiomodem para transmisión de datos a 19200 con la particularidad que incluye un bus I2C. Esto quiere decir
que podemos controlar uno o varios dispositivos I2C vía radio sin necesidad de ningún circuito adicional. Por ejemplo
se pueden conectar 4 sensores de distancia por ultrasonidos s320112, una brújula digital S320160 y un controlador de motores
por I2C S310107 y controlarlos todo a distancia por radio con la ayuda del transceptor de datos con conexión USB S350175.
El circuito incluye un interruptor y un regulador de tensión de 5v 1A, capaz de alimentar además a los circuitos que
esta controlando. Adicionalmente incluye un medidor de la tensión de la batería, que también puede medirse vía
radio. Hay disponible un programa de ejemplo para PC que permite radio controlar varios módulos y mostrar la información
en la pantalla.
ATENCION: ESTA ES LA TRADUCCION DE LA PAGINA ORIGINAL DEL FABRICANTE Y CONTIENE TODA LA INFORMACION DISPONIBLE SOBRE ESTE PRODUCTO.
Especificaciones técnicas
El módulo radiomodem CM02 junto con los sensores de distancia por ultrasonidos RF04
(S320112) forman una completa interface entre su ordenador y nuestra gama de módulos basados en el bus I2C. Puede enviar comandos
a su robot y recibir datos del mismo para su ordenador. Ahora ya dispone de todos los módulos necesarios para controlar su
robot desde su ordenador. El radiomodem CM02 está alimentado de la batería de su robot que puede ser de 6v a 12v. El
CM02 puede controlar el voltaje de las baterías e informar al ordenador de esta información (¡Podrá saber
cuando su robot tiene hambre de energía!). Su módulo CM02 tiene cuatro conectores, aunque no estará limitado
a cuatro dispositivos I2C. En la práctica, puede necesitar sólo un conector y enrrutar el bus del I2C a todos los módulos
que desee controlar. La tasa de bits en el bus I2C es aproximadamente 100KHz.
Licencia de frecuencia de bandas
El módulo de radiomodem CM02 está disponible en dos versiones. Por un lado, el modelo CM02/400 utiliza el módulo
LPRS EasyRadio ER400TRS que opera a 433-4MHz. Las asignaciones de frecuencia entre 433-4MHz cumplen con la normativa de Europea,
Sudáfrica, Australia y Nueva Zelanda.
Por otro lado, el modelo CM02/900 utiliza el módulo ER900TRS para los mercados de Europa (868-870MHz) o Estados Unidos (902-920MHz).
La salida de potencia es de 10mW. Tenga en cuenta las restricciones en Estados Unidos a 1mW y en Europa a 5mW.
Asegúrese de que ha pedido el tipo de módulo adecuado y que pide módulos compatibles entre sí, por ejemplo
las parejas formadas por RF04/CM02, RF04/400 y CM02/400 o RF04/900 y CM02/900.
Potencia
Se utiliza un conector de poste de 3 pines para alimentar el módulo CM02. Para el resto de módulos y el CM02 se utiliza
un regulador en placa de 5v. El regulador puede suministrar 1Amp, aunque en la práctica está limitado más por
la disipación de la potencia, que será peor mientras más alto sea el voltaje de la batería utilizada
para evitar que el disipador térmico no se caliente en exceso. Nuestro robot de prueba, compuesto por los módulos CM02,
un controlador de motores MD22, un display LCD I2C, un módulo de voz SP03, brújula digital CMPS03 y ocho módulos
SRF08. Estos requieren 155mA cuando están en funcionamiento y con 14v el disipador de calor del regulador está considerablemente
caliente. (155mA para 5v logic - los motores tardan mucho más, aunque no va a través del regulador). El interruptor
se encuentra en la parte de la batería o del regulador. Sin embargo, este interruptor no corta la alimentación del
MD22. No obstante, dado que la corriente del módulo MD22 sólo desciende cuando la alimentación 5v está
desactivada (medimos 1.5uA) lo utilizamos como el interruptor de alimentación del robot. Si lo utiliza como tal, acuérdese
de desconectar la batería antes de trabajar en su robot. El regulador es del tipo de caída baja (low drop) para que
pueda utilizar voltajes de baterías de 6v a 12v.
Conexiones
Los conectores del I2C son idénticos y su alimentación es de 0v, SCL, SDA, y 5v en ese orden desde el flanco exterior
de la placa de circuito impreso (PCB). Asimismo, el módulo CM02 requiere el uso de una antena. A 434 MHz utilizamos una pieza
de alambre sólido de 16,4 cm de largo como una antena de varilla. A 900 MHz utilizamos una antena de varilla de 8cm.

Comandos
El módulo CM02 responde a los comandos enviados a él a través de un enlace vía radio desde el ordenador.
Hay sólo dos comandos primarios:
I2C_CMD (0x55) - Le permite leer o escribir lo que desee a cualquier elemento del bus I2C - entre los que se incluyen nuestra
propia gama de módulos.
CM02_CMD (0x5A) - Una serie de comandos enviados al módulo CM02, generalmente para mejorar las comunicaciones seleccionadas.
Escribir directamente en un dispositivo I2C
Después de enviar el comando I2C_CMD puede enviar la dirección del dispositivo, las direcciones de los registros internos
de los dispositivos en los que quiere escribir y el número de bytes que está escribiendo. El número máximo
de bytes de datos no debería superar los 76 para evitar el desbordamiento del buffer interno del radiomodem CM02.
| |
Comando primario de CM02 |
Dirección del dispositivo + bit R/W |
Registro interno del dispositivo |
Número de bytes de datos |
Los bytes de datos |
| Tipo de Byte |
I2C_CMD |
Addr+R/W |
Reg |
Byte Count |
Data |
| Ejemplo |
0x55 |
0xE0 |
0x00 |
0x01 |
0x51 |
| Significado |
Comando primario de CM02 |
Dirección I2C de SRF08 |
Registro de comando de SRF08 |
Sigue un byte de comando |
Empezar a medir en cm |
Esta secuencia de 5 bytes inicia un sensor de distancias por ultrasonidos SRF08 en la dirección 0xE0. Los 5 bytes deberían
enviarse al módulo CM02 en una secuencia. Un espacio vacío tendrá hará que el módulo CM02 re-inicie
su bucle interno del comando de sincronización e ignore el mensaje. Después de recibir todos estos bytes, el módulo
CM02 ejecuta la operación de escritura a través del bus IC2 en el SRF08 y envía un sólo byte de vuelta
al ordenador. El byte devuelto será 0x00 (zero) si el comando de escritura falla y será diferente de cero si el comando
de escritura se ha ejecutado con éxito. El ordenador debería esperar a que este byte sea devuelto (se deshabilita después
de 500mS) antes de proceder con la siguiente transacción.
A continuación, encontrará otro ejemplo de comando de escritura - esta vez se utilizará una secuencia de 8
bytes para inicializar el controlador del motor MD22:
| I2C_CMD |
MD22 Addr+R/W |
Registro de modo |
Recuento de bytes de datos |
Modo 1 de MD22 |
Motor izqdo detenido |
Motor drcho detenido |
Aceleración rápida |
| 0x55 |
0xB0 |
0x00 |
0x04 |
0x01 |
0x00 |
0x00 |
0x02 |
El módulo CM02 volverá a responder con un valor distinto de cero si el comando de escritura se ejecuta correctamente
y un valor cero si no se ejecuta. Si el comando fallase, entonces significaría que no se ha recibido información desde
el dispositivo I2C.
Leer directamente de un dispositivo I2C
Es similar al comando de escritura, excepto en que se debe sumar 1 a la dirección del dispositivo para que el número
sea impar. Para leer de un módulo SRF08 en la dirección 0xE0, debería utilizar como dirección el valor
0xE1 . (Cuando la dirección salga a través del bus I2C, será el 1 que esté en la posición más
baja el que indique que se está produciendo un ciclo de lectura). El número máximo de bytes de datos solicitados
no puede superar los 76 para evitar el desbordamiento del buffer interno del CM02. A continuación, encontrará un ejemplo
de lectura de dos bytes procedente de la brújula CMPS03:
| I2C_CMD |
CPMS03 I2C dirección + bit de lectura |
Registro de retardo de CMPS03 |
Número de bytes para leer |
| 0x55 |
0xC1 |
0x02 |
0x02 |
El módulo CM02 llevará a cabo una operación de lectura en el bus I2C y devolverá dos bytes al ordenador
- el nivel lógico alto primero. El ordenador debería esperar a que se retornen ambos bytes (se desactiva después
de 500mS) antes de proceder con la siguiente transacción.
Comandos CM02
El formato del comando CM02 es el siguiente:
| CM02_CMD |
Comando CM02 |
Dato 1 |
Dato 2 |
| 0x5A |
Ver abajo |
Especifico de comando |
Especifico de comando |
Los comandos CM02 están siempre formados por una secuencia de cuatro bytes. Comienzan con el comando primario CM02_CMD que
continúa con el propio comando CM02. A lo anterior les siguen los dos bytes de datos pueden estar vacíos si no están
en uso, aunque deberán incluirse para crear una secuencia de comandos de 4 bytes. Estos comandos son los siguientes:
| Hex |
Comando |
Bytes devueltos |
Función |
| 0x01 |
>REVISION |
1 |
Devuelve el número de revisión del firmware de CM02 |
| 0x02 |
NEW_ADDRESS |
1 |
Modifica la dirección I2C de SRF08 |
| 0x03 |
BATTERY |
2 |
Bytes de nivel lógico alto/bajo del voltaje de la batería |
| 0x04 |
SCAN1 |
6 |
Enviar datos del motor - devuelve los datos de la batería, brújula y sonar |
| 0x05 |
SCAN2 |
9 |
Igual pero para 2 SRF08's |
| 0x06 |
SCAN3 |
12 |
3 SRF08s |
| 0x07 |
SCAN4 |
15 |
4 |
| 0x08 |
SCAN6 |
21 |
6 |
| 0x09 |
SCAN8 |
27 |
8 |
| 0x0A |
SCAN12 |
39 |
12 |
| 0x0B |
SCAN16 |
51 |
Todos los 16 SRF08s posibles |
| |
|
|
|
El Comando REVISION se utiliza para leer la revisión del firmware de CM02. Devuelve un sólo byte indicando
el número de revisión. Los dos bytes de datos que no están utilizados puede ser cualquier cosa, pero tienen
que ser enviados.
El Comando NEW_ADDRESS se utiliza para modificar la dirección I2C de un SRF08 con una dirección diferente.
La nueva dirección debería estar en el primero de los dos bytes de datos. Aunque el segundo byte de datos no está
en uso y puede ser cualquier cosa, sí que debe ser enviado. Los cambios en las direcciones en los SRF08 requieren 4 transacciones
independientes en el bus I2C. El CM02 sabe cómo modificar la dirección I2C de un SRF08 y simplemente tendrá
que enviarle la nueva dirección a través de este comando. Cuando lo esté utilizando, asegúrese de que
tiene un módulo SRF08 conectado, ya que de lo contrario definirá la misma dirección para todos los módulos
SRF08 que tenga conectados en el bus. Se devolverá un sólo byte con la nueva dirección cuando la tarea haya
finalizado.
El Comando BATTERY devuelve una palabra de dos bytes (el primer byte de nivel lógico alto) indicando el voltaje de
la batería. Este es el voltaje con el que está alimentando su CM02. Se trata de un número formado por 10 bits,
aunque justificado a la izquierda por lo que debería tratarse como un número de 16 bits. Realmente es la salida del
convertidor analógico/digital del chip PIC16F88 utilizado en el módulo CM02. El byte de nivel lógico alto puede
utilizarse por sí solo mientras que el voltaje de la batería debe utilizarse como un byte de lectura. Divida el byte
de nivel lógico alto entre 16,347 o la palabra entre 4.198 para obtener una lectura directa del voltaje de la batería.
(Recuerde que está utilizando un PC y que los las divisiones por puntos flotantes son sencillas).
El Comando SCAN es muy útil al utilizar nuestros módulos en su robot. Da por sentado que dispone de un controlador
de motor MD22, un módulo de brújula CMPS03 y varios módulos sensores de distancias por ultrasonidos SRF08. El
comando SCAN1 da por sentado que tiene un 1 unidad de SRF08, mientras que SCAN8 da por sentado que tiene 8 unidades de SRF08. Los
dos bytes de datos contienen los valores de velocidad del motor izquierdo y derecho para el controlador de motor MD22. Después
de enviar las nuevas velocidades del motor al MD22, el módulo CM02 enviará un cuadro de retorno compuesto por el voltaje
de la batería como un solo byte. Ocurre lo mismo con el byte de nivel lógico alto del comando BATTERY anterior. Va
seguido de los dos bytes de la brújula- el primer byte de nivel lógico alto y después los tres bytes para cada
SRF08. El primero de los tres bytes se trata de la lectura del sensor de luz (fotosensor) del módulo SRF08. Los primeros dos
bytes es el alcance del sensor de distancia-el primer byte de nivel lógico alto. Por ejemplo, si se utiliza el comando SCAN2,
debería recibir un retorno de 9 bytes:
| Voltios de batería |
Byte de nivel lógico alto de la brújula |
Byte de nivel lógico bajo de la brújula |
SRF08 en fotosensor 0xE0 |
SRF08 en el byte de nivel lógico alto 0xE0 de distancia |
SRF08 en el byte de nivel lógico bajo de distancia 0xE0 |
SRF08 en fotosensor 0xE2 |
SRF08 en el byte de nivel lógico alto de distancia 0xE2 |
SRF08 en el byte de nivel lógico bajo de distancia 0xE2 |
Los datos de retorno del SRF08 siempre empiezan con las direcciones 0xE0, 0xE2, 0xE4 - sumando 1 al valor de la dirección
cada vez que se soliciten hasta que se envíen todos los datos del módulo SRF08.
Después de enviar los datos de vuelta al ordenador, el radiomodem CM02 envía automáticamente un nuevo comando
para calcular la distancia en todos los módulos SRF08s. El comando de cálculo de distancia utilizado es 82 (0x52) que
retorna un valor expresado en uS. Para convertir este valor en centímetros deberá dividirlo entre 58 y para convertirlo
en pulgadas, dividirlo entre 148.
Las direcciones del módulo SRF08 deberían estar definidas antes de ejecutar este comando y además el módulo
MD22 debería estar inicializado en el modo y aceleración requeridos. Otro factor importante: el comando SCAN también
establece un temporizador de 500mS en el módulo CM02. Si no se recibe otro comando SCAN en este plazo de tiempo, se enviará
automáticamente un comando al módulo MD22 para detener los motores. Esta opción evita que su robot camine fuera
de control en el caso de que se saliera del área de alcance del vínculo vía radio. Después de la inicialización,
nuestro robot de prueba estará controlado completamente a través del comando SCAN8.
LEDs Hay dos indicadores led de estado en el módulo CM02. El led rojo indica que la alimentación está
activa, mientras que si el led verde parpadea brevemente, entonces indica que se está recibiendo un comando vía radio.
Software de prueba RF04/CM02
Para ayudarle a comprobar el enlace vía radio entre FF04/CM02, le proporcionamos el siguiente diálogo de prueba. Descárguelo
de aquí. Se trata de un pequeño programa basado en Windows/PC, y tiene el aspecto siguiente al abrirlo.

En primer lugar debería seleccionar el puerto com al que el módulo RF04 está conectado. Podrá encontrar
instrucciones en la página técnica del Radiomodem USB RF04 sobre cómo puede localizar el puerto com. Sólo tendrá que configurar este
puerto una vez. Si tiene un puerto CM02 activo y dentro del rango, en la pantalla aparecerá la revisión del firmware
y el voltaje de la batería.

En este caso, los valores Rev1 y 12.09v procedentes de la batería. En este ejemplo, el módulo CM02 está configurado
para controlar nuestro robot de prueba- Chucky. Cuenta con un módulo controlador de motores MD22, y podrá comprobar
que el firmware es Rev2. Los controles deslizantes sirven para definir la velocidad de los motores. Hay un módulo de sensor
brújula digital CMPS03 configurado como - Rev9 y muestra un valor de orientación de 293 grados. Un módulo
sensor de distancias por ultrasonido SRF08 se encuentra en la dirección 0xE0. El robot Chucky tiene
conectados 12 módulos SRF08. El que aparece en la pantalla es el primero que se ha encontrado. El robot Chucky tiene un módulo
sintetizador de voz SP03 conectado - y también un módulo LCD LCD02
. Si están conectados aparecerán en los paneles LCD02 y SP03. El texto puede enviarse a los módulos SP03 o LCD02
escribiéndola en la caja de edición y presionando uno de los botones Line/Speak.
El cuadro de texto en el panel SRF08 le muestra la direccion del módulo actual SRF08 conectado. Si cambia esta dirección,
el botón "Update", que normalmente está inactivo, se activará. Si lo presiona, se enviará un comando
al módulo CM02 para modificar la dirección del SRF08. Esto resulta muy útil si está utilizando distintos
módulos SRF08 en su robot. Asegúrese de que tan sólo esté conectado uno de los módulos SRF08 al
pulsar el botón "Update", ya que de lo contrario tendrá que reprogramar todos los SRF08 con sus direcciones
nuevas. El display muestra los datos actuales correspondientes a los valores de voltios de la batería, brújula y sónar
que son actualizados constantemente.


Haga clic en el botón COMPRAR para añadir este producto a su carrito de la compra.
56,82-Euros.
IVA no incluido
67,05-Euros.
IVA incluido
|
TRANSCEPTOR DATOS I2C 19,2 KB EASY RADIO 433MHZ
Vea mas productos de esta categoría en:
Radiomodem y transmisores de datos inalámbricos.
Ir a la Página Principal de www.SuperRobotica.com
Actualizada el 01/07/2010 © 2002 - 2010 INTPLUS ®. Todos los derechos reservados
|