Indholdsfortegnelse:

Path Mapper: 6 trin
Path Mapper: 6 trin

Video: Path Mapper: 6 trin

Video: Path Mapper: 6 trin
Video: Grasshopper - Intro to the Path Mapper 2024, November
Anonim
The Path Mapper
The Path Mapper
The Path Mapper
The Path Mapper
The Path Mapper
The Path Mapper

I dette IoT-projekt kører vi et NEO-6M (GPS-modul) op for at levere lokaliseringsdata gennem Arduino til et Excel-ark, der vil blive gemt på computeren. Bagefter med Tableau Public opretter vi en datavisualisering af disse data for at kortlægge den vej, vi tog. Selvom dette er en måde at indsamle og præsentere data i realtid i en stærkt korreleret data, dvs. denne proces kan også anvendes på andre datadrevne projekter.

Trin 1: Anskaffelse af materialer

Anskaffelse af materialer
Anskaffelse af materialer

Til dette projekt skal du bruge følgende:

  • NEO-6M GPS-modul
  • Arduino Uno
  • Han/han -jumpertråde (du skal bruge 4 ledninger)
  • USB 2.0 -kabel Type A til B
  • Computer med disse programmer: Tableau Public, Arduino IDE (med TinyGPS ++) og behandling

Trin 2: Opsætning af enhederne

Opsætning af enhederne
Opsætning af enhederne
Opsætning af enhederne
Opsætning af enhederne

Vi skal først konfigurere GPS -modulet med Arduino UNO for at Arduino kan give os en grænseflade til at vise dataene. Hver af de fire ledninger, der er forbundet til NEO-6M, svarer til specifikke porte. Hvis din NEO-6M ikke følger med ledningerne, skal du koble den direkte med jumperkabler. I diagrammet ovenfor svarer rød til strøm (VCC), sort til jord (GND), gul til at overføre data (TxD) og hvid til at modtage data (RxD). Vi forbinder disse ledninger til han-/hanstrømtråde, så vi kan forbinde dem med Arduino. Efter diagrammet ovenfor forbinder vi jordledningen til den digitale GND -pin på Arduino, TxD -ledningen til 4, RxD -ledningen til ~ 3 og VCC -ledningen til 5V for spænding. I et fremtidigt trin skal vi definere TxD og RxD med de korrekte numre i SoftwareSerial.

Når de to enheder er forbundet til hinanden, skal vi levere en strømkilde. Tilslut USB 2.0-kablet til din bærbare computer, og lyset på NEO-6M skal lyse.

Trin 3: Kodning af Arduino for at udtrække data

Kodning af Arduino for at udtrække data
Kodning af Arduino for at udtrække data

Nu hvor vi har konfigureret enhederne til at indsamle GPS -data fra satellitterne, skriver vi kode for at analysere de GPS -data, vi ønsker. Forudsat at du har registreret et signal (mit GPS-modul blinker blåt), udskriver NEO-6M som standard rådata på den serielle skærm i form af NMEA-meddelelser, der ligner $ GP efterfulgt af flere bogstaver og en serie af tal. Billedet ovenfor giver en generel idé om, hvad der skal vises på din serielle skærm, når den grundlæggende Arduino -kode er indsat.

For at forklare den kode, jeg har vedhæftet (eller hvis du vil prøve at kode den selv), skal du først inkludere både SoftwareSerial- og TinyGPS ++ -bibliotekerne (for sidstnævnte Sketch> Include> Add. ZIP library). SoftwareSerial giver os mulighed for at have en seriel forbindelse; TinyGPS ++ giver os et let værktøj til at udskrive de målrettede oplysninger i en læsbar form. Sørg for at initialisere SoftwareSerial -objektet til de tilsvarende stifter på Arduino. I opsætningsfunktionen bruger vi 9600 som baudhastighed.

Med henblik på denne instruktive udskriver vi kun syv typer data i loop -funktionen: breddegrad (grader), længdegrad (grader), hastighed (km), kurs (grader), højde (km), antal satellitter i brug og hdop. Du kan søge i syntaksen til udskrivning af disse oplysninger i Arduiniana -biblioteket. Den generelle form er Serial.print (). For eksempel for at udskrive længdegrad ville vi skrive Serial.print (gps.location.lng (), 6). 6 repræsenterer, hvor mange cifre vi ønsker til højre for decimaltegnet.

Min kode har ekstra tegn udskrevet af hensyn til et let formateret regex i det næste trin. Hvis du imidlertid gerne vil stoppe ved dette trin, er du velkommen til at formatere dataene anderledes for at lette visningen på den serielle skærm.

Trin 4: Brug af behandling til at lytte

Brug af behandling til at lytte
Brug af behandling til at lytte

Selvom vi har konfigureret kode til Arduino IDE, har vi et problem med at gemme disse data. Lige nu kan vi kun se dataene på den serielle skærm, mens vi indsamler dem. Der er mange måder at logge disse data på, men jeg valgte Processing primært fordi dets interface efterligner Arduino IDE, og den bruger Java, et sprog jeg er fortrolig med (bemærk at du også kunne styre Arduino -kortet med Processing, hvis du downloader Firmata). Behandlingen lytter ind på porten, der er forbundet til Arduino og har evnen til at manipulere de data, der læses på den serielle skærm. For at finde navnet på denne port skal du gå tilbage til din Arduino IDE -fil og tjekke i Værktøjer> Port.

Jeg har givet behandlingskoden, men her er en hurtig oversigt over, hvordan koden fungerer.

Inden opsætningsfunktionen skal du sørge for at have variabler til porten, den resulterende tabel, rækken, vi skal arbejde med, og navnet på filen. I opsætningsfunktionen er der parametre til indstilling af størrelsen på dit Run -vindue, men disse tal påvirker ikke vores funktionalitet (f.eks. Sæt dem til (500, 500)). Når du initialiserer porten, skal du bruge portens navn i strengform og en baudhastighed på 9600. Til sidst skal du oprette de ni kolonner (for de syv GPS -kategorier, tid og dato) for at initialisere tabellen.

I tegnefunktionen bruger vi de indbyggede dato- og tidsfunktioner til at holde styr på, hvornår hvert sæt GPS -data udtrækkes. Nu for at læse datastrømmen fra Arduino og sætte den under de relevante overskrifter med den korrekte tid og dato, bruger vi regelmæssige udtryk.

Jeg bruger regex til at analysere de nøjagtige data med matchAll -funktionen, der leder efter ethvert udtryk mellem lighedstegnet og semikolon (afgrænserne, jeg satte i min Arduino -kode). Dette placerer efterfølgende alle de matchede tags, de numeriske data, i et todimensionalt array. Vi kan derefter opfordre disse array -indekser til at sætte dem under overskrifterne på Excel -arket.

For at gemme den nye.csv -fil bruger vi et tastetryk til at lukke vinduet Kør. Jo længere du venter med at trykke på en tast, jo flere data vil du indsamle. Efter en anden vejledning besluttede jeg også at gemme filen i datamappen med dato og klokkeslæt som filnavn.

Trin 5: Visning af data på Tableau Public

Viser data på Tableau Public
Viser data på Tableau Public
Viser data på Tableau Public
Viser data på Tableau Public
Viser data på Tableau Public
Viser data på Tableau Public

Det sidste trin indebærer en vis datavisualisering. Der er mange programmer til at oprette og vise datavisualiseringer, dvs. Plotly, men til dette projekt vil vi bruge Tableau. Åbn Tableau Public, og åbn den gemte Excel -fil som en tekstfil. For at oprette et regneark skal du klikke på Ark 1 nederst til venstre.

Da vi arbejder med GPS -data, bruger vi et kort til at skildre vores oplysninger. I den venstre kolonne, hvor der står Measures, trækker vi længdegrad til kolonner og latitude til rækker øverst. Tableau standardindstiller begge målinger til AVG, så klik på rullemenuen ud for vilkårene og skift begge til Dimension. Nu skal kortet have en sti vist ved hjælp af de indsamlede bredde- og længdegrader.

For at rydde op i dine data for fejl (hvilket også kan gøres, før du åbner Tableau), kan du vælge at ekskludere nogle placeringscirkler ved at klikke på dem og vælge indstillingen. Mit GPS -modul er ikke 100% nøjagtigt, da nogle dele af min sti ikke er blevet fundet, men den generelle sti er blevet registreret.

Trin 6: Forfining af Viz

Forfining af Viz
Forfining af Viz

Den sidste del er at gøre disse data mere læsbare. Hvis du vil have gadekontekst, kan du gå til Kort> Kortlag> Gader og motorveje. Eksperimentér gerne med andre mærker. Jeg trak Speed over Color for at vise, hvordan farveintensiteten stiger, når hastigheden stiger. Jeg brugte også Detalje i stedet for Label for Course, fordi Label ville vise tallene på kortet, mens jeg kun ønskede, at der skulle dukke oplysninger op, når du svæver over placeringspunkterne.

Nu hvor du har oplevet hele processen med at indsamle data og vise, hvad du har på en datavisualisering, kan du anvende dette på andre projekter!

af Pingdi Huang, sommer 2018

Anbefalede: