Robot Security System
Dependencies: Motordriver SHTx mbed
main.cpp@0:b6d5c2bbe0a8, 2012-10-12 (annotated)
- Committer:
- dmehta39
- Date:
- Fri Oct 12 05:21:40 2012 +0000
- Revision:
- 0:b6d5c2bbe0a8
Robot Security System
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dmehta39 | 0:b6d5c2bbe0a8 | 1 | #include "mbed.h" |
dmehta39 | 0:b6d5c2bbe0a8 | 2 | #include "motordriver.h" |
dmehta39 | 0:b6d5c2bbe0a8 | 3 | //#include "SCP1000.h" |
dmehta39 | 0:b6d5c2bbe0a8 | 4 | #include "TextLCD.h" |
dmehta39 | 0:b6d5c2bbe0a8 | 5 | //#include "sht15.hpp" |
dmehta39 | 0:b6d5c2bbe0a8 | 6 | #include"stdio.h" |
dmehta39 | 0:b6d5c2bbe0a8 | 7 | #include "stdlib.h" |
dmehta39 | 0:b6d5c2bbe0a8 | 8 | #include "SHTx/sht15.hpp" |
dmehta39 | 0:b6d5c2bbe0a8 | 9 | |
dmehta39 | 0:b6d5c2bbe0a8 | 10 | Serial pc(USBTX, USBRX); // tx, rx |
dmehta39 | 0:b6d5c2bbe0a8 | 11 | Serial device(p13, p14); // tx, rx |
dmehta39 | 0:b6d5c2bbe0a8 | 12 | |
dmehta39 | 0:b6d5c2bbe0a8 | 13 | DigitalOut myled3(LED3); |
dmehta39 | 0:b6d5c2bbe0a8 | 14 | DigitalOut myled2(LED2); |
dmehta39 | 0:b6d5c2bbe0a8 | 15 | DigitalOut myled4(LED4); |
dmehta39 | 0:b6d5c2bbe0a8 | 16 | |
dmehta39 | 0:b6d5c2bbe0a8 | 17 | SHTx::SHT15 sensor(p9, p10); |
dmehta39 | 0:b6d5c2bbe0a8 | 18 | float ss=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 19 | Motor left(p21, p22, p23, 1); // pwm, fwd, rev, has brake feature |
dmehta39 | 0:b6d5c2bbe0a8 | 20 | Motor right(p26, p25, p24, 1); |
dmehta39 | 0:b6d5c2bbe0a8 | 21 | float dhaval=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 22 | float jill=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 23 | float g=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 24 | float g1=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 25 | float g2=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 26 | float g3=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 27 | //char buffer[50]; |
dmehta39 | 0:b6d5c2bbe0a8 | 28 | float h=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 29 | float h1=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 30 | float h2=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 31 | float h3=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 32 | TextLCD lcd(p15, p16, p17, p18, p19, p20); |
dmehta39 | 0:b6d5c2bbe0a8 | 33 | char a[300]; |
dmehta39 | 0:b6d5c2bbe0a8 | 34 | int count=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 35 | int s = 0; |
dmehta39 | 0:b6d5c2bbe0a8 | 36 | |
dmehta39 | 0:b6d5c2bbe0a8 | 37 | DigitalOut busy(LED1); |
dmehta39 | 0:b6d5c2bbe0a8 | 38 | |
dmehta39 | 0:b6d5c2bbe0a8 | 39 | |
dmehta39 | 0:b6d5c2bbe0a8 | 40 | |
dmehta39 | 0:b6d5c2bbe0a8 | 41 | |
dmehta39 | 0:b6d5c2bbe0a8 | 42 | |
dmehta39 | 0:b6d5c2bbe0a8 | 43 | |
dmehta39 | 0:b6d5c2bbe0a8 | 44 | |
dmehta39 | 0:b6d5c2bbe0a8 | 45 | |
dmehta39 | 0:b6d5c2bbe0a8 | 46 | |
dmehta39 | 0:b6d5c2bbe0a8 | 47 | |
dmehta39 | 0:b6d5c2bbe0a8 | 48 | |
dmehta39 | 0:b6d5c2bbe0a8 | 49 | |
dmehta39 | 0:b6d5c2bbe0a8 | 50 | |
dmehta39 | 0:b6d5c2bbe0a8 | 51 | int main() |
dmehta39 | 0:b6d5c2bbe0a8 | 52 | { |
dmehta39 | 0:b6d5c2bbe0a8 | 53 | |
dmehta39 | 0:b6d5c2bbe0a8 | 54 | sensor.setOTPReload(false); |
dmehta39 | 0:b6d5c2bbe0a8 | 55 | sensor.setResolution(true); |
dmehta39 | 0:b6d5c2bbe0a8 | 56 | |
dmehta39 | 0:b6d5c2bbe0a8 | 57 | |
dmehta39 | 0:b6d5c2bbe0a8 | 58 | busy = true; |
dmehta39 | 0:b6d5c2bbe0a8 | 59 | sensor.update(); |
dmehta39 | 0:b6d5c2bbe0a8 | 60 | busy = false; |
dmehta39 | 0:b6d5c2bbe0a8 | 61 | |
dmehta39 | 0:b6d5c2bbe0a8 | 62 | sensor.setScale(false); |
dmehta39 | 0:b6d5c2bbe0a8 | 63 | float pp1 = (sensor.getTemperature()-2.0); |
dmehta39 | 0:b6d5c2bbe0a8 | 64 | char halftemp[60]; |
dmehta39 | 0:b6d5c2bbe0a8 | 65 | sprintf(halftemp, "%f", pp1); |
dmehta39 | 0:b6d5c2bbe0a8 | 66 | |
dmehta39 | 0:b6d5c2bbe0a8 | 67 | float pp2 = sensor.getHumidity(); |
dmehta39 | 0:b6d5c2bbe0a8 | 68 | char halftemp2[60]; |
dmehta39 | 0:b6d5c2bbe0a8 | 69 | sprintf(halftemp2, "%f", pp2); |
dmehta39 | 0:b6d5c2bbe0a8 | 70 | |
dmehta39 | 0:b6d5c2bbe0a8 | 71 | |
dmehta39 | 0:b6d5c2bbe0a8 | 72 | |
dmehta39 | 0:b6d5c2bbe0a8 | 73 | |
dmehta39 | 0:b6d5c2bbe0a8 | 74 | |
dmehta39 | 0:b6d5c2bbe0a8 | 75 | do{ |
dmehta39 | 0:b6d5c2bbe0a8 | 76 | while(1) { |
dmehta39 | 0:b6d5c2bbe0a8 | 77 | count = 0; |
dmehta39 | 0:b6d5c2bbe0a8 | 78 | if (device.readable()) { |
dmehta39 | 0:b6d5c2bbe0a8 | 79 | do { |
dmehta39 | 0:b6d5c2bbe0a8 | 80 | s=device.getc(); |
dmehta39 | 0:b6d5c2bbe0a8 | 81 | a[count]=s; |
dmehta39 | 0:b6d5c2bbe0a8 | 82 | |
dmehta39 | 0:b6d5c2bbe0a8 | 83 | count++; |
dmehta39 | 0:b6d5c2bbe0a8 | 84 | } while(s != '\r'); |
dmehta39 | 0:b6d5c2bbe0a8 | 85 | |
dmehta39 | 0:b6d5c2bbe0a8 | 86 | if(a[6]=='9' && a[7]=='0' && a[8]=='2' && a[9]=='8' && a[10]=='7' && a[11]=='8' && a[12]=='0' && a[13]=='7' && a[14]=='2' ) |
dmehta39 | 0:b6d5c2bbe0a8 | 87 | { |
dmehta39 | 0:b6d5c2bbe0a8 | 88 | lcd.cls(); |
dmehta39 | 0:b6d5c2bbe0a8 | 89 | lcd.printf("Temperature in C: %s\n", halftemp); |
dmehta39 | 0:b6d5c2bbe0a8 | 90 | |
dmehta39 | 0:b6d5c2bbe0a8 | 91 | myled3=!myled3; |
dmehta39 | 0:b6d5c2bbe0a8 | 92 | |
dmehta39 | 0:b6d5c2bbe0a8 | 93 | h1=0;h2=0;h3=0;g1=0;g2=0;g3=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 94 | while (1) { |
dmehta39 | 0:b6d5c2bbe0a8 | 95 | |
dmehta39 | 0:b6d5c2bbe0a8 | 96 | if(g1==0) { |
dmehta39 | 0:b6d5c2bbe0a8 | 97 | |
dmehta39 | 0:b6d5c2bbe0a8 | 98 | |
dmehta39 | 0:b6d5c2bbe0a8 | 99 | // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0) |
dmehta39 | 0:b6d5c2bbe0a8 | 100 | |
dmehta39 | 0:b6d5c2bbe0a8 | 101 | left.speed(0.4); |
dmehta39 | 0:b6d5c2bbe0a8 | 102 | |
dmehta39 | 0:b6d5c2bbe0a8 | 103 | right.speed(0.8); |
dmehta39 | 0:b6d5c2bbe0a8 | 104 | |
dmehta39 | 0:b6d5c2bbe0a8 | 105 | wait(0.5); |
dmehta39 | 0:b6d5c2bbe0a8 | 106 | // Turn off motors - coast one and brake one |
dmehta39 | 0:b6d5c2bbe0a8 | 107 | |
dmehta39 | 0:b6d5c2bbe0a8 | 108 | right.speed(0); //////for turning right...... |
dmehta39 | 0:b6d5c2bbe0a8 | 109 | left.speed(0); ////for turning left |
dmehta39 | 0:b6d5c2bbe0a8 | 110 | ++g1; |
dmehta39 | 0:b6d5c2bbe0a8 | 111 | |
dmehta39 | 0:b6d5c2bbe0a8 | 112 | wait(1); |
dmehta39 | 0:b6d5c2bbe0a8 | 113 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 114 | |
dmehta39 | 0:b6d5c2bbe0a8 | 115 | if(g2==0 ) { |
dmehta39 | 0:b6d5c2bbe0a8 | 116 | |
dmehta39 | 0:b6d5c2bbe0a8 | 117 | |
dmehta39 | 0:b6d5c2bbe0a8 | 118 | // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0) |
dmehta39 | 0:b6d5c2bbe0a8 | 119 | |
dmehta39 | 0:b6d5c2bbe0a8 | 120 | left.speed(0.2); |
dmehta39 | 0:b6d5c2bbe0a8 | 121 | |
dmehta39 | 0:b6d5c2bbe0a8 | 122 | |
dmehta39 | 0:b6d5c2bbe0a8 | 123 | right.speed(0); |
dmehta39 | 0:b6d5c2bbe0a8 | 124 | |
dmehta39 | 0:b6d5c2bbe0a8 | 125 | wait(1); |
dmehta39 | 0:b6d5c2bbe0a8 | 126 | // Turn off motors - coast one and brake one |
dmehta39 | 0:b6d5c2bbe0a8 | 127 | |
dmehta39 | 0:b6d5c2bbe0a8 | 128 | |
dmehta39 | 0:b6d5c2bbe0a8 | 129 | left.stop(0); ////for turning left |
dmehta39 | 0:b6d5c2bbe0a8 | 130 | ++g2; |
dmehta39 | 0:b6d5c2bbe0a8 | 131 | |
dmehta39 | 0:b6d5c2bbe0a8 | 132 | wait(1); |
dmehta39 | 0:b6d5c2bbe0a8 | 133 | |
dmehta39 | 0:b6d5c2bbe0a8 | 134 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 135 | |
dmehta39 | 0:b6d5c2bbe0a8 | 136 | |
dmehta39 | 0:b6d5c2bbe0a8 | 137 | if(g3==0) { |
dmehta39 | 0:b6d5c2bbe0a8 | 138 | |
dmehta39 | 0:b6d5c2bbe0a8 | 139 | // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0) |
dmehta39 | 0:b6d5c2bbe0a8 | 140 | |
dmehta39 | 0:b6d5c2bbe0a8 | 141 | left.speed(0.4); |
dmehta39 | 0:b6d5c2bbe0a8 | 142 | |
dmehta39 | 0:b6d5c2bbe0a8 | 143 | |
dmehta39 | 0:b6d5c2bbe0a8 | 144 | right.speed(0.8); |
dmehta39 | 0:b6d5c2bbe0a8 | 145 | |
dmehta39 | 0:b6d5c2bbe0a8 | 146 | wait(0.5); |
dmehta39 | 0:b6d5c2bbe0a8 | 147 | // Turn off motors - coast one and brake one |
dmehta39 | 0:b6d5c2bbe0a8 | 148 | |
dmehta39 | 0:b6d5c2bbe0a8 | 149 | right.speed(0); //////for turning right...... |
dmehta39 | 0:b6d5c2bbe0a8 | 150 | left.speed(0); ////for turning left |
dmehta39 | 0:b6d5c2bbe0a8 | 151 | ++g3; |
dmehta39 | 0:b6d5c2bbe0a8 | 152 | |
dmehta39 | 0:b6d5c2bbe0a8 | 153 | ++jill; |
dmehta39 | 0:b6d5c2bbe0a8 | 154 | wait(1); |
dmehta39 | 0:b6d5c2bbe0a8 | 155 | |
dmehta39 | 0:b6d5c2bbe0a8 | 156 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 157 | if(jill==1) |
dmehta39 | 0:b6d5c2bbe0a8 | 158 | break; |
dmehta39 | 0:b6d5c2bbe0a8 | 159 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 160 | |
dmehta39 | 0:b6d5c2bbe0a8 | 161 | |
dmehta39 | 0:b6d5c2bbe0a8 | 162 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 163 | |
dmehta39 | 0:b6d5c2bbe0a8 | 164 | /////////////// TESTING SECOND CARD...F0RWARD THEN RIGHT TURN TERN BACK |
dmehta39 | 0:b6d5c2bbe0a8 | 165 | |
dmehta39 | 0:b6d5c2bbe0a8 | 166 | if(a[6]=='9' && a[7]=='0' && a[8]=='2' && a[9]=='9' && a[10]=='1' && a[11]=='1' && a[12]=='2' && a[13]=='5' && a[14]=='0' ) |
dmehta39 | 0:b6d5c2bbe0a8 | 167 | { |
dmehta39 | 0:b6d5c2bbe0a8 | 168 | |
dmehta39 | 0:b6d5c2bbe0a8 | 169 | lcd.cls(); |
dmehta39 | 0:b6d5c2bbe0a8 | 170 | lcd.printf("Humidity is\n: %s %%\n", halftemp2); |
dmehta39 | 0:b6d5c2bbe0a8 | 171 | |
dmehta39 | 0:b6d5c2bbe0a8 | 172 | |
dmehta39 | 0:b6d5c2bbe0a8 | 173 | |
dmehta39 | 0:b6d5c2bbe0a8 | 174 | myled2=!myled2; |
dmehta39 | 0:b6d5c2bbe0a8 | 175 | myled4=!myled4; |
dmehta39 | 0:b6d5c2bbe0a8 | 176 | g1=0;g2=0;g3=0; h1=0;h2=0;h3=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 177 | |
dmehta39 | 0:b6d5c2bbe0a8 | 178 | while (1) { |
dmehta39 | 0:b6d5c2bbe0a8 | 179 | |
dmehta39 | 0:b6d5c2bbe0a8 | 180 | if(h1==0 ) { |
dmehta39 | 0:b6d5c2bbe0a8 | 181 | |
dmehta39 | 0:b6d5c2bbe0a8 | 182 | |
dmehta39 | 0:b6d5c2bbe0a8 | 183 | // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0) |
dmehta39 | 0:b6d5c2bbe0a8 | 184 | |
dmehta39 | 0:b6d5c2bbe0a8 | 185 | left.speed(0.4); |
dmehta39 | 0:b6d5c2bbe0a8 | 186 | |
dmehta39 | 0:b6d5c2bbe0a8 | 187 | right.speed(0.8); |
dmehta39 | 0:b6d5c2bbe0a8 | 188 | |
dmehta39 | 0:b6d5c2bbe0a8 | 189 | wait(0.5); |
dmehta39 | 0:b6d5c2bbe0a8 | 190 | // Turn off motors - coast one and brake one |
dmehta39 | 0:b6d5c2bbe0a8 | 191 | |
dmehta39 | 0:b6d5c2bbe0a8 | 192 | right.speed(0); //////for turning right...... |
dmehta39 | 0:b6d5c2bbe0a8 | 193 | left.speed(0); ////for turning left |
dmehta39 | 0:b6d5c2bbe0a8 | 194 | ++h1; |
dmehta39 | 0:b6d5c2bbe0a8 | 195 | g1=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 196 | |
dmehta39 | 0:b6d5c2bbe0a8 | 197 | wait(1); |
dmehta39 | 0:b6d5c2bbe0a8 | 198 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 199 | |
dmehta39 | 0:b6d5c2bbe0a8 | 200 | if(h2==0 ) { |
dmehta39 | 0:b6d5c2bbe0a8 | 201 | |
dmehta39 | 0:b6d5c2bbe0a8 | 202 | |
dmehta39 | 0:b6d5c2bbe0a8 | 203 | // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0) |
dmehta39 | 0:b6d5c2bbe0a8 | 204 | |
dmehta39 | 0:b6d5c2bbe0a8 | 205 | right.speed(0.2); |
dmehta39 | 0:b6d5c2bbe0a8 | 206 | |
dmehta39 | 0:b6d5c2bbe0a8 | 207 | left.speed(0); |
dmehta39 | 0:b6d5c2bbe0a8 | 208 | wait(1); |
dmehta39 | 0:b6d5c2bbe0a8 | 209 | // Turn off motors - coast one and brake one |
dmehta39 | 0:b6d5c2bbe0a8 | 210 | |
dmehta39 | 0:b6d5c2bbe0a8 | 211 | right.stop(0); //////for turning right...... |
dmehta39 | 0:b6d5c2bbe0a8 | 212 | //left.stop(0); ////for turning left |
dmehta39 | 0:b6d5c2bbe0a8 | 213 | ++h2; |
dmehta39 | 0:b6d5c2bbe0a8 | 214 | g2=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 215 | |
dmehta39 | 0:b6d5c2bbe0a8 | 216 | wait(1); |
dmehta39 | 0:b6d5c2bbe0a8 | 217 | |
dmehta39 | 0:b6d5c2bbe0a8 | 218 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 219 | |
dmehta39 | 0:b6d5c2bbe0a8 | 220 | |
dmehta39 | 0:b6d5c2bbe0a8 | 221 | if(h3==0) { |
dmehta39 | 0:b6d5c2bbe0a8 | 222 | //myled=1; |
dmehta39 | 0:b6d5c2bbe0a8 | 223 | // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0) |
dmehta39 | 0:b6d5c2bbe0a8 | 224 | |
dmehta39 | 0:b6d5c2bbe0a8 | 225 | left.speed(0.4); |
dmehta39 | 0:b6d5c2bbe0a8 | 226 | |
dmehta39 | 0:b6d5c2bbe0a8 | 227 | |
dmehta39 | 0:b6d5c2bbe0a8 | 228 | |
dmehta39 | 0:b6d5c2bbe0a8 | 229 | |
dmehta39 | 0:b6d5c2bbe0a8 | 230 | wait(0.5); |
dmehta39 | 0:b6d5c2bbe0a8 | 231 | // Turn off motors - coast one and brake one |
dmehta39 | 0:b6d5c2bbe0a8 | 232 | |
dmehta39 | 0:b6d5c2bbe0a8 | 233 | right.speed(0); //////for turning right...... |
dmehta39 | 0:b6d5c2bbe0a8 | 234 | left.speed(0); ////for turning left |
dmehta39 | 0:b6d5c2bbe0a8 | 235 | ++h3; |
dmehta39 | 0:b6d5c2bbe0a8 | 236 | g3=0; |
dmehta39 | 0:b6d5c2bbe0a8 | 237 | |
dmehta39 | 0:b6d5c2bbe0a8 | 238 | ++dhaval; |
dmehta39 | 0:b6d5c2bbe0a8 | 239 | wait(1); |
dmehta39 | 0:b6d5c2bbe0a8 | 240 | |
dmehta39 | 0:b6d5c2bbe0a8 | 241 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 242 | |
dmehta39 | 0:b6d5c2bbe0a8 | 243 | if(dhaval==1) |
dmehta39 | 0:b6d5c2bbe0a8 | 244 | break; |
dmehta39 | 0:b6d5c2bbe0a8 | 245 | |
dmehta39 | 0:b6d5c2bbe0a8 | 246 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 247 | |
dmehta39 | 0:b6d5c2bbe0a8 | 248 | |
dmehta39 | 0:b6d5c2bbe0a8 | 249 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 250 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 251 | |
dmehta39 | 0:b6d5c2bbe0a8 | 252 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 253 | |
dmehta39 | 0:b6d5c2bbe0a8 | 254 | } while(ss==0); |
dmehta39 | 0:b6d5c2bbe0a8 | 255 | } |
dmehta39 | 0:b6d5c2bbe0a8 | 256 | |
dmehta39 | 0:b6d5c2bbe0a8 | 257 | |
dmehta39 | 0:b6d5c2bbe0a8 | 258 | |
dmehta39 | 0:b6d5c2bbe0a8 | 259 |