Final Version from RoboticHackathon 4.-5. April 2015

Dependencies:   Autopilot dillerdasker Rfid mbed

Fork of RoboticHackathon2 by Mathias Lyngklip

Committer:
iLyngklip
Date:
Tue Apr 08 14:56:42 2014 +0000
Revision:
3:9289c1e52ca5
Parent:
2:b996c95912b5
Auto-Piloten Jepediah Kerman 2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iLyngklip 3:9289c1e52ca5 1 #include "hack_motor.h"
iLyngklip 3:9289c1e52ca5 2 #include "auto_pilot.h"
iLyngklip 0:47165eb4e54d 3 #include "mbed.h"
iLyngklip 0:47165eb4e54d 4 #include "HCSR04.h"
iLyngklip 0:47165eb4e54d 5 #include "PwmOut.h"
iLyngklip 0:47165eb4e54d 6
iLyngklip 0:47165eb4e54d 7
iLyngklip 0:47165eb4e54d 8 Serial pc(USBTX, USBRX);
iLyngklip 3:9289c1e52ca5 9 HCSR04 sensor(PTA13, PTD5, PTD0, PTD2);
iLyngklip 1:e854d5c12659 10
iLyngklip 3:9289c1e52ca5 11 Wheel robot;
iLyngklip 2:b996c95912b5 12 int control = 0;
iLyngklip 3:9289c1e52ca5 13 extern double L1 = 0;
iLyngklip 3:9289c1e52ca5 14 extern double L2 = 0;
iLyngklip 0:47165eb4e54d 15 int main(){
iLyngklip 1:e854d5c12659 16
iLyngklip 1:e854d5c12659 17
iLyngklip 0:47165eb4e54d 18 pc.baud(9600);
iLyngklip 3:9289c1e52ca5 19 pc.printf(" speed 1, 2 & 3, frem w, bagud s, venstre a & hoejre d");
iLyngklip 1:e854d5c12659 20
iLyngklip 2:b996c95912b5 21 while(control == 0){
iLyngklip 1:e854d5c12659 22 robot.init();
iLyngklip 1:e854d5c12659 23 char c;
iLyngklip 3:9289c1e52ca5 24
iLyngklip 1:e854d5c12659 25
iLyngklip 1:e854d5c12659 26 {
iLyngklip 2:b996c95912b5 27 c = pc.getc();
iLyngklip 1:e854d5c12659 28 switch (c)
iLyngklip 1:e854d5c12659 29 {
iLyngklip 1:e854d5c12659 30 case 0x31:
iLyngklip 1:e854d5c12659 31 robot.speed = 1.0;
iLyngklip 1:e854d5c12659 32 pc.printf("1");
iLyngklip 1:e854d5c12659 33 break;
iLyngklip 1:e854d5c12659 34
iLyngklip 1:e854d5c12659 35 case 0x32:
iLyngklip 1:e854d5c12659 36 robot.speed = 0.5;
iLyngklip 1:e854d5c12659 37 pc.printf("2");
iLyngklip 1:e854d5c12659 38 break;
iLyngklip 1:e854d5c12659 39
iLyngklip 1:e854d5c12659 40 case 0x33:
iLyngklip 1:e854d5c12659 41 robot.speed = 0.25;
iLyngklip 1:e854d5c12659 42 pc.printf("3");
iLyngklip 1:e854d5c12659 43 break;
iLyngklip 1:e854d5c12659 44
iLyngklip 2:b996c95912b5 45 case 's':
iLyngklip 1:e854d5c12659 46 robot.FW();
iLyngklip 2:b996c95912b5 47 pc.printf("s");
iLyngklip 1:e854d5c12659 48 break;
iLyngklip 1:e854d5c12659 49
iLyngklip 2:b996c95912b5 50 case 'w':
iLyngklip 1:e854d5c12659 51 robot.BW();
iLyngklip 2:b996c95912b5 52 pc.printf("w");
iLyngklip 1:e854d5c12659 53 break;
iLyngklip 1:e854d5c12659 54
iLyngklip 3:9289c1e52ca5 55 case 'a':
iLyngklip 3:9289c1e52ca5 56 robot.right();
iLyngklip 1:e854d5c12659 57 pc.printf("a");
iLyngklip 2:b996c95912b5 58 wait(0.1);
iLyngklip 2:b996c95912b5 59 robot.stop();
iLyngklip 2:b996c95912b5 60
iLyngklip 1:e854d5c12659 61 break;
iLyngklip 1:e854d5c12659 62
iLyngklip 3:9289c1e52ca5 63 case 'd':
iLyngklip 3:9289c1e52ca5 64 robot.left();
iLyngklip 2:b996c95912b5 65 pc.printf("d");
iLyngklip 2:b996c95912b5 66 wait(0.1);
iLyngklip 2:b996c95912b5 67 robot.stop();
iLyngklip 1:e854d5c12659 68 break;
iLyngklip 1:e854d5c12659 69
iLyngklip 1:e854d5c12659 70 case 'n':
iLyngklip 1:e854d5c12659 71 robot.open();
iLyngklip 1:e854d5c12659 72 pc.printf("n");
iLyngklip 1:e854d5c12659 73 break;
iLyngklip 1:e854d5c12659 74
iLyngklip 1:e854d5c12659 75 case 'm':
iLyngklip 1:e854d5c12659 76 robot.close();
iLyngklip 1:e854d5c12659 77 pc.printf("m");
iLyngklip 1:e854d5c12659 78 break;
iLyngklip 1:e854d5c12659 79
iLyngklip 1:e854d5c12659 80 case 'h':
iLyngklip 1:e854d5c12659 81 robot.hejs();
iLyngklip 1:e854d5c12659 82 pc.printf("h");
iLyngklip 1:e854d5c12659 83 break;
iLyngklip 1:e854d5c12659 84
iLyngklip 1:e854d5c12659 85 case 'b':
iLyngklip 1:e854d5c12659 86 robot.saenk();
iLyngklip 1:e854d5c12659 87 pc.printf("b");
iLyngklip 1:e854d5c12659 88 break;
iLyngklip 2:b996c95912b5 89
iLyngklip 2:b996c95912b5 90 case 'p':
iLyngklip 2:b996c95912b5 91 control = 1;
iLyngklip 2:b996c95912b5 92 break;
iLyngklip 2:b996c95912b5 93
iLyngklip 1:e854d5c12659 94
iLyngklip 1:e854d5c12659 95 default :
iLyngklip 1:e854d5c12659 96 robot.stop();
iLyngklip 1:e854d5c12659 97 break;
iLyngklip 1:e854d5c12659 98 }
iLyngklip 1:e854d5c12659 99 }
iLyngklip 2:b996c95912b5 100 }
iLyngklip 2:b996c95912b5 101 {
iLyngklip 2:b996c95912b5 102
iLyngklip 2:b996c95912b5 103
iLyngklip 2:b996c95912b5 104
iLyngklip 2:b996c95912b5 105
iLyngklip 2:b996c95912b5 106
iLyngklip 0:47165eb4e54d 107
iLyngklip 0:47165eb4e54d 108 } // while
iLyngklip 2:b996c95912b5 109
iLyngklip 2:b996c95912b5 110 while(control == 1){
iLyngklip 2:b996c95912b5 111
iLyngklip 2:b996c95912b5 112 L1 = sensor.Distance(CM); // Højre
iLyngklip 2:b996c95912b5 113 L2 = sensor.distance(CM); // Venstre
iLyngklip 2:b996c95912b5 114
iLyngklip 2:b996c95912b5 115 pc.printf("L1: %ld L2: %ld \r\n", L1, L2);
iLyngklip 2:b996c95912b5 116
iLyngklip 2:b996c95912b5 117
iLyngklip 2:b996c95912b5 118 if(L1 >= L2 && L1 > 50){
iLyngklip 2:b996c95912b5 119 robot.venSelv3(); // Højre skarpt
iLyngklip 2:b996c95912b5 120 }
iLyngklip 2:b996c95912b5 121
iLyngklip 2:b996c95912b5 122 if(L2 >= L1 && L2 > 50){
iLyngklip 2:b996c95912b5 123 robot.venSelv4(); // Venstre skarpt
iLyngklip 2:b996c95912b5 124 }
iLyngklip 2:b996c95912b5 125
iLyngklip 2:b996c95912b5 126 if(L1 >= L2){
iLyngklip 2:b996c95912b5 127 robot.venSelv1(); // Højre
iLyngklip 2:b996c95912b5 128 }
iLyngklip 2:b996c95912b5 129
iLyngklip 2:b996c95912b5 130
iLyngklip 2:b996c95912b5 131
iLyngklip 2:b996c95912b5 132 if(L2 > L1){
iLyngklip 2:b996c95912b5 133 robot.venSelv2(); // Venstre
iLyngklip 2:b996c95912b5 134 }
iLyngklip 2:b996c95912b5 135
iLyngklip 2:b996c95912b5 136 if(L1 > 65){
iLyngklip 2:b996c95912b5 137 control = 0;
iLyngklip 2:b996c95912b5 138 }
iLyngklip 2:b996c95912b5 139 }
iLyngklip 2:b996c95912b5 140
iLyngklip 2:b996c95912b5 141
iLyngklip 2:b996c95912b5 142
iLyngklip 2:b996c95912b5 143
iLyngklip 2:b996c95912b5 144
iLyngklip 0:47165eb4e54d 145 } // main
iLyngklip 0:47165eb4e54d 146