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
SRF10 MINI SENSOR DISTANCIAS ULTRASONIDOS I2C S320114

SRF10 MINI SENSOR DISTANCIAS ULTRASONIDOS I2C. Clic para ampliar

SRF10 es el nuevo medidor ultrasónico de distancias miniatura para robots que representa la ultima generación en sistemas de medidas de distancias por sonar, consiguiendo niveles de precisión y alcance únicos e impensables hasta ahora con esta tecnología. El sensor es capaz de detectar objetos a una distancia de 6 m con facilidad ademas de conectarse al microcontrolador mediante un bus I2C, por lo que se pueden conectar cuantos sensores sean necesarios en el mismo bus. Con una alimentación unica de 5V, solo requiere 15 mA, para funcionar y 3mA mientras esta en reposo, lo que representa una gran ventaja para robots alimentados por pilas. Sus reducidas dimensiones lo convierten en el sensor de distancias por ultrasonidos mas pequeño del mundo. Medidas 32 x 15 x 10 mm.

Controlando el sensor de distancias ultrasónico SRF10

La comunicación con el sensor ultrasónico SRF10 se realiza a través del bus I2C. Este está disponible en la mayoría de los controladores del mercado como BasicX-24, OOPic y Basic Stamp 2P, así como en una amplia gama de microcontroladores. Para el programador, el sensor SRF10 se comporta de la misma manera que las EEPROM de las series 24xx, con la excepción de que la dirección I2C es diferente. La dirección por defecto de fábrica del sensor SRF19 es 0xE0. El usuario puede cambiar esta dirección con 16 direcciones diferentes: E0, E2, E4, E6, E8, EA, EC, EE, F0, F2, F4, F6, F8, FA, FC o FE, por lo que es posible utilizar hasta 16 sensores sobre un mismo bus I2C. Además de las direcciones anteriores, todos los sonares conectados al bus I2C responderán a la dirección 0 -al ser la dirección de atención general. Esto significa que escribir un comando de medición de la distancia para la dirección 0 de I2C (0x00) iniciará las mediciones en todos los sensores al mismo tiempo. Esto debería ser útil en el modo ANN (Véase a continuación). Los resultados deben leerse de manera individual de cada uno de las direcciones reales de los sensores. Disponemos de ejemplos del uso de un módulo SRF10 con una amplia gama de controladores del mercado.

Comparación de tamaños entre el SRF10 y su antecesor SRF8

Conexiones

Las conexiones del sensor SRF10 son idénticas a las del sensor SRF08. El pin señalado como "NC" (No conectar) debería permanecer sin conexión. En realidad, se trata de la línea MCLR de la CPU y se utiliza solamente en la fabrica para programar el PIC16F872 después del montaje, dispone de una resistencia interna de tipo pull-up. Las líneas SCL y SDA deberían tener cada una de ellas una resistencia pull-up de +5v en el bus I2C. Sólo necesita un par de resistencias en todo el bus, no un par por cada módulo o circuito conectado al bus I2C. Normalmente se ubican en el bus maestro en vez de en los buses esclavos. El sensor SRF10 es siempre un bus esclavo - y nunca un bus maestro. Un valor apropiado seria el de 1,8 K en caso de que las necesitase. Algunos módulos como el OOPic ya disponen de resistencias pull-up por lo que no es necesario añadir ninguna más. UTILIZAR SIEMPRE UN REGULADOR DE TENSION DE 5V PARA ALIMENTAR EL MODULO. NO CONECTAR NUNCA DIRECTAMENTE A PILAS.

Conexiones del sensor ultrasonico srf10

Registros

Desde el punto de vista de la programación el sensor SRF10 es totalmente compatible con el SRF08, con la salvedad que no tiene sensor de luz y que no tiene los registros del modo ant. Un programa que lea normalmente un sensor srf08, debe funcionar sin problemas en un SRF10.

El sensor SRF10 tiene un conjunto de 4 registros.

Ubicación
Lectura
Escritura
0 Revisión de Software Registro de comando
1 Sin uso (lee 0X80) Registro de ganancia máx. (por defecto 16)
2 Byte alto de 1º eco Registro de alcance de distancia (por defecto 255)
3 Byte alto de 2º eco No disponible

