PIC, Arduino, Raspberry Pi: si puede usar estos tres sistemas, puede conectarse con casi cualquier cosa.
Los microcontroladores (MCU) son muy útiles, pero su valor es algo limitado sin la capacidad de ver y comprender el mundo que los rodea. Ahí es donde entran los sensores. Si ha estado trabajando con la electrónica de control durante un tiempo, probablemente tenga un buen conocimiento de la interfaz y el uso de sensores, pero no todos los conocen.
En el mundo de los “sistemas grandes” (teléfonos, computadoras portátiles, computadoras de escritorio), la conexión a dispositivos externos suele ser tan simple como conectar un cable USB. Es probable que su sistema operativo (SO) ya tenga el software del controlador o le indique que descargue las piezas necesarias. Como resultado, más o menos todo sucede automáticamente.
En comparación, en el mundo de los “sistemas pequeños” de MCU y pequeñas computadoras de placa única (SBC), las cosas pueden volverse mucho más complejas y lejos de estar automatizadas. Los sensores más sofisticados se pueden conectar a través de un cable USB, pero en su mayor parte, conectar un sensor a un microcontrolador o SBC generalmente no usa USB.
Tipo de sistema
La interfaz depende del tipo de sensor y del tipo de sistema con el que interactúa. En mi caso, tengo bastante experiencia con sensores y microcontroladores PIC de Microchip, placas compatibles con Arduino y variantes de Raspberry Pi.
Hay muchos otros sistemas disponibles, pero estos tres van desde los llamados sistemas “bare metal” (donde los programas de aplicación se ejecutan directamente en la MCU) hasta potentes SBC que cuentan con sistemas operativos similares a Linux. Además, cada uno de estos tres sistemas (convenientemente para esta columna) requiere metodologías algo diferentes para interactuar con los sensores. Entonces, si puede usar estos tres sistemas, puede conectarse con casi cualquier cosa.
Por lo general, nos referimos a las MCU de tipo PIC como “bare metal” porque interactúan directamente con el hardware físico en silicio. Sabemos que el silicio en realidad no es un metal, pero se clasifica como un “metaloide”. Además, tal vez alguien pensó que “bare metal” sonaba mejor que “bare metalloid”. Una interfaz de MCU “bare metal” requiere comprender el funcionamiento de los registros del procesador y, a menudo, manipularlos directamente para la entrada y salida de datos.
Los registros de MCU contienen bits de bloqueo para almacenar valores de salida, bits de puerto para leer valores de entrada, entradas analógicas para leer voltajes analógicos, bits de control para establecer bits de puerto en entradas o salidas y bits de puerto en bits de control para establecer bits de control analógicos o digitales. activar/desactivar la resistencia pull-up. Todos los bits de control para un puerto en particular deben establecerse primero. Luego lea el pestillo, escriba en el puerto o lea el valor analógico. Puede ser un poco complicado.
No solo es complicado, también es no portátil. La transferencia de código de una MCU PIC a otra (dos dispositivos del mismo fabricante) puede requerir una cantidad significativa de cambios de código. En el nivel básico, pasar a la arquitectura de un fabricante diferente casi siempre requiere una reescritura completa del código de la interfaz.
La ventaja de usar una MCU es que puede responder fácilmente en tiempo real y tener control directo sobre casi todos los aspectos del sistema, lo que permite una optimización máxima.
El SBC puede ser un sistema como Raspberry Pi, MinnowBoard, Onion Omega. Contienen todas las partes relevantes de un sistema informático completo, pero en una escala mucho menor. También proporciona fácil acceso a los pines de entrada/salida (E/S) del chip del procesador. El acceso a los pines de E/S es realmente el factor decisivo que los pone en nuestro campamento. Sin ese acceso, son solo otra computadora.

Un SBC generalmente se ejecuta como una computadora Linux con un sistema operativo que mantiene una capa de abstracción entre el programador y el hardware real. El término “capa de abstracción” es una forma inteligente de describir cómo un sistema operativo, o un controlador adicional para un sistema operativo, proporciona al usuario un conjunto de funciones de software para enviar y recibir datos de pines de E/S.
El sistema operativo manipula directamente el hardware para realizar toda la configuración y comunicación de los pines de entrada y salida. De esta forma, el hardware puede ser ligeramente diferente de un sistema a otro sin que el programador tenga que realizar cambios importantes. He escrito un software de interfaz de sensor en Raspberry Pi y pude portarlo a MinnowBoard u Onion Omega con algunos cambios.
Los SBC brindan la máxima potencia de procesamiento, pero no brindan tiempos de respuesta predecibles a las entradas del sensor a menos que use un sistema operativo en tiempo real (RTOS). En mi propio diseño, uso una pequeña MCU para conectarme directamente al sensor en tiempo real y hacer que el SBC se comunique con la MCU cuando se acerca.
El Arduino proporciona un término medio entre los extremos PIC/Pi. No tiene un sistema operativo completo como Raspberry Pi, pero viene con un conjunto de bibliotecas de software fáciles de usar que permiten un fácil acceso a E/S sin muchas operaciones de configuración y registro.
La disponibilidad de estas funciones de software significa que el código Arduino es altamente portátil. El código escrito para una variante de Arduino casi siempre se ejecutará sin cambios en la mayoría de las otras variantes de Arduino. Alejarse de la familia Arduino significa menos portabilidad, pero hay muchas opciones compatibles con Arduino para elegir.

La flexibilidad y la potencia de procesamiento de Arduino son limitadas, pero es el sistema más fácil de poner en marcha. Incluso si termina usando una MCU o SBC, normalmente usará un Arduino para probar nuevos sensores y aprender a usarlos. Dado que los Arduinos están en todas partes, la biblioteca Arduino correspondiente admite fácilmente la mayoría de los sensores, por lo que puede confirmar de inmediato que su nuevo sensor funciona según lo planeado y tener más control más adelante.

¿Qué es un sensor en primer lugar?
Un sensor es un dispositivo que puede detectar algo y comunicar su estado a alguna computadora. Los sensores pueden ser simples o complejos, analógicos o digitales, de función única o multifunción, y miden o detectan una variedad casi infinita de cosas.
Un interruptor es quizás la forma más simple de sensor. solo está encendido o apagado. Es un 1 o 0 digital. Una resistencia variable es una forma simple de sensor analógico. Un extremo está conectado a +V y el otro extremo está conectado a tierra. El terminal central, o “limpiador”, tiene un nivel de voltaje analógico basado en su posición entre +V y tierra.

Una unidad de medida inercial (IMU) es un ejemplo de un sensor multifunción complejo. Detecta movimiento, aceleración, altitud, temperatura y orientación. Un sensor de imagen de alta resolución es otro ejemplo de un sensor compuesto. Esencialmente se convierte en un gran banco de múltiples sensores analógicos. Un sensor de color de 10 megapíxeles tiene 30 millones de sensores, tres por cada píxel (rojo, verde y azul).
Tres formas de interactuar con los sensores
Como puede imaginar, hay muchas formas de interactuar con los sensores. Los clasifico en tres categorías diferentes: comunicación digital directa, analógica directa y basada en protocolo. En digital directo y analógico directo, la MCU lee los valores del sensor directamente (imagínate eso).
Los sensores directos pueden ser pasivos o activos. Por ejemplo, un interruptor puede ser un sensor pasivo, como una resistencia variable. Los sensores pasivos se basan en el voltaje de los pines de la MCU o en el voltaje de suministro del sistema de la MCU. Los sensores activos presentan un voltaje de señal o un nivel de voltaje de protocolo a la MCU receptora. En tales casos, se debe tener cuidado de no exceder el voltaje de entrada de la MCU.
Usando una interfaz basada en protocolo, el sensor y la MCU se comunican mediante el envío de flujos de datos. De hecho, la mayoría de los sensores basados en protocolos tienen su propia MCU diminuta integrada en el chip o ubicada dentro del módulo del sensor. Algunos sensores admiten múltiples métodos de conexión y múltiples protocolos.
Estén atentos a mi próximo artículo, donde mostraré ejemplos de interconexión de cada tipo de sensor con cada tipo de sistema. Mientras tanto, agradecemos sus comentarios, preguntas y sugerencias.
Para obtener más información sobre cómo aplicar Raspberry Pi a aplicaciones comerciales, consulte los otros artículos de este proyecto especial de AspenCore.
Raspberry Pi ingresa silenciosamente a los servicios profesionales — La combinación de potencia informática y bajo costo de Raspberry Pi ha atraído el interés de los diseñadores profesionales que buscan soluciones más rápidas para aplicaciones complejas.
Cuando se trata de profesionales, los profesionales se vuelven locos — La Raspberry Pi fue concebida como una herramienta de aprendizaje, pero ningún diseñador profesional podría ignorar su poder. Se ha adaptado para uso comercial y se utiliza en un número cada vez mayor de aplicaciones.
Solución de diseño: MEMS modernos y arquitecturas de acondicionamiento de señales de sensores — Las opciones de acondicionamiento de señales incluyen soluciones de amplificadores operacionales analógicos, así como transistores discretos, convertidores de datos, microcontroladores y soluciones basadas en algoritmos.
Sugerencias de HAT para RasPi: discusión sobre las especificaciones de hardware de Pi HAT — La forma más versátil y poderosa de agregar capacidades de hardware a su Raspberry Pi es proporcionar un HAT.