Sommario:

Il Path Mapper: 6 passaggi
Il Path Mapper: 6 passaggi

Video: Il Path Mapper: 6 passaggi

Video: Il Path Mapper: 6 passaggi
Video: Goratha's Secret to the Best Magic Find Strat in POE 3.23 2024, Novembre
Anonim
Il mappatore di percorsi
Il mappatore di percorsi
Il mappatore di percorsi
Il mappatore di percorsi
Il mappatore di percorsi
Il mappatore di percorsi

In questo progetto IoT, colleghiamo un NEO-6M (modulo GPS) per fornire i dati sulla posizione tramite Arduino a un foglio Excel che verrà salvato sul computer. Successivamente, con Tableau Public, creiamo una visualizzazione dei dati di questi dati per mappare il percorso che abbiamo intrapreso. Sebbene questo sia un modo per raccogliere e presentare dati in tempo reale in un'area di dati altamente correlati, questo processo può essere applicato anche ad altri progetti basati sui dati.

Passaggio 1: acquisizione dei materiali

Acquisizione di materiali
Acquisizione di materiali

Per questo progetto, avrai bisogno di quanto segue:

  • Modulo GPS NEO-6M
  • Arduino Uno
  • Ponticelli maschio/maschio (avrai bisogno di 4 fili)
  • Cavo USB 2.0 da tipo A a B
  • Computer con questi programmi: Tableau Public, Arduino IDE (con TinyGPS++) e Processing

Passaggio 2: configurazione dei dispositivi

Configurazione dei dispositivi
Configurazione dei dispositivi
Configurazione dei dispositivi
Configurazione dei dispositivi

Per prima cosa dobbiamo configurare il modulo GPS con Arduino UNO in modo che Arduino ci dia un'interfaccia per mostrare i dati. Ciascuno dei quattro fili collegati al NEO-6M corrisponde a porte specifiche. Se il tuo NEO-6M non viene fornito con i cavi, dovrai collegarlo direttamente con i ponticelli. Nel diagramma sopra, il rosso corrisponde all'alimentazione (VCC), il nero alla massa (GND), il giallo alla trasmissione dei dati (TxD) e il bianco alla ricezione dei dati (RxD). Colleghiamo questi fili ai cavi dei ponticelli maschio/maschio in modo da poterli collegare all'Arduino. Seguendo lo schema sopra, colleghiamo il filo di terra al pin digitale GND sull'Arduino, il filo TxD a 4, il filo RxD a ~3 e il filo VCC a 5V per la tensione. In un passaggio futuro, dovremo definire TxD e RxD con i numeri corretti nel SoftwareSerial.

Una volta che i due dispositivi sono collegati tra loro, dobbiamo fornire una fonte di alimentazione. Collega il cavo USB 2.0 al tuo laptop e la luce sul NEO-6M dovrebbe accendersi.

Passaggio 3: codificare Arduino per estrarre i dati

Codificare Arduino per estrarre i dati
Codificare Arduino per estrarre i dati

Ora che abbiamo i dispositivi impostati per raccogliere i dati GPS dai satelliti, scriveremo il codice per analizzare i dati GPS che vogliamo. Supponendo che tu abbia rilevato un segnale (il mio modulo GPS lampeggia in blu), il NEO-6M per impostazione predefinita stampa i dati grezzi sul monitor seriale sotto forma di messaggi NMEA, che assomigliano a $GP seguiti da più lettere e una serie di numeri. L'immagine sopra dà un'idea generale di cosa dovrebbe essere mostrato sul monitor seriale una volta inserito il codice Arduino di base.

Per spiegare il codice che ho allegato (o se desideri provare a codificarlo da solo), devi prima includere entrambe le librerie SoftwareSerial e TinyGPS++ (per quest'ultimo, Sketch> Includi> Aggiungi libreria. ZIP). SoftwareSerial ci permette di avere una connessione seriale; TinyGPS++ ci offre uno strumento semplice per stampare le informazioni mirate in un formato leggibile. Assicurati di inizializzare l'oggetto SoftwareSerial sui pin corrispondenti su Arduino. Nella funzione di configurazione, usiamo 9600 come baud rate.

Ai fini di questa istruzione, stamperemo solo sette tipi di dati nella funzione loop: latitudine (gradi), longitudine (gradi), velocità (km), rotta (gradi), altitudine (km), numero di satelliti in uso e hdop. Puoi cercare la sintassi per stampare queste informazioni nella libreria Arduiniana. La forma generale è Serial.print(). Ad esempio, per stampare la longitudine, digitare Serial.print(gps.location.lng(), 6). Il 6 rappresenta quante cifre vogliamo a destra della virgola.

Il mio codice ha caratteri extra stampati per una regex facilmente formattata nel passaggio successivo. Tuttavia, se desideri fermarti a questo passaggio, sentiti libero di formattare i dati in modo diverso per facilitare la visualizzazione sul monitor seriale.

Passaggio 4: utilizzare l'elaborazione per ascoltare

Utilizzo dell'elaborazione per ascoltare
Utilizzo dell'elaborazione per ascoltare

Sebbene abbiamo configurato il codice per l'IDE Arduino, abbiamo un problema nel salvare questi dati. Al momento, possiamo solo visualizzare i dati sul monitor seriale mentre li stiamo raccogliendo. Esistono molti modi per registrare questi dati, ma ho scelto Processing principalmente perché la sua interfaccia imita l'IDE di Arduino e utilizza Java, un linguaggio con cui ho familiarità (nota che potresti anche controllare la scheda Arduino con Processing se scarichi Firmata). L'elaborazione è in ascolto sulla porta collegata ad Arduino e ha la capacità di manipolare i dati che vengono letti sul monitor seriale. Per trovare il nome di questa porta, fai riferimento al tuo file IDE Arduino e controlla in Strumenti> Porta.

Ho fornito il codice di elaborazione, ma ecco una rapida panoramica di come funziona il codice.

Prima della funzione di configurazione, assicurati di avere variabili per la porta, la tabella risultante, la riga con cui lavoreremo e il nome del file. Quindi nella funzione di configurazione, ci sono parametri per impostare la dimensione della tua finestra Esegui ma quei numeri non influiscono sulla nostra funzionalità (ad esempio, impostali su (500, 500)). Quando si inizializza la porta, utilizzare il nome della porta in formato String e una velocità di trasmissione di 9600. Infine, creare le nove colonne (per le sette categorie GPS, ora e data) per inizializzare la tabella.

Nella funzione di disegno, utilizziamo le funzioni di data e ora integrate per tenere traccia di quando viene estratto ogni set di dati GPS. Ora per leggere il flusso di dati da Arduino e inserirlo nelle intestazioni appropriate con l'ora e la data corrette, utilizziamo le espressioni regolari.

Uso regex per analizzare i dati esatti con la funzione matchAll che cerca qualsiasi espressione tra il segno di uguale e il punto e virgola (i delimitatori che inserisco nel mio codice Arduino). Successivamente, tutti i tag abbinati, i dati numerici, vengono inseriti in una matrice bidimensionale. Possiamo quindi richiamare questi indici di array per inserirli sotto le intestazioni del foglio Excel.

Per salvare il nuovo file.csv, utilizziamo la pressione di un tasto per chiudere la finestra Esegui. Più tempo aspetti a premere un tasto, più dati raccoglierai. Seguendo le modalità di un'altra guida, ho anche deciso di salvare il file nella cartella dati con la data e l'ora come nome del file.

Passaggio 5: visualizzazione dei dati su Tableau Public

Visualizzazione dei dati su Tableau Public
Visualizzazione dei dati su Tableau Public
Visualizzazione dei dati su Tableau Public
Visualizzazione dei dati su Tableau Public
Visualizzazione dei dati su Tableau Public
Visualizzazione dei dati su Tableau Public

Il passaggio finale prevede la visualizzazione dei dati. Esistono molti programmi per creare e visualizzare visualizzazioni di dati, ad esempio Plotly, ma per questo progetto utilizzeremo Tableau. Apri Tableau Public e apri il file Excel salvato come file di testo. Per creare un foglio di lavoro, fai clic su Foglio 1 in basso a sinistra.

Poiché stiamo lavorando con i dati GPS, utilizzeremo una mappa per rappresentare le nostre informazioni. Nella colonna di sinistra dove si dice Misure, trascineremo Longitudine in Colonne e Latitudine in Righe in alto. Tableau imposta entrambe le misure su AVG, quindi fai clic sul menu a discesa accanto ai termini e modifica entrambe in Dimensione. Ora la mappa dovrebbe avere un percorso visualizzato utilizzando i valori di latitudine e longitudine raccolti.

Per eliminare eventuali errori dai dati (operazione che può essere eseguita anche prima di aprire Tableau), puoi scegliere di escludere alcuni cerchi di posizione facendo clic su di essi e selezionando l'opzione. Il mio modulo GPS non è preciso al 100%, poiché alcune parti del mio percorso non sono state individuate, ma è stato registrato il percorso generale.

Passaggio 6: perfezionamento della visualizzazione

Raffinare la Viz
Raffinare la Viz

L'ultima parte è rendere questi dati più leggibili. Se vuoi il contesto stradale, puoi andare su Mappa > Livello mappa > Strade e autostrade. Sentiti libero di sperimentare con altri marchi. Ho trascinato Velocità su Colore per mostrare come l'intensità del colore aumenta all'aumentare della velocità. Ho anche usato Detail invece di Label per Course perché Label visualizzava i numeri sulla mappa mentre volevo solo che le informazioni venissero visualizzate quando si passa con il mouse sui punti della posizione.

Ora che hai sperimentato l'intero processo di raccolta dati e visualizzazione di ciò che hai su una visualizzazione dati, puoi applicarlo ad altri progetti!

di Pingdi Huang, Estate 2018

Consigliato: