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

La integración de los datos del sensor con el microprocesador Raspberry Pi

Resumen


Para implementar varios sensores en un sistema robótico integrado, se necesita un entorno de programación y métodos de comunicación válidos que sean capaces de ingresar datos de sensores digitalizados y usar esos datos en el circuito de control.

Palabras clave:comunicación I2C, comunicación UART, Adafruit Ultimate GP Breakout, Sparkfun MPU-9150 Breakout, configuración de Raspberry Pi


Introducción


La adquisición y asociación de datos de sensores son partes críticas para el sistema de control digital. Dado que se emplea un controlador digital integrado para procesar todas las entradas de datos del sensor, la interfaz de comunicación, que hace que esos datos sean legibles y utilizables en el microprocesador, es la primera prioridad en el nivel de programación. Un sistema de navegación
autónomo, para el proyecto del equipo, requiere un seguimiento continuo de la ubicación del GPS y una medición constante del ángulo del rumbo. Por lo tanto, el grupo decide usar un módulo gps para detectar la ubicación actual (en latitud y longitud) del robot y usar un magnetómetro para medir el rumbo. Los datos adquiridos por ambos módulos se podrían ver en una interfaz de usuario remota y también se pueden usar en el software de control.

Objetivo

Este es un tutorial avanzado que asume que el usuario conoce algunas manipulaciones básicas en el sistema operativo Raspbian, por ejemplo, instalar una biblioteca o crear un archivo de script usando la terminal Unix en comandos bash en la línea de comandos. El objetivo de esta nota de aplicación es orientar un método para que el usuario pueda leer los datos del acelerómetro y los datos del gps desde diferentes interfaces de comunicación con la Raspberry Pi en real. Además de las instrucciones de la línea de comandos, este tutorial también cubre los detalles del cableado de los sensores al Pi y la configuración de hardware para los sensores.

Información

Hardware
○ Sparkfun 9 Degrees of Freedom Breakout MPU9150

El sensor de medición inercial utilizado para este proyecto es el Invensense MPU-9150 con placa de ruptura diseñada por Sparkfun. El MPU-9150 es un módulo de varios chips que consta de dos troqueles integrados en un solo paquete. Un dado es MPU-6050 con un giroscopio de 3 ejes y un acelerómetro de 3 ejes. El otro troquel alberga el magnetómetro / brújula digital de 3 ejes AK8975 de Asahi Kasei Microdevices Corporation. Este chip fue diseñado para el bajo consumo, el bajo costo y el alto rendimiento, y actualmente se usa en muchos lugares, incluidos teléfonos inteligentes y tabletas.

Adafruit Ultimate GPS Breakout

La ruptura se basa en el módulo basado en MTK3339 de tercera generación que tiene soporte de antena externa y salida de pulso por segundo. Tiene una frecuencia de actualización de 10 Hz y puede rastrear hasta 22 satélites en 66 canales. Este módulo gps está construido para un sistema integrado que ofrece una entrada de baja potencia (3.3 - 5V) y el pin ENABLE se puede usar para apagar el módulo usando cualquier pin del microcontrolador. También hay un pequeño LED rojo que es capaz de indicar el estado de la señal. El LED parpadea a 1 Hz mientras busca satélites y parpadea una vez cada
15 segundos cuando se encuentra una solución. Este gps solo funciona en campo abierto cuando no hay ningún edificio alrededor. Siempre que adquiera una señal FIX, tendrá los datos de rumbo, longitud, latitud y altura actualizados a la
frecuencia definida por el usuario.

Estándares de comunicación


○ Comunicación I2C
I2C son las siglas de Inter-Integrated Circuit Bus. I2C usa un microcontrolador como maestro y se conecta con múltiples esclavos con direcciones únicas a través de un bus de computadora de un solo extremo. Utiliza solo dos líneas de tren abierto bidireccionales:Línea de datos en serie (SDA) y Reloj en serie (SCL). SDA establece el bit transferido mientras SCL es bajo y los datos se reciben cuando SCL es alto.
○ Comunicación UART
UART significa receptor / transmisor asíncrono universal. Transmite / recibe datos en serie desde un byte (5-8 bits) de datos escritos / almacenados en un registro. Todos los datos se leerán a una determinada velocidad en baudios predefinida por el programador. La transmisión UART requiere tres tipos de señales:una transmisión de datos (TxD), una recepción de datos (RxD) y una señal de tierra (SG). Dado que este tipo de transmisión no es bidireccional, se necesitan dos líneas de transmisión y recepción separadas.

