Dear all,

I'm trying to use the ParamLogging application
(.../tiny2/tinyos-2.x-contrib/shimmer/apps/ParamLogging) to log
accelerometer and gyro values.
Thanks to Mike I'm able to compile and run it, but when I try to read the
data from the SD card I get weird results.

I tried both the Matlab code in the manual and the python code read_em.py
suggested to read data recorded using JustFATLogging.

Hereby you can see the code that I used:

MATLAB:

fid = fopen('.../../acceltot.bin');

more off

accelx = fread(fid, 'uint16', 4);
L = length(accelx);
t = (0:L-1)/50;

frewind(fid);
fseek(fid,2,'bof');
accely = fread(fid, 'uint16', 4);

frewind(fid);
fseek(fid,4,'bof');
accelz = fread(fid, 'uint16', 4);

frewind(fid);
fseek(fid,6,'bof');
gyrox = fread(fid, 'uint16', 10);

frewind(fid);
fseek(fid,8,'bof');
gyroy = fread(fid, 'uint16', 10);

frewind(fid);
fseek(fid,10,'bof');
gyroz = fread(fid, 'uint16', 10);

figure
subplot(3,1,1); plot(accelx, 'r'); title 'Accel X';
subplot(3,1,2); plot(accely, 'g'); title 'Accel Y';
subplot(3,1,3); plot(accelz, 'b'); title 'Accel Z';

figure
subplot(3,1,1); plot(gyrox, 'r'); title 'Gyro X';
subplot(3,1,2); plot(gyroy, 'g'); title 'Gyro Y';
subplot(3,1,3); plot(gyroz, 'b'); title 'Gyro Z';




Python


#!/usr/bin/python

import os, sys
import array

USAGE_TEXT = """
Usage: read_em.py <datafile>
"""

def usage():
    print USAGE_TEXT
    sys.exit(-1)

def read_it(filename):
    try:
        f = open(filename, 'r')
    except:
        print "can't open %s for read" % filename
        sys.exit(-2)

    finfo = os.stat(filename)
    sz = finfo.st_size



    sz = sz / 2
    data = array.array('H')
    data.fromfile(f, sz)

    f.close()

    return data

def print_em(data):
    t = 0.00

    s = len(data)
    for i in range(0,s,6):
        try:
            print "%04.02f\t%d\t%d\t%d\t%d\t%d\t%d" % (t, data[i],
data[i+1], data[i+2],data[3], data[i+4], data[i+5])
        except:
            print "file has truncated data at index %d" % i
            return

        t = t + 0.02

def main(argv):
    if len(argv) < 1:
        usage()

    data = read_it(argv[0])

    print_em(data)

if __name__ == "__main__":
    main(sys.argv[1:])



When I try to plot the data I get almost the same plots for accelerometer
values and gyro values and they look like the charger of a condenser....
I'm wondering if I'm doing some mistake reading the data or the
ParamLogging application has some bugs....did anyone use it before?

Thanks a lot for your help.
Gabriele
_______________________________________________
Shimmer-users mailing list
[email protected]
https://lists.eecs.harvard.edu/mailman/listinfo/shimmer-users

Reply via email to