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.
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.
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.
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.
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.
Haga clic en el botón COMPRAR para añadir este producto a su carrito de la compra.
44,75-Euros.
IVA incluido
|
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 18/10/2024 © 2002 -2024 INTPLUS ®. Todos los derechos reservados
|