Solamente se puede escribir en las ubicaciones 0, 1 y 2. La ubicación 0 es el registro de comandos y se utiliza para iniciar la sesión de cálculo de la distancia. No puede leerse. La lectura de la ubicación da como resultado la revisión del software de SRF10. Por defecto, la medición dura 65mS, aunque puede cambiarse modificando el registro de alcance de la ubicación 2. Si lo hace, tendrá que cambiar la ganancia analógica en la ubicación 1. Consulte las secciones siguientes relacionadas con el cambio de medición y ganancia analógica.

La ubicación 1 es el sensor de luz en placa. Este dato se actualiza cada vez que se ejecuta un comando de medición de distancia y se puede leer cuando se leen los datos de la medición. Las dos ubicaciones siguientes, 2 y 3, son resultados sin signo de 16 bits de la última medición - el nivel lógico alto en primer lugar. El significado de este valor depende del comando utilizado, y puede estar expresado en pulgadas, o en centímetros, o bien el tiempo de vuelo del ping expresado en uS. Un valor cero indica que no se ha detectado objeto alguno. Hay hasta 16 resultados adicionales que indican los ecos de objetos más lejanos.

Comandos

Existen tres comandos para iniciar una medición de distancia (desde 80 hasta 82), que devuelve el resultado en pulgadas, centímetros o microsegundos. Asimismo, también existe un modo ANN (Artificial Neural Network) que se describe a continuación y un grupo de comandos para modificar la dirección de I2C del srf010.

COMANDOS
ACCIÓN
Decimal
Hexadecimal
80 0X50 Modo cálculo distancia - Resultado en pulgadas
81 0X51 Modo cálculo distancia - Resultado en centímetros
82 0X52 Modo cálculo distancia - Resultado en microsegundos
     
160 0XA0 1º en la secuencia para cambiar la dirección I2C
165 0XA5 3º en la secuencia para cambiar la dirección I2C
170 0XAA 2º en la secuencia para cambiar la dirección I2C

Modo de cálculo de distancia con el SRF10

Para iniciar la medición de la distancia, deberá escribir uno de los comandos anteriores en el registro de comando (registro 0) y esperar el tiempo necesario para la ejecución de la operación. A continuación, deberá leer el resultado en el formato que desee (pulgadas, centímetros, etc). El búfer de eco se pone a cero al comienzo de cada medición. El tiempo recomendado y establecido por defecto para realizar la operación es de 65mS, sin embargo es posible acortar este periodo escribiendo en el registro de alcance antes de lanzar el comando de medición.

Cómo comprobar que una medición ha finalizado

No es necesario utilizar un temporizador en su propio controlador para saber que la medición ha terminado. Puede aprovechar la ventaja que le ofrece el hecho de que el sensor SRF10 no responde a ninguna otra actividad I2C mientras está realizando la medición. Por lo tanto, si intenta leer el valor en el sensor SRF10 (utilizamos el número de revisión de software en la ubicación 0) por lo que recibirá 255 (0xFF) durante la medición. Esto se debe a que la línea de datos I2C (SDA) se eleva si nada lo está controlando. Tan pronto como finaliza la medición el sensor SRF10 responderá de nuevo al bus I2C, por lo que deberá esperar a que desaparezca el valor 255 (0xFF) en el registro. A continuación, podrá leer los datos del sensor. El controlador puede aprovechar esta ventaja para realizar otras tareas mientras el SRF10 está realizando la medición.

Cómo cambiar el rango de alcance

El alcance máximo del sensor SRF10 está controlado por el temporizador interno. Por defecto, este es 65mS o el equivalente a 11 metros de alcance. Esto supera los 6 metros de los que el SRF10 es realmente capaz de ofrecer. Es posible reducir el tiempo que espera el sensor SRF10 a escuchar un eco, y por lo tanto el alcance, modificando el registro range en la ubicación 2. El alcance puede regularse en pasos de aproximadamente 43mm (0,043 metros o 1,68 pulgadas) hasta llegar a los 11 metros. El alcance es ((Range Register x 43mm) + 43mm) por lo que fijar este registro (Range Register) en el valor 0 (0x00) ofrece un alcance máximo de 43mm. Fijar el registro Range Register en el valor 1 (0x01) ofrece un alcance máximo de 86mm. En un ejemplo más útil, el valor 24 (0x18) ofrece un alcance de 1 metro mientras que el valor 140 (0x8C) da 6 metros. El valor 255 (0xFF) ofrece los 11 metros originales(255 x 43 + 43 es 11008mm).

Existen dos razones por las que es positivo reducir el tiempo de medición.

1. Para obtener la información sobre el alcance en menos tiempo
2. Para poder realizar mediciones con el sensor SRF10 a una tasa más rápida.

Si lo único que desee en recibir en menos tiempo, la información sobre el alcance y pretende realizar las mediciones a una tasa de 65ms o más lento, todo funcionará de manera correcta. Sin embargo, si desea lanzar el sensor SRF10 a una tasa ligeramente más alta de 65mS, deberá reducir la ganancia - consulte la siguiente sección.

El alcance está fijado en el valor máximo cada vez que se pone en marcha el sensor SRF10. Si necesita un alcance diferente, cámbielo al principio como parte del código de iniciación del sistema.

Ganancia analógica

En el registro de la ganancia analógica, se configura la ganancia máxima de las etapas analógicas. Para configurar la ganancia máxima del srf10, simplemente deberá escribir uno de estos valores en el registro de ganancia de la ubicación 1. Durante la medición, la ganancia analógica empieza con su valor mínimo de 40. Este valor se incrementa en intervalos de aproximadamente 96uS hasta llegar al valor de ganancia máxima, configurada en el registro 1. La ganancia máxima posible se alcanza después de aproximadamente 100mm de alcance. La finalidad de poder limitar la ganancia máxima es permitirle iniciar mediciones a una frecuencia mayor de 65mS. Dado que la medición puede ser muy corta, es posible iniciar una nueva medición tan pronto como se hayan leído los datos de la medición previa. Un riesgo potencial de esto es que la segunda medición podría captar un retorno de un eco distante del "ping" anterior, dando un resultado falso referente a un objeto cercano cuando en realidad no hay ninguno. Para reducir esta posibilidad, la ganancia máxima puede reducirse para limitar la sensibilidad de los módulos al echo distante más débil, mientras que al mismo tiempo sigue siendo capaz de detectar la proximidad de objetos. La configuración de la ganancia máxima se almacena sólo en la memoria RAM del CPU y se inicia con el encendido del equipo, por lo que si sólo desea realizar las mediciones cada 65mS, o más, puede ignorar los registros Range y Gain. El registro de ganancia está fijado a 16 (una ganancia de 700) en el encendido. Puede reducirse lo que sea necesario.

Registro de ganancia
Ganancia analógica máxima
Decimal
Hexadecimal
0 0X00 Fija la ganancia analógica máxima en 40
1 0X01 Fija la ganancia analógica máxima en 40
2 0X02 Fija la ganancia analógica máxima en 50
3 0X03 Fija la ganancia analógica máxima en 60
4 0X04 Fija la ganancia analógica máxima en 70
5 0X05 Fija la ganancia analógica máxima en 80
6 0X06 Fija la ganancia analógica máxima en 100
7 0X07 Fija la ganancia analógica máxima en 120
8 0X08 Fija la ganancia analógica máxima en 140
9 0X09 Fija la ganancia analógica máxima en 200
10 0X10 Fija la ganancia analógica máxima en 250
11 0X11 Fija la ganancia analógica máxima en 300
12 0X12 Fija la ganancia analógica máxima en 350
13 0X13 Fija la ganancia analógica máxima en 400
14 0X14 Fija la ganancia analógica máxima en 500
15 0X15 Fija la ganancia analógica máxima en 600
16 0X16 Fija la ganancia analógica máxima en 700

Tenga en cuanta que la relación entre el registro de ganancia y la ganancia real no es una relación lineal. No existe una fórmula mágica que diga "si utiliza este valor de ganancia, el alcance será exactamente este". Depende del tamaño, forma, y material del objeto y de los elementos restantes de la habitación. Lo recomendable es experimentar con diferentes valores hasta obtener los resultados deseados. Si obtiene lecturas falsas, puede que sean los ecos de los "pings" anteriores, vuelva a lanzar el sensor SRF10 cada 65mS o más (menos tasa).

Si tiene alguna duda acerca de los registros Range y Gain, recuerde que en el sensor SRF10 se fijan los valores por defecto automáticamente cuando se inicia el sistema. Es más, puede olvidarse de esta configuración y utilizar los valores por defecto y el sensor funcionará correctamente, detectando objetos a 6 metros cada 65mS o menos.

Con el soporte opcional S1360142 puede montar el sensor facilmente en un servo

LED

EL indicador LED rojo se utiliza para indicar el código de la dirección I2C del sensor en el encendido (ver abajo). Así mismo, también emite un breve destello durante el "ping" en el cálculo de la distancia.

Cambio de la dirección del bus I2C del SRF10

Para modificar la dirección I2C del sensor SRF10 sólo podrá tener un sensor conectado al bus. Escriba los 3 comandos de secuencias en el orden correcto seguidos de la dirección. Ejemplo; para cambiar la dirección de un sensor que tiene actualmente la dirección 0xE0 (la dirección de fábrica por defecto) a la dirección 0xF2, escriba lo siguiente en la dirección 0xE0; (0xA0, 0xAA, 0xA5, 0xF2). Se deberían enviar estos comandos con el orden secuencial correcto para modificar la dirección I2C. Además, no es posible emitir cualquier otro comando en medio de la secuencia. La secuencia debe enviarse al registro de comandos de la ubicación 0, lo que implica que se escribirán 4 transacciones independientes en el bus I2C. Una vez realizado todo esto, deberá etiquetar el sensor con su dirección. No obstante, si olvida hacerlo, cuando lo encienda, no se enviará ningún comando. El sensor SRF10 indicará su dirección mediante el LED. Un destello largo seguido de un número de destellos cortos indicará la dirección. Los destellos terminarán inmediatamente después de enviar un comando al sensor SRF10.

Dirección
Decimal
Hexadecimal
Destello Largo
Destellos cortos
224 E0 1 0
226 E2 1 1
228 E4 1 2
230 E6 1 3
232 E8 1 4
234 EA 1 5
236 EC 1 6
238 EE 1 7
240 F0 1 8
242 F2 1 9
244 F4 1 10
246 F6 1 11
248 F8 1 12
250 FA 1 13
252 FC 1 14
254 FE 1 15

Asegúrese de no configurar más de un sensor con la misma dirección, ya que se produciría una colisión en el bus, con resultados totalmente imprevisibles.

Consumo de corriente

El consumo medio de corriente se calcula que es aproximadamente 12mA durante el cálculo de la distancia, y 3mA en modo de espera. El módulo entrará automáticamente en modo de espera después de terminar la medición, mientras espera al siguiente comando del bus I2C. El perfil real de consumo de corriente del srf10 es el siguiente:

Tipo de operación realizada
Corriente
Duración
Comando de medición de la distancia recibido -Encendido 275mA 3uS
Estabilización del generador de +/- 10v 25mA 600uS
8 ciclos de "ping" 40kHz 40mA 200uS
Medición 1mA 65mS máx.
Modo de espera (Stand-by) 3mA Indefinido

Los valores de la tabla anterior se ofrecen sólo a modo orientativos, no se han comprobado en unidades de producción.

Cambio del ángulo de detección

El ángulo de detección no se puede cambiar. Esta es una pregunta que se hace muy frecuentemente y cuya respuesta es que no se puede alterar. El foco de trabajo del SRF10 es un cono cuyo ancho depende del propio traductor y esta es fija. La forma del área de trabajo del traductor ultrasónico empleado en el SRF10 es la de la siguiente figura, tomada de la hoja de características del fabricante.

Area de trabajo del traductor del SRF08

Cómo montar el sensor SRF10

Debe tener en cuenta que el módulo SFR10 no presenta orificios de montaje. Esto se ha hecho deliberadamente para que el módulo sea lo más pequeño posible.

Para montar el modulo le recomendamos que utilice el soporte opcional S360142 que esta especialmente concebido para fijar el modulo sobre un servo motor.

Para colocarlo sobre una superficie plana, lo mejor es hacer dos taladros de 12,7 mm separados entre si 17,78 mm y utilizar dos pasacables de goma de 9,5 mm. Finalmente se coloca el sensor dentro de las arandelas quedando sujeto por estas.

El sensor SRF10 montado sobre el soporte opcional en un servo.Con el soporte S3160142 es posible montar el sensor facilmente en un servo

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

44,75-Euros.
IVA incluido
AÑADIR AL CARRITO DE LA COMPRA

SRF10 MINI SENSOR DISTANCIAS ULTRASONIDOS I2C

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