Archivo de la etiqueta: Sensores

RCWL-0516: Módulo sensor de movimiento de microondas con radar Doppler

Este módulo ha sido diseñado como una alternativa a los conocidos sensores de movimiento PIR (Sensor Infrarrojo Pasivo), ampliamente utilizados en alarmas antirrobo, y en luces de seguridad. Contiene en su interior todos los componentes electrónicos esenciales, incluyendo un regulador de tensión interno en el chip, que entrega 3,3V.

Al igual que el sensor PIR, este sensor también detecta solamente algo que esté en movimiento dentro de su rango de detección, pero en lugar de percibir la radiación del cuerpo negro (infrarrojo) de una persona que se mueve, este sensor utiliza una técnica de “radar Doppler de microondas” para detectar cualquier tipo de objetos en movimiento.

Tamaño:

Tiene un rango de sensibilidad de alrededor de 7 metros. Cuando se dispara, su pin de salida de nivel TTL (OUT) cambia de BAJO (0 V) a ALTO (3,3 V) por un tiempo de 2 a 3 segundos antes de volver a su estado inactivo (BAJO).

Características:

1. Voltaje de Operación: 4-28V
2. Corriente de Operación: 2,8mA (típica); 3mA (máx)
3. Distancia de Detección: 5-7m
4. Potencia de Transmisión: 20mW (típica); 30mW (máx)
5. Voltaje de Salida: 3,2-3,4V
6. Capacidad de Corriente del Voltaje de Salida: 100mA
7. Modo de Disparo: repetición de disparo
8. Nivel de Salida Bajo: 0V
9. Nivel de Salida Alto: 3,3V
10. Temperatura de Operación: -20º a 80º celsius
11. Temperatura de almacenamiento: -40º a 100º celsius

Como se ve en sus características, el sensor puede manejar un amplio rango de alimentación: desde 4 hasta 28 V. El pin de salida se puede utilizar para una multitud de tareas, como el manejo de un indicador auditivo o visual, o incluso para conectarlo a la entrada de un microcontrolador para su procesamiento.

Donde se instale, se debe evitar que haya partes metálicas delante del módulo. Del mismo modo, siempre hay que mantener un mínimo de espacio libre de 1 cm en la parte frontal y posterior del módulo.

Pines de salida:

CDS – Entrada de desactivación del sensor (bajo = desactivado)
VIN – entrada de alimentación de 4 a 28V CC
OUT – ALTO (3,3V) movimiento detectado / BAJO (0V) inactivo
GND – Tierra / 0V
3V3 – Salida de CC regulada (100mA máx)

El LDR es opcional. Si se instala, inhibe el funcionamiento del módulo cuando recibe la luz del día. Es evidente que se convierte en una función útil cuando se utiliza el sensor para encender luces de seguridad, ya que al hacerse de día dejará de encenderla por no ser necesaria esa iluminación con luz diurna.

La distancia de detección, y la duración de la salida del módulo cuando hay una detección, se pueden ajustar añadiendo componentes pasivos en unos puntos de soldadura de la parte posterior de la placa de circuito.

Los elementos opcionales para realizar distintos ajustes van soldados sobre los puntos marcados C-TM, R-GN y R-CDS (abajo, imagen del lado de la soldadura de la placa).

Hay puntos de soldadura donde agregar una resistencia dependiente de la luz LDR (marcado CDS). El pin de entrada CDS sirve para desactivar (anular la opción de detección de luz ambiental) en el sensor, si fuese necesario.

C-TM: Ajusta el tiempo de activación de repetición (predeterminado: 2 segundos). Agregar un condensador dará una repetición más extensa del tiempo de disparo.

R-GN: ajuste de la distancia de detección (por defecto 7 metros). Añadiendo una resistencia a la detección la distancia se hará más corta. Si está conectado con una resistencia de 1 MΩ, el rango de detección es de aproximadamente 5 m.

R-CDS: al agregar una resistencia (en paralelo con la resistencia interna de 1 MΩ), el usuario puede cambiar el umbral de detección de luz según su necesidad individual. Esto es aplicable solo cuando hay un sensor de luz soldado en los puntos de soldadura (CDS) en la parte frontal de la placa de circuito.

Una resistencia de 47–100K funciona bien con un LDR estándar de 5 mm.

Funcionamiento

La electrónica del módulo posee dos secciones igualmente importantes: un transmisor / receptor / mezclador de frecuencia de microondas basado en un transistor NPN de alta frecuencia MMBR941M, y una sección de frecuencia mucho más baja basada en un circuito integrado RCWL-9196.

