Tabla de contenido:

The Path Mapper: 6 pasos
The Path Mapper: 6 pasos

Video: The Path Mapper: 6 pasos

Video: The Path Mapper: 6 pasos
Video: Grasshopper Path Mapper is a BADASS 2024, Noviembre
Anonim
El mapeador de caminos
El mapeador de caminos
El mapeador de caminos
El mapeador de caminos
El mapeador de caminos
El mapeador de caminos

En este proyecto de IoT, conectamos un NEO-6M (módulo GPS) para entregar datos de ubicación a través del Arduino a una hoja de Excel que se guardará en la computadora. Luego, con Tableau Public, creamos una visualización de datos de estos datos para trazar el camino que tomamos. Si bien esta es una forma de recopilar y presentar datos en tiempo real en una visualización de datos altamente correlacionados, este proceso también se puede aplicar a otros proyectos basados en datos.

Paso 1: Adquirir materiales

Adquirir materiales
Adquirir materiales

Para este proyecto, necesitará lo siguiente:

  • Módulo GPS NEO-6M
  • Arduino Uno
  • Cables de puente macho / macho (necesitará 4 cables)
  • Cable USB 2.0 tipo A a B
  • Computadora con estos programas: Tableau Public, Arduino IDE (con TinyGPS ++) y Processing

Paso 2: configurar los dispositivos

Configurar los dispositivos
Configurar los dispositivos
Configurar los dispositivos
Configurar los dispositivos

Primero necesitamos configurar el módulo GPS con Arduino UNO para que Arduino nos brinde una interfaz para mostrar los datos. Cada uno de los cuatro cables conectados al NEO-6M corresponde a puertos específicos. Si su NEO-6M no viene con los cables, tendrá que conectarlo directamente con cables de puente. En el diagrama anterior, el rojo corresponde a la potencia (VCC), el negro a tierra (GND), el amarillo para transmitir datos (TxD) y el blanco para recibir datos (RxD). Conectamos estos cables a cables de puente macho / macho para poder conectarlos al Arduino. Siguiendo el diagrama anterior, conectamos el cable de tierra al pin digital GND en el Arduino, el cable TxD al 4, el cable RxD a ~ 3 y el cable VCC a 5V para voltaje. En un paso futuro, necesitaremos definir TxD y RxD con los números correctos en SoftwareSerial.

Una vez que los dos dispositivos están conectados entre sí, debemos proporcionar una fuente de alimentación. Conecte el cable USB 2.0 a su computadora portátil y la luz del NEO-6M debería encenderse.

Paso 3: codificar el Arduino para extraer datos

Codificar el Arduino para extraer datos
Codificar el Arduino para extraer datos

Ahora que tenemos los dispositivos configurados para recopilar datos GPS de los satélites, escribiremos un código para analizar los datos GPS que queremos. Suponiendo que haya captado una señal (mi módulo GPS parpadeará en azul), el NEO-6M imprime por defecto datos sin procesar en el monitor en serie en forma de mensajes NMEA, que se parecen a $ GP seguido de más letras y una serie de números. La imagen de arriba da una idea general de lo que debe mostrarse en su monitor serial una vez que se ingresa el código básico de Arduino.

Para explicar el código que he adjuntado (o si desea intentar codificarlo usted mismo), primero debe incluir las bibliotecas SoftwareSerial y TinyGPS ++ (para este último, Sketch> Incluir> Agregar biblioteca. ZIP). SoftwareSerial nos permite tener una conexión en serie; TinyGPS ++ nos brinda una herramienta fácil para imprimir la información de destino en una forma legible. Asegúrese de inicializar el objeto SoftwareSerial en los pines correspondientes del Arduino. En la función de configuración, usamos 9600 como velocidad en baudios.

Para el propósito de este instructable, solo imprimiremos siete tipos de datos en la función de bucle: latitud (grados), longitud (grados), velocidad (km), rumbo (grados), altitud (km), número de satélites en use y hdop. Puede buscar la sintaxis para imprimir esta información en la biblioteca Arduiniana. La forma general es Serial.print (). Por ejemplo, para imprimir la longitud, escribiríamos Serial.print (gps.location.lng (), 6). El 6 representa cuántos dígitos queremos a la derecha del punto decimal.

Mi código tiene caracteres adicionales impresos por el bien de una expresión regular fácilmente formateada en el siguiente paso. Sin embargo, si desea detenerse en este paso, no dude en formatear los datos de manera diferente para facilitar la visualización en el monitor en serie.

Paso 4: utilizar el procesamiento para escuchar

Utilizar el procesamiento para escuchar
Utilizar el procesamiento para escuchar

Si bien tenemos un código para la configuración del IDE de Arduino, tenemos un problema para guardar estos datos. A partir de este momento, solo podemos ver los datos en el monitor en serie mientras los recopilamos. Hay muchas formas de registrar estos datos, pero elegí Processing principalmente porque su interfaz imita el IDE de Arduino y usa Java, un lenguaje con el que estoy familiarizado (tenga en cuenta que también puede controlar la placa Arduino con Processing si descarga Firmata). El procesamiento escucha en el puerto conectado al Arduino y tiene la capacidad de manipular los datos que se leen en el monitor en serie. Para encontrar el nombre de este puerto, vuelva a consultar su archivo IDE de Arduino y verifique en Herramientas> Puerto.

Proporcioné el código de procesamiento, pero aquí hay una descripción general rápida de cómo funciona el código.

Antes de la función de configuración, asegúrese de tener variables para el puerto, la tabla resultante, la fila con la que trabajaremos y el nombre del archivo. Luego, en la función de configuración, hay parámetros para establecer el tamaño de su ventana Ejecutar, pero esos números no afectan nuestra funcionalidad (por ejemplo, configúrelos en (500, 500)). Cuando esté inicializando el puerto, use el nombre del puerto en forma de cadena y una velocidad en baudios de 9600. Por último, cree las nueve columnas (para las siete categorías de GPS, hora y fecha) para inicializar la tabla.

En la función de dibujo, utilizamos las funciones integradas de fecha y hora para realizar un seguimiento de cuándo se extrae cada conjunto de datos GPS. Ahora, para leer el flujo de datos del Arduino y colocarlo bajo los encabezados apropiados con la fecha y hora correctas, utilizamos expresiones regulares.

Utilizo expresiones regulares para analizar los datos exactos con la función matchAll que busca cualquier expresión entre el signo igual y el punto y coma (los delimitadores que puse en mi código Arduino). Esto posteriormente coloca todas las etiquetas coincidentes, los datos numéricos, en una matriz bidimensional. Luego podemos recurrir a estos índices de matriz para colocarlos debajo de los encabezados de la hoja de Excel.

Para guardar el nuevo archivo.csv, usamos una tecla para cerrar la ventana Ejecutar. Cuanto más espere para presionar una tecla, más datos recopilará. Siguiendo la forma de otra guía, también decidí guardar el archivo en la carpeta de datos con la fecha y la hora como nombre de archivo.

Paso 5: mostrar datos en Tableau Public

Visualización de datos en Tableau Public
Visualización de datos en Tableau Public
Visualización de datos en Tableau Public
Visualización de datos en Tableau Public
Visualización de datos en Tableau Public
Visualización de datos en Tableau Public

El paso final implica cierta visualización de datos. Hay muchos programas para crear y mostrar visualizaciones de datos, es decir, Plotly, pero para este proyecto usaremos Tableau. Abra Tableau Public y abra el archivo de Excel guardado como un archivo de texto. Para crear una hoja de trabajo, haga clic en la Hoja 1 en la parte inferior izquierda.

Dado que estamos trabajando con datos de GPS, usaremos un mapa para representar nuestra información. En la columna de la izquierda donde dice Medidas, arrastraremos Longitud a Columnas y Latitud a Filas en la parte superior. Tableau establece de forma predeterminada ambas medidas en AVG, por lo que debe hacer clic en el menú desplegable junto a los términos y cambiar ambas a Dimensión. Ahora el mapa debería mostrar una ruta usando los valores de latitud y longitud recopilados.

Para limpiar sus datos en busca de errores (lo que también se puede hacer antes de abrir Tableau), puede optar por excluir algunos círculos de ubicación haciendo clic en ellos y seleccionando la opción. Mi módulo GPS no es 100% preciso, ya que algunas partes de mi ruta no se han localizado, pero la ruta general se ha registrado.

Paso 6: refinando la visualización

Refinando la Viz
Refinando la Viz

La última parte es hacer que estos datos sean más legibles. Si desea el contexto de la calle, puede ir a Mapa> Capa de mapa> Calles y carreteras. No dude en experimentar con otras marcas. Arrastré Velocidad sobre Color para mostrar cómo aumenta la intensidad del color cuando aumenta la velocidad. También utilicé Detail en lugar de Label for Course porque Label mostraría los números en el mapa, mientras que solo quería que apareciera información cuando pasas el cursor sobre los puntos de ubicación.

Ahora que ha experimentado todo el proceso de recopilar datos y mostrar lo que tiene en una visualización de datos, ¡puede aplicar esto a otros proyectos!

por Pingdi Huang, verano de 2018

Recomendado: