De hecho, los sensores son transductores capaces de transformar cantidades físicas o químicas en alguna forma de señal eléctrica que de alguna manera puede ser medida por una CPU.
Por ejemplo, un sensor de luz normalmente es un dispositivo de detección de luz, por ejemplo, un fotodiodo, que genera una señal de voltaje que puede leerse desde un microprocesador utilizando alguna forma de convertidor analógico a digital. (ANUNCIO).
Otro ejemplo son los sensores de temperatura que, por ejemplo, en el tipo PT100, transforman el cambio de temperatura en un cambio de resistencia eléctrica que se puede medir usando un puente que termina en una señal de voltaje, como antes.
- ¿Cómo podemos hacer un sensor de imagen para fotografiar señales wifi?
- ¿Cómo se lleva una N (intuitiva) con una S (sensor)?
- ¿Puede un detector de CO enchufable para un hogar recoger las emisiones de CO2 de un tanque de CO2?
- ¿Cómo mediría Kirk la calidad de los datos tomados por los sensores multiespectrales del barco en las pantallas y tomaría una decisión rápida?
- ¿Qué tipo de sensor se usa para medir la posición y la rotación de los auriculares Oculus Rift?
Un ejemplo más son los tubos Geiger que miden la radiación ionizante. En este caso, la medición se realiza contando los pulsos, por lo que el sensor genera directamente una señal digital que, hasta cierto punto, se puede contar utilizando un contador de hardware o software.
Como puede ver, la interfaz del sensor con los microprocesadores es un tema amplio, pero supongo que puede ver los siguientes problemas relacionados con la programación
- Detección de bajo nivel de la señal sin procesar
- Calibración para escalar la señal bruta medida en alguna medida significativa física
- Postprocesamiento, para encontrar señales significativas fuera del ruido o de algunas señales interferentes. Esto es típico cuando se deben medir algunas señales oscilantes. Las frecuencias no relacionadas con la cantidad a medir deben filtrarse con algún tipo de algoritmo de filtrado.
El punto 1 se implementa con técnicas de programación integradas : un programa de bajo nivel, típicamente escrito en C o ensamblado, lee la señal sin formato utilizando alguna interfaz de bajo nivel para el hardware disponible, por ejemplo, el convertidor A / D. Normalmente, la conversión debe realizarse utilizando algunos bits en los registros del convertidor y el resultado debe leerse en algunos otros registros utilizados por el convertidor, pero podrían aplicarse otras técnicas: si se utiliza un convertidor externo que utiliza algún protocolo en serie como I2C o SPI , entonces el protocolo debe ser implementado o dirigido.
El punto 2 se implementa con técnicas generales de programación matemática. En el ejemplo de los sensores de temperatura, si la precisión requerida es alta, entonces se debe implementar un procedimiento de calibración: cada año, por ejemplo, el voltaje bruto del sensor debe medirse cuando el sensor mismo está expuesto a la temperatura conocida, por ejemplo derretir hielo. Luego, usando algoritmos matemáticos, los datos brutos medidos se escalan o calibran linealmente usando algoritmos no lineales usando las mediciones almacenadas durante la fase de calibración.
El punto 3 se implementa con técnicas de programación DSP (procesamiento de señal digital), que requieren conocimientos de matemáticas más altas y algoritmos bien conocidos como FFT (Fast Furier Transfor), filtros FIR (respuesta de impulso finito) y docenas de algoritmos similares.
Este es un análisis muy introductorio y con frecuencia partes de las técnicas descritas ya están integradas en sensores inteligentes. Por ejemplo, muchos sensores de presión se venden calibrados y la señal que generan ya está en unidades físicas. Lo mismo sucede con algunos sensores de humedad.
Los sensores de pH y otros sensores químicos son normalmente para investigación o aplicaciones de laboratorio y requieren calibración.
La interfaz del sensor es un vasto dominio de aplicación y las técnicas de programación requeridas abarcan desde el procesamiento integrado de bajo nivel hasta el procesamiento de señales digitales y los algoritmos matemáticos, incluso la GUI, ya que la mayoría de estos procesos (calibración, por ejemplo) deben ser realizados por humanos y esto puede ser un problema proceso, simplificado por la GUI adecuada.