Archivo de la etiqueta: módulos

Programar ESP8266 desde el IDE Arduino y con sus librerías

¿Qué es un ESP8266?

El ESP8266 es un chip con capacidad Wi-Fi con un stack TCP/IP completo y un microcontrolador, fabricado por Espressif, una empresa China. El primer chip se hizo conocido el mercado con el módulo ESP-01, desarrollado por la empresa AI-Thinker. Este pequeño módulo permite a otros microcontroladores conectarse a una red inalámbrica Wi-Fi y realizar conexiones simples con TCP/IP usando comandos al estilo Hayes (comandos AT).


Características

•   CPU RISC de 32-bit: Tensilica Xtensa LX106 con un reloj de 80 MHz. El reloj de la CPU y la memoria flash puede duplicarse por overclocking en algunos dispositivos. La CPU puede funcionar a 160 MHz y la memoria flash puede trabajar entre 40 MHz y 80 MHz. Varía según la versión del chip.
•   RAM de programa de 64 KB, RAM de datos de 96 KB
•   Capacidad de memoria externa flash QSPI de 512 KB a 4 MB (puede manejar hasta 16 MB)
•   IEEE 802.11 b/g/n Wi-Fi
     o Tiene integrados: TR switch, balun, LNA, amplificador de potencia de RF y una red de adaptación de impedancias
     o Soporte de autenticación WEP y WPA/WPA2
•   16 pines GPIO (Entradas/Salidas de propósito general)
•   Interfaces SPI, I²C,
•   Interfaz I²S con DMA (comparte pines con GPIO)
•   Pines dedicados a UART, más una UART únicamente para transmisión que puede habilitarse a través del pin GPIO2
•   1 conversor ADC de 10-bit

Diversos modelos de módulos que utilizan el ESP8266

El ESP8266 se puede programar desde el IDE de Arduino. Para eso hay que instalar lo que se llama un plugin, en el que está incluido todo lo necesario para compilar y subir programas que fueron escritos tal como si fuesen .INO de Arduino.

En principio, y es importante, mantenga siempre actualizada la Interfaz de Usuario o IDE (Integrated Development Environment – Entorno de Desarrollo Integrado) del Arduino descargándola de la página oficial en www.arduino.cc.

Debemos incorporar bibliotecas y los programas de manejo de las placas con el chip ESP8266 a nuestro IDE. Para hacerlo, debemos indicarle la URL desde donde se obtienen.

Para hacerlo, debemos abrir el menú Archivo, y luego Preferencias.

Veremos este panel, en la parte inferior el recuadro de texto rotulado Gestor de URLs Adicionales de Tarjetas. Dentro de él, usando copiar y pegar, se debe introducir el texto indicado aquí:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

(copie y pegue en el recuadro):

Luego pulse en el botón Ok.

Ahora debemos ir al menú Herramientas, luego Placa.

