Project

General

Profile

Statistics
| Revision:

root / trunk / code / projects / mapping / auto / robot_main.c @ 1127

History | View | Annotate | Download (1.54 KB)

1
#include <dragonfly_lib.h>
2
#include <wireless.h>
3
#include <encoders.h>
4
#include "odometry.h"
5
#include "smart_run_around_fsm.h"
6

    
7
#define POLLING_INTERVAL 50    //interval in ms to get sensor data
8
#define MAP 1        // packet group for sending data points
9
#define ODO 0        // packet type for sending data points
10

    
11
char buf[100];
12

    
13
int main(void)
14
{
15
    /* initialize components and join the token ring */
16
    dragonfly_init(ALL_ON);
17
    odometry_init();
18
    run_around_init();
19
    orb_enable();
20
    wl_init();
21
    wl_set_channel(0xE);
22
    
23
    int x, y; // use when sending odometry data
24
    double theta;
25

    
26
    int store[9];
27
    char *send;   // for transmission
28

    
29
    while(1)
30
    {
31
                wl_do();
32

    
33
                delay_ms(POLLING_INTERVAL);        /* until it's time to grab map data */
34

    
35
                x = odometry_dx();        // data gathered
36
                y = odometry_dy();
37
                theta = odometry_angle();
38

    
39
                store[0] = x;        // position
40
                store[1] = y;
41
                *((double*)(store + 2)) = theta;        // calculated angle (8 bytes)
42
                store[4] = range_read_distance(IR1);        // IR1 range
43
                store[5] = range_read_distance(IR2);        // IR2 range
44
                store[6] = range_read_distance(IR3);        // IR3 range
45
                store[7] = range_read_distance(IR4);        // IR4 range
46
                store[8] = range_read_distance(IR5);        // IR5 range
47
                sprintf(buf, "%d %d %f %d %d %d %d %d\n", store[0], store[1],
48
                        *((double *)(store+2)), store[4], store[5], store[6],
49
                        store[7], store[8]);
50
                usb_puts(buf);        // send data to USB for debugging
51

    
52
                send = (char*) store;        // convert to char for wireless
53

    
54
                wl_send_global_packet(MAP, ODO, send, 18, 0);
55

    
56
                run_around_FSM();
57
    }
58

    
59
    wl_terminate();
60
    return 0;
61
}
62