Android GPS and IMU logger with The Tactigon

We test with the wearable application and three-dimensional gesture detection prototype device, by making the GPS receiver interact with the on-board IMU in order to improve position detection process.
android gif

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.

Download Code:

Related Posts