Y finalmente Gestor de Tarjetas, se abrirá una ventana como la que sigue, en la cual escribimos, en el recuadro superior de filtro/busqueda, “ESP8266” (antes de terminar de escribir ya aparecerá el Gestor de Tarjetas que buscamos, que indica que fue creado por “ESP8266 Community”. Allí pulsamos sobre Instalar:

Al abrir nuevamente Herramientas, y luego Placa, deslizamos la lista para ver lo que aparece al final de ella (abajo), y vemos que ya existen las opciones referidas a los ESP8266:

Artículos relacionados:

ESP8266 (WiFi): Hacer que parpadee un LED desde el IDE de Arduino
Servidor web básico NodeMCU con IDE de Arduino



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

Sensores – Conceptos generales – Descripción y funcionamiento

por Eduardo J. Carletti

 

Introducción
Un robot es, por definición, una máquina capaz de interactuar con su entorno. Si es móvil, a menos que se mueva en un espacio absolutamente acotado y preparado para él, deberá ser capaz de adaptar sus movimientos y sus acciones de interacción en base a las características físicas de los ambientes con los que se encuentre y los objetos que hay en ellos.

Para lograr esta capacidad de adaptación, lo primero que necesitan los robots es tener conocimiento del entorno. Esto es absolutamente clave. Para conocer el entorno, los seres vivos disponemos de un sistema sensorial. Los robots no pueden ser menos: deben poseer sensores que les permitan saber dónde están, cómo es el lugar en el que están, a qué condiciones físicas se enfrentan, dónde están los objetos con los que deben interactuar, sus parámetros físicos, etc.

Para esto se utilizan diversos tipos de sensores (o captadores), con un rango de complejidad y sofisticación que varía desde algunos bastante simples a otros con altos niveles de sofisticación de hardware y más aún de complejidad de programación.

Detalles sobre los sensores para robots

Magnitudes físicas que es necesario medir para que un robot tenga algún conocimiento del entorno:

Diversos tipos de captadores o sensores:

Sensores reflectivos y por intercepción (de ranura)

 

Los sensores de objetos por reflexión están basados en el empleo de una fuente de señal luminosa (lámparas, diodos LED, diodos láser, etc.) y una célula receptora del reflejo de esta señal, que puede ser un fotodiodo, un fototransistor, LDR, incluso chips especializados, como los receptores de control remoto. Con elementos ópticos similares, es decir emisor-receptor, existen los sensores «de ranura» (en algunos lugares lo he visto referenciado como «de barrera»), donde se establece un haz directo entre el emisor y el receptor, con un espacio entre ellos que puede ser ocupado por un objeto.

Información detallada -> Sensores – Reflectivos y por intercepción

LDR (Light-Dependent Resistor, resistor dependiente de la luz)

 

Un LDR es un resistor que varía su valor de resistencia eléctrica dependiendo de la cantidad de luz que incide sobre él. Se le llama, también, fotorresistor o fotorresistencia. El valor de resistencia eléctrica de un LDR es bajo cuando hay luz incidiendo en él (en algunos casos puede descender a tan bajo como 50 ohms) y muy alto cuando está a oscuras (puede ser de varios megaohms).

Información detallada -> Sensores – LDR

Fotoceldas o celdas fotovoltaicas

 

La conversión directa de luz en electricidad a nivel atómico se llama generación fotovoltaica. Algunos materiales presentan una propiedad conocida como efecto fotoeléctrico, que hace que absorban fotones de luz y emitan electrones. Cuando se captura a estos electrones libres emitidos, el resultado es una corriente eléctrica que puede ser utilizada como energía para alimentar circuitos. Esta misma energía se puede utilizar, obviamente, para producir la detección y medición de la luz.

Información detallada -> Sensores – Celdas Fotovoltaicas

Fotodiodos

 

El fotodiodo es un diodo semiconductor, construido con una unión PN, como muchos otros diodos que se utilizan en diversas aplicaciones, pero en este caso el semiconductor está expuesto a la luz a través de una cobertura cristalina y a veces en forma de lente, y por su diseño y construcción será especialmente sensible a la incidencia de la luz visible o infrarroja. Todos los semiconductores tienen esta sensibilidad a la luz, aunque en el caso de los fotodiodos, diseñados específicamente para esto, la construcción está orientada a lograr que esta sensibilidad sea máxima.

Información detallada -> Sensores – Fotodiodos

Fototransistores

 

Los fototransistores no son muy diferentes de un transistor normal, es decir, están compuestos por el mismo material semiconductor, tienen dos junturas y las mismas tres conexiones externas: colector, base y emisor. Por supuesto, siendo un elemento sensible a la luz, la primera diferencia evidente es en su cápsula, que posee una ventana o es totalmente transparente, para dejar que la luz ingrese hasta las junturas de la pastilla semiconductora y produzca el efecto fotoeléctrico.

Información detallada -> Sensores – Fototransistores

CCD y cámaras de vídeo

 

La abreviatura CCD viene del inglés Charge-Coupled Device, Dispositivo Acoplado por Carga. El CCD es un circuito integrado. La característica principal de este circuito es que posee una matriz de celdas con sensibilidad a la luz alineadas en una disposición físico-eléctrica que permite «empaquetar» en una superficie pequeña un enorme número de elementos sensibles y manejar esa gran cantidad de información de imagen (para llevarla al exterior del microcircuito) de una manera relativamente sencilla, sin necesidad de grandes recursos de conexiones y de circuitos de control.

Información detallada -> Sensores – CCD y Cámaras de vídeo

Microinterruptores

 

No es necesario extenderse mucho sobre estos componentes (llamados «microswitch» en inglés), muy comunes en la industria y muy utilizados en equipos electrónicos y en automatización.

Con seguridad con la recopilación de imágenes que presentamos a la izquierda será suficiente.

Información detallada -> Sensores mecánicos de choque (parachoques)

Sensores de presión

 

En la industria hay un amplísimo rango de sensores de presión, la mayoría orientados a medir la presión de un fluido sobre una membrana. En robótica puede ser necesario realizar mediciones sobre fluidos hidráulicos (por dar un ejemplo), aunque es más probable que los medidores de presión disponibles resulten útiles como sensores de fuerza (el esfuerzo que realiza una parte mecánica, como por ejemplo un brazo robótico), con la debida adaptación. Se puede mencionar un sensor integrado de silicio como el MPX2100 de Motorola, de pequeño tamaño y precio accesible.

Información detallada -> Sensores – Presión

Sensores de fuerza

 

Un sensor de fuerza ideal para el uso en robótica es el sensor FlexiForce. Se trata de un elemento totalmente plano integrado dentro de una membrana de circuito impreso flexible de escaso espesor. Esta forma plana permite colocar al sensor con facilidad entre dos piezas de la mecánica de nuestro sistema y medir la fuerza que se aplica sin perturbar la dinámica de las pruebas. Los sensores FlexiForce utilizan una tecnología basada en la variación de resistencia eléctrica del área sensora. La aplicación de una fuerza al área activa de detección del sensor se traduce en un cambio en la resistencia eléctrica del elemento sensor en función inversamente proporcional a la fuerza aplicada.

Información detallada -> Sensores – Sensor de fuerza FlexiForce

Sensores de contacto (choque)

 

Para detectar contacto físico del robot con un obstáculo se suelen utilizar interruptores que se accionan por medio de actuadores físicos. Un ejemplo muy clásico serían unos alambres elásticos que cumplen una función similar a la de las antenas de los insectos. En inglés les llaman «whiskers» (bigotes), relacionándolos con los bigotes sensibles de los animales como —por ejemplo— los perros y gatos. También se usan bandas metálicas que rodean al robot, o su frente y/o parte trasera, como paragolpes de autos.

Información detallada -> Sensores – Contacto




Piel robótica

 

El mercado ha producido, en los últimos tiempos, sensores planos, flexibles y extendidos a los que han bautizado como «robotic skin», o piel robótica. Uno de estos productos es el creado por investigadores de la universidad de Tokio. Se trata de un conjunto de sensores de presión montados sobre una superficie flexible, diseñados con la intención de aportar a los robots una de las capacidades de nuestra piel: la sensibilidad a la presión.

Información detallada -> Sensores – Piel robótica

Micrófonos y sensores de sonido

 

El uso de micrófonos en un robot se puede hallar en dos aplicaciones: primero, dentro de un sistema de medición de distancia, en el que el micrófono recibe sonidos emitidos desde el mismo robot luego de que éstos rebotan en los obstáculos que tiene enfrente, es decir, un sistema de sonar; y segundo, un micrófono para captar el sonido ambiente y utilizarlo en algún sentido, como recibir órdenes a través de palabras o tonos, y, un poco más avanzado, determinar la dirección de estos sonidos. Como es obvio, ahora que se habla tanto de robots para espionaje, también se incluyen micrófonos para tomar el sonido ambiente y transmitirlo a un sitio remoto.

Información detallada -> Sensores – Sonido

Rangers (medidores de distancia) ultrasónicos

 

Los medidores ultrasónicos de distancia que se utilizan en los robots son, básicamente, un sistema de sonar. En el módulo de medición, un emisor lanza un tren de pulsos ultrasónicos y espera el rebote, midiendo el tiempo entre la emisión y el retorno, lo que da como resultado la distancia entre el emisor y el objeto donde se produjo el rebote. Se pueden señalar dos estrategias en estos medidores: los que tienen un emisor y un receptor separados y los que alternan la función (por medio del circuito) sobre un mismo emisor/receptor piezoeléctrico. Este último es el caso de los medidores de distancia incluidos en las cámaras Polaroid con autorango, que se obtienen de desarme y se usan en la robótica de experimentación personal.

Hay tipos característicos de sensores de distancia que se utilizan en robots:

1. Los módulos de ultrasonido contenidos en las viejas cámaras Polaroid con autorango, que se pueden conseguir en el mercado de usados por relativamente poco dinero.
2. Los módulos SRF de Devantech, que son capaces de detectar objetos a una distancia de hasta 6 metros, además de conectarse al microcontrolador mediante un bus I2C.

Información detallada -> Sensores – Medidores de distancia ultrasónicos

Medidores de distancia por haz infrarrojo

 

La empresa Sharp produce una línea de medidores de distancia basados en un haz infrarrojo, que forman la familia GP2DXXX. Estos sensores de infrarrojos detectan objetos a distintos rangos de distancia, y en algunos casos ofrecen información de la distancia en algunos modelos, como los GP2D02 y GP2D12. El método de detección de estos sensores es por triangulación. El haz es reflejado por el objeto e incide en un pequeño array CCD, con lo cual se puede determinar la distancia y/o presencia de objetos en el campo de visión. En los sensores que entregan un nivel de salida analógico para indicar la distancia, el valor no es lineal con respecto a la distancia medida, y se debe utilizar una tabla de conversión.

Información detallada -> Sensores – Medidores de distancia por haz infrarrojo

Acelerómetros, sensores de vibración

 

Un acelerómetro es un dispositivo que permite medir el movimiento y las vibraciones a las que está sometido un robot (o una parte de él), en su modo de medición dinámico, y la inclinación (con respecto a la gravedad), en su modo estático.

De los antiguos acelerómetros mecánicos, de tamaño grande y dificultosos de construir, porque incluían imanes, resortes y bobinas (en algunos modelos), se ha pasado en esta época a dispositivos integrados, con los elementos sensibles creados sobre los propios microcircuitos.

Estos sensores, disponibles en forma de circuito integrado, son los que se utilizan normalmente en robótica experimental. Uno de los acelerómetros integrados más conocidos es el ADXL202, muy pequeño, versátil y de costo accesible.

Información detallada -> Sensores – Acelerómetros, sensores de vibración

Sensores pendulares (Inclinómetros)

 

Queda claro que la inclinación de un robot se puede medir con facilidad utilizando las características de medición estática del sensor ADXL202 que descibimos aquí arriba. Las ventajas de este sensor son grandes, debido a su pequeño tamaño, sólida integración y facilidad de conexión con microcontroladores. De todos modos, existen otras soluciones para determinar la posición de la vertical (en base a la fuerza de la gravedad), y las listaremos brevemente.

El mercado ofrece dispositivos con diversas soluciones mecánicas, todas basadas en un peso, a veces suelto aunque flotando en un medio viscoso, a veces ubicado sobre una rueda cargada sobre un lado de su circunferencia, en ocasiones una esfera. Hasta hay sensores basados en el movimiento de un líquido viscoso y conductor de la electricidad dentro de una cavidad. Las partes móviles en muchos casos están sumergidas en aceite, para evitar que la masa que hace de péndulo quede realizando movimientos oscilantes. Los sensores pueden estar basados en efecto capacitivo, electrolítico, de torsión (piezoeléctrico), magnético (inducción sobre bobinas) y variación resistiva.

Contactos de mercurio

 

También para medir inclinación, aunque en este caso sin obtener valores intermedios, sino simplemente un contacto abierto o cerrado, existen las llaves o contactos de mercurio, que consisten en un cilindro (por lo general de vidrio) en el que existen dos contactos a cerrar y una cantidad suficiente de mercurio que se puede deslizar a un extremo u otro del cilindro y cerrar el contacto.


Giróscopos

 

El giróscopo o giroscopio está basado en un fenómeno físico conocido hace mucho, mucho tiempo: una rueda girando se resiste a que se le cambie el plano de giro (o lo que es lo mismo, la dirección del eje de rotación). Esto se debe a lo que en física se llama «principio de conservación del momento angular».

En robots experimentales no se suelen ver volantes giratorios. Lo que es de uso común son unos sensores de pequeño tamaño, como los que se utilizan en modelos de helicópteros y robots, basados en integrados cuya «alma» son pequeñísmas lenguetas vibratorias, construidas directamente sobre el chip de silicio. Su detección se basa en que las piezas cerámicas en vibración son sujetas a una distorsión que se produce por el efecto Coriolis.

Información detallada -> Sensores – Giróscopos

Termistores

 

Un termistor es un resistor cuyo valor varía en función de la temperatura. Existen dos clases de termistores: NTC (Negative Temperature Coefficient, Coeficiente de Temperatura Negativo), que es una resistencia variable cuyo valor se decrementa a medida que aumenta la temperatura; y PTC (Positive Temperature Coefficient, Coeficiente de Temperatura Positivo), cuyo valor de resistencia eléctrica aumenta cuando aumenta la temperatura.

La lectura de temperaturas en un robot, tanto en su interior como en el exterior, puede ser algo extremadamente importante para proteger los circuitos, motores y estructura de la posibilidad de que, por fricción, esfuerzo, trabas o excesos mecánicos de cualquier tipo se alcancen niveles peligrosos de calentamiento.

RTD (Termorresistencias)

 

Los sensores RTD (Resistance Temperature Detector), basados en un conductor de platino y otros metales, se utilizan para medir temperaturas por contacto o inmersión, y en especial para un rango de temperaturas elevadas, donde no se pueden utilizar semiconductores u otros materiales sensibles. Su funcionamiento está basados en el hecho de que en un metal, cuando sube la temperatura, aumenta la resistencia eléctrica.

Termocuplas

 

El sensor de una termocupla está formado por la unión de dos piezas de metales diferentes. La unión de los metales genera un voltaje muy pequeño, que varía con la temperatura. Su valor está en el orden de los milivolts, y aumenta en proporción con la temperatura. Este tipo de sensores cubre un amplio rango de temperaturas: -180 a 1370 °C.


Diodos para medir temperatura

 

Se puede usar un diodo semiconductor ordinario como sensor de temperatura. Un diodo es el sensor de temperatura de menor costo que se puede hallar, y a pesar de ser tan barato es capaz de producir resultados más que satisfactorios. Sólo es necesario hacer una buena calibración y mantener una corriente de excitación bien estable. El voltaje sobre un diodo conduciendo corriente en directo tiene un coeficiente de temperatura de alrededor de 2,3 mV/°C y la variación, dentro de un rango, es razonablemente lineal. Se debe establecer una corriente básica de excitación, y lo mejor es utilizar una fuente de corriente constante, o sino un resistor conectado a una fuente estable de voltaje.


Circuitos integrados para medir temperatura

 

Existe una amplia variedad de circuitos integrados sensores de temperatura (se puede encontrar una lista en el link de abajo con la información detallada). Estos sensores se agrupan en cuatro categorías principales: salida de voltaje, salida de corriente, salida de resistencia y salida digital. Con salida de voltaje podemos encontrar los muy comunes LM35 (°C) y LM34 (°K) de National Semiconductor. Con salida de corriente uno de los más conocidos es el AD590, de Analog Devices. Con salida digital son conocidos el LM56 y LM75 (también de National). Los de salida de resistencia son menos comunes, fabricados por Phillips y Siemens.

Información detallada -> Sensores – Integrados para medir temperatura

Pirosensores (sensores de llama a distancia)

 

Existen sensores que, basados en la detección de una gama muy angosta de ultravioletas, permiten determinar la presencia de un fuego a buena distancia. Con los circuitos que provee el fabricante, un sensor de estos (construido con el bulbo UVTron) puede detectar a 5 metros de distancia un fósforo (cerilla) encendido dentro de una habitación soleada. En el mercado de sensores industriales se puede encontrar una variedad amplia de sensores de llama a distancia, algunos que detectan también ultravioleta y otros que se basan en los infrarrojos, aunque por lo que pude ver, la mayoría son de tamaño bastante grande. Otro sensor que se utiliza en robótica, en este caso sensible a los infrarrojos, es el módulo TPA81.

Información detallada -> Sensores – Pirosensores a distancia

Sensores de humedad

 

La detección de humedad es importante en un sistema si éste debe desenvolverse en entornos que no se conocen de antemano. Una humedad excesiva puede afectar los circuitos, y también la mecánica de un robot. Por esta razón se deben tener en cuenta una variedad de sensores de humedad disponibles, entre ellos los capacitivos y resistivos, más simples, y algunos integrados con diferentes niveles de complejidad y prestaciones.

Para el uso en robótica, por suerte, se puede contar con módulos pequeños, versátiles y de costo accesible, como el SHT11 de Sensirion.

Información detallada -> Sensores – Humedad

Sensores magnéticos

 

En robótica, algunas situaciones de medición del entorno pueden requerir del uso de elementos de detección sensibles a los campos magnéticos. En principio, si nuestro robot debe moverse en ambientes externos a un laboratorio, una aplicación importante es una brújula que forme parte de un sistema de orientación para nuestro robot.

Otra aplicación es la medición directa de campos magnéticos presentes en las inmediaciones, que podrían volverse peligrosos para el «cerebro» de nuestro robot si su intensidad es importante.

Una tercera aplicación es la medición de sobrecorrientes en la parte motriz (detectando la intensidad del campo magnético que genera un conductor en la fuente de alimentación). También se podrán encontrar sensores magnéticos en la medición de movimientos, como el uso de detectores de «cero movimiento» y tacómetros basados en sensores por efecto Hall o pickups magnéticos.

Información detallada -> Sensores – Magnetismo

Sistema de posicionamiento global

 

Si bien nos puede parecer demasiado lujo para nuestros experimentos, lo cierto es que un sistema de posicionamiento global (GPS, Global Positioning System) aporta una serie de datos que pueden ser muy útiles para un robot avanzado. Un ejemplo de este servicio es el módulo DS-GPM, fabricado por Total Robots, que entrega datos de latitud, longitud, altitud, velocidad, hora y fecha y posición satelital.
Estos datos se comunican desde los registros del módulo a través de interfaces I2C y RS232. Si bien no es barato, en realidad no es tan inaccesible.

Receptores de radiobalizas

 

Por medio de un grupo de emisores de radiofrecuencia codificados, ubicados en lugares conocidos por el sistema, es posible establecer con precisión la posición de un robot, con sólo hacer una triangulación. Al efecto el robot debe poseer una antena de recepción direccional (con reflector parabólico, o similar) que pueda girar 360°, y así determine la posición de las radiobalizas. En el robot es posible usar receptores integrados muy pequeños y de bajo costo, como el RWS-433, o el RXLC-434, y otros similares, que trabajan en frecuencias de entre 303 y 433 Mhz. La elección de los transmisores dependerán de la distancia a que se ubiquen las radiobalizas, pero si se trata de áreas acotadas es posible utilizar los módulos transmisores hermanados con los anteriores, como el TWS-433 y el TXLC-434.

Información detallada -> Sensores – Receptores (y transmisores) de RF

Sensores de proximidad

 

Los sensores de proximidad que se obtienen en la industria son resultado de la necesidad de contar con indicadores de posición en los que no existe contacto mecánico entre el actuador y el detector. Pueden ser de tipo lineal (detectores de desplazamiento) o de tipo conmutador (la conmutación entre dos estados indica una posición particular). Hay dos tipos de detectores de proximidad muy utilizados en la industria: inductivos y capacitivos.

Los detectores de proximidad inductivos se basan en el fenómeno de amortiguamiento que se produce en un campo magnético a causa de las corrientes inducidas (corrientes de Foucault) en materiales situados en las cercanías. El material debe ser metálico. Los capacitivos funcionan detectando las variaciones de la capacidad parásita que se origina entre el detector propiamente dicho y el objeto cuya distancia se desea medir. Se emplean para medir distancias a objetos metálicos y no metálicos, como la madera, los líquidos y los materiales plásticos.