Lista de piezas
Para la configuración y programación del hardware en Raspberry Pi,
se requieren las siguientes partes:
● Una Raspberry Pi
● Una fuente de alimentación
● Un dongle Wifi
● Un giroscopio y acelerómetro Sparkfun MPU9150
● Un adaptador de GPS Adafruit Ultimate
● Un cable adaptador de USB a TTL (opcional)
● Una placa de pruebas
● Cables de puente MF
Supuestos
Antes de comenzar este tutorial, hay varias suposiciones que deben hacerse. Dado que las notas de esta aplicación solo se centrarán en una faceta particular de todo el proyecto, aquí se ignorará el procedimiento de configuración básico para la nueva Raspberry Pi y la configuración de la red inalámbrica. Las siguientes son algunas suposiciones subyacentes en las que se basa esta aplicación:
● un acceso a Internet válido
● un sistema operativo Raspian instalado y el comportamiento de arranque del Pi se ha configurado en modo de escritorio
● a un mouse y un teclado se conectan a los puertos usb de la raspberry pi, y un monitor se conecta a través del adaptador HDMI para garantizar la visualización gráfica.

Procedimientos:

  1. Conocer la configuración GPIO de Raspberry Pi para la comunicación en serie. Los pines seriales que se utilizan en la parte posterior de este tutorial son GPIO 14 y 15 para UART y GPIO 2 y 3 para I2C.
  1. Cableado del GPS Adafruit a la Raspberry Pi
    Busque los pines Tx / Rx, Vin y gnd en su módulo gps adafruit. Conexión cruzada de su pin Tx y Rx a los pines Rx y Tx en Raspberry Pi. Luego suministre 5V o 3.3V desde el Pi al pin Vin y corto el pin GND con la tierra del Pi.
  1. Cableado del MPU9150 a la Raspberry Pi
    Conecte los cuatro pines superiores de la conexión MPU9150 a la Raspberry Pi. Conecte GPIO 2 a SDA (línea de datos) y GPIO 3 a SCL (línea de reloj). Suministre 3.3V desde el Pi al pin Vcc del acelerómetro y corte el pin GND al suelo.
  1. Preparación del Pi para la comunicación I2C
    a. Abra una terminal en Raspberry Pi e ingrese los siguientes comandos de bash:
    sudo apt-get update
    sudo apt-get install i2c-tools libi2c-dev
    b. WiringPi es una biblioteca C ++ muy poderosa diseñada para RasPi que incluye una amplia variedad de herramientas GPIO para PI. Para instalar WiringPi, ingrese los siguientes comandos:
    git clone git://git.drogon.net/wiringPi
    cddingPi
    sudo nano / etc / modules
    c. Agregue las siguientes tres líneas al final del archivo (/ etc / modules) si aún no están allí
    snd-bcm2835
    i2c-bcm2708
    i2c-dev
    d . A continuación, modifique los parámetros de arranque para encender el i2c desde el principio. Escribiendo el comando bash:
    sudo nano /boot/config.txt
    e. Agregue las siguientes líneas al final de este archivo:
    dtparam =i2c1 =on
    dtparam =i2c_arm =on
    f. Reinicia tu Raspberry Pi
  2. Instalación y ejecución del software MPU-6050-Pi-Demo
    a. Ingrese los siguientes comandos de bash en una ventana de terminal:
    git clone git://github.com/richardghirst/
    PiBits.git
    cd PiBits / MPU6050-Pi-Demo
    sudo apt-get install libgtkmm-3.0-dev
    b. Algunos de los archivos de origen deben editarse para que funcionen con el Pi. Necesitamos modificar los archivos I2Cdev.cpp y setup-i2c.sh. Utilice los comandos de bash
    "nano" para editar el archivo.
    c. Cambie todas las referencias a “/ dev / i2c-0” para leer “/ dev / i2c-1” en este archivo y guárdelo.
    d. Ingrese los siguientes comandos de bash para compilar la fuente:
    make
    ./setup-i2c.sh
    e. Espere hasta que las fuentes hayan terminado de compilarse, luego ingrese el siguiente comando bash:
    sudo i2cdetect -y 1
    f. Debería ver el siguiente resultado