Técnicamente, la sección de microondas se parece a un «oscilador Colpitt» con el inductor requerido (y los capacitores) hechos con trazas de la placa de circuito. El inductor (~ 10 nH) es el trazado de la curva S en la superficie superior, y los condensadores son la estructura en anillo en la superficie inferior, y también el bloque rectangular a la izquierda de la S curva.

Circuito de la placa

Ubicación de los componentes

Circuito del chip

Dos modos de salida

Un circuito de prueba

Antes de profundizar en algo, le recomiendo que se familiarice con el hardware y el procedimiento inicial de instalación/ejecución y tratar de hacer algunos pequeños experimentos.

Aunque puede usar RCWL-0516 solo con una fuente de alimentación y un LED en su salida, se puede agregar un circuito controlador de relé para controlar cargas externas que requieran mayor corriente al accionarse cuando se detecta un movimiento.




Esquemático de la primera prueba:

Tenga en cuenta que la resistencia de 1 k (R1) no es necesaria ya que el módulo tiene una resistencia de 1 kΩ entre el pin OUT y el pin de salida real del chip de 16 patas (RCWL-9196).

El relé (RL1) en el circuito es accionado por un transistor estándar BC547 o 2N3904 (T1), y hay un indicador de «relé encendido» (LED1) que se enciende cuando el relé está en estado activo. Si lo desea, también puede utilizar otros relés de voltaje diferente. Sin embargo, en ese caso, la entrada de la fuente de alimentación (que es de 5 V) tendría que ser cambiada (con algunas otras modificaciones menores, por supuesto). El conector de 2 pines (JP1) está reservado para pruebas futuras, y sólo es utilizable cuando hay un sensor de luz conectado al módulo.

Para fines experimentales, este circuito se puede construir en una placa de pruebas. Se puede usar un conector de 5 patas (sólo se requieren tres para la primera prueba) para conectar el módulo de radar.

A continuación se muestra el montaje de esta configuración de prueba (ver también el video de prueba):

Video

  

Efecto Doppler

En principio, el efecto Doppler es un cambio en la frecuencia recogida por un receptor de la señal reflejada en un objeto en movimiento. En los radares de efecto Doppler, para detectar un objeto en movimiento se puede usar una señal no modulada (CW). El receptor del sensor procesa la señal transmitida con la señal reflejada en un objetivo.

Debido al efecto Doppler, la velocidad de desplazamiento de un objeto en relación con la antena provoca un cambio en la frecuencia. Se puede estimar, simplemente, que la frecuencia Doppler (que es la frecuencia obtenida en el receptor) es la cantidad de medias-ondas de la frecuencia de señal enviada por el objetivo por segundo. Una velocidad más alta producirá una frecuencia Doppler más alta. Un sistema de este tipo, con una disposición para detectar la fase de la señal, también puede indicar el sentido del movimiento del objetivo: los objetos que se alejan generan una frecuencia más baja que la de la señal de sondeo, mientras que los objetos que se aproximan generan una frecuencia más alta.

Oscilador Colpitts

El oscilador Colpitts es un tipo popular de oscilador LC inventado por Edwin Colpitts en 1918. La figura que se ve a continuación muestra un oscilador Colpitts típico basado en un BJT con un circuito tanque, en el cual un inductor L está conectado en paralelo a la combinación en serie de condensadores C1 y C2. La frecuencia del oscilador Colpitts depende de los componentes de su circuito tanque, y se puede calcular mediante una fórmula simple (ver figura). Por ejemplo: si L = 27 uH, C1 = 1 nF y C2 = 15 nF, entonces F = 1 MHz. Tenga en cuenta que el oscilador Colpitts se puede sintonizar variando la inductancia o la capacitancia.

Diagrama de un oscilador Colpitts

En mi opinión, el sensor de microondas RCWL-0516 es una poderosa alternativa al sensor PIR común, pero este modelo tiene una documentación muy limitada (escasa), lo que lo convierte en un problema para los principiantes. Además de leer el material «chino» encontrado, también se han hecho algunas investigaciones para agregar alguna información para que alguien pueda usarla rápidamente. Mientras que, por el momento, no se ve otro uso para este módulo de sensor aparte de su aplicación de detección de movimiento, se puede adaptar fácilmente para agregar o modificar funciones. Una de ella sería una discriminación más detallada de las trayectorias de objetos que se alejan o se acercan. Debido a sus características de emisión de RF, no se deben colocar sensores a menos de 1 metro uno de otro, pero con dos sensores colocados a la distancia correcta sería posible, también, conocer si el objeto en movimiento lo hace de derecha a izquierda o a la inversa, de izquierda a derecha. Combinando ambas detecciones, es decir, aproximación y alejamiento, y desplazamiento en sentido horizontal respecto a los sensores, sería posible saber detalles de cómo se está desplazando el objeto detectado en el área monitoreada.


