2/25/2017 LPC1768 ver

Dependencies:   MotionSensor SDFileSystem mbed

Fork of TanecCon by hswell and nike

Committer:
Nike3221
Date:
Tue Aug 22 16:16:34 2017 +0000
Revision:
4:1fdffa2e6312
Parent:
3:8d904225adfd
tane

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nike3221 0:029ef267b1bc 1 /*
Nike3221 0:029ef267b1bc 2 * MAG3110 Sensor Library for mbed
Nike3221 0:029ef267b1bc 3 * TODO: Add proper header
Nike3221 0:029ef267b1bc 4 */
Nike3221 0:029ef267b1bc 5
Nike3221 0:029ef267b1bc 6
Nike3221 0:029ef267b1bc 7 #include "mbed.h"
Nike3221 0:029ef267b1bc 8 #include "MotionSensor.h"
Nike3221 0:029ef267b1bc 9 #include "MAG3110.h"
Nike3221 0:029ef267b1bc 10 #include "math.h"
Nike3221 0:029ef267b1bc 11 //#include "SDFileSystem.h"
Nike3221 0:029ef267b1bc 12
Nike3221 0:029ef267b1bc 13 //SDFileSystem sd(p5, p6, p7, p8, "sd");
Nike3221 1:2992de38cf3e 14 Serial pc(USBTX,USBRX);
Nike3221 1:2992de38cf3e 15 //Serial pc(p9,p10);
Nike3221 0:029ef267b1bc 16
Nike3221 1:2992de38cf3e 17 int16_t con_x,con_y,con_z;
Nike3221 0:029ef267b1bc 18 LocalFileSystem local("local");
Nike3221 1:2992de38cf3e 19 //MAG3110 mag(p9,p10);
Nike3221 0:029ef267b1bc 20 MAG3110 mag(p28,p27);
Nike3221 0:029ef267b1bc 21 Serial gps(p13,p14);
Nike3221 4:1fdffa2e6312 22 //Serial gps(p9,p10);
Nike3221 0:029ef267b1bc 23
Nike3221 4:1fdffa2e6312 24 DigitalOut bin(p17);
Nike3221 4:1fdffa2e6312 25 DigitalIn local_del(p20);
Nike3221 1:2992de38cf3e 26 //DigitalIn cds(p29);
Nike3221 1:2992de38cf3e 27 Timer ActiveTime; //タイマー
Nike3221 4:1fdffa2e6312 28 DigitalOut trg(p26);
Nike3221 4:1fdffa2e6312 29 //DigitalOut sig(p25);
Nike3221 4:1fdffa2e6312 30 InterruptIn distance(p25);
Nike3221 0:029ef267b1bc 31
Nike3221 0:029ef267b1bc 32 DigitalOut bit1(LED4);
Nike3221 0:029ef267b1bc 33 DigitalOut bit2(LED3);
Nike3221 0:029ef267b1bc 34 DigitalOut bit3(LED2);
Nike3221 0:029ef267b1bc 35 DigitalOut bit4(LED1);
Nike3221 2:6f9881435f17 36 //DigitalOut bit5(p16);
Nike3221 4:1fdffa2e6312 37 DigitalOut ain(p16);
Nike3221 1:2992de38cf3e 38 DigitalOut stby(p11);
Nike3221 1:2992de38cf3e 39 DigitalOut motor_io(p12);
Nike3221 4:1fdffa2e6312 40 PwmOut servo(p21);
Nike3221 4:1fdffa2e6312 41 PwmOut motor_r(p23);
Nike3221 1:2992de38cf3e 42 PwmOut motor_l(p22);
Nike3221 1:2992de38cf3e 43 DigitalOut muda(p15);
Nike3221 4:1fdffa2e6312 44 InterruptIn cds(p18);
Nike3221 4:1fdffa2e6312 45 DigitalOut cds_out(p19);
Nike3221 1:2992de38cf3e 46 //DigitalIn cds(p29);
Nike3221 0:029ef267b1bc 47
Nike3221 1:2992de38cf3e 48 char gps_s[256];
Nike3221 1:2992de38cf3e 49 char gps_c[256];
Nike3221 1:2992de38cf3e 50 float palse=0.02;
Nike3221 1:2992de38cf3e 51 float servo_palse=0.002;
Nike3221 2:6f9881435f17 52 float motor_palse=0.02;
Nike3221 1:2992de38cf3e 53 float sig_time;
Nike3221 2:6f9881435f17 54 float offset_x,offset_y;
Nike3221 1:2992de38cf3e 55 float cds_on,x_max,y_max,x_min,y_min;
Nike3221 1:2992de38cf3e 56 float count_offset,count_gps;
Nike3221 1:2992de38cf3e 57 int a,b,gp,gga,rmc,gll,flag,count2,count_move,quadrant;
Nike3221 1:2992de38cf3e 58 float x_target,y_target,d_target,sita,angle_caly,angle_calx,direction_target;
Nike3221 4:1fdffa2e6312 59 float longitude_target = 30.375776;//36.11707
Nike3221 4:1fdffa2e6312 60 float latitude_target = 130.960419;//139.4720
Nike3221 1:2992de38cf3e 61 float utc_time,latitude1,latitude2,longitude1,longitude2,speed,course,utc_date,gps_magnetic;
Nike3221 0:029ef267b1bc 62 char pos_status;
Nike3221 1:2992de38cf3e 63 float direction,x_dat,y_dat,longitudegosa,latitudegosa;
Nike3221 0:029ef267b1bc 64 char angle_c;
Nike3221 0:029ef267b1bc 65
Nike3221 0:029ef267b1bc 66
Nike3221 1:2992de38cf3e 67 void init()
Nike3221 1:2992de38cf3e 68 {
Nike3221 4:1fdffa2e6312 69 ain = 1;
Nike3221 4:1fdffa2e6312 70 bin = 1;
Nike3221 4:1fdffa2e6312 71 cds_out = 1;
Nike3221 4:1fdffa2e6312 72 muda=1;
Nike3221 1:2992de38cf3e 73 cds_on = 0;
Nike3221 1:2992de38cf3e 74 count_move = 0;
Nike3221 1:2992de38cf3e 75 stby = 1;
Nike3221 1:2992de38cf3e 76 motor_io = 1;
Nike3221 1:2992de38cf3e 77 motor_r.period(0.02);
Nike3221 1:2992de38cf3e 78 motor_l.period(0.02);
Nike3221 1:2992de38cf3e 79 x_max = -1000.0;//x,yの最大値を初期化
Nike3221 1:2992de38cf3e 80 y_max = -1000.0;
Nike3221 1:2992de38cf3e 81 x_min = 1000.0;
Nike3221 1:2992de38cf3e 82 y_min = 1000.0;
Nike3221 1:2992de38cf3e 83
Nike3221 1:2992de38cf3e 84 }
Nike3221 1:2992de38cf3e 85
Nike3221 4:1fdffa2e6312 86 void cal_ll()
Nike3221 1:2992de38cf3e 87 {
Nike3221 1:2992de38cf3e 88 latitude1 = latitude1/100;
Nike3221 1:2992de38cf3e 89 latitude2 = (fmod(latitude1,1)/60)*100;
Nike3221 1:2992de38cf3e 90 latitude1 = floor(latitude1);
Nike3221 1:2992de38cf3e 91 latitude1 = latitude1+latitude2;
Nike3221 1:2992de38cf3e 92
Nike3221 1:2992de38cf3e 93 longitude1 = longitude1/100;
Nike3221 1:2992de38cf3e 94 longitude2 = fmod(longitude1,1)/60*100;
Nike3221 1:2992de38cf3e 95 longitude1 = floor(longitude1);
Nike3221 1:2992de38cf3e 96 longitude1 = longitude1+longitude2;
Nike3221 1:2992de38cf3e 97
Nike3221 1:2992de38cf3e 98 }
Nike3221 1:2992de38cf3e 99
Nike3221 1:2992de38cf3e 100 void gps_read()
Nike3221 1:2992de38cf3e 101 {
Nike3221 1:2992de38cf3e 102 __disable_irq();//割り込み禁止
Nike3221 0:029ef267b1bc 103
Nike3221 1:2992de38cf3e 104 pc.printf("gps_read\n");
Nike3221 4:1fdffa2e6312 105 for(count2=0; count2 < 300 ; count2++) {
Nike3221 1:2992de38cf3e 106 gps_s[count2] = gps.getc();
Nike3221 1:2992de38cf3e 107 pc.printf("%c",gps_s[count2]);
Nike3221 1:2992de38cf3e 108 }
Nike3221 1:2992de38cf3e 109 if(count_move==0 || count_move==3)
Nike3221 1:2992de38cf3e 110 {__enable_irq();}//割り込み許可
Nike3221 1:2992de38cf3e 111 }
Nike3221 1:2992de38cf3e 112
Nike3221 1:2992de38cf3e 113 int gps_save()
Nike3221 1:2992de38cf3e 114 {
Nike3221 1:2992de38cf3e 115 a=0;
Nike3221 3:8d904225adfd 116 gp = 2;//1回目の$は無視(flug=1を無視)
Nike3221 1:2992de38cf3e 117 count_gps = 0;
Nike3221 1:2992de38cf3e 118
Nike3221 1:2992de38cf3e 119 pc.printf("\ngps_save\n");
Nike3221 1:2992de38cf3e 120
Nike3221 3:8d904225adfd 121 while(a <= 250 && count_gps < 4) {
Nike3221 1:2992de38cf3e 122
Nike3221 4:1fdffa2e6312 123 for(a=0,b=0,flag=0; flag <= gp && flag < 4 && gp < 4 && a < 300; a++,b++)//"lag<4" "gp<4" "a<200"は無限ループ対策
Nike3221 3:8d904225adfd 124 {
Nike3221 1:2992de38cf3e 125 gps_c[a] = gps_s[b];
Nike3221 1:2992de38cf3e 126 pc.printf("%d %c \n",a,gps_c[a]);
Nike3221 1:2992de38cf3e 127
Nike3221 3:8d904225adfd 128 if(gps_c[a] == '$')
Nike3221 3:8d904225adfd 129 {
Nike3221 1:2992de38cf3e 130 gps_c[0] = '$';
Nike3221 1:2992de38cf3e 131 a=0;
Nike3221 3:8d904225adfd 132 flag++;//1回目の$は無視(flug=1を無視)
Nike3221 1:2992de38cf3e 133 pc.printf("%d %c flag:%d gp:%d\n",a,gps_c[a],flag,gp);
Nike3221 3:8d904225adfd 134 }
Nike3221 1:2992de38cf3e 135
Nike3221 1:2992de38cf3e 136 else if(gps_c[a-1] == '\r' && gps_c[a] == '\n' && flag == gp)
Nike3221 3:8d904225adfd 137 {
Nike3221 1:2992de38cf3e 138 gps_c[a+1]='\0';
Nike3221 4:1fdffa2e6312 139 flag = 10;//forから抜ける
Nike3221 3:8d904225adfd 140 }
Nike3221 1:2992de38cf3e 141 }
Nike3221 1:2992de38cf3e 142
Nike3221 1:2992de38cf3e 143 wait(0.5);
Nike3221 1:2992de38cf3e 144
Nike3221 1:2992de38cf3e 145 if(memcmp(gps_c,"$GPRMC",6) == 0) {
Nike3221 1:2992de38cf3e 146 sscanf(gps_c,"$GPRMC,%f,%c,%f,N,%f,E,%f,%f,%f,%f,W",&utc_time,&pos_status,&latitude1,&longitude1,&speed,&course,&utc_date,&gps_magnetic);
Nike3221 1:2992de38cf3e 147 //latitude = strncpy(latitude1,latitude1,2);
Nike3221 4:1fdffa2e6312 148 cal_ll();
Nike3221 1:2992de38cf3e 149 pc.printf("$GPRMC,time[%f],%c,%f,N,%f,E,%f,%f,%f,%f,W \n",utc_time,pos_status,latitude1,longitude1,speed,course,utc_date,gps_magnetic);
Nike3221 1:2992de38cf3e 150 gp++;
Nike3221 1:2992de38cf3e 151
Nike3221 1:2992de38cf3e 152 if(latitude1!=0) {
Nike3221 1:2992de38cf3e 153 bit1=1;
Nike3221 1:2992de38cf3e 154 }
Nike3221 1:2992de38cf3e 155 //mkdir("/sd/gps", 0777);
Nike3221 1:2992de38cf3e 156 FILE *fp = fopen("/local/gps.txt", "a");
Nike3221 4:1fdffa2e6312 157 if(fp == NULL) {}
Nike3221 4:1fdffa2e6312 158 //error("Could not open file for write\n");
Nike3221 1:2992de38cf3e 159
Nike3221 1:2992de38cf3e 160 fprintf(fp,"$GPRMC,%f,%c,%f,N,%f,E,%f,%f,%f,%f,W \n",utc_time,pos_status,latitude1,longitude1,speed,course,utc_date,gps_magnetic);
Nike3221 1:2992de38cf3e 161 fclose(fp);
Nike3221 4:1fdffa2e6312 162
Nike3221 1:2992de38cf3e 163 bit1=0;
Nike3221 1:2992de38cf3e 164 count_gps++;
Nike3221 1:2992de38cf3e 165 pc.printf("count_gps:%.1f\n",count_gps);
Nike3221 1:2992de38cf3e 166 }
Nike3221 1:2992de38cf3e 167
Nike3221 1:2992de38cf3e 168 else if(memcmp(gps_c,"$GPGGA",6) == 0) {
Nike3221 1:2992de38cf3e 169 sscanf(gps_c,"$GPGGA,%f,%f,N,%f,E",&utc_time,&latitude1,&longitude1);
Nike3221 4:1fdffa2e6312 170 cal_ll();
Nike3221 1:2992de38cf3e 171 pc.printf("$GPGGA,time[%f],%f,N,%f,E \n",utc_time,latitude1,longitude1);
Nike3221 1:2992de38cf3e 172 gp++;
Nike3221 1:2992de38cf3e 173
Nike3221 1:2992de38cf3e 174 if(latitude1!=0) {
Nike3221 1:2992de38cf3e 175 bit1=1;
Nike3221 1:2992de38cf3e 176 }
Nike3221 1:2992de38cf3e 177 // mkdir("/sd/gps", 0777);
Nike3221 1:2992de38cf3e 178 FILE *fp = fopen("/local/gps.txt", "a");
Nike3221 1:2992de38cf3e 179 if(fp == NULL) {
Nike3221 4:1fdffa2e6312 180 //error("Could not open file for write\n");
Nike3221 1:2992de38cf3e 181 }
Nike3221 1:2992de38cf3e 182
Nike3221 1:2992de38cf3e 183 fprintf(fp,"$GPGGA,%f,%f,N,%f,E \n",utc_time,latitude1,longitude1);
Nike3221 1:2992de38cf3e 184 fclose(fp);
Nike3221 4:1fdffa2e6312 185
Nike3221 1:2992de38cf3e 186 bit1=0;
Nike3221 1:2992de38cf3e 187 count_gps++;
Nike3221 1:2992de38cf3e 188 pc.printf("count_gps:%.1f\n",count_gps);
Nike3221 1:2992de38cf3e 189 }
Nike3221 1:2992de38cf3e 190
Nike3221 1:2992de38cf3e 191 else if(memcmp(gps_c,"$GPGLL",6) == 0) {
Nike3221 1:2992de38cf3e 192 sscanf(gps_c,"$GPGLL,%f,N,%f,E \n",&latitude1,&longitude1);
Nike3221 4:1fdffa2e6312 193 cal_ll();
Nike3221 1:2992de38cf3e 194 pc.printf("$GPGLL,%f,N,%f,E \n",latitude1,longitude1);
Nike3221 1:2992de38cf3e 195 gp++;
Nike3221 1:2992de38cf3e 196
Nike3221 1:2992de38cf3e 197 if(latitude1!=0) {
Nike3221 1:2992de38cf3e 198 bit1=1;
Nike3221 1:2992de38cf3e 199 }
Nike3221 1:2992de38cf3e 200 //mkdir("/sd/gps", 0777);
Nike3221 1:2992de38cf3e 201
Nike3221 4:1fdffa2e6312 202
Nike3221 1:2992de38cf3e 203 FILE *fp = fopen("/local/gps.txt", "a");
Nike3221 1:2992de38cf3e 204 if(fp == NULL) {
Nike3221 4:1fdffa2e6312 205 //error("Could not open file for write\n");
Nike3221 1:2992de38cf3e 206 }
Nike3221 1:2992de38cf3e 207
Nike3221 1:2992de38cf3e 208 fprintf(fp,"$GPGLL,%f,N,%f,E \n",latitude1,longitude1);
Nike3221 1:2992de38cf3e 209 fclose(fp);
Nike3221 4:1fdffa2e6312 210
Nike3221 1:2992de38cf3e 211 bit1=0;
Nike3221 1:2992de38cf3e 212 count_gps++;
Nike3221 1:2992de38cf3e 213 pc.printf("count_gps:%.1f\n",count_gps);
Nike3221 1:2992de38cf3e 214 }
Nike3221 1:2992de38cf3e 215
Nike3221 1:2992de38cf3e 216 else
Nike3221 1:2992de38cf3e 217 {
Nike3221 1:2992de38cf3e 218 count_gps++;
Nike3221 1:2992de38cf3e 219 gp++;
Nike3221 1:2992de38cf3e 220 pc.printf("gps_c is not match count_gps:%.1f\n",count_gps);
Nike3221 1:2992de38cf3e 221 }
Nike3221 1:2992de38cf3e 222 }
Nike3221 1:2992de38cf3e 223
Nike3221 1:2992de38cf3e 224 }
Nike3221 1:2992de38cf3e 225
Nike3221 1:2992de38cf3e 226 int offset(float x_rd,float y_rd)
Nike3221 1:2992de38cf3e 227 {
Nike3221 1:2992de38cf3e 228
Nike3221 1:2992de38cf3e 229 if(x_max == 0 || y_max == 0 || x_min == 0 || y_min == 0) {
Nike3221 1:2992de38cf3e 230 x_max = -1000.0;//x,yの最大値を初期化 +-32500
Nike3221 1:2992de38cf3e 231 y_max = -1000.0;
Nike3221 1:2992de38cf3e 232 x_min = 1000.0;
Nike3221 1:2992de38cf3e 233 y_min = 1000.0;
Nike3221 1:2992de38cf3e 234 }//最大値、最小値に0が入った時初期化
Nike3221 1:2992de38cf3e 235
Nike3221 1:2992de38cf3e 236 if(x_max<x_rd && x_rd != 0) {
Nike3221 1:2992de38cf3e 237 x_max=x_rd;
Nike3221 1:2992de38cf3e 238 }
Nike3221 1:2992de38cf3e 239
Nike3221 1:2992de38cf3e 240 if(y_max<y_rd && y_rd != 0) {
Nike3221 1:2992de38cf3e 241 y_max=y_rd;
Nike3221 1:2992de38cf3e 242 }
Nike3221 1:2992de38cf3e 243
Nike3221 1:2992de38cf3e 244 if(x_min>x_rd && x_rd != 0) {
Nike3221 1:2992de38cf3e 245 x_min=x_rd;
Nike3221 1:2992de38cf3e 246 }
Nike3221 1:2992de38cf3e 247
Nike3221 1:2992de38cf3e 248 if(y_min>y_rd && y_rd != 0) {
Nike3221 1:2992de38cf3e 249 y_min=y_rd;
Nike3221 1:2992de38cf3e 250 }
Nike3221 3:8d904225adfd 251
Nike3221 3:8d904225adfd 252 if(count_offset > 300)
Nike3221 3:8d904225adfd 253 {
Nike3221 2:6f9881435f17 254 offset_x = (x_min+x_max)/2;
Nike3221 2:6f9881435f17 255 offset_y = (y_min+y_max)/2;
Nike3221 1:2992de38cf3e 256
Nike3221 2:6f9881435f17 257 if(0 < offset_x)
Nike3221 3:8d904225adfd 258 { x_dat = con_x + offset_x; }
Nike3221 3:8d904225adfd 259 else if(0 > offset_x)
Nike3221 3:8d904225adfd 260 { x_dat = con_x - offset_x; }
Nike3221 3:8d904225adfd 261
Nike3221 3:8d904225adfd 262 if(0 < offset_y)
Nike3221 3:8d904225adfd 263 { y_dat = con_y - offset_y; }
Nike3221 3:8d904225adfd 264 else if(0 > offset_y)
Nike3221 3:8d904225adfd 265 { y_dat = con_y + offset_y; }
Nike3221 3:8d904225adfd 266
Nike3221 3:8d904225adfd 267 /*
Nike3221 3:8d904225adfd 268 if(0 < offset_x)
Nike3221 2:6f9881435f17 269 { x_dat = con_x + offset_x*1.3; }
Nike3221 2:6f9881435f17 270 else if(0 > offset_x)
Nike3221 2:6f9881435f17 271 { x_dat = con_x - offset_x*1.3; }
Nike3221 2:6f9881435f17 272
Nike3221 2:6f9881435f17 273 if(0 < offset_y)
Nike3221 2:6f9881435f17 274 { y_dat = con_y + offset_y*1.3; }
Nike3221 2:6f9881435f17 275 else if(0 > offset_y)
Nike3221 3:8d904225adfd 276 { y_dat = con_y - offset_y*1.3; }*/
Nike3221 3:8d904225adfd 277 }
Nike3221 1:2992de38cf3e 278
Nike3221 1:2992de38cf3e 279 pc.printf("x: %d , y: %d , x_dat: %f , y_dat: %f , x_max: %.5f , x_min: %.5f , direction: %f \n",con_x, con_y, x_rd, y_rd, x_max, x_min, direction);
Nike3221 1:2992de38cf3e 280 return 0;
Nike3221 1:2992de38cf3e 281 }
Nike3221 1:2992de38cf3e 282
Nike3221 1:2992de38cf3e 283 void cal_gps()
Nike3221 1:2992de38cf3e 284 {
Nike3221 3:8d904225adfd 285 /*if(latitude_target > latitude1 && longitude_target > longitude1)//第1象限
Nike3221 1:2992de38cf3e 286 {quadrant = 1;}
Nike3221 1:2992de38cf3e 287 if(latitude_target > latitude1 && longitude_target < longitude1)
Nike3221 1:2992de38cf3e 288 {quadrant = 2;}
Nike3221 1:2992de38cf3e 289 if(latitude_target < latitude1 && longitude_target < longitude1)
Nike3221 1:2992de38cf3e 290 {quadrant = 3;}
Nike3221 1:2992de38cf3e 291 if(latitude_target < latitude1 && longitude_target < longitude1)
Nike3221 3:8d904225adfd 292 {quadrant = 4;}*/
Nike3221 1:2992de38cf3e 293
Nike3221 1:2992de38cf3e 294 y_target = (latitude_target-latitude1)*111319.49;
Nike3221 1:2992de38cf3e 295 x_target = (longitude_target-longitude1)*cos(latitude1*(3.1415926535/180))*111319.49;
Nike3221 1:2992de38cf3e 296 d_target = sqrt(pow(con_x,2.0)*pow(con_y,2.0));//目的地までの距離
Nike3221 1:2992de38cf3e 297
Nike3221 1:2992de38cf3e 298 angle_caly = cos(latitude_target)*sin(longitude_target-longitude1);
Nike3221 2:6f9881435f17 299 angle_calx = cos(latitude1)*(sin(latitude_target)-sin(latitude1))*cos(latitude_target)*cos(longitude_target-longitude1);
Nike3221 1:2992de38cf3e 300 sita = atan2(angle_caly,angle_calx);
Nike3221 1:2992de38cf3e 301 if(sita < 0)
Nike3221 1:2992de38cf3e 302 {sita = sita + 2*3.1415926535;}
Nike3221 2:6f9881435f17 303 direction_target = sita*57.29578;
Nike3221 1:2992de38cf3e 304 }
Nike3221 1:2992de38cf3e 305
Nike3221 1:2992de38cf3e 306 void cal_con()
Nike3221 1:2992de38cf3e 307 {
Nike3221 1:2992de38cf3e 308
Nike3221 2:6f9881435f17 309 direction = atan2(y_dat,x_dat);
Nike3221 1:2992de38cf3e 310 if(direction < 0)
Nike3221 1:2992de38cf3e 311 {direction = direction + 2*3.1415926535;}
Nike3221 2:6f9881435f17 312 direction = direction*57.29578; //ラジアンに変換
Nike3221 2:6f9881435f17 313 //direction = (atan(y_cal/x_cal))*57.29578;
Nike3221 1:2992de38cf3e 314
Nike3221 4:1fdffa2e6312 315 if(316 < direction && 44 > direction){ //correction*********
Nike3221 1:2992de38cf3e 316 angle_c = 'N';}
Nike3221 1:2992de38cf3e 317
Nike3221 4:1fdffa2e6312 318 else if(225 < direction && 315 > direction){//correction*********
Nike3221 1:2992de38cf3e 319 angle_c = 'E';}
Nike3221 1:2992de38cf3e 320
Nike3221 4:1fdffa2e6312 321 else if(136 < direction && 224 > direction){//correction*********
Nike3221 1:2992de38cf3e 322 angle_c = 'S';}
Nike3221 1:2992de38cf3e 323
Nike3221 4:1fdffa2e6312 324 else if(45 < direction && 135 > direction){ //correction*********
Nike3221 1:2992de38cf3e 325 angle_c = 'W';}
Nike3221 1:2992de38cf3e 326
Nike3221 1:2992de38cf3e 327 else{ angle_c = '?';}
Nike3221 1:2992de38cf3e 328
Nike3221 1:2992de38cf3e 329 }
Nike3221 1:2992de38cf3e 330
Nike3221 1:2992de38cf3e 331 void trigger()
Nike3221 1:2992de38cf3e 332 {
Nike3221 4:1fdffa2e6312 333 trg = 1;
Nike3221 1:2992de38cf3e 334 bit2 = 1;
Nike3221 1:2992de38cf3e 335 wait_us(10);
Nike3221 4:1fdffa2e6312 336 trg = 0;
Nike3221 1:2992de38cf3e 337 bit2 = 0;
Nike3221 1:2992de38cf3e 338 }
Nike3221 1:2992de38cf3e 339
Nike3221 1:2992de38cf3e 340 void rise_echo()//立ち上がり割り込み
Nike3221 1:2992de38cf3e 341 {
Nike3221 1:2992de38cf3e 342 //sig=1;
Nike3221 1:2992de38cf3e 343 ActiveTime.start();
Nike3221 1:2992de38cf3e 344 __disable_irq();
Nike3221 1:2992de38cf3e 345 }
Nike3221 1:2992de38cf3e 346
Nike3221 1:2992de38cf3e 347 void fall_echo()//落ち込み割り込み
Nike3221 1:2992de38cf3e 348 {
Nike3221 1:2992de38cf3e 349 //sig=0;
Nike3221 1:2992de38cf3e 350 ActiveTime.stop();
Nike3221 1:2992de38cf3e 351 if(ActiveTime.read_us() > 0.00002){
Nike3221 1:2992de38cf3e 352 sig_time = ActiveTime.read_us()/6.169;}
Nike3221 1:2992de38cf3e 353 ActiveTime.reset();
Nike3221 4:1fdffa2e6312 354
Nike3221 1:2992de38cf3e 355 bit1=1;
Nike3221 1:2992de38cf3e 356 FILE *fp = fopen("/local/ultra.txt","a");
Nike3221 1:2992de38cf3e 357 fprintf(fp,"%f\n",sig_time);
Nike3221 1:2992de38cf3e 358 fclose(fp);
Nike3221 4:1fdffa2e6312 359 bit1=0;
Nike3221 1:2992de38cf3e 360 }
Nike3221 1:2992de38cf3e 361
Nike3221 1:2992de38cf3e 362
Nike3221 1:2992de38cf3e 363 void first_sequence()
Nike3221 1:2992de38cf3e 364 {
Nike3221 1:2992de38cf3e 365 if(count_move==0)
Nike3221 1:2992de38cf3e 366 {count_move=1;}
Nike3221 1:2992de38cf3e 367 }
Nike3221 1:2992de38cf3e 368
Nike3221 2:6f9881435f17 369 void turn_sequence()
Nike3221 2:6f9881435f17 370 {
Nike3221 2:6f9881435f17 371 __disable_irq();
Nike3221 2:6f9881435f17 372 pc.printf("************turn_sequence*************\n");
Nike3221 2:6f9881435f17 373 pc.printf("direction: %f direction_target: %f\n",direction,direction_target);
Nike3221 2:6f9881435f17 374 longitudegosa = longitude_target-longitude1;
Nike3221 2:6f9881435f17 375 latitudegosa = latitude_target-latitude1;
Nike3221 2:6f9881435f17 376
Nike3221 2:6f9881435f17 377 if(direction > direction_target+2.0)
Nike3221 2:6f9881435f17 378 { while(direction > direction_target+2.0)
Nike3221 2:6f9881435f17 379 {
Nike3221 2:6f9881435f17 380 pc.printf("turn clockwise \ndirection: %f direction_target: %f\n",direction,direction_target);
Nike3221 2:6f9881435f17 381
Nike3221 2:6f9881435f17 382 FILE *fp = fopen("/local/turn.txt","a");
Nike3221 2:6f9881435f17 383 fprintf(fp,"%c,%d,%d,%f,%f,%f,%f\n",angle_c,con_x,con_y,x_dat,y_dat,direction_target,direction);
Nike3221 2:6f9881435f17 384 fclose(fp);
Nike3221 2:6f9881435f17 385
Nike3221 2:6f9881435f17 386 mag.getX(&con_x);//コンパス読み込み
Nike3221 2:6f9881435f17 387 mag.getY(&con_y);
Nike3221 2:6f9881435f17 388 offset(con_x,con_y);//x,y オフセット計算
Nike3221 2:6f9881435f17 389 cal_con();
Nike3221 3:8d904225adfd 390
Nike3221 3:8d904225adfd 391 motor_l.pulsewidth(motor_palse*0.7);
Nike3221 3:8d904225adfd 392 motor_r.pulsewidth(motor_palse*0.35);
Nike3221 2:6f9881435f17 393 }}
Nike3221 2:6f9881435f17 394
Nike3221 2:6f9881435f17 395 else if(direction < direction_target-2.0)
Nike3221 2:6f9881435f17 396 { while(direction < direction_target-2.0)
Nike3221 2:6f9881435f17 397 {
Nike3221 2:6f9881435f17 398 pc.printf("turn anti clockwise \ndirection: %f direction_target: %f\n",direction,direction_target);
Nike3221 2:6f9881435f17 399
Nike3221 2:6f9881435f17 400 FILE *fp = fopen("/local/turn2.txt","a");
Nike3221 2:6f9881435f17 401 fprintf(fp,"%c,%d,%d,%f,%f,%f,%f\n",angle_c,con_x,con_y,x_dat,y_dat,direction_target,direction);
Nike3221 2:6f9881435f17 402 fclose(fp);
Nike3221 2:6f9881435f17 403
Nike3221 2:6f9881435f17 404 mag.getX(&con_x);//コンパス読み込み
Nike3221 2:6f9881435f17 405 mag.getY(&con_y);
Nike3221 2:6f9881435f17 406 offset(con_x,con_y);//x,y オフセット計算
Nike3221 2:6f9881435f17 407 cal_con();
Nike3221 3:8d904225adfd 408
Nike3221 3:8d904225adfd 409 motor_r.pulsewidth(motor_palse*0.7);
Nike3221 3:8d904225adfd 410 motor_l.pulsewidth(motor_palse*0.35);
Nike3221 3:8d904225adfd 411 }}
Nike3221 3:8d904225adfd 412
Nike3221 2:6f9881435f17 413 motor_r.pulsewidth(motor_palse*0.8);
Nike3221 3:8d904225adfd 414 motor_l.pulsewidth(motor_palse*0.8);
Nike3221 2:6f9881435f17 415
Nike3221 2:6f9881435f17 416 pc.printf("direction: %f direction_target: %f\n",direction,direction_target);
Nike3221 2:6f9881435f17 417
Nike3221 2:6f9881435f17 418 pc.printf("************turn_sequence end*************\n");
Nike3221 2:6f9881435f17 419
Nike3221 2:6f9881435f17 420 }
Nike3221 2:6f9881435f17 421
Nike3221 1:2992de38cf3e 422 void move()
Nike3221 1:2992de38cf3e 423 {
Nike3221 1:2992de38cf3e 424 switch(count_move)
Nike3221 1:2992de38cf3e 425 {
Nike3221 1:2992de38cf3e 426 case 1:
Nike3221 2:6f9881435f17 427
Nike3221 1:2992de38cf3e 428 pc.printf("*************case1**************\n");
Nike3221 4:1fdffa2e6312 429 motor_l.pulsewidth(0.018); //パルス幅
Nike3221 4:1fdffa2e6312 430 motor_r.pulsewidth(0.018);
Nike3221 1:2992de38cf3e 431 wait(10);//落下時間
Nike3221 1:2992de38cf3e 432
Nike3221 1:2992de38cf3e 433 servo.pulsewidth(servo_palse);
Nike3221 1:2992de38cf3e 434
Nike3221 1:2992de38cf3e 435 /*if(direction <= direction_target+3 && direction >= direction_target-3)
Nike3221 1:2992de38cf3e 436 {count_move++;}*/
Nike3221 1:2992de38cf3e 437 count_move++;
Nike3221 1:2992de38cf3e 438 pc.printf("*************case1 end**************\n");
Nike3221 1:2992de38cf3e 439 break;
Nike3221 2:6f9881435f17 440
Nike3221 1:2992de38cf3e 441 case 2:
Nike3221 2:6f9881435f17 442 __disable_irq();
Nike3221 1:2992de38cf3e 443 pc.printf("*************case2**************\n");
Nike3221 1:2992de38cf3e 444 pc.printf("direction: %f direction_target: %f\n",direction,direction_target);
Nike3221 1:2992de38cf3e 445 longitudegosa = longitude_target-longitude1;
Nike3221 1:2992de38cf3e 446 latitudegosa = latitude_target-latitude1;
Nike3221 2:6f9881435f17 447
Nike3221 2:6f9881435f17 448 if(direction > direction_target+2.0)
Nike3221 2:6f9881435f17 449 { while(direction > direction_target+2.0)
Nike3221 1:2992de38cf3e 450 {
Nike3221 2:6f9881435f17 451 pc.printf("turn clockwise \ndirection: %f direction_target: %f\n",direction,direction_target);
Nike3221 2:6f9881435f17 452
Nike3221 2:6f9881435f17 453 FILE *fp = fopen("/local/turn.txt","a");
Nike3221 2:6f9881435f17 454 fprintf(fp,"%c,%d,%d,%f,%f,%f,%f\n",angle_c,con_x,con_y,x_dat,y_dat,direction_target,direction);
Nike3221 2:6f9881435f17 455 fclose(fp);
Nike3221 2:6f9881435f17 456
Nike3221 1:2992de38cf3e 457 mag.getX(&con_x);//コンパス読み込み
Nike3221 1:2992de38cf3e 458 mag.getY(&con_y);
Nike3221 1:2992de38cf3e 459 offset(con_x,con_y);//x,y オフセット計算
Nike3221 1:2992de38cf3e 460 cal_con();
Nike3221 2:6f9881435f17 461
Nike3221 2:6f9881435f17 462 /*gps_read();
Nike3221 2:6f9881435f17 463 gps_save();
Nike3221 2:6f9881435f17 464 cal_gps();回転しすぎる*/
Nike3221 2:6f9881435f17 465 motor_l.pulsewidth(motor_palse*0.7);
Nike3221 2:6f9881435f17 466 motor_r.pulsewidth(motor_palse*0.35);}
Nike3221 2:6f9881435f17 467 motor_r.pulsewidth(motor_palse);
Nike3221 2:6f9881435f17 468 motor_l.pulsewidth(motor_palse);
Nike3221 2:6f9881435f17 469 }
Nike3221 1:2992de38cf3e 470
Nike3221 2:6f9881435f17 471 else if(direction < direction_target-2.0)
Nike3221 2:6f9881435f17 472 { while(direction < direction_target-2.0)
Nike3221 1:2992de38cf3e 473 {
Nike3221 2:6f9881435f17 474 pc.printf("turn anti clockwise \ndirection: %f direction_target: %f\n",direction,direction_target);
Nike3221 2:6f9881435f17 475
Nike3221 2:6f9881435f17 476 FILE *fp = fopen("/local/turn2.txt","a");
Nike3221 2:6f9881435f17 477 fprintf(fp,"%c,%d,%d,%f,%f,%f,%f\n",angle_c,con_x,con_y,x_dat,y_dat,direction_target,direction);
Nike3221 2:6f9881435f17 478 fclose(fp);
Nike3221 2:6f9881435f17 479
Nike3221 1:2992de38cf3e 480 mag.getX(&con_x);//コンパス読み込み
Nike3221 1:2992de38cf3e 481 mag.getY(&con_y);
Nike3221 1:2992de38cf3e 482 offset(con_x,con_y);//x,y オフセット計算
Nike3221 1:2992de38cf3e 483 cal_con();
Nike3221 1:2992de38cf3e 484
Nike3221 2:6f9881435f17 485 /*gps_read();
Nike3221 2:6f9881435f17 486 gps_save();
Nike3221 2:6f9881435f17 487 cal_gps();回転しすぎる*/
Nike3221 2:6f9881435f17 488 motor_r.pulsewidth(motor_palse*0.7);
Nike3221 2:6f9881435f17 489 motor_l.pulsewidth(motor_palse*0.35);}
Nike3221 2:6f9881435f17 490 motor_r.pulsewidth(motor_palse);
Nike3221 2:6f9881435f17 491 motor_l.pulsewidth(motor_palse);
Nike3221 2:6f9881435f17 492 }
Nike3221 2:6f9881435f17 493
Nike3221 3:8d904225adfd 494 if(direction <= direction_target+2.0 && direction >= direction_target-2.0)
Nike3221 2:6f9881435f17 495 { pc.printf("front \n");
Nike3221 2:6f9881435f17 496 motor_l.pulsewidth(motor_palse); //パルス幅
Nike3221 2:6f9881435f17 497 motor_r.pulsewidth(motor_palse);
Nike3221 2:6f9881435f17 498 count_move++;}
Nike3221 1:2992de38cf3e 499
Nike3221 1:2992de38cf3e 500 pc.printf("direction: %f direction_target: %f\n",direction,direction_target);
Nike3221 1:2992de38cf3e 501
Nike3221 1:2992de38cf3e 502 pc.printf("*************case2 end**************\n");
Nike3221 1:2992de38cf3e 503
Nike3221 1:2992de38cf3e 504 break;
Nike3221 2:6f9881435f17 505 case 3:
Nike3221 3:8d904225adfd 506 motor_l.pulsewidth(0.0); //パルス幅
Nike3221 3:8d904225adfd 507 motor_r.pulsewidth(0.0);
Nike3221 1:2992de38cf3e 508
Nike3221 2:6f9881435f17 509 gps_read();
Nike3221 2:6f9881435f17 510 gps_save();
Nike3221 4:1fdffa2e6312 511 cal_ll();
Nike3221 2:6f9881435f17 512 cal_gps();
Nike3221 3:8d904225adfd 513
Nike3221 3:8d904225adfd 514 mag.getX(&con_x);//コンパス読み込み
Nike3221 3:8d904225adfd 515 mag.getY(&con_y);
Nike3221 3:8d904225adfd 516 offset(con_x,con_y);//x,y オフセット計算
Nike3221 3:8d904225adfd 517 cal_con();
Nike3221 3:8d904225adfd 518
Nike3221 3:8d904225adfd 519 turn_sequence();
Nike3221 3:8d904225adfd 520
Nike3221 3:8d904225adfd 521 motor_l.pulsewidth(motor_palse*0.8); //パルス幅
Nike3221 3:8d904225adfd 522 motor_r.pulsewidth(motor_palse*0.8);
Nike3221 3:8d904225adfd 523
Nike3221 2:6f9881435f17 524
Nike3221 2:6f9881435f17 525 longitudegosa = longitude_target-longitude1;
Nike3221 2:6f9881435f17 526 latitudegosa = latitude_target-latitude1;
Nike3221 2:6f9881435f17 527
Nike3221 2:6f9881435f17 528 if( abs(longitudegosa)<=0.1 && abs(latitudegosa)<=0.1 )
Nike3221 2:6f9881435f17 529 { pc.printf("front \n");
Nike3221 2:6f9881435f17 530 count_move++; }
Nike3221 2:6f9881435f17 531
Nike3221 2:6f9881435f17 532 break;
Nike3221 2:6f9881435f17 533 case 4:
Nike3221 4:1fdffa2e6312 534 pc.printf("*************case4**************\n");
Nike3221 2:6f9881435f17 535
Nike3221 2:6f9881435f17 536 __enable_irq();
Nike3221 1:2992de38cf3e 537 trigger();
Nike3221 1:2992de38cf3e 538 //distance.rise(rise_echo);
Nike3221 1:2992de38cf3e 539 //distance.fall(fall_echo);
Nike3221 1:2992de38cf3e 540
Nike3221 2:6f9881435f17 541 pc.printf("sig_time: %f\n",sig_time);
Nike3221 1:2992de38cf3e 542
Nike3221 4:1fdffa2e6312 543 if(sig_time <= 100.0 && sig_time >= 50.0)//100mm以下に近づいたとき停止
Nike3221 2:6f9881435f17 544 { pc.printf("sig_time is 100mm or under: %f\n",sig_time);
Nike3221 2:6f9881435f17 545 count_move++;}
Nike3221 1:2992de38cf3e 546 else
Nike3221 1:2992de38cf3e 547 {
Nike3221 3:8d904225adfd 548 turn_sequence();
Nike3221 4:1fdffa2e6312 549 motor_l.pulsewidth(motor_palse*0.8); //パルス幅
Nike3221 4:1fdffa2e6312 550 motor_r.pulsewidth(motor_palse*0.8);
Nike3221 1:2992de38cf3e 551 }
Nike3221 1:2992de38cf3e 552
Nike3221 1:2992de38cf3e 553 break;
Nike3221 1:2992de38cf3e 554
Nike3221 1:2992de38cf3e 555 default:
Nike3221 1:2992de38cf3e 556 motor_l.pulsewidth(0.0);
Nike3221 1:2992de38cf3e 557 motor_r.pulsewidth(0.0);
Nike3221 2:6f9881435f17 558
Nike3221 1:2992de38cf3e 559 break;
Nike3221 1:2992de38cf3e 560
Nike3221 1:2992de38cf3e 561 }
Nike3221 0:029ef267b1bc 562
Nike3221 0:029ef267b1bc 563 }
Nike3221 0:029ef267b1bc 564
Nike3221 0:029ef267b1bc 565
Nike3221 1:2992de38cf3e 566 void con_save()
Nike3221 1:2992de38cf3e 567 {
Nike3221 0:029ef267b1bc 568
Nike3221 0:029ef267b1bc 569 bit1=1;//led4を1にしてデータを保存
Nike3221 0:029ef267b1bc 570 FILE *fp = fopen("/local/commpas_new.txt","a");
Nike3221 1:2992de38cf3e 571 fprintf(fp,"%c,%f,%f,%f,%f\n",angle_c,d_target,x_dat,y_dat,direction);
Nike3221 1:2992de38cf3e 572 //fprintf(fp,"%d,%d,%d,%d,%d\n",x,y,z,offset_x,offset_y);
Nike3221 1:2992de38cf3e 573 fclose(fp);
Nike3221 1:2992de38cf3e 574 bit1=0;
Nike3221 0:029ef267b1bc 575 }
Nike3221 0:029ef267b1bc 576
Nike3221 1:2992de38cf3e 577 void dele()
Nike3221 1:2992de38cf3e 578 {
Nike3221 1:2992de38cf3e 579
Nike3221 0:029ef267b1bc 580 bit2=1;//led3を1
Nike3221 1:2992de38cf3e 581
Nike3221 0:029ef267b1bc 582 remove("/local/commpas_new.txt");
Nike3221 0:029ef267b1bc 583 remove("/local/gps.txt");
Nike3221 1:2992de38cf3e 584
Nike3221 0:029ef267b1bc 585 bit2=0;
Nike3221 0:029ef267b1bc 586 }
Nike3221 0:029ef267b1bc 587
Nike3221 1:2992de38cf3e 588 int main()
Nike3221 1:2992de38cf3e 589 {
Nike3221 1:2992de38cf3e 590 bit1 = 1;
Nike3221 1:2992de38cf3e 591 pc.printf("start\n");
Nike3221 4:1fdffa2e6312 592
Nike3221 4:1fdffa2e6312 593 servo.period(0.02);
Nike3221 4:1fdffa2e6312 594
Nike3221 4:1fdffa2e6312 595 servo.pulsewidth(servo_palse);//0.002
Nike3221 4:1fdffa2e6312 596 wait(5);
Nike3221 4:1fdffa2e6312 597 servo.pulsewidth(0.001);
Nike3221 1:2992de38cf3e 598 //__disable_irq();//割り込み禁止
Nike3221 1:2992de38cf3e 599 init(); //初期化
Nike3221 1:2992de38cf3e 600 //cds.rise(first_sequence);//cds立ち上がり割り込み
Nike3221 1:2992de38cf3e 601 mag.sampleRate(0x40);
Nike3221 0:029ef267b1bc 602 mag.enable();//コンパス有効化
Nike3221 1:2992de38cf3e 603 mag.getX(&con_x);//コンパス読み込み
Nike3221 1:2992de38cf3e 604 mag.getY(&con_y);
Nike3221 1:2992de38cf3e 605 mag.getZ(&con_z);
Nike3221 3:8d904225adfd 606
Nike3221 4:1fdffa2e6312 607 for(count_offset=0; count_offset <10; count_offset++ )
Nike3221 4:1fdffa2e6312 608 {
Nike3221 4:1fdffa2e6312 609 gps_read();
Nike3221 4:1fdffa2e6312 610 gps_save();
Nike3221 4:1fdffa2e6312 611 cal_ll();
Nike3221 4:1fdffa2e6312 612 cal_gps();
Nike3221 4:1fdffa2e6312 613 }
Nike3221 4:1fdffa2e6312 614
Nike3221 3:8d904225adfd 615 motor_r.pulsewidth(motor_palse*0.7);
Nike3221 3:8d904225adfd 616 motor_l.pulsewidth(motor_palse*0.35);
Nike3221 3:8d904225adfd 617
Nike3221 2:6f9881435f17 618 for(count_offset=0; count_offset < 300; count_offset++)//300個分のサンプ取得
Nike3221 2:6f9881435f17 619 {
Nike3221 2:6f9881435f17 620 mag.getX(&con_x);//コンパス読み込み
Nike3221 2:6f9881435f17 621 mag.getY(&con_y);
Nike3221 2:6f9881435f17 622 mag.getZ(&con_z);
Nike3221 2:6f9881435f17 623 offset(con_x,con_y);
Nike3221 2:6f9881435f17 624 cal_con();
Nike3221 4:1fdffa2e6312 625
Nike3221 2:6f9881435f17 626 FILE *fp = fopen("/local/first_con.txt","a");
Nike3221 2:6f9881435f17 627 fprintf(fp,"%c,%d,%d,%f,%f,%f,%f\n",angle_c,con_x,con_y,x_dat,y_dat,direction_target,direction);
Nike3221 2:6f9881435f17 628 fclose(fp);
Nike3221 2:6f9881435f17 629 }
Nike3221 4:1fdffa2e6312 630
Nike3221 3:8d904225adfd 631 motor_r.pulsewidth(motor_palse*0.0);
Nike3221 3:8d904225adfd 632 motor_l.pulsewidth(motor_palse*0.0);
Nike3221 4:1fdffa2e6312 633
Nike3221 4:1fdffa2e6312 634 servo.pulsewidth(servo_palse);//0.002
Nike3221 4:1fdffa2e6312 635 wait(5);
Nike3221 4:1fdffa2e6312 636 servo.pulsewidth(0.001);
Nike3221 4:1fdffa2e6312 637
Nike3221 4:1fdffa2e6312 638 bit1 = 1; bit2 = 1;
Nike3221 4:1fdffa2e6312 639 bit3 = 1; bit4 = 1;
Nike3221 4:1fdffa2e6312 640 pc.printf("cds wait\n");
Nike3221 4:1fdffa2e6312 641 wait(20);
Nike3221 4:1fdffa2e6312 642 bit1 = 0; bit2 = 0;
Nike3221 4:1fdffa2e6312 643 bit3 = 0; bit4 = 0;
Nike3221 4:1fdffa2e6312 644 cds.fall(&first_sequence);//cds落ち込み割り込み
Nike3221 0:029ef267b1bc 645
Nike3221 1:2992de38cf3e 646 while(1) {
Nike3221 1:2992de38cf3e 647
Nike3221 1:2992de38cf3e 648 __enable_irq();//割り込み許可
Nike3221 1:2992de38cf3e 649 mag.getX(&con_x);//コンパス読み込み
Nike3221 1:2992de38cf3e 650 mag.getY(&con_y);
Nike3221 1:2992de38cf3e 651 offset(con_x,con_y);//x,y オフセット計算
Nike3221 1:2992de38cf3e 652 cal_con();
Nike3221 1:2992de38cf3e 653
Nike3221 1:2992de38cf3e 654 gps_read();
Nike3221 1:2992de38cf3e 655 gps_save();
Nike3221 4:1fdffa2e6312 656 cal_ll();
Nike3221 1:2992de38cf3e 657 cal_gps();
Nike3221 1:2992de38cf3e 658
Nike3221 1:2992de38cf3e 659 /*if(cds == 0)
Nike3221 1:2992de38cf3e 660 {first_sequence();
Nike3221 1:2992de38cf3e 661 bit5=1;}*/
Nike3221 1:2992de38cf3e 662
Nike3221 4:1fdffa2e6312 663 move();
Nike3221 1:2992de38cf3e 664
Nike3221 4:1fdffa2e6312 665 con_save(); //pin20がhighの時、データ保存
Nike3221 1:2992de38cf3e 666 /*if(local_del == 1)
Nike3221 1:2992de38cf3e 667 { dele(); }*/ //pin19がhighの時、保存したデータを消去
Nike3221 1:2992de38cf3e 668
Nike3221 1:2992de38cf3e 669 }
Nike3221 4:1fdffa2e6312 670 }
Nike3221 4:1fdffa2e6312 671 // _01 40_
Nike3221 4:1fdffa2e6312 672 // _02 39_
Nike3221 4:1fdffa2e6312 673 // _03 38_
Nike3221 4:1fdffa2e6312 674 // xxxxxxxx_04 37_
Nike3221 4:1fdffa2e6312 675 // _05 36_
Nike3221 4:1fdffa2e6312 676 // _06 35_
Nike3221 4:1fdffa2e6312 677 // _07 34_
Nike3221 4:1fdffa2e6312 678 // _08 33_
Nike3221 4:1fdffa2e6312 679 // _09 32_
Nike3221 4:1fdffa2e6312 680 // _10 31_
Nike3221 4:1fdffa2e6312 681 // stby_11 30_xxxxxxxxx
Nike3221 4:1fdffa2e6312 682 // motorio_12 29_
Nike3221 4:1fdffa2e6312 683 // gps_13 28_mag
Nike3221 4:1fdffa2e6312 684 // gps_14 27_mag
Nike3221 4:1fdffa2e6312 685 // muda_15 26_trg
Nike3221 4:1fdffa2e6312 686 // ain_16 25_distance
Nike3221 4:1fdffa2e6312 687 // bin_17 24_
Nike3221 4:1fdffa2e6312 688 // cds_18 23_motor_r
Nike3221 4:1fdffa2e6312 689 // cds_out_19 22_motor_l
Nike3221 4:1fdffa2e6312 690 // del_20 21_