wheelchair code for driver assitance

Dependencies:   mbed

Fork of wheelchairalexa by ryan lin

Committer:
ryanlin97
Date:
Thu Aug 16 16:42:45 2018 +0000
Revision:
11:75f0f13ff6c1
Parent:
10:e5463c11e0a0
Child:
12:0e5a0571b497
for alexa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryanlin97 0:fc0c4a184482 1 #include "wheelchair.h"
ryanlin97 0:fc0c4a184482 2
ryanlin97 3:a5e71bfdb492 3 AnalogIn x(A0);
ryanlin97 3:a5e71bfdb492 4 AnalogIn y(A1);
ryanlin97 3:a5e71bfdb492 5
ryanlin97 0:fc0c4a184482 6 DigitalOut off(D0);
ryanlin97 0:fc0c4a184482 7 DigitalOut on(D1);
ryanlin97 0:fc0c4a184482 8 DigitalOut up(D2);
ryanlin97 0:fc0c4a184482 9 DigitalOut down(D3);
ryanlin97 2:c2d049efc266 10
ryanlin97 10:e5463c11e0a0 11 bool manual = false;
ryanlin97 10:e5463c11e0a0 12
ryanlin97 7:5e38d43fbce3 13 Serial pc(USBTX, USBRX, 57600);
ryanlin97 7:5e38d43fbce3 14 Timer t;
ryanlin97 6:0cd57bdd8fbc 15
ryanlin97 11:75f0f13ff6c1 16 Wheelchair smart(xDir,yDir, &pc, &t);
ryanlin97 11:75f0f13ff6c1 17
ryanlin97 2:c2d049efc266 18
ryanlin97 0:fc0c4a184482 19 int main(void)
ryanlin97 0:fc0c4a184482 20 {
ryanlin97 11:75f0f13ff6c1 21 pc.printf("hello\n");
ryanlin97 6:0cd57bdd8fbc 22 while(1) {
ryanlin97 10:e5463c11e0a0 23 if( pc.readable()) {
ryanlin97 10:e5463c11e0a0 24 char c = pc.getc();
ryanlin97 11:75f0f13ff6c1 25 pc.printf("hello\n");
ryanlin97 10:e5463c11e0a0 26 if( c == 'w') {
ryanlin97 10:e5463c11e0a0 27 pc.printf("up \n");
ryanlin97 10:e5463c11e0a0 28 smart.forward();
ryanlin97 10:e5463c11e0a0 29 }
ryanlin97 6:0cd57bdd8fbc 30
ryanlin97 11:75f0f13ff6c1 31 else if( c == 'a') {
ryanlin97 10:e5463c11e0a0 32 pc.printf("left \n");
ryanlin97 10:e5463c11e0a0 33 smart.left();
ryanlin97 10:e5463c11e0a0 34 }
ryanlin97 6:0cd57bdd8fbc 35
ryanlin97 11:75f0f13ff6c1 36 else if( c == 'd') {
ryanlin97 10:e5463c11e0a0 37 pc.printf("right \n");
ryanlin97 10:e5463c11e0a0 38 smart.right();
ryanlin97 10:e5463c11e0a0 39 }
ryanlin97 6:0cd57bdd8fbc 40
ryanlin97 10:e5463c11e0a0 41 else if( c == 's') {
ryanlin97 10:e5463c11e0a0 42 pc.printf("down \n");
ryanlin97 10:e5463c11e0a0 43 smart.backward();
ryanlin97 10:e5463c11e0a0 44 }
ryanlin97 6:0cd57bdd8fbc 45
ryanlin97 10:e5463c11e0a0 46 else if( c == 'r') {
ryanlin97 11:75f0f13ff6c1 47 smart.turn_right(90);
ryanlin97 10:e5463c11e0a0 48 }
ryanlin97 6:0cd57bdd8fbc 49
ryanlin97 10:e5463c11e0a0 50 else if( c == 'l') {
ryanlin97 11:75f0f13ff6c1 51 smart.turn_left(90);
ryanlin97 10:e5463c11e0a0 52 }
ryanlin97 6:0cd57bdd8fbc 53
ryanlin97 11:75f0f13ff6c1 54 else if( c == 't') {
ryanlin97 11:75f0f13ff6c1 55 char buffer[256];
ryanlin97 11:75f0f13ff6c1 56 pc.printf ("Enter a long number: ");
ryanlin97 11:75f0f13ff6c1 57 fgets (buffer, 256, stdin);
ryanlin97 11:75f0f13ff6c1 58 int angle = atoi (buffer);
ryanlin97 11:75f0f13ff6c1 59
ryanlin97 11:75f0f13ff6c1 60 if(angle == 0) {
ryanlin97 11:75f0f13ff6c1 61 pc.printf("invalid input try again\n");
ryanlin97 11:75f0f13ff6c1 62 }
ryanlin97 11:75f0f13ff6c1 63 else {
ryanlin97 11:75f0f13ff6c1 64 smart.turn(angle);
ryanlin97 11:75f0f13ff6c1 65 }
ryanlin97 11:75f0f13ff6c1 66
ryanlin97 11:75f0f13ff6c1 67 }
ryanlin97 11:75f0f13ff6c1 68
ryanlin97 11:75f0f13ff6c1 69 else if( c == 'm') {
ryanlin97 10:e5463c11e0a0 70 pc.printf("turning on joystick\n");
ryanlin97 10:e5463c11e0a0 71 manual = true;
ryanlin97 11:75f0f13ff6c1 72 t.reset();
ryanlin97 10:e5463c11e0a0 73 while(manual) {
ryanlin97 10:e5463c11e0a0 74 smart.move(x,y);
ryanlin97 10:e5463c11e0a0 75 if( pc.readable()) {
ryanlin97 10:e5463c11e0a0 76 char d = pc.getc();
ryanlin97 10:e5463c11e0a0 77 if( d == 'm') {
ryanlin97 10:e5463c11e0a0 78 pc.printf("turning off joystick\n");
ryanlin97 10:e5463c11e0a0 79 manual = false;
ryanlin97 10:e5463c11e0a0 80 }
ryanlin97 10:e5463c11e0a0 81 }
ryanlin97 10:e5463c11e0a0 82 }
ryanlin97 10:e5463c11e0a0 83 }
ryanlin97 6:0cd57bdd8fbc 84
ryanlin97 10:e5463c11e0a0 85 else {
ryanlin97 10:e5463c11e0a0 86 pc.printf("none \n");
ryanlin97 10:e5463c11e0a0 87 smart.stop();
ryanlin97 10:e5463c11e0a0 88 }
ryanlin97 10:e5463c11e0a0 89 }
ryanlin97 6:0cd57bdd8fbc 90
ryanlin97 10:e5463c11e0a0 91 else {
ryanlin97 10:e5463c11e0a0 92 smart.stop();
ryanlin97 10:e5463c11e0a0 93 }
ryanlin97 6:0cd57bdd8fbc 94 wait(process);
ryanlin97 6:0cd57bdd8fbc 95 }
ryanlin97 1:c0beadca1617 96
ryanlin97 0:fc0c4a184482 97 }
ryanlin97 0:fc0c4a184482 98