[Varias partes de este artículo están basadas en la recopilación de Joe Desbonnet y otros colaboradores mencionados en ésta en GitHub bajo licencia Creative Commons y autorización expresa del autor]

Arduino: reconocer colores con el módulo TCS230 – TCS3200

En principio hay que dejar en claro que nos vamos a encontrar en los sitios de venta y en la información técnica en-línea con diversos formatos de soporte físico de este sensor. Voy a mostrar al menos 4 en la imagen que sigue.

Confusiones de Mercado:

Antes de seguir se presenta la necesidad de aclarar que hay una controversia difícil de resolver: los vendedores, sea en sitios como Mercadolibre o internacionales como eBay, nombran a estos sensores como «TCS230 TCS3200 Recognition Color Sensor Detector Module» («Módulo Sensor Detector de Reconocimiento de Color TCS230 TCS3200»). Es decir, en el nombre descriptivo aparecen dos códigos, y estos códigos son los nombres de dos chips diferentes: TCS230 y TCS3200. Modelos diferentes. Si alguien desea dilucidar qué chip detector posee su propio módulo recomiendo leer y seguir este debate en el foro oficial de Arduino. O más fácil, una observación detallada de la ventana del chip permite ver de cuántos fotodiodos se compone. Si es una matriz de 8×8 (es visible con facilidad), su sensor corresponde a la descripción y ejemplos que tratamos aquí. Si la matriz es de 4×4 o 8×4, usted se encuentra en presencia de otro sensor. Digamos que, de ser así, y la cantidad y nombre de los pines de entrada/salida de su módulo coinciden con las descripciones que ofrezco aquí, usted puede probar con su sensor los diagramas de conexión y programas propuestos en este artículo. Para mayor tranquilidad, según sus hojas de datos, tanto el TCS230 como el TCS3200 poseen una matriz de 8×8 fotodiodos y la descripción de funcionamiento de la primera hoja coincide en todos sus parámetros, excepto en el tamaño de los fotodiodos, que es de 110 μm x 110 μm separados 134-μm centro a centro en el TCS3200, y de 120 µm x 120 µm separados 144-µm en el TCS230. También se nota una diferencia física en el diagrama de ambos chips, visible en la forma de sus conexiones metálicas internas. La opinión en el debate del foro de Arduino es que el TCS230 en una versión anterior de fabricación del TCS3200, lo cual es muy posible porque la empresa fabricante originalmente era TAOS, y luego se convirtió en AMS.

Diagrama en la hojas de datos del chip TCS230 y TCS3200:

Módulo Sensor/Detector de reconocimiento de color

Descripción básica:

Este módulo utiliza un sensor integrado provisto de 64 fotodiodos. De estos 64 fotodiodos, 16 tienen filtro para el color rojo, 16 para el color verde, 16 para el color azul y 16 para luz directa (sin ningún filtro).

Al estar distribuidos uniformemente sobre el chip, estos fotodiodos captan la luz, filtran los colores, y generan una salida de señal de onda cuadrada cuyo ancho de pulso indica la información sobre la intensidad del rojo (R = red: rojo), verde (G = green: verde) y azul (B = blue: azul).

Si observa de cerca un chip TCS3200, se pueden ver los diferentes filtros:

En el módulo que se ve en la foto de cabecera, el sensor se ha montado junto con cuatro LEDs blancos que aportan la iluminación. El módulo posee ocho pines de conexión.

El rango de distancia para la medición es de 10 mm. El módulo mide 31,6 mm x 24,4 mm. Sus pines están separados entre sí con la separación estándar de la placas de circuito impreso preperforadas y de las protoboard, o placas de prototipo.

El módulo acepta una alimentación de 3 a 5 voltios aplicada en dos pines, y para la conexión con un Arduino u otro microcontrolador se utilizan 6 pines:

  • Control: S0, S1, S2, S3
  • OUT (SALIDA): que se encarga de enviar la información
  • OE (Output Enable: habilitación de la salida)

Las entradas se pueden controlar desde una salida digital del Arduino u otra plaqueta de control, o en el caso de OE, conectarla a tierra (lado ─, o negativo, de la alimentación) para habilitar el módulo de manera constante.



Funcionamiento:

Los TCS3200 son sensores que convierten en frecuencia la intensidad de luz medida por una matriz de fotodiodos. La frecuencia entregada por el sensor TCS3200 es mayor cuanta mayor luminosidad se detecte. La configuración en matriz de los fotodiodos permite lograr un promedio del valor que se mide para compensar diferencias de color en la superficie que se muestrea. También dispone de filtros de color distribuidos de manera uniforme por la superficie, ubicados sobre los fotodiodos, que, al ir alternando su estado, sirven para distinguir cada componente de la luz.

La matriz de los sensores TCS3200 está formada por 16 fotodiodos con un filtro rojo, 16 con un filtro verde, 16 con un filtro azul y otros 16 sin filtrar. Los 64 fotodiodos no funcionan de manera simultánea sino que se activan por grupos de color antes de realizar la medición de la intensidad de luz que incide en ellos. Para elegir qué filtros deben activarse en cada momento, los TCS3200 disponen de dos pines, S2 y S3, con las que configurarlos.

Una vez obtenida la lectura de la iluminación, la corriente se convierte a frecuencia en forma de onda cuadrada con un ciclo de trabajo del 50% (mitad pulso alto, mitad pulso bajo). Enviar al microcontrolador una frecuencia en lugar de una corriente (intensidad) permite que sea más estable y soporte mejor las interferencias producidas por las pistas del circuito o los cables que unan el TCS3200 con el micro.

La máxima frecuencia que los TCS3200 puede generar (sin producir saturación) dependiendo de la intensidad de la luz medida y del color (longitud de onda de la luz) es de 600 KHz. Para poder utilizar un microcontrolador (u otros componentes) a poca velocidad, es posible escalar la frecuencia en tres niveles, la normal (máxima) al 100%, una media al 20% y otra baja al 2%. Los pines S0 y S1 de los TCS3200 son para establecer estos valores de frecuencia.

Conexiones del sensor

GND Tierra de la fuente de alimentación
OE (entrada) Habilitar la salida de frecuencia (activo bajo)
OUT (salida) Frecuencia de salida
S0, S1 (entradas) Entradas de selección de la escala de frecuencia de salida
S2, S3 (entradas) Entradas de selección del tipo de fotodiodo
VDD Voltaje de alimentación

Selección de filtro:

Para seleccionar el color que se lee de los fotodiodos, se utilizan los pines de control S2 y S3. Dado que los fotodiodos están conectados en paralelo, estableciendo S2 y S3 en diferentes combinaciones de BAJO y ALTO permite seleccionar diferentes grupos de fotodiodos. La tabla de abajo indica las opciones:

Escala de frecuencia:

Para el Arduino es común usar una escala de frecuencia del 20%. Por lo tanto, se establece el pin S0 en ALTO y el pin S1 en BAJO.




Sensor de color con Arduino y TCS3200:

En este ejemplo, se va a detectar colores con el Arduino y el sensor de color TCS3200. Esta configuración sensor no es muy precisa, pero funciona bien para detectar colores en proyectos simples.

Esquemático:

Conectar el sensor TCS3200 al Arduino es bastante sencillo. Simplemente se debe seguir el siguiente diagrama esquemático. Utilizo en este ejemplo el modelo que aparece en la foto en el encabezado de esta nota.

Las primeras pruebas serán:

1. Lectura y visualización de la frecuencia de salida en el monitor serie. En esta parte, anotaremos los valores de frecuencia al colocar diferentes colores frente al sensor.

2. Distinguir entre diferentes colores. En esta sección, insertaremos los valores de frecuencia seleccionados en el código previo, para que el sensor pueda distinguir entre diferentes colores. Detectaremos colores rojos, verdes y azules.

Leyendo la frecuencia de salida

Abrir el monitor serie configurado a una velocidad de 9600 baudios.

Colocar un objeto AZUL frente al sensor a diferentes distancias. Registrar dos mediciones: cuando el objeto se coloca a distancia del sensor, y cuando el objeto está cerca de él (ideal 1 cm).

Comprobar los valores que muestra el monitor serie. La frecuencia para el AZUL (B) debe ser la más baja en comparación con las lecturas de frecuencia del ROJO (R) y VERDE (G).

Con el objeto AZUL delante del sensor, los valores de frecuencia para el AZUL (B) oscilan entre dos valores que pueden estar separados por una relación cercana a 4 a 1 para las mediciones de cerca y de lejos.

Los valores que mostremos en este ejemplo no deben ser tomados como referencia. Para su código, usted debe medir los colores de su objeto específico con su propio sensor de color. Guarde los límites de frecuencia superior e inferior para el color AZUL, porque son necesarios más adelante.

Repetir el proceso con objetos de color VERDE y color ROJO y anotar los límites de frecuencia superior e inferior para cada uno de ellos.

Distinguir entre diferentes colores

El programa a continuación asigna los valores de frecuencia a valores RGB (que están cada uno entre 0 y 255).

En el paso anterior, cuando tomamos el máximo AZUL, digamos como ejemplo que obtuvimos una frecuencia de 60 y cuando colocamos el objeto AZUL a una distancia mayor obtuvimos 230.

Entonces, 60 en frecuencia corresponde a 255 (en RGB) y 230 en frecuencia a 0 (en RGB). La conversión se realiza con la función map() del lenguaje Arduino. En la función map() usted debe reemplazar los parámetros xx con los valores que usted ha registrado.

La explicación de las comparaciones es:

Cuando R es el valor máximo (en parámetros RGB), sabemos que tenemos un objeto rojo.
Cuando G es el valor máximo, sabemos que tenemos un objeto verde.
Cuando B es el valor máximo, sabemos que tenemos un objeto azul.

Al colocar algo delante del sensor, deberá mostrar en su monitor serie el color detectado: rojo, verde o azul.

Agregando al programa más comparaciones se puede ampliar la detección. Como se dijo a inicio de este artículo. se trata de un ejemplo simple de uso de este detector de colores, al que, con tiempo y dedicación, se puede ampliar a los niveles de complejidad que se desee.




VL53L0X: Sensor de distancia que mide por la velocidad de la luz (Time-of-Fly)

El VL53L0X es un producto novedoso basado en el sistema FlightSense de la empresa ST Microelectronics. Es una tecnología innovadora que permite medir distancia con independencia de la reflectividad del objetivo.

En lugar de calcular la distancia midiendo la cantidad de luz reflejada desde el objeto (en lo que influye significativamente el color y tipo de superficie), el VL53L0X mide con precisión el tiempo que tarda la luz en viajar desde el objeto más cercano y volver reflejada hasta el sensor (un proceso llamado Time-of-Fly, o Tiempo de vuelo).

Debido a que utiliza una fuente de luz con un haz muy estrecho, es bueno para determinar la distancia de solamente la superficie que está directamente delante. A diferencia de los sonares ultrasónicos que hacen rebotar sus ondas de sonido, en este caso el «cono» de la detección es muy estrecho. A diferencia de los sensores de distancia IR que intentan medir la cantidad de luz que regresa, el VL53L0x es mucho más preciso y no tiene problemas de linealidad o «imágenes dobles», en las que no se puede saber si un objeto está muy lejos o muy cerca.

Puede medir distancia con un alcance de hasta 2 m.

El control del procesador y la lectura de los resultados se realizan por medio de una interfaz I2C.

Características clave

  • Emisor infrarrojo: 940 nm
  • Distancia: hasta 2000 mm
  • Dirección I2C: Programable
  • Fuente de luz VCSEL (Vertical-cavity surface-emitting laser = Láser de emisión de superficie de cavidad vertical)
  • Sensor de rango con avanzado microcontrolador
  • El chip mide sólo 4,4 x 2,4 x 1,0 mm
  • Medición de distancia rápida y precisa
  • Mide rango absoluto hasta 2 m.
  • El rango reportado es independiente de la reflectividad del objetivo
  • Compensación óptica cruzada integrada avanzada para simplificar la selección del vidrio de cobertura
  • Seguro para el ojo humano
  • Dispositivo láser de clase 1 que cumple con la última norma IEC 60825-1: 2014 – 3ª edición
  • Fácil integración por el sistema de montaje de soldadura del chip
  • No tiene óptica adicional
  • Fuente de alimentación individual
  • Regulador de voltaje integrado en la plaqueta
  • Interfaz I2C para control de dispositivos y transferencia de datos
  • Pines de entrada salida de uso general Xshutdown (para reinicio) e Interrupt (interrupción)
  • Dirección I2C programable

Conexión con Arduino

  • VCC (en algunos fabricantes VIN) es la fuente de alimentación, el módulo acepta de 3 a 5V de alimentación. Use el mismo voltaje en el que se basa la lógica del microcontrolador. Para la mayoría de los Arduinos es 5V.
  • Conecte GND a tierra/alimentación común (marcado también GND en el Arduino).
  • Conecte el pin SCL al pin SCL (señal de reloj I2C en su Arduino. En un Arduino UNO también se conoce como pin A5, aunque está disponible del lado de los pines digitales. En un Mega es el digital 21 y en un Leonardo es el digital 3.
  • Conecte el pin SDA al pin SDA (datos I2C) en su Arduino. En un Arduino UNO también se conoce como pin A4, en un Mega es el digital 20 y en un Leonardo es el digital 2.

Los pines adicionales son:

GPIO1: este es un pin que usa el sensor para indicar que están listos los datos. Es útil para cuando se realiza una detección continua. Tenga en cuenta que no hay ajuste de nivel en este pin, es posible que no se pueda leer el voltaje de nivel lógico de 2,8V en un microcontrolador de 5V (podríamos en un Arduino UNO, pero no es seguro). La biblioteca de Adafruit no hace uso de este pin, pero está ahí para usuarios avanzados.

XSHUT – es el pin de apagado/reinicio para el sensor. Por defecto es alto. Hay un diodo de cambio de nivel para que se pueda usar la lógica de 3,3 – 5 V en este pin. Cuando el pin va a nivel bajo, el sensor entra en modo de apagado.




Abra el IDE de Arduino. Mantenga siempre actualizado a la última versión.

Abra en el menú HERRAMIENTAS la opción ADMINISTRAR BIBLIOTECAS.

Búsqueda y carga en el IDE Arduino de la biblioteca del VL53L0X

La elección ADMINISTRAR BIBLIOTECAS abrirá la siguiente ventana del Gestor de Bibliotecas:

En esa ventana tenemos, en la parte superior derecha una ventana de editor con la leyenda «Filtre su búsqueda…«, donde debemos escribir el nombre del dispositivo:

Esta búsqueda nos ofrece varias bibliotecas. Para Arduino UNO y relacionados tenemos la de Adafruit y la de Pololu. En artículos en la web recomiendan la de Pololu, porque es más simple que la del otro fabricante. De todos modos, podemos instalar ambas. No hay conflictos en esto. El botón que dice «Instalar» aparece cuando se coloca el puntero del mouse en la biblioteca elegida. Si no aparece, es porque ya está instalada. Si no fuese así, recurra a el enlace «More info» y descargue la biblioteca desde el sitio GitHub, en formato ZIP, y proceda a instalarla con las instrucciones que ofrecen AQUÍ.

El gestor nos indicará que la biblioteca está lista con un cartel remarcado «INSTALLED».

Las bibliotecas quedan listas para ser utilizadas. La que corresponde a Pololu se llama VL53L0X, mientras que la de Adafruit se llama igual y está dentro de todas las bibliotecas de este fabricante, que llevan su nombre comercial como prefijo.

Dirección para el bus I2C

La dirección por defecto de I2C es 0x29, pero recuerde que es posible programar esta dirección en el VL53L0X. Con la biblioteca Adafruit, hay dos maneras de establecer la nueva dirección. Durante la inicialización, en lugar de llamar a lox.begin(), se llama a lox.begin(0x30) para establecer la dirección en 0x30. O se puede, más adelante, llamar a lox.setAddress(0x30) en cualquier momento. Es importante realizar esta operación con una sola placa VL53L0X conectada al bus I2C, o todas quedarán cambiadas.

Programas de prueba

«Continuous», de Pololu
(Este ejemplo muestra cómo usar el «modo continuo» para tomar mediciones de distancia con el VL53L0X. La información se muestra en la pantalla emergente del Monitor Serie, que debe estar fijado en 9600 baudios.)

Y el que sigue es un ejemplo con la biblioteca de Adafruit, con los comentarios traducidos. Siempre con la misma conexión del diagrama de arriba.

En el programa que sigue, para reducir el ruido de la medición se muestra el promedio de varias medidas. Las líneas comentadas muestran los distintos modos de funcionamiento.



Auxiliares para control y digitalización de señales analógicas

Muchas de las señales que ingresan a un sistema digital, que provienen del mundo real y que por eso en pocas ocasiones se pueden considerar «binarias» (digital «0 y 1», «Sí y No», «valor» o «no valor»), son en su mayoría lecturas analógicas.

Si bien los microcontroladores incluyen entradas para señales analógicas, a veces no alcanza la precisión de lectura que poseen, o no alcanza la cantidad de entradas disponibles, y para esto necesitamos elementos auxiliares que nos ayuden a direccionarlas y leerlas, como los que presento aquí.

Convertidor analógico a digital ADS1115

Para los microcontroladores sin convertidor analógico a digital o cuando se quiere un ADC de mayor precisión, el ADS1115 proporciona una precisión de 16 bits a 860 muestras/segundo sobre I2C. El chip se puede configurar como 4 canales de entrada de un solo extremo, o dos canales diferenciales. Como una buena ventaja, incluso incluye un amplificador de ganancia programable, hasta X16, para ayudar a aumentar las señales individuales / diferenciales más pequeñas al rango completo. El ADC puede funcionar de 2 V a 5 V de alimentación lógica, puede medir un amplio rango de señales y es súper fácil de usar. Es un gran convertidor de 16 bits de propósito general.

La interconexión se realiza a través de la interfaz I2C. La dirección se puede cambiar a una de cuatro opciones para que pueda tener hasta 4 ADS1115 conectados en un solo bus I2C de 2 hilos para 16 entradas de terminación simple.

Especificaciones técnicas

Amplio rango de alimentación: 2,0V a 5,5V
Consumo de corriente bajo: Modo continuo: solo 150μA
Modo de disparo único: apagado automático
Tasas de datos programables: 8 SPS a 860 SPS (SPS = senseos por segundo)
Referencia interna de baja tensión de deriva interna: Sí
Oscilador interno: Sí
PGA incorporado: Sí (PGA = Amplificador de Ganancia Programable)
INTERFAZ I2C: Direcciones seleccionables por pines
Número de entradas analógicas: 4 simples o 2 Diferenciales
Comparador programable
Direcciones I2C: direcciones de bits entre 0x48-0x4B, seleccionables con puentes
Dimensiones mecánicas: 26.0 mm (L) x 9.4 mm (W) x 2.2 mm (H)
Separación de los pines: estándar 2,54 mm / 0,1 pulgada

Compatible con:

Placas Arduino como UNO, MEGA2560, DUE, Leonardo, Pro-mini, Pro-Micro, Nano, etc.
Raspberry Pi
ESP32, ESP8266, NodeMCU, WeMOS,
Microcontroladores PIC32, STM8, STM32, AVR, ATMEGA

Documentos y descargas:

ADS1115 Hoja de datos
ADS1115 Librería Python
ADS1115 Librería Arduino
ADS1115 Tutorial (Módulo similar, en breve publicaré nuestro propio tutorial)

Circuito típico

Conexiones

Selector analógico bidireccional CD74HC4067

Selector analógico bidireccional (multiplexor / demultiplexor) de 16 canales. Funciona como direccionador de 16 entradas analógicas a 1 vía de salida, o como 1 entrada analógica a 16 vías de salida.

Opera con alimentación entre 1,2 a 6 V.

Controla voltajes analógicos dentro del rango entre cero y el voltaje de alimentación.

Al ser bidireccionales permiten que las señales analógicas controladas sean, indistintamente, entradas o salidas. Estos selectores tienen baja resistencia al estar en estado de conducción, y alta resistencia al estar cerrados.


Ejemplos

Múltiples señales analógicas dirigidas a una entrada del microcontrolador

Múltiples Led controlados desde un único pin digital del microcontrolador

Hoja de datos:

CD74HC4067: http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf

Crean piel electrónica resistente al agua, sensible y con capacidad de auto-reparación

Un equipo de científicos de la Universidad Nacional de Singapur (NUS) se inspiró en los invertebrados submarinos como las medusas para crear una piel electrónica con una funcionalidad similar.

Al igual que una medusa, la piel electrónica es transparente, estirable, sensible al tacto y se auto-repara en entornos acuáticos. Pero además es conductora de la electricidad, y podría usarse en todo, desde pantallas táctiles resistentes al agua hasta robots acuáticos blandos.

El profesor asistente Benjamin Tee y su equipo del Departamento de Ciencia e Ingeniería de Materiales de la Facultad de Ingeniería de la Universidad Nacional de Singapur desarrollaron el material, junto con colaboradores de la Universidad de Tsinghua y la Universidad de California en Riverside.

El equipo de ocho investigadores dedicó poco más de un año a desarrollar el material, y su invención se publicó por primera vez este año en la revista Nature Electronics.

Materiales auto-reparables, transparentes e impermeables para un amplio rango de usos

El profesor asistente Tee ha estado trabajando en pieles electrónicas durante muchos años, y fue parte del equipo que desarrolló los primeros sensores electrónicos de piel con auto-reparación en 2012.

Su experiencia en esta área de investigación lo llevó a identificar los obstáculos clave que aún no han superado las pieles electrónicas auto-reparables. «Uno de los desafíos con la mayoría de los materiales auto-reparables actuales es que no son transparentes y no funcionan de manera eficiente cuando están mojados», dijo. «Estos inconvenientes los hacen menos útiles para aplicaciones electrónicas, como las pantallas táctiles, que a menudo deben usarse en condiciones de clima con humedad extrema».

Continuó: «Con esta idea en mente, comenzamos a observar a las medusas; son transparentes y capaces de percibir en el ambiente acuático. Entonces, nos preguntamos cómo podríamos hacer un material artificial que pudiera imitar la naturaleza resistente al agua de las medusas y, sin embargo, fuese sensible al tacto».

Tuvieron éxito en este esfuerzo al crear un gel que consiste en un polímero a base de fluorocarbono con un líquido ionizado rico en flúor. Cuando se los combina, la red de polímeros interactúa con el líquido iónico a través de interacciones ión-dipolo altamente reversibles, lo que le permite auto-repararse.

Al elaborar las ventajas de esta configuración, el profesor Tee explicó: «La mayoría de los geles de polímeros conductores, como los hidrogeles, se hinchan al sumergirlos en agua o se secan con el tiempo en el aire, lo que hace que nuestro material sea diferente es que puede conservar su forma tanto en entornos húmedos como secos. Funciona bien en agua de mar e incluso en ambientes ácidos o alcalinos».


La próxima generación de robots blandos

La piel electrónica se crea imprimiendo el material nuevo dentro de circuitos electrónicos. Como es un material blando y estirable, sus propiedades eléctricas cambian cuando se toca, presiona o se tensa.

«Luego podemos medir este cambio y convertirlo en señales eléctricas legibles para crear una amplia gama de diferentes aplicaciones de sensores», agregó el profesor Tee.

«La capacidad de imprimir nuestro material en 3D también muestra potencial en la creación de tableros de circuitos totalmente transparentes que podrían usarse en aplicaciones robóticas. Esperamos que este material pueda usarse para desarrollar varias aplicaciones en tipos emergentes de robots blandos», agregó el profesor Tee, quien también pertenece al Departamento de Ingeniería Eléctrica e Informática de NUS, y el Instituto Biomédico para la Investigación y Tecnología de Salud Global (BIGHEART) en NUS.





Los robots blandos, y la electrónica blanda en general, buscan imitar los tejidos biológicos para hacerlos más compatibles mecánicamente con las interacciones hombre-máquina. Además de las aplicaciones de robots blandos convencionales, la tecnología impermeable de este nuevo material permite el diseño de robots anfibios y dispositivos electrónicos resistentes al agua.

Una ventaja adicional de esta piel electrónica autorreparable es el potencial que tiene para reducir la basura tecnológica. Tee explicó: «Cada año, se generan globalmente millones de toneladas de desechos electrónicos provenientes de teléfonos móviles, tabletas, etc. Esperamos crear un futuro en el que los dispositivos electrónicos hechos de materiales inteligentes puedan realizar acciones de reparación automática para reducir la cantidad de desechos electrónicos en el mundo».

Próximos pasos

El profesor Tee y su equipo continuarán su investigación y esperan explorar más posibilidades de este material en el futuro. Dijo: «Actualmente, estamos haciendo uso de las propiedades integrales del material para hacer nuevos dispositivos optoelectrónicos, que podrían utilizarse en muchas nuevas interfaces de comunicación hombre-máquina».

Fuente de la historia: ScienceDaily. Materiales proporcionados por la Universidad Nacional de Singapur. Referencia de la publicación: Yue Cao, Yu Jun Tan, Si Li, Wang Wei Lee, Hongchen Guo, Yongqing Cai, Chao Wang, Benjamin C.-K. Tee. Pieles electrónicas autocurables para ambientes acuáticos. Nature Electronics, 2019; 2 (2): 75 DOI: 10.1038 / s41928-019-0206-5

Artículos relacionados:
Dando sentido del tacto a los robots
Nuevos micro robots de tamaño celular podrían hacer viajes increíbles
Una prótesis que restaura la sensación de dónde está tu mano
Módulo de teclado sensible al tacto TTP229
Un pequeño robot blando con muchas patas administraría fármacos al cuerpo humano
Usando electricidad y agua, un nuevo tipo de motor puede poner microrobots en movimiento
FlexShapeGripper: el agarre de la lengua de un camaleón