Dependencies:   mbed

Committer:
JST2011
Date:
Thu Feb 16 10:13:24 2012 +0000
Revision:
0:4c4bcf3cc019

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JST2011 0:4c4bcf3cc019 1 /*cutting system by timer*/
JST2011 0:4c4bcf3cc019 2 /*
JST2011 0:4c4bcf3cc019 3 #include "mbed.h"
JST2011 0:4c4bcf3cc019 4
JST2011 0:4c4bcf3cc019 5 Ticker timer;
JST2011 0:4c4bcf3cc019 6
JST2011 0:4c4bcf3cc019 7 unsigned int globaltime; // msec
JST2011 0:4c4bcf3cc019 8
JST2011 0:4c4bcf3cc019 9 void timer_func()
JST2011 0:4c4bcf3cc019 10 {
JST2011 0:4c4bcf3cc019 11 globaltime +=1;
JST2011 0:4c4bcf3cc019 12 }
JST2011 0:4c4bcf3cc019 13
JST2011 0:4c4bcf3cc019 14 DigitalOut nicrom(p21);
JST2011 0:4c4bcf3cc019 15
JST2011 0:4c4bcf3cc019 16
JST2011 0:4c4bcf3cc019 17 int main()
JST2011 0:4c4bcf3cc019 18 {
JST2011 0:4c4bcf3cc019 19 timer.attach(&timer_func,0.001);
JST2011 0:4c4bcf3cc019 20
JST2011 0:4c4bcf3cc019 21 while(1)
JST2011 0:4c4bcf3cc019 22 {
JST2011 0:4c4bcf3cc019 23 if(globaltime < 20000)
JST2011 0:4c4bcf3cc019 24 {
JST2011 0:4c4bcf3cc019 25 nicrom = 0;
JST2011 0:4c4bcf3cc019 26 wait(0.025);
JST2011 0:4c4bcf3cc019 27 }
JST2011 0:4c4bcf3cc019 28
JST2011 0:4c4bcf3cc019 29 else if(globaltime > 20000)
JST2011 0:4c4bcf3cc019 30 {
JST2011 0:4c4bcf3cc019 31 nicrom = 1;
JST2011 0:4c4bcf3cc019 32 wait(0.025);
JST2011 0:4c4bcf3cc019 33 }
JST2011 0:4c4bcf3cc019 34
JST2011 0:4c4bcf3cc019 35 }
JST2011 0:4c4bcf3cc019 36 }
JST2011 0:4c4bcf3cc019 37 */
JST2011 0:4c4bcf3cc019 38
JST2011 0:4c4bcf3cc019 39
JST2011 0:4c4bcf3cc019 40 /*cutting system by accel part1*/
JST2011 0:4c4bcf3cc019 41 /*#include "mbed.h"
JST2011 0:4c4bcf3cc019 42
JST2011 0:4c4bcf3cc019 43 #define delta 0.2
JST2011 0:4c4bcf3cc019 44
JST2011 0:4c4bcf3cc019 45 AnalogIn xin(p20);
JST2011 0:4c4bcf3cc019 46 AnalogIn yin(p19);
JST2011 0:4c4bcf3cc019 47 AnalogIn zin(p18);
JST2011 0:4c4bcf3cc019 48
JST2011 0:4c4bcf3cc019 49 DigitalOut nicrom(p21);
JST2011 0:4c4bcf3cc019 50
JST2011 0:4c4bcf3cc019 51 Serial pc(USBTX, USBRX);
JST2011 0:4c4bcf3cc019 52
JST2011 0:4c4bcf3cc019 53 int d;
JST2011 0:4c4bcf3cc019 54
JST2011 0:4c4bcf3cc019 55 float xx ;
JST2011 0:4c4bcf3cc019 56 float yy ;
JST2011 0:4c4bcf3cc019 57 float zz ;
JST2011 0:4c4bcf3cc019 58
JST2011 0:4c4bcf3cc019 59 float xg[2];
JST2011 0:4c4bcf3cc019 60 float zg[2];
JST2011 0:4c4bcf3cc019 61 float yg[2];
JST2011 0:4c4bcf3cc019 62
JST2011 0:4c4bcf3cc019 63 int accelerometer();
JST2011 0:4c4bcf3cc019 64
JST2011 0:4c4bcf3cc019 65 int main()
JST2011 0:4c4bcf3cc019 66 {
JST2011 0:4c4bcf3cc019 67
JST2011 0:4c4bcf3cc019 68
JST2011 0:4c4bcf3cc019 69 while(1)
JST2011 0:4c4bcf3cc019 70 {
JST2011 0:4c4bcf3cc019 71 d = accelerometer();
JST2011 0:4c4bcf3cc019 72 if(d == 0)
JST2011 0:4c4bcf3cc019 73 {
JST2011 0:4c4bcf3cc019 74 nicrom = 0;
JST2011 0:4c4bcf3cc019 75 wait(0.025);
JST2011 0:4c4bcf3cc019 76 }
JST2011 0:4c4bcf3cc019 77
JST2011 0:4c4bcf3cc019 78 else if(d == 1)
JST2011 0:4c4bcf3cc019 79 {
JST2011 0:4c4bcf3cc019 80 nicrom = 1;
JST2011 0:4c4bcf3cc019 81 wait(0.025);
JST2011 0:4c4bcf3cc019 82 }
JST2011 0:4c4bcf3cc019 83 pc.printf("%d\n",d);
JST2011 0:4c4bcf3cc019 84 wait(1);
JST2011 0:4c4bcf3cc019 85 }
JST2011 0:4c4bcf3cc019 86 }
JST2011 0:4c4bcf3cc019 87
JST2011 0:4c4bcf3cc019 88 int accelerometer()
JST2011 0:4c4bcf3cc019 89 {
JST2011 0:4c4bcf3cc019 90 xg[0] = xg[1];
JST2011 0:4c4bcf3cc019 91 yg[0] = yg[1];
JST2011 0:4c4bcf3cc019 92 zg[0] = zg[1];
JST2011 0:4c4bcf3cc019 93
JST2011 0:4c4bcf3cc019 94 xg[1] = (xin.read() - 0.5 ) * 1.5/0.5 ;
JST2011 0:4c4bcf3cc019 95 yg[1] = (yin.read() - 0.5 ) * 1.5/0.5 ;
JST2011 0:4c4bcf3cc019 96 zg[1] = (zin.read() - 0.5 ) * 1.0/0.18 ;
JST2011 0:4c4bcf3cc019 97
JST2011 0:4c4bcf3cc019 98 xx = fabs(xg[1] - xg[0]);
JST2011 0:4c4bcf3cc019 99 yy = fabs(yg[1] - yg[0]);
JST2011 0:4c4bcf3cc019 100 zz = fabs(zg[1] - zg[0]);
JST2011 0:4c4bcf3cc019 101
JST2011 0:4c4bcf3cc019 102 if(xx >= delta || yy >= delta || zz >= delta)
JST2011 0:4c4bcf3cc019 103 {
JST2011 0:4c4bcf3cc019 104 d = 0;
JST2011 0:4c4bcf3cc019 105 }
JST2011 0:4c4bcf3cc019 106 else
JST2011 0:4c4bcf3cc019 107 {
JST2011 0:4c4bcf3cc019 108 d = 1;
JST2011 0:4c4bcf3cc019 109 }
JST2011 0:4c4bcf3cc019 110 return d;
JST2011 0:4c4bcf3cc019 111 }
JST2011 0:4c4bcf3cc019 112 */
JST2011 0:4c4bcf3cc019 113
JST2011 0:4c4bcf3cc019 114 /*cutting system by accel part2*/
JST2011 0:4c4bcf3cc019 115 /*#include "mbed.h"
JST2011 0:4c4bcf3cc019 116
JST2011 0:4c4bcf3cc019 117 #define delta 0.2
JST2011 0:4c4bcf3cc019 118
JST2011 0:4c4bcf3cc019 119 AnalogIn xin(p20);
JST2011 0:4c4bcf3cc019 120 AnalogIn yin(p19);
JST2011 0:4c4bcf3cc019 121 AnalogIn zin(p18);
JST2011 0:4c4bcf3cc019 122
JST2011 0:4c4bcf3cc019 123 DigitalOut nicrom(p21);
JST2011 0:4c4bcf3cc019 124
JST2011 0:4c4bcf3cc019 125 Serial pc(USBTX, USBRX);
JST2011 0:4c4bcf3cc019 126
JST2011 0:4c4bcf3cc019 127 int d;
JST2011 0:4c4bcf3cc019 128 int t, s;
JST2011 0:4c4bcf3cc019 129
JST2011 0:4c4bcf3cc019 130 float xx ;
JST2011 0:4c4bcf3cc019 131 float yy ;
JST2011 0:4c4bcf3cc019 132 float zz ;
JST2011 0:4c4bcf3cc019 133
JST2011 0:4c4bcf3cc019 134 float xg[2];
JST2011 0:4c4bcf3cc019 135 float zg[2];
JST2011 0:4c4bcf3cc019 136 float yg[2];
JST2011 0:4c4bcf3cc019 137
JST2011 0:4c4bcf3cc019 138 int accelerometer();
JST2011 0:4c4bcf3cc019 139
JST2011 0:4c4bcf3cc019 140 int main()
JST2011 0:4c4bcf3cc019 141 {
JST2011 0:4c4bcf3cc019 142
JST2011 0:4c4bcf3cc019 143
JST2011 0:4c4bcf3cc019 144 while(1)
JST2011 0:4c4bcf3cc019 145 {
JST2011 0:4c4bcf3cc019 146 d = accelerometer();
JST2011 0:4c4bcf3cc019 147 if(d == 0)
JST2011 0:4c4bcf3cc019 148 {
JST2011 0:4c4bcf3cc019 149 t = 0;
JST2011 0:4c4bcf3cc019 150 }
JST2011 0:4c4bcf3cc019 151
JST2011 0:4c4bcf3cc019 152 else if(d == 1)
JST2011 0:4c4bcf3cc019 153 {
JST2011 0:4c4bcf3cc019 154 t = t + 1;
JST2011 0:4c4bcf3cc019 155 }
JST2011 0:4c4bcf3cc019 156 pc.printf("%d\n",d);
JST2011 0:4c4bcf3cc019 157 wait(1);
JST2011 0:4c4bcf3cc019 158
JST2011 0:4c4bcf3cc019 159 if( t > 10)break;
JST2011 0:4c4bcf3cc019 160 }
JST2011 0:4c4bcf3cc019 161 //heat the nicrom for 10sec
JST2011 0:4c4bcf3cc019 162 while(1)
JST2011 0:4c4bcf3cc019 163 {
JST2011 0:4c4bcf3cc019 164 nicrom = 1;
JST2011 0:4c4bcf3cc019 165 s = s + 1;
JST2011 0:4c4bcf3cc019 166 if( s > 10)break;
JST2011 0:4c4bcf3cc019 167 }
JST2011 0:4c4bcf3cc019 168
JST2011 0:4c4bcf3cc019 169 wait(0.25);
JST2011 0:4c4bcf3cc019 170 }
JST2011 0:4c4bcf3cc019 171
JST2011 0:4c4bcf3cc019 172 int accelerometer()
JST2011 0:4c4bcf3cc019 173 {
JST2011 0:4c4bcf3cc019 174 xg[0] = xg[1];
JST2011 0:4c4bcf3cc019 175 yg[0] = yg[1];
JST2011 0:4c4bcf3cc019 176 zg[0] = zg[1];
JST2011 0:4c4bcf3cc019 177
JST2011 0:4c4bcf3cc019 178 xg[1] = (xin.read() - 0.5 ) * 1.5/0.5 ;
JST2011 0:4c4bcf3cc019 179 yg[1] = (yin.read() - 0.5 ) * 1.5/0.5 ;
JST2011 0:4c4bcf3cc019 180 zg[1] = (zin.read() - 0.5 ) * 1.0/0.18 ;
JST2011 0:4c4bcf3cc019 181
JST2011 0:4c4bcf3cc019 182 xx = fabs(xg[1] - xg[0]);
JST2011 0:4c4bcf3cc019 183 yy = fabs(yg[1] - yg[0]);
JST2011 0:4c4bcf3cc019 184 zz = fabs(zg[1] - zg[0]);
JST2011 0:4c4bcf3cc019 185
JST2011 0:4c4bcf3cc019 186 if(xx >= delta || yy >= delta || zz >= delta)
JST2011 0:4c4bcf3cc019 187 {
JST2011 0:4c4bcf3cc019 188 d = 0;
JST2011 0:4c4bcf3cc019 189 }
JST2011 0:4c4bcf3cc019 190 else
JST2011 0:4c4bcf3cc019 191 {
JST2011 0:4c4bcf3cc019 192 d = 1;
JST2011 0:4c4bcf3cc019 193 }
JST2011 0:4c4bcf3cc019 194 return d;
JST2011 0:4c4bcf3cc019 195 }
JST2011 0:4c4bcf3cc019 196 */
JST2011 0:4c4bcf3cc019 197
JST2011 0:4c4bcf3cc019 198
JST2011 0:4c4bcf3cc019 199 /*cutting system by gps and accel*/
JST2011 0:4c4bcf3cc019 200 #include "mbed.h"
JST2011 0:4c4bcf3cc019 201 #include "GPS.h"
JST2011 0:4c4bcf3cc019 202
JST2011 0:4c4bcf3cc019 203 Serial pc(USBTX, USBRX);
JST2011 0:4c4bcf3cc019 204 GPS gps(p9, p10);
JST2011 0:4c4bcf3cc019 205
JST2011 0:4c4bcf3cc019 206
JST2011 0:4c4bcf3cc019 207 #define delta 0.2
JST2011 0:4c4bcf3cc019 208
JST2011 0:4c4bcf3cc019 209 AnalogIn xin(p20);
JST2011 0:4c4bcf3cc019 210 AnalogIn yin(p19);
JST2011 0:4c4bcf3cc019 211 AnalogIn zin(p18);
JST2011 0:4c4bcf3cc019 212
JST2011 0:4c4bcf3cc019 213 DigitalOut nicrom(p21);
JST2011 0:4c4bcf3cc019 214
JST2011 0:4c4bcf3cc019 215 int d, e;
JST2011 0:4c4bcf3cc019 216 int t, s;
JST2011 0:4c4bcf3cc019 217
JST2011 0:4c4bcf3cc019 218 float xx ;
JST2011 0:4c4bcf3cc019 219 float yy ;
JST2011 0:4c4bcf3cc019 220 float zz ;
JST2011 0:4c4bcf3cc019 221
JST2011 0:4c4bcf3cc019 222 float xg[2];
JST2011 0:4c4bcf3cc019 223 float zg[2];
JST2011 0:4c4bcf3cc019 224 float yg[2];
JST2011 0:4c4bcf3cc019 225
JST2011 0:4c4bcf3cc019 226 float gpxx ;
JST2011 0:4c4bcf3cc019 227 float gpyy ;
JST2011 0:4c4bcf3cc019 228 float gpzz ;
JST2011 0:4c4bcf3cc019 229
JST2011 0:4c4bcf3cc019 230 float gpxg[2];
JST2011 0:4c4bcf3cc019 231 float gpzg[2];
JST2011 0:4c4bcf3cc019 232 float gpyg[2];
JST2011 0:4c4bcf3cc019 233
JST2011 0:4c4bcf3cc019 234
JST2011 0:4c4bcf3cc019 235 int accelerometer();
JST2011 0:4c4bcf3cc019 236 int latandlon();
JST2011 0:4c4bcf3cc019 237
JST2011 0:4c4bcf3cc019 238 int main()
JST2011 0:4c4bcf3cc019 239 {
JST2011 0:4c4bcf3cc019 240 while(1)
JST2011 0:4c4bcf3cc019 241 {
JST2011 0:4c4bcf3cc019 242 d = accelerometer();
JST2011 0:4c4bcf3cc019 243 e = latandlon();
JST2011 0:4c4bcf3cc019 244
JST2011 0:4c4bcf3cc019 245 if(d == 0 || e == 0)
JST2011 0:4c4bcf3cc019 246 {
JST2011 0:4c4bcf3cc019 247 t = 0;
JST2011 0:4c4bcf3cc019 248 }
JST2011 0:4c4bcf3cc019 249
JST2011 0:4c4bcf3cc019 250 else if(d == 1 && e ==1 )
JST2011 0:4c4bcf3cc019 251 {
JST2011 0:4c4bcf3cc019 252 t = t + 1;
JST2011 0:4c4bcf3cc019 253 }
JST2011 0:4c4bcf3cc019 254 pc.printf("%d,%d\n",d,e);
JST2011 0:4c4bcf3cc019 255 wait(1);
JST2011 0:4c4bcf3cc019 256
JST2011 0:4c4bcf3cc019 257 if( t > 10)break;
JST2011 0:4c4bcf3cc019 258 }
JST2011 0:4c4bcf3cc019 259 //heat the nicrom for 10sec
JST2011 0:4c4bcf3cc019 260 while(1)
JST2011 0:4c4bcf3cc019 261 {
JST2011 0:4c4bcf3cc019 262 nicrom = 1;
JST2011 0:4c4bcf3cc019 263 s = s + 1;
JST2011 0:4c4bcf3cc019 264 if( s > 10)break;
JST2011 0:4c4bcf3cc019 265 }
JST2011 0:4c4bcf3cc019 266 wait(0.25);
JST2011 0:4c4bcf3cc019 267 }
JST2011 0:4c4bcf3cc019 268
JST2011 0:4c4bcf3cc019 269
JST2011 0:4c4bcf3cc019 270 int latandlon()
JST2011 0:4c4bcf3cc019 271 {
JST2011 0:4c4bcf3cc019 272 while(1)
JST2011 0:4c4bcf3cc019 273 {
JST2011 0:4c4bcf3cc019 274 if(gps.sample())
JST2011 0:4c4bcf3cc019 275 {
JST2011 0:4c4bcf3cc019 276 pc.printf("I'm at %f, %f, %f\n", gps.longitude, gps.latitude, gps.altitude);
JST2011 0:4c4bcf3cc019 277
JST2011 0:4c4bcf3cc019 278 gpxg[0] = gpxg[1];
JST2011 0:4c4bcf3cc019 279 gpyg[0] = gpyg[1];
JST2011 0:4c4bcf3cc019 280 gpzg[0] = gpzg[1];
JST2011 0:4c4bcf3cc019 281
JST2011 0:4c4bcf3cc019 282 gpxg[1] = gps.longitude;
JST2011 0:4c4bcf3cc019 283 gpyg[1] = gps.latitude;
JST2011 0:4c4bcf3cc019 284 gpzg[1] = gps.altitude;
JST2011 0:4c4bcf3cc019 285
JST2011 0:4c4bcf3cc019 286 xx = fabs(gpxg[1] - gpxg[0]);
JST2011 0:4c4bcf3cc019 287 yy = fabs(gpyg[1] - gpyg[0]);
JST2011 0:4c4bcf3cc019 288 zz = fabs(gpzg[1] - gpzg[0]);
JST2011 0:4c4bcf3cc019 289
JST2011 0:4c4bcf3cc019 290 if(gpxx >= delta || gpyy >= delta || gpzz >= delta)
JST2011 0:4c4bcf3cc019 291 {
JST2011 0:4c4bcf3cc019 292 e = 0;
JST2011 0:4c4bcf3cc019 293 }
JST2011 0:4c4bcf3cc019 294 else
JST2011 0:4c4bcf3cc019 295 {
JST2011 0:4c4bcf3cc019 296 e = 1;
JST2011 0:4c4bcf3cc019 297 }
JST2011 0:4c4bcf3cc019 298 return e;
JST2011 0:4c4bcf3cc019 299 }
JST2011 0:4c4bcf3cc019 300 }
JST2011 0:4c4bcf3cc019 301 }
JST2011 0:4c4bcf3cc019 302
JST2011 0:4c4bcf3cc019 303
JST2011 0:4c4bcf3cc019 304 int accelerometer()
JST2011 0:4c4bcf3cc019 305 {
JST2011 0:4c4bcf3cc019 306 xg[0] = xg[1];
JST2011 0:4c4bcf3cc019 307 yg[0] = yg[1];
JST2011 0:4c4bcf3cc019 308 zg[0] = zg[1];
JST2011 0:4c4bcf3cc019 309
JST2011 0:4c4bcf3cc019 310 xg[1] = (xin.read() - 0.5 ) * 1.5/0.5 ;
JST2011 0:4c4bcf3cc019 311 yg[1] = (yin.read() - 0.5 ) * 1.5/0.5 ;
JST2011 0:4c4bcf3cc019 312 zg[1] = (zin.read() - 0.5 ) * 1.0/0.18 ;
JST2011 0:4c4bcf3cc019 313
JST2011 0:4c4bcf3cc019 314 xx = fabs(xg[1] - xg[0]);
JST2011 0:4c4bcf3cc019 315 yy = fabs(yg[1] - yg[0]);
JST2011 0:4c4bcf3cc019 316 zz = fabs(zg[1] - zg[0]);
JST2011 0:4c4bcf3cc019 317
JST2011 0:4c4bcf3cc019 318 if(xx >= delta || yy >= delta || zz >= delta)
JST2011 0:4c4bcf3cc019 319 {
JST2011 0:4c4bcf3cc019 320 d = 0;
JST2011 0:4c4bcf3cc019 321 }
JST2011 0:4c4bcf3cc019 322 else
JST2011 0:4c4bcf3cc019 323 {
JST2011 0:4c4bcf3cc019 324 d = 1;
JST2011 0:4c4bcf3cc019 325 }
JST2011 0:4c4bcf3cc019 326 return d;
JST2011 0:4c4bcf3cc019 327 }
JST2011 0:4c4bcf3cc019 328
JST2011 0:4c4bcf3cc019 329
JST2011 0:4c4bcf3cc019 330
JST2011 0:4c4bcf3cc019 331
JST2011 0:4c4bcf3cc019 332
JST2011 0:4c4bcf3cc019 333
JST2011 0:4c4bcf3cc019 334
JST2011 0:4c4bcf3cc019 335
JST2011 0:4c4bcf3cc019 336
JST2011 0:4c4bcf3cc019 337 /*
JST2011 0:4c4bcf3cc019 338 #include "mbed.h"
JST2011 0:4c4bcf3cc019 339
JST2011 0:4c4bcf3cc019 340 DigitalOut nicrom(p21);
JST2011 0:4c4bcf3cc019 341
JST2011 0:4c4bcf3cc019 342 int main() {
JST2011 0:4c4bcf3cc019 343 while(1)
JST2011 0:4c4bcf3cc019 344 {
JST2011 0:4c4bcf3cc019 345 nicrom = 1;
JST2011 0:4c4bcf3cc019 346 wait(1);
JST2011 0:4c4bcf3cc019 347 nicrom = 0;
JST2011 0:4c4bcf3cc019 348 wait(1);
JST2011 0:4c4bcf3cc019 349 }
JST2011 0:4c4bcf3cc019 350 }
JST2011 0:4c4bcf3cc019 351
JST2011 0:4c4bcf3cc019 352 */
JST2011 0:4c4bcf3cc019 353
JST2011 0:4c4bcf3cc019 354
JST2011 0:4c4bcf3cc019 355
JST2011 0:4c4bcf3cc019 356 /*
JST2011 0:4c4bcf3cc019 357
JST2011 0:4c4bcf3cc019 358 #include "mbed.h"
JST2011 0:4c4bcf3cc019 359
JST2011 0:4c4bcf3cc019 360 Ticker timer; //please copy me
JST2011 0:4c4bcf3cc019 361
JST2011 0:4c4bcf3cc019 362 unsigned int globaltime; // msec //please copy me
JST2011 0:4c4bcf3cc019 363
JST2011 0:4c4bcf3cc019 364 void timer_func() //please copy me
JST2011 0:4c4bcf3cc019 365 { //please copy me
JST2011 0:4c4bcf3cc019 366 globaltime +=1; //please copy me
JST2011 0:4c4bcf3cc019 367 } //please copy me
JST2011 0:4c4bcf3cc019 368
JST2011 0:4c4bcf3cc019 369 Serial pc(USBTX,USBRX);
JST2011 0:4c4bcf3cc019 370
JST2011 0:4c4bcf3cc019 371 int main() {
JST2011 0:4c4bcf3cc019 372 timer.attach(&timer_func,0.001); //please copy me
JST2011 0:4c4bcf3cc019 373 pc.printf("hello");
JST2011 0:4c4bcf3cc019 374 while(1) {
JST2011 0:4c4bcf3cc019 375 wait(0.100);
JST2011 0:4c4bcf3cc019 376 pc.printf("%d\r\n",globaltime);
JST2011 0:4c4bcf3cc019 377 }
JST2011 0:4c4bcf3cc019 378 }
JST2011 0:4c4bcf3cc019 379
JST2011 0:4c4bcf3cc019 380 */
JST2011 0:4c4bcf3cc019 381
JST2011 0:4c4bcf3cc019 382
JST2011 0:4c4bcf3cc019 383 /*
JST2011 0:4c4bcf3cc019 384 #include "mbed.h"
JST2011 0:4c4bcf3cc019 385 //#include "GPS.h"
JST2011 0:4c4bcf3cc019 386
JST2011 0:4c4bcf3cc019 387 //Serial pc(USBTX, USBRX);
JST2011 0:4c4bcf3cc019 388
JST2011 0:4c4bcf3cc019 389 //GPS gps(p9, p10);
JST2011 0:4c4bcf3cc019 390
JST2011 0:4c4bcf3cc019 391 DigitalOut nicrom(p21);
JST2011 0:4c4bcf3cc019 392
JST2011 0:4c4bcf3cc019 393
JST2011 0:4c4bcf3cc019 394 //float lon = 1.2 ; //keido
JST2011 0:4c4bcf3cc019 395 //float lat = 3.5; //ido
JST2011 0:4c4bcf3cc019 396
JST2011 0:4c4bcf3cc019 397 int main() {
JST2011 0:4c4bcf3cc019 398 while(1){
JST2011 0:4c4bcf3cc019 399
JST2011 0:4c4bcf3cc019 400 /* if(gps.longitude>lon - 5 && gps.longitude>lon )
JST2011 0:4c4bcf3cc019 401 {
JST2011 0:4c4bcf3cc019 402 nicrom = 1;
JST2011 0:4c4bcf3cc019 403 }
JST2011 0:4c4bcf3cc019 404 else
JST2011 0:4c4bcf3cc019 405 {
JST2011 0:4c4bcf3cc019 406 nicrom = 0;
JST2011 0:4c4bcf3cc019 407 }*/
JST2011 0:4c4bcf3cc019 408 /* nicrom = 1;
JST2011 0:4c4bcf3cc019 409
JST2011 0:4c4bcf3cc019 410 wait(3.0);
JST2011 0:4c4bcf3cc019 411 nicrom = 0;
JST2011 0:4c4bcf3cc019 412 wait(0.025);
JST2011 0:4c4bcf3cc019 413 }
JST2011 0:4c4bcf3cc019 414 }
JST2011 0:4c4bcf3cc019 415
JST2011 0:4c4bcf3cc019 416 */
JST2011 0:4c4bcf3cc019 417
JST2011 0:4c4bcf3cc019 418
JST2011 0:4c4bcf3cc019 419
JST2011 0:4c4bcf3cc019 420
JST2011 0:4c4bcf3cc019 421
JST2011 0:4c4bcf3cc019 422
JST2011 0:4c4bcf3cc019 423
JST2011 0:4c4bcf3cc019 424
JST2011 0:4c4bcf3cc019 425
JST2011 0:4c4bcf3cc019 426
JST2011 0:4c4bcf3cc019 427
JST2011 0:4c4bcf3cc019 428
JST2011 0:4c4bcf3cc019 429
JST2011 0:4c4bcf3cc019 430 /*
JST2011 0:4c4bcf3cc019 431 #include "mbed.h"
JST2011 0:4c4bcf3cc019 432 #include "GPS.h"
JST2011 0:4c4bcf3cc019 433
JST2011 0:4c4bcf3cc019 434 Serial pc(USBTX, USBRX);
JST2011 0:4c4bcf3cc019 435
JST2011 0:4c4bcf3cc019 436 GPS gps(p9, p10);
JST2011 0:4c4bcf3cc019 437
JST2011 0:4c4bcf3cc019 438 DigitalOut nicrom(p21);
JST2011 0:4c4bcf3cc019 439
JST2011 0:4c4bcf3cc019 440
JST2011 0:4c4bcf3cc019 441 float lon = 1.2 ; //keido
JST2011 0:4c4bcf3cc019 442 float lat = 3.5; //ido
JST2011 0:4c4bcf3cc019 443
JST2011 0:4c4bcf3cc019 444 int main() {
JST2011 0:4c4bcf3cc019 445 while(1){
JST2011 0:4c4bcf3cc019 446
JST2011 0:4c4bcf3cc019 447 if(gps.longitude>lon - 5 && gps.longitude>lon && gps.latitude > lat - 5 && gps.latgitude < lat + 5 )
JST2011 0:4c4bcf3cc019 448 {
JST2011 0:4c4bcf3cc019 449 nicrom = 1;
JST2011 0:4c4bcf3cc019 450 }
JST2011 0:4c4bcf3cc019 451 else
JST2011 0:4c4bcf3cc019 452 {
JST2011 0:4c4bcf3cc019 453 nicrom = 0;
JST2011 0:4c4bcf3cc019 454 }
JST2011 0:4c4bcf3cc019 455 wait(0.25);
JST2011 0:4c4bcf3cc019 456 }
JST2011 0:4c4bcf3cc019 457 }
JST2011 0:4c4bcf3cc019 458 */
JST2011 0:4c4bcf3cc019 459
JST2011 0:4c4bcf3cc019 460
JST2011 0:4c4bcf3cc019 461
JST2011 0:4c4bcf3cc019 462
JST2011 0:4c4bcf3cc019 463 /*
JST2011 0:4c4bcf3cc019 464 // 信号の値をマジックナンバーではなく文字列で表している
JST2011 0:4c4bcf3cc019 465 // そのまま0と1でも意味はわかるので、あまりこだわらなくてもよい
JST2011 0:4c4bcf3cc019 466 typedef enum { OFF, ON } state;
JST2011 0:4c4bcf3cc019 467
JST2011 0:4c4bcf3cc019 468
JST2011 0:4c4bcf3cc019 469 // ちょっと難しいけど関数のポインタを使う
JST2011 0:4c4bcf3cc019 470 // 詳しくは後述
JST2011 0:4c4bcf3cc019 471 typedef void (*FUNCPTR)();
JST2011 0:4c4bcf3cc019 472 FUNCPTR pFuncBand;
JST2011 0:4c4bcf3cc019 473
JST2011 0:4c4bcf3cc019 474 // onの信号を出力するための関数
JST2011 0:4c4bcf3cc019 475 // onの信号は赤外線LEDの出力波形で観測すると最初の500[uS]はLoで続く1000[uS]がHi
JST2011 0:4c4bcf3cc019 476 // Hiのときは38[kHz]のパルス信号を出力する
JST2011 0:4c4bcf3cc019 477 void on_func(){
JST2011 0:4c4bcf3cc019 478 int begin;
JST2011 0:4c4bcf3cc019 479 Timer ton;
JST2011 0:4c4bcf3cc019 480 // タイマ開始と同時に時間を取得する
JST2011 0:4c4bcf3cc019 481 ton.start();
JST2011 0:4c4bcf3cc019 482 begin = ton.read_us();
JST2011 0:4c4bcf3cc019 483 // タイマの時間が、500[us]経過するまでの間出力は0(Lo)
JST2011 0:4c4bcf3cc019 484 while ( 500 > ton.read_us() - begin )
JST2011 0:4c4bcf3cc019 485 out.write(0.0f) ;
JST2011 0:4c4bcf3cc019 486
JST2011 0:4c4bcf3cc019 487 // 再び時間を取得
JST2011 0:4c4bcf3cc019 488 begin = ton.read_us();
JST2011 0:4c4bcf3cc019 489 // タイマの時間が、1000[us]経過するまでの間38[kHz]の方形波を出力する
JST2011 0:4c4bcf3cc019 490 while ( 1000 > ton.read_us() - begin )
JST2011 0:4c4bcf3cc019 491 out.write(0.5f) ;
JST2011 0:4c4bcf3cc019 492 // タイマの停止
JST2011 0:4c4bcf3cc019 493 ton.stop();
JST2011 0:4c4bcf3cc019 494 }
JST2011 0:4c4bcf3cc019 495
JST2011 0:4c4bcf3cc019 496 // offの信号を出力するための関数
JST2011 0:4c4bcf3cc019 497 // offの信号は赤外線LEDの出力波形で観測すると最初の500[us]はLoで続く500[uS]がHi
JST2011 0:4c4bcf3cc019 498 // Hiのときは38[kHz]のパルス信号を出力する
JST2011 0:4c4bcf3cc019 499 void off_func(){
JST2011 0:4c4bcf3cc019 500 int begin;
JST2011 0:4c4bcf3cc019 501 Timer toff;
JST2011 0:4c4bcf3cc019 502 // タイマ開始と同時に時間を取得する
JST2011 0:4c4bcf3cc019 503 toff.start();
JST2011 0:4c4bcf3cc019 504 begin = toff.read_us();
JST2011 0:4c4bcf3cc019 505 // タイマの時間が、500[uS]経過するまでの間出力は0(Lo)
JST2011 0:4c4bcf3cc019 506 while( 500 > toff.read_us() - begin )
JST2011 0:4c4bcf3cc019 507 out.write(0.0f) ;
JST2011 0:4c4bcf3cc019 508
JST2011 0:4c4bcf3cc019 509 // 再び時間を取得
JST2011 0:4c4bcf3cc019 510 begin = toff.read_us();
JST2011 0:4c4bcf3cc019 511 // タイマの時間が、500[uS]経過するまでの間38[kHz]の方形波を出力する
JST2011 0:4c4bcf3cc019 512 while ( 500 > toff.read_us() - begin )
JST2011 0:4c4bcf3cc019 513 out.write(0.5f) ;
JST2011 0:4c4bcf3cc019 514 // タイマの停止
JST2011 0:4c4bcf3cc019 515 toff.stop() ;
JST2011 0:4c4bcf3cc019 516 }
JST2011 0:4c4bcf3cc019 517
JST2011 0:4c4bcf3cc019 518
JST2011 0:4c4bcf3cc019 519 */
JST2011 0:4c4bcf3cc019 520
JST2011 0:4c4bcf3cc019 521
JST2011 0:4c4bcf3cc019 522
JST2011 0:4c4bcf3cc019 523
JST2011 0:4c4bcf3cc019 524
JST2011 0:4c4bcf3cc019 525
JST2011 0:4c4bcf3cc019 526
JST2011 0:4c4bcf3cc019 527
JST2011 0:4c4bcf3cc019 528 /*
JST2011 0:4c4bcf3cc019 529
JST2011 0:4c4bcf3cc019 530 #include "mbed.h"
JST2011 0:4c4bcf3cc019 531 #include "GPS.h"
JST2011 0:4c4bcf3cc019 532
JST2011 0:4c4bcf3cc019 533 DigitalIn enable(p5);
JST2011 0:4c4bcf3cc019 534 PwmOut heat_pwm[] = {p22};
JST2011 0:4c4bcf3cc019 535
JST2011 0:4c4bcf3cc019 536 int main() {
JST2011 0:4c4bcf3cc019 537 while(1) {
JST2011 0:4c4bcf3cc019 538 if(enable) {
JST2011 0:4c4bcf3cc019 539 heat_pwm[0].period_ms(10); // set pwm period 10ms=100Hz
JST2011 0:4c4bcf3cc019 540 }
JST2011 0:4c4bcf3cc019 541 wait(0.25);
JST2011 0:4c4bcf3cc019 542 }
JST2011 0:4c4bcf3cc019 543 }
JST2011 0:4c4bcf3cc019 544
JST2011 0:4c4bcf3cc019 545
JST2011 0:4c4bcf3cc019 546 */
JST2011 0:4c4bcf3cc019 547
JST2011 0:4c4bcf3cc019 548
JST2011 0:4c4bcf3cc019 549
JST2011 0:4c4bcf3cc019 550
JST2011 0:4c4bcf3cc019 551
JST2011 0:4c4bcf3cc019 552
JST2011 0:4c4bcf3cc019 553
JST2011 0:4c4bcf3cc019 554
JST2011 0:4c4bcf3cc019 555
JST2011 0:4c4bcf3cc019 556
JST2011 0:4c4bcf3cc019 557
JST2011 0:4c4bcf3cc019 558 /*
JST2011 0:4c4bcf3cc019 559 #include "mbed.h"
JST2011 0:4c4bcf3cc019 560 #include "GPS.h"
JST2011 0:4c4bcf3cc019 561
JST2011 0:4c4bcf3cc019 562 Serial pc(USBTX, USBRX);
JST2011 0:4c4bcf3cc019 563 GPS gps(p28, p27);
JST2011 0:4c4bcf3cc019 564
JST2011 0:4c4bcf3cc019 565 PwmOut heat_pwm[] = {p22};
JST2011 0:4c4bcf3cc019 566
JST2011 0:4c4bcf3cc019 567
JST2011 0:4c4bcf3cc019 568 int main(){
JST2011 0:4c4bcf3cc019 569 int heater_num;
JST2011 0:4c4bcf3cc019 570 int i;
JST2011 0:4c4bcf3cc019 571 float pwidth;
JST2011 0:4c4bcf3cc019 572 float modified_cycle = heat_pwm[heater_num].read();
JST2011 0:4c4bcf3cc019 573 float lon = 1.2... ; //keido
JST2011 0:4c4bcf3cc019 574 float lat = 3.5...; //ido
JST2011 0:4c4bcf3cc019 575
JST2011 0:4c4bcf3cc019 576
JST2011 0:4c4bcf3cc019 577 while(1)
JST2011 0:4c4bcf3cc019 578 {
JST2011 0:4c4bcf3cc019 579 if(gps.sample())
JST2011 0:4c4bcf3cc019 580 {
JST2011 0:4c4bcf3cc019 581 if(gps.longitude>lon - 5 && )
JST2011 0:4c4bcf3cc019 582 {
JST2011 0:4c4bcf3cc019 583 for(pwidth=1000;pwidth<=2500;pwidth+=10)
JST2011 0:4c4bcf3cc019 584
JST2011 0:4c4bcf3cc019 585
JST2011 0:4c4bcf3cc019 586
JST2011 0:4c4bcf3cc019 587 wait(0.1);
JST2011 0:4c4bcf3cc019 588 }
JST2011 0:4c4bcf3cc019 589 pc.printf("I'm at %f, %f\n", gps.longitude, gps.latitude);
JST2011 0:4c4bcf3cc019 590 }
JST2011 0:4c4bcf3cc019 591 }
JST2011 0:4c4bcf3cc019 592 if(gps.sample())
JST2011 0:4c4bcf3cc019 593 {
JST2011 0:4c4bcf3cc019 594 for(pwidth=2300;pwidth>=1500;pwidth-=10){
JST2011 0:4c4bcf3cc019 595
JST2011 0:4c4bcf3cc019 596
JST2011 0:4c4bcf3cc019 597 wait(0.1);
JST2011 0:4c4bcf3cc019 598 }
JST2011 0:4c4bcf3cc019 599 pc.printf("I'm at %f, %f\n", gps.longitude, gps.latitude);
JST2011 0:4c4bcf3cc019 600 }
JST2011 0:4c4bcf3cc019 601 }
JST2011 0:4c4bcf3cc019 602
JST2011 0:4c4bcf3cc019 603 heat_pwm[].period_ms(10); // set pwm period 10ms=100Hz
JST2011 0:4c4bcf3cc019 604 }
JST2011 0:4c4bcf3cc019 605
JST2011 0:4c4bcf3cc019 606
JST2011 0:4c4bcf3cc019 607 */
JST2011 0:4c4bcf3cc019 608
JST2011 0:4c4bcf3cc019 609
JST2011 0:4c4bcf3cc019 610
JST2011 0:4c4bcf3cc019 611 /*
JST2011 0:4c4bcf3cc019 612
JST2011 0:4c4bcf3cc019 613 #include "mbed.h"
JST2011 0:4c4bcf3cc019 614 Serial pc(USBTX, USBRX);
JST2011 0:4c4bcf3cc019 615
JST2011 0:4c4bcf3cc019 616 PwmOut heat_pwm[] = {p22};
JST2011 0:4c4bcf3cc019 617
JST2011 0:4c4bcf3cc019 618 // change pwm duty cycle
JST2011 0:4c4bcf3cc019 619 void change_pwm_cycle(int heater_num, int recieve_direction) {
JST2011 0:4c4bcf3cc019 620 float modified_cycle = heat_pwm[heater_num].read();
JST2011 0:4c4bcf3cc019 621 float temp_difference = Tav[heater_num] - target_temp;
JST2011 0:4c4bcf3cc019 622
JST2011 0:4c4bcf3cc019 623 if(temp_difference < 0) {
JST2011 0:4c4bcf3cc019 624 temp_difference *= -1;
JST2011 0:4c4bcf3cc019 625 }
JST2011 0:4c4bcf3cc019 626
JST2011 0:4c4bcf3cc019 627 switch(recieve_direction) {
JST2011 0:4c4bcf3cc019 628 case 0:
JST2011 0:4c4bcf3cc019 629 if(current_direction[heater_num] == 0) {
JST2011 0:4c4bcf3cc019 630 if(temp_difference > 5) {
JST2011 0:4c4bcf3cc019 631 modified_cycle -= 0.2;
JST2011 0:4c4bcf3cc019 632 } else if(temp_difference < 2) {
JST2011 0:4c4bcf3cc019 633 modified_cycle += 0.05;
JST2011 0:4c4bcf3cc019 634 }
JST2011 0:4c4bcf3cc019 635 } else {
JST2011 0:4c4bcf3cc019 636 modified_cycle -= 0.2;
JST2011 0:4c4bcf3cc019 637 }
JST2011 0:4c4bcf3cc019 638 break;
JST2011 0:4c4bcf3cc019 639
JST2011 0:4c4bcf3cc019 640 default:
JST2011 0:4c4bcf3cc019 641 break;
JST2011 0:4c4bcf3cc019 642 }
JST2011 0:4c4bcf3cc019 643
JST2011 0:4c4bcf3cc019 644 if(modified_cycle < 0) {
JST2011 0:4c4bcf3cc019 645 modified_cycle = 0;
JST2011 0:4c4bcf3cc019 646 } else if(modified_cycle > 1) {
JST2011 0:4c4bcf3cc019 647 modified_cycle = 1;
JST2011 0:4c4bcf3cc019 648 }
JST2011 0:4c4bcf3cc019 649
JST2011 0:4c4bcf3cc019 650 heat_pwm[heater_num].write(modified_cycle);
JST2011 0:4c4bcf3cc019 651 }
JST2011 0:4c4bcf3cc019 652
JST2011 0:4c4bcf3cc019 653
JST2011 0:4c4bcf3cc019 654
JST2011 0:4c4bcf3cc019 655 case 1:
JST2011 0:4c4bcf3cc019 656 if(current_direction[heater_num] == 1) {
JST2011 0:4c4bcf3cc019 657
JST2011 0:4c4bcf3cc019 658
JST2011 0:4c4bcf3cc019 659 (modified_cycle < 0) {
JST2011 0:4c4bcf3cc019 660
JST2011 0:4c4bcf3cc019 661
JST2011 0:4c4bcf3cc019 662
JST2011 0:4c4bcf3cc019 663
JST2011 0:4c4bcf3cc019 664
JST2011 0:4c4bcf3cc019 665
JST2011 0:4c4bcf3cc019 666 void control_heater() {
JST2011 0:4c4bcf3cc019 667 modified_cycle += 0.2;
JST2011 0:4c4bcf3cc019 668 } else if(temp_difference < 2) {
JST2011 0:4c4bcf3cc019 669 modified_cycle -= 0.05;
JST2011 0:4c4bcf3cc019 670 }
JST2011 0:4c4bcf3cc019 671 } else {
JST2011 0:4c4bcf3cc019 672 modified_cycle += 0.2;
JST2011 0:4c4bcf3cc019 673 }
JST2011 0:4c4bcf3cc019 674 }
JST2011 0:4c4bcf3cc019 675 if(modified_cycle < 0) {
JST2011 0:4c4bcf3cc019 676 // control heater
JST2011 0:4c4bcf3cc019 677 void control_heater() {
JST2011 0:4c4bcf3cc019 678 for(int i = 0; i < 2; i++) {
JST2011 0:4c4bcf3cc019 679 }
JST2011 0:4c4bcf3cc019 680 if(Tav[i] > target_temp) {
JST2011 0:4c4bcf3cc019 681 change_pwm_cycle(i ,0);
JST2011 0:4c4bcf3cc019 682 } else if(Tav[i] < target_temp) {
JST2011 0:4c4bcf3cc019 683 change_pwm_cycle(i, 1);
JST2011 0:4c4bcf3cc019 684
JST2011 0:4c4bcf3cc019 685 heat_pwm[0].period_ms(10); // set pwm period 10ms=100Hz
JST2011 0:4c4bcf3cc019 686
JST2011 0:4c4bcf3cc019 687
JST2011 0:4c4bcf3cc019 688 */