Project

General

Profile

Revision 1876

Worked on highways and object avoidance and now uses doDrive and not lineFollow

View differences:

trunk/code/projects/traffic_navigation/validTurns.h
1 1
#ifndef _VALID_TURNS_
2 2
#define _VALID_TURNS_
3 3

  
4
#include "lineFollow.h"
5
#include "lineDrive.h"
4
#include "../linefollowing/lineFollow.h"
5
#include "../linefollowing/lineDrive.h"
6 6

  
7 7
//To differenciate between T and Cross Intersections
8 8
#define DOUBLE_C	4
trunk/code/projects/traffic_navigation/highways.c
1
#include "highways.h"
2
#include "lineDrive.h"
3
#include <dragonfly_lib.h>
4
extern int state[5];
5
static int count =0;
6
static long average = 0;
7

  
8
void driveHighway( void ){
9
	doDrive(200);
10
	int range = range_read_distance(IR2);
11
	usb_puti(range);
12
	usb_puts(" : ");
13
	usb_puti(average);
14
        usb_puts("\r\n");
15
	if(range == -1){
16
		return;
17
	}
18
        
19
	count ++;
20
	average += range;
21
	if(count >= COUNT_MAX){
22
		if(state[0] != MERGELEFT){
23
			orb1_set_color(ORANGE);
24
			if(average / COUNT_MAX < PASS_DISTANCE){
25
				merge(ILEFT);
26
				usb_puts("MERGE \r\n");	
27
			}
28
		}
29
		count =0;
30
		average = 0;
31
	}
32
	//else orb1_set_color(GREEN);
33
}
34

  
trunk/code/projects/traffic_navigation/main.c
12 12
	int state, sign, dataLength, pingWaitTime;
13 13
	char sendBuffer[PACKET_LENGTH], prevBot, nextBot, id, nextDir, nextPath, intersectionNum;
14 14
	unsigned char *packet;
15

  
15
	
16 16
	/* Initialize the dragonfly boards, the xbee, encoders, lineFollowing */
17 17
	dragonfly_init(ALL_ON);
18 18
	xbee_init();
19 19
	encoders_init();
20
//	lineDrive_init();
20
	lineDrive_init();
21 21
	rtc_init(SIXTEENTH_SECOND, NULL);	
22 22
	wl_basic_init_default();
23 23
	wl_set_channel(13);
......
26 26
	sign = 0;
27 27
	
28 28
	//Test code
29
	state = SROAD;
29
	state = SHIGHWAY;
30 30

  
31 31
	sendBuffer[1] = id;
32 32

  
......
208 208
			}
209 209
			break;
210 210
		case SHIGHWAY:/*On highway*/
211
//			sign = lineFollow();
212
			//highway behaviors
213
				//merging
214
				//passing
215
			//read barcode
211
			driveHighway();
216 212
			break;
217 213
		default:
218 214
			usb_puts("I got stuck in an unknown state! My state is ");
trunk/code/projects/traffic_navigation/highways.h
1
#ifndef HIGHWAYS_H
2
#define HIGHWAYS_H
3

  
4
void driveHighway(void);
5

  
6

  
7
#define COUNT_MAX 5
8
#define PASS_DISTANCE 100
9
#endif

Also available in: Unified diff