gramo. Ahora ejecute el programa de ejemplo “demo_raw” en esta carpeta escribiendo el siguiente comando bash:
./demo_raw
h. Esta demostración mostrará valores de giroscopio y aceleración sin procesar en la terminal
a / g:Ax Ay Az Gx Gy Gz

  1. Para obtener los datos del módulo GPS de Adafruit, Adafruit tiene su propio software de desarrollo propio llamado GPS Daemon (gpsd). El tutorial está disponible en el enlace:https://learn.adafruit.com/adafruit-ultimate-gps-on-the-raspberry-pi
  2. Dado que gpsd no es un software de código abierto, es mejor utilizar un software de terceros que permita a los usuarios modificar y crear su propio archivo para leer desde gps. “Libgps” es una biblioteca gps de código abierto creada para su uso principalmente en placas ARM Raspberry y probada con Adafruit Ultimate GPS Breakout. Estamos usando esta biblioteca en nuestro proyecto.
  3. Instalar y compilar el paquete libgps.
    a. Para instalar libgps, escriba los siguientes comandos:
    git clone git://github.com/wdalmut/libgps.git
    cd libgps
    b. Después de dirigirse a la carpeta libgps, compile los archivos para obtener libgps.a escribiendo:
    make
    sudo make install
  4. Puede encontrar un código de muestra en la carpeta de ejemplo llamada "position_logger.c" para probar la conexión
    a. Compílelo con
    gcc -o position_logger position_logger.c -lgps
    -lm
    b. Ejecútelo con
    $ ./position_logger
    c. Cuando hay una señal GPS válida (el LED fijo no parpadea a 1 Hz),
    debería ver los grados decimales para las latitudes y longitudes
    directamente en la consola, como se muestra a continuación:
    45.071060 7.646363
    45.071082 7.646385
    45.071078 7.646387
    45.071060 7.646373
    45.071048 7.646358
    45.071052 7.646372
    45.071057 7.646392
    45.071062 7.646.0397
    7.6
    45.071073 7.646395
    45.071082 7.646403
    Conclusión
    Esta nota de aplicación tomó dos sensores como ejemplo y guió al usuario sobre cómo configurar la comunicación en serie entre los sensores y el Pi desde el primer paso. También explicó brevemente el método de línea de comandos para editar, compilar y ejecutar un archivo. Sin embargo, escribir esos datos de sensores en un algoritmo requiere mucho más esfuerzo que solo verlos. El objetivo final, o en otras palabras, la derivación más avanzada de esta nota de aplicación debería ser abordar diferentes bibliotecas de sensores desde un único archivo
    de script. Esto requiere una comprensión más profunda de los principios de codificación detrás de cada paquete de software de sensor.
    Referencia:
  5. Kevin Townsend. Adafruit Ultimate GPS en Raspberry Pi, 15 de julio de 2014.
    Web. https://learn.adafruit.com/downloads/pdf/adafruit-ultimate-gps-on-theraspberry-pi.pdf
  6. Walter Dal Mut. Biblioteca GPS UART NMEA para Raspberry Pi. 08 de septiembre de 2014.
    Web. https://github.com/wdalmut/libgps
  7. InvenSense. MPU-9150 Datasheet, 18 de septiembre de 2013. Web. http://
    www.invensense.com/mems/gyro/documents/PS-MPU-9150A-00v4_3.pdf

Fuente:Integración de datos de sensores con microprocesador Raspberry Pi


Proceso de manufactura

  1. Mide temperaturas con un sensor DS18B20 de 1 cable y Raspberry Pi
  2. Monitoreo de temperatura en Raspberry Pi
  3. Supervisión de la temperatura con Raspberry Pi
  4. Sensor de movimiento con Raspberry Pi
  5. Sensor de humedad del suelo Raspberry Pi
  6. Rastreo de rostro con movimiento horizontal / vertical con raspberry pi
  7. Cómo conectar un sensor ultrasónico Lego Mindstorms NXT a la Raspberry Pi
  8. Sensor de rango ultrasónico HC-SR04 en Raspberry Pi
  9. Cree su primer IOT con una Raspberry Pi, un sensor DHT11 y Thingspeak.
  10. Aeroponía con Raspberry Pi y sensor de humedad
  11. Sensor de temperatura Raspberry Pi