Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Detectar rayos con una Raspberry Pi

Se pueden utilizar métodos raros para detectar rayos. Por lo general, implica detectar la radiación electromagnética generada por un golpe. La mayoría de las personas probablemente hayan escuchado esto en algún momento como estática, crepitaciones y estallidos en una radio AM. Algunos detectores son capaces de captar los destellos de luz producidos dentro de una nube, incluso durante el día, cuando por lo general no pueden ser vistos por el ojo humano debido a la luz solar. Ocasionalmente, un rayo emitirá un breve pulso de radiación gamma, algo que un nuevo instrumento a bordo de la Estación Espacial Internacional está preparado para estudiar.

En esta publicación, exploraré el uso de una RaspberryPi para interconectar el IC del sensor de relámpagos Franklin AS3935 de ams (Austria Mikro Systeme). El AS3935 es un sensor programable que puede detectar la actividad de los rayos hasta a 40 km de distancia. Utiliza un algoritmo cableado patentado para filtrar el ruido y los "perturbadores" artificiales y estimar la distancia al borde de ataque de la tormenta; tiene niveles de detección programables, ajustes de umbral y sintonización de antena; y, a diferencia de muchos sensores de rayos terrestres anteriores, pueden detectar actividad de rayos tanto de nube a tierra como dentro de la nube.

Los detalles

En lugar de redondear los componentes específicos en pequeñas cantidades, diseñar un PCB y tratar de soldar a mano el paquete MLPQ-16 bastante pequeño (4x4 mm), utilicé la placa de conexión MOD-1016 de Embedded Adventures. El AS3935 requiere un rango de voltaje de suministro de 2.4 - 5.5V, que funcionará perfectamente con los niveles lógicos de 3.3v GPIO de RaspberryPi. Puede interconectarse a través de SPI o I2C. Por defecto, el MOD-1016 viene configurado para usar I2C pero se puede cambiar fácilmente para usar SPI a través de un par de puentes de soldadura en la placa. En mi configuración, me quedaré con la configuración I2C predeterminada.

Este proyecto me sirvió como una buena introducción al protocolo I2C. Había usado el protocolo 1-Wire antes para conectar algunos sensores de temperatura DS18B20, pero I2C se usa mucho más ampliamente, por lo que me alegré de tener la oportunidad de sumergirme en él. En esta publicación, cubriré los detalles necesarios para comunicarme con el AS3935 desde RaspberryPi a través de I2C, pero si desea obtener más información, Byte Paradigm brinda una maravillosa introducción a I2C y SPI.

Si aún no tiene su RaspberryPi configurado para usar el protocolo I2C, tendrá que instalar un par de paquetes y cargar un par de módulos del kernel. Adafruit tiene una guía maravillosa aquí, pero básicamente solo necesitas instalar python-smbus y i2c-tools paquetes y cargue el i2c-bcm2708 y i2c-dev módulos del kernel. Hacer esto en la distribución Raspbian podría ser algo como esto:

  ### Instala los paquetes ~ $ sudo apt-get install python-smbus ~ $ sudo apt-get install i2c-tools ### Carga los módulos del kernel ~ $ sudo modprobe i2c-bcm2708 ~ $ sudo modprobe i2c-dev ### Asegúrese de que los módulos se carguen al arrancar ~ $ echo "i2c-bcm2708i2c-dev" | sudo tee -a / etc / modules  

Conectar el MOD-1016 al RaspberryPi es relativamente sencillo. Con I2C solo necesita dos cables (SDA y SCL), además de energía y tierra, por supuesto, para comunicarse con múltiples dispositivos. El AS3935 emite interrupciones para alertar al microcontrolador sobre eventos, por lo que necesitaremos un cable adicional para eso. Usé una placa de pruebas estándar y un RaspberryPi Cobbler de Adafruit para hacer una maqueta del circuito. El MOD-1016 (AS3935) se conecta a RaspberryPi como tal:

MOD-1016 RaspberryPi
GND Suelo
VCC 3.3v (pin 1)
IRQ GPIO 17 (pin 11)
SCL SCL (pin 5)
SDA SDA (pin 3)

Una cosa a tener en cuenta sobre I2C es que fue diseñado para la comunicación entre chips, a menudo entre circuitos integrados que se encuentran en la misma PCB. En I2C, las líneas se mantienen altas mediante resistencias pull-up y se tiran hacia abajo para indicar el estado opuesto. El tiempo que se tarda en volver a subir la línea a VCC varía según el valor de la resistencia pull-up y la capacitancia del bus. La especificación I2C limita la capacitancia máxima a 400pF, que normalmente restringe la distancia práctica a unos pocos metros. Hay formas de extender la longitud máxima si es necesario. El más obvio es un extensor de bus I2C. Reducir la velocidad del reloj también puede ayudar a aumentar la distancia máxima. Además, tenga en cuenta que si utiliza un cable de par trenzado como CAT-5 para conexiones I2C, no debe ejecutar las líneas SCL y SDA juntas sobre el mismo par trenzado. Utilice pares separados y ate la otra línea de cada par a tierra.

Las imágenes a continuación muestran el módulo modular MOD-1016 junto con un sensor de presión barométrica MS5611 de Embedded Adventures y un amigo FTDI de Adafruit.

Una vez que todo esté conectado, puede usar el comando i2cdetect para ver si I2C está funcionando y puede comunicarse con el sensor. Si usa una RaspberryPi más antigua (con 256 MB de RAM), ejecutará el comando como se muestra a continuación con un ID de bus I2C de 0. Si usa una RaspberryPi más nueva, use 1 en su lugar. En el resultado a continuación, puede ver que el AS3935 (0x03) y el MS5611 (0x76) se han detectado correctamente.

  ~ $ sudo i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 abcde f00:03 - - - - - - - - - - - - -10:- - - - - - - - - - - - - - --20:- - - - - - - - - - - - - - - - --30:- - - - - - - - - - - - - - - --40:- - - - - - - - - - - - - - --50:- - - - - - - - - - - - - - - - --60:- - - - - - - - - - - - - - - --70:- - - - - - 76 -  

Ahora, para usar realmente el sensor, necesitaremos poder interactuar con él. Esto se hace leyendo y escribiendo en registros dentro del chip. Los registros son ubicaciones de memoria que se utilizan para almacenar bits para cosas como configuración y entrada / salida. En cierto modo, son como interruptores DIP digitales, donde se utilizan bits o series de bits para indicar o establecer varios estados. Por ejemplo, con el AS3935 es posible borrar las estadísticas creadas por el algoritmo alternando el séptimo bit (bit 6) del tercer registro (0x02). Las tablas y mapeos que describen las ubicaciones de los registros y la funcionalidad se pueden encontrar en la hoja de datos de un dispositivo. Por ejemplo,

La mayoría de los lenguajes y plataformas tienen herramientas o bibliotecas disponibles para trabajar con I2C. En Linux, por ejemplo, las i2c-tools el paquete proporciona utilidades como i2cdetect, i2cget, i2cdump y i2cset que se puede utilizar desde la línea de comandos. Para python, el módulo SMBus proporcionado por python-smbus El paquete ofrece los enlaces necesarios para acceder al bus I2C. Sin embargo, a menudo hay bibliotecas de nivel superior disponibles para dispositivos que abstraen los detalles del trabajo con registros individuales. En lugar de tener que saber qué bits leer o escribir en qué registros, a menudo puede simplemente crear una instancia de una clase y llamar a métodos para interactuar con el dispositivo en particular.

Para trabajar con el AS3935 en python, está disponible la biblioteca RaspberryPi-AS3935 escrita por Phil Fenstermacher. Las instrucciones de instalación se pueden encontrar en la página de GitHub. Proporciona métodos útiles, así como un buen script de demostración para que pueda empezar a trabajar. Para ver los métodos disponibles y sus argumentos, eche un vistazo al archivo RPi_AS3935.py.

El AS3935 utiliza un circuito RLC paralelo como antena y debe sintonizarse a una frecuencia de resonancia de 500 kHz ± 3,5%. Para compensar las variaciones, hay hasta 120pF disponibles internamente a través de condensadores de sintonización que se pueden activar en pasos de 8pF. A través de una configuración de registro, el AS3935 puede emitir la frecuencia de resonancia en el pin IRQ, lo que permite que un dispositivo externo la mida y sintonice la antena de manera adecuada activando los condensadores de sintonización necesarios. Afortunadamente, las rupturas MOD-1016 de Embedded Adventures vienen con el valor del capacitor de ajuste que se muestra en el exterior de la bolsa antiestática. Esto hace que la rutina de calibración sea mucho más sencilla. Cuando se usa la biblioteca anterior, es tan simple como llamar a calibrate () método y pasando el valor del condensador de sintonización como argumento. Se pueden encontrar más detalles sobre el diseño de la antena en la Guía de diseño de hardware AS3935 AMS.

Para obtener más detalles:detección de rayos con una Raspberry Pi


Proceso de manufactura

  1. Registrador de temperatura Raspberry Pi
  2. Leer temperatura con DS18B20 | Raspberry Pi 2
  3. Medición de temperatura con RASPBERRY PI
  4. Supervisión de la temperatura con Raspberry Pi
  5. La integración de los datos del sensor con el microprocesador Raspberry Pi
  6. 433MHz Smart Home Controller con Sensorflare y RaspberryPi
  7. Alarma de agua frambuesa pi 2 con t cobbler plus
  8. Monitor de temperatura ThingSpeak con Raspberry Pi
  9. Fácil detector de llanto para bebés con Raspberry Pi
  10. Rastreo de rostro con movimiento horizontal / vertical con raspberry pi
  11. Detectando una pulsación de botón a través de GPIO usando Raspberry pi