Android Gps And Imu Logger With The Tactigon

Made by The Tactigon

About the project

Connect The Tactigon to a GROVE GPS breakout board and send position and euler angles to an Android device for portable data logging

Project info

Difficulty:

Estimated time:

1 hour

Published:

28th August 2018

Items used in this project


Hardware components

Grove - GPS x 1
3D Gesture Sensor (Mini) For Arduino x 1
Complex Programmable Logic Devices

with Bluetooth Low Energy

x 1

Software app and online services

Arduino IDE
Processing

Hand tools and fabrication machines

Electronic Case x 1

Story


We connected a GROVE GPS to The Tactigon, to pair position data to Euler's Angles. Libraries offers both Bluetooth Low Energy and Serial communication, so we connected the GPS using UART and we used Bluetooth Low Energy to transmit data to our Android Smartphone, programmed using Processing Android Mode.

KML - Keyhole Markup Language

To format gathered data we used KML files, since we needed a way to pair Global Position data with parameters read by sensors on board (in this case Euler's angles, Pitch, Roll and Yaw). KML format is use4d by Google Earth, Google Maps and many other software to share paths, positions, and is broadly used by programmers. KML file generated by our application is structured as follow:

<Placemark>
    <name>172043.0</name>
    <ExtendedData>
        <Dataname="Roll">
            <value>-140.57332°</value>
        </Data>
        <Dataname="Pitch">
            <value>18.839018°</value>
        </Data>
        <Dataname="Yaw">
            <value>-91.80548°</value>
        </Data>
    </ExtendedData>
    <Point>
        <coordinates>9.385868,45.57182,0.0</coordinates>
    </Point>
</Placemark>

Placemark tag identify our point over the map. This point has a name (<name> tag, we used the UTC timestamp), a point made of geographic coordinates (latitude and longitude, <Point> tag), in DD format, and related data, <ExtendedData>, where in our application are Roll, Pitch and Yaw values recorded in the current position. This format describes now a series of points with all the informations we wanted to monitor, readable with free tools.

In the following images, we can see the path and a point detail, showing Roll, Pitch and Yaw.

Communication - UART - BLE - Arduino Sketch

The Tactigon is connected to GPS Receiver by a serial port, UART, and thanks to The Tactigon's Library is possible to pair a callback triggered by each byte received.

We created a buffer, analyzed when an endline value is retrieved. The sketch parses the lines and grabs latitude and longitude.

Bluetooth Low Energy is used to transmit data (GPS and Angles) to a BLE Central Device, in our case an Android Smartphone.

Android - Logging

Processing code receives data from The Tactigon and log it in KML format file in the internal storage.

We used BLEPDROID library to use Bluetooth Low Energy with Processing Android Mode.

Schematics


fritzing_RL18Ga5i7y.jpg

Code


GPS.ino

V7.rar

Full source code

V7.rar

BLEGPS.pde

Buffer.pde

Data.pde

GPSData.pde

IMUData.pde

Utils.pde

AndroidManifest.xml

sketch.properties

Credits



Leave your feedback...