2015_robocon_bteam / Mbed 2 deprecated 2015robot_main_zenkoku

Dependencies:   PID QEI mbed

Committer:
DeguNaoto
Date:
Sun Nov 01 09:50:46 2015 +0000
Revision:
7:4aa57a35ec0b
Parent:
6:ca3a74a93ae2
Child:
8:02ed55a576e0
20151101 ??????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DeguNaoto 0:b613dc16f27d 1 #ifndef MANUALMODE_H
DeguNaoto 0:b613dc16f27d 2 #define MANUALMODE_H
DeguNaoto 0:b613dc16f27d 3
DeguNaoto 3:8d8c25c556ae 4 void Call(){
DeguNaoto 3:8d8c25c556ae 5 mesure_state();
DeguNaoto 3:8d8c25c556ae 6 if(autoflag){
DeguNaoto 3:8d8c25c556ae 7 move_following();
DeguNaoto 3:8d8c25c556ae 8 if(spcount<speed){
DeguNaoto 3:8d8c25c556ae 9 spcount+=speed/100.0;
DeguNaoto 3:8d8c25c556ae 10 targ_velocity=spcount;
DeguNaoto 3:8d8c25c556ae 11 }
DeguNaoto 3:8d8c25c556ae 12 }
DeguNaoto 3:8d8c25c556ae 13 #ifdef MESURE
DeguNaoto 3:8d8c25c556ae 14 if(mesureflag){
DeguNaoto 3:8d8c25c556ae 15 fprintf(fp_r, "%1.3f %f\r\n",time,velocity);
DeguNaoto 3:8d8c25c556ae 16 }
DeguNaoto 3:8d8c25c556ae 17 #endif
DeguNaoto 3:8d8c25c556ae 18 }
DeguNaoto 3:8d8c25c556ae 19
DeguNaoto 0:b613dc16f27d 20 //赤修正
DeguNaoto 0:b613dc16f27d 21
DeguNaoto 0:b613dc16f27d 22 #ifdef IM920
DeguNaoto 0:b613dc16f27d 23 void manualMoveIM920()
DeguNaoto 0:b613dc16f27d 24 {
DeguNaoto 0:b613dc16f27d 25 #ifdef BLUE
DeguNaoto 0:b613dc16f27d 26 if(Y<2) {
DeguNaoto 0:b613dc16f27d 27 Move_l(-0.6);
DeguNaoto 0:b613dc16f27d 28 Move_r(0.6);
DeguNaoto 0:b613dc16f27d 29 }
DeguNaoto 0:b613dc16f27d 30 else if(Y>6) {
DeguNaoto 0:b613dc16f27d 31 Move_l(0.6);
DeguNaoto 0:b613dc16f27d 32 Move_r(-0.6);
DeguNaoto 0:b613dc16f27d 33 }
DeguNaoto 0:b613dc16f27d 34 else {
DeguNaoto 0:b613dc16f27d 35 if(X<2) {
DeguNaoto 0:b613dc16f27d 36 Move_l(0.6);
DeguNaoto 0:b613dc16f27d 37 Move_r(0.6);
DeguNaoto 0:b613dc16f27d 38 } else if(X>6) {
DeguNaoto 0:b613dc16f27d 39 Move_l(-0.6);
DeguNaoto 0:b613dc16f27d 40 Move_r(-0.6);
DeguNaoto 0:b613dc16f27d 41 } else {
DeguNaoto 0:b613dc16f27d 42 Move_l(0.0);
DeguNaoto 0:b613dc16f27d 43 Move_r(0.0);
DeguNaoto 0:b613dc16f27d 44 }
DeguNaoto 0:b613dc16f27d 45 }
DeguNaoto 0:b613dc16f27d 46 #else
DeguNaoto 0:b613dc16f27d 47 if(Y<2) {
DeguNaoto 0:b613dc16f27d 48 Move_l(0.6);
DeguNaoto 0:b613dc16f27d 49 Move_r(-0.6);
DeguNaoto 0:b613dc16f27d 50 }
DeguNaoto 0:b613dc16f27d 51 else if(Y>6) {
DeguNaoto 0:b613dc16f27d 52 Move_l(-0.6);
DeguNaoto 0:b613dc16f27d 53 Move_r(0.6);
DeguNaoto 0:b613dc16f27d 54 }
DeguNaoto 0:b613dc16f27d 55 else {
DeguNaoto 0:b613dc16f27d 56 if(X<2) {
DeguNaoto 0:b613dc16f27d 57 Move_l(-0.6);
DeguNaoto 0:b613dc16f27d 58 Move_r(-0.6);
DeguNaoto 0:b613dc16f27d 59 } else if(X>6) {
DeguNaoto 0:b613dc16f27d 60 Move_l(0.6);
DeguNaoto 0:b613dc16f27d 61 Move_r(0.6);
DeguNaoto 0:b613dc16f27d 62 } else {
DeguNaoto 0:b613dc16f27d 63 Move_l(0.0);
DeguNaoto 0:b613dc16f27d 64 Move_r(0.0);
DeguNaoto 0:b613dc16f27d 65 }
DeguNaoto 0:b613dc16f27d 66 }
DeguNaoto 0:b613dc16f27d 67 #endif
DeguNaoto 0:b613dc16f27d 68 }
DeguNaoto 0:b613dc16f27d 69 void manualIM920()
DeguNaoto 0:b613dc16f27d 70 {
DeguNaoto 0:b613dc16f27d 71 if(b==7){ /*mode change*/
DeguNaoto 0:b613dc16f27d 72 if(edge7){
DeguNaoto 3:8d8c25c556ae 73 Com.attach(&Call,RATE);
DeguNaoto 0:b613dc16f27d 74 edge7=0;
DeguNaoto 0:b613dc16f27d 75 autoflag=1;
DeguNaoto 0:b613dc16f27d 76 Indicator4=1;
DeguNaoto 0:b613dc16f27d 77 IndicatorAuto=0;
DeguNaoto 0:b613dc16f27d 78 Move_l(0.0);
DeguNaoto 0:b613dc16f27d 79 Move_r(0.0);
DeguNaoto 6:ca3a74a93ae2 80 direction_controller.setTunings(36.0,3.0,0.0);
DeguNaoto 0:b613dc16f27d 81 resetState();
DeguNaoto 0:b613dc16f27d 82 flaga=0;
DeguNaoto 0:b613dc16f27d 83 step=114;
DeguNaoto 0:b613dc16f27d 84 CStep=114;
DeguNaoto 3:8d8c25c556ae 85 spcount=speed;
DeguNaoto 0:b613dc16f27d 86 }
DeguNaoto 0:b613dc16f27d 87 }
DeguNaoto 0:b613dc16f27d 88 else if(b==5){
DeguNaoto 0:b613dc16f27d 89 if(edge5){
DeguNaoto 0:b613dc16f27d 90 edge5=0;
DeguNaoto 7:4aa57a35ec0b 91 /*resetSwingSpeed = 1;
DeguNaoto 7:4aa57a35ec0b 92 interruptSwingSpeed.attach(&countSwingSpeed, 0.05);*/
DeguNaoto 3:8d8c25c556ae 93 // targSwingRadVelocity = swingspeed;
DeguNaoto 7:4aa57a35ec0b 94 for(float i=0.0;i<0.5;i+=0.01){
DeguNaoto 3:8d8c25c556ae 95 Motor_swing=i;
DeguNaoto 3:8d8c25c556ae 96 wait(0.05);
DeguNaoto 3:8d8c25c556ae 97 }
DeguNaoto 7:4aa57a35ec0b 98 Motor_swing = 0.5;
DeguNaoto 3:8d8c25c556ae 99 }
DeguNaoto 3:8d8c25c556ae 100 }
DeguNaoto 3:8d8c25c556ae 101 else if(b==8){
DeguNaoto 3:8d8c25c556ae 102 if(edge8){
DeguNaoto 3:8d8c25c556ae 103 edge8=0;
DeguNaoto 3:8d8c25c556ae 104 enableShoot=1;
DeguNaoto 3:8d8c25c556ae 105 }
DeguNaoto 3:8d8c25c556ae 106 }
DeguNaoto 3:8d8c25c556ae 107 else if(b==9){
DeguNaoto 3:8d8c25c556ae 108 interruptSwingSpeed.detach();
DeguNaoto 3:8d8c25c556ae 109 targSwingRadVelocity = 0.0;
DeguNaoto 3:8d8c25c556ae 110 contSwing.reset();
DeguNaoto 7:4aa57a35ec0b 111 sendData(2,8);
DeguNaoto 3:8d8c25c556ae 112 Motor_swing = 0.0;
DeguNaoto 3:8d8c25c556ae 113 }
DeguNaoto 3:8d8c25c556ae 114 /*else if(b==5){
DeguNaoto 3:8d8c25c556ae 115 if(edge5){
DeguNaoto 3:8d8c25c556ae 116 edge5=0;
DeguNaoto 0:b613dc16f27d 117 sendData(1,4);
DeguNaoto 0:b613dc16f27d 118 }
DeguNaoto 0:b613dc16f27d 119 }
DeguNaoto 0:b613dc16f27d 120 else if(b==6){
DeguNaoto 0:b613dc16f27d 121 if(edge6){
DeguNaoto 0:b613dc16f27d 122 edge6=0;
DeguNaoto 0:b613dc16f27d 123 sendData(1,5);
DeguNaoto 0:b613dc16f27d 124 }
DeguNaoto 3:8d8c25c556ae 125 }*/
DeguNaoto 0:b613dc16f27d 126 else if(b==1){ /*L down*/
DeguNaoto 0:b613dc16f27d 127 if(edge1){
DeguNaoto 0:b613dc16f27d 128 edge1=0;
DeguNaoto 0:b613dc16f27d 129 if(stateL!=1) stateL--;
DeguNaoto 0:b613dc16f27d 130 sendData(4,stateL);
DeguNaoto 0:b613dc16f27d 131 }
DeguNaoto 0:b613dc16f27d 132 }
DeguNaoto 0:b613dc16f27d 133 else if(b==2){ /*L up*/
DeguNaoto 0:b613dc16f27d 134 if(edge2){
DeguNaoto 0:b613dc16f27d 135 edge2=0;
DeguNaoto 0:b613dc16f27d 136 if(stateL!=92) stateL++;
DeguNaoto 0:b613dc16f27d 137 sendData(4,stateL);
DeguNaoto 0:b613dc16f27d 138 }
DeguNaoto 0:b613dc16f27d 139 }
DeguNaoto 0:b613dc16f27d 140 else if(b==3){ /*R down*/
DeguNaoto 0:b613dc16f27d 141 if(edge3){
DeguNaoto 0:b613dc16f27d 142 edge3=0;
DeguNaoto 0:b613dc16f27d 143 if(stateR!=1) stateR--;
DeguNaoto 0:b613dc16f27d 144 sendData(5,stateR);
DeguNaoto 0:b613dc16f27d 145 }
DeguNaoto 0:b613dc16f27d 146 }
DeguNaoto 0:b613dc16f27d 147 else if(b==4){ /*R up*/
DeguNaoto 0:b613dc16f27d 148 if(edge4){
DeguNaoto 0:b613dc16f27d 149 edge4=0;
DeguNaoto 0:b613dc16f27d 150 if(stateR!=92) stateR++;
DeguNaoto 0:b613dc16f27d 151 sendData(5,stateR);
DeguNaoto 0:b613dc16f27d 152 }
DeguNaoto 0:b613dc16f27d 153 }
DeguNaoto 0:b613dc16f27d 154 if(b!=7) edge7=1;
DeguNaoto 0:b613dc16f27d 155 if(b!=1) edge1=1;
DeguNaoto 0:b613dc16f27d 156 if(b!=2) edge2=1;
DeguNaoto 0:b613dc16f27d 157 if(b!=3) edge3=1;
DeguNaoto 0:b613dc16f27d 158 if(b!=4) edge4=1;
DeguNaoto 0:b613dc16f27d 159 if(b!=5) edge5=1;
DeguNaoto 0:b613dc16f27d 160 if(b!=8) edge8=1;
DeguNaoto 0:b613dc16f27d 161 if(b!=9) edge9=1;
DeguNaoto 0:b613dc16f27d 162 }
DeguNaoto 0:b613dc16f27d 163 #else
DeguNaoto 0:b613dc16f27d 164 void manualMovePS3()
DeguNaoto 0:b613dc16f27d 165 {
DeguNaoto 0:b613dc16f27d 166 #ifdef BLUE
DeguNaoto 0:b613dc16f27d 167 if(analog_ly>50) {
DeguNaoto 0:b613dc16f27d 168 Move_l(-0.4);
DeguNaoto 0:b613dc16f27d 169 Move_r(0.4);
DeguNaoto 0:b613dc16f27d 170 }
DeguNaoto 0:b613dc16f27d 171 else if(analog_ly<-50) {
DeguNaoto 0:b613dc16f27d 172 Move_l(0.4);
DeguNaoto 0:b613dc16f27d 173 Move_r(-0.4);
DeguNaoto 0:b613dc16f27d 174 }
DeguNaoto 0:b613dc16f27d 175 else {
DeguNaoto 0:b613dc16f27d 176 if(analog_lx>50) {
DeguNaoto 0:b613dc16f27d 177 Move_l(0.6);
DeguNaoto 0:b613dc16f27d 178 Move_r(0.6);
DeguNaoto 0:b613dc16f27d 179 } else if(analog_lx<-50) {
DeguNaoto 0:b613dc16f27d 180 Move_l(-0.6);
DeguNaoto 0:b613dc16f27d 181 Move_r(-0.6);
DeguNaoto 0:b613dc16f27d 182 } else {
DeguNaoto 0:b613dc16f27d 183 Move_l(0.0);
DeguNaoto 0:b613dc16f27d 184 Move_r(0.0);
DeguNaoto 0:b613dc16f27d 185 }
DeguNaoto 0:b613dc16f27d 186 }
DeguNaoto 0:b613dc16f27d 187 #else
DeguNaoto 0:b613dc16f27d 188 if(analog_ly>50) {
DeguNaoto 0:b613dc16f27d 189 Move_l(0.4);
DeguNaoto 0:b613dc16f27d 190 Move_r(-0.4);
DeguNaoto 0:b613dc16f27d 191 }
DeguNaoto 0:b613dc16f27d 192 else if(analog_ly<-50) {
DeguNaoto 0:b613dc16f27d 193 Move_l(-0.4);
DeguNaoto 0:b613dc16f27d 194 Move_r(0.4);
DeguNaoto 0:b613dc16f27d 195 }
DeguNaoto 0:b613dc16f27d 196 else {
DeguNaoto 0:b613dc16f27d 197 if(analog_lx>50) {
DeguNaoto 0:b613dc16f27d 198 Move_l(-0.6);
DeguNaoto 0:b613dc16f27d 199 Move_r(-0.6);
DeguNaoto 0:b613dc16f27d 200 } else if(analog_lx<-50) {
DeguNaoto 0:b613dc16f27d 201 Move_l(0.6);
DeguNaoto 0:b613dc16f27d 202 Move_r(0.6);
DeguNaoto 0:b613dc16f27d 203 } else {
DeguNaoto 0:b613dc16f27d 204 Move_l(0.0);
DeguNaoto 0:b613dc16f27d 205 Move_r(0.0);
DeguNaoto 0:b613dc16f27d 206 }
DeguNaoto 0:b613dc16f27d 207 }
DeguNaoto 0:b613dc16f27d 208 #endif
DeguNaoto 0:b613dc16f27d 209 }
DeguNaoto 0:b613dc16f27d 210 void manualPS3(){
DeguNaoto 0:b613dc16f27d 211 if(circle){ /*mode change*/
DeguNaoto 0:b613dc16f27d 212 if(edge_circle){
DeguNaoto 0:b613dc16f27d 213 edge_circle=0;
DeguNaoto 0:b613dc16f27d 214 autoflag=1;
DeguNaoto 0:b613dc16f27d 215 Indicator4=1;
DeguNaoto 0:b613dc16f27d 216 IndicatorAuto=0;
DeguNaoto 0:b613dc16f27d 217 Move_l(0.0);
DeguNaoto 0:b613dc16f27d 218 Move_r(0.0);
DeguNaoto 0:b613dc16f27d 219 resetState();
DeguNaoto 0:b613dc16f27d 220 flaga=0;
DeguNaoto 0:b613dc16f27d 221 step=114;
DeguNaoto 0:b613dc16f27d 222 CStep=114;
DeguNaoto 0:b613dc16f27d 223 spcount=speed;
DeguNaoto 0:b613dc16f27d 224 }
DeguNaoto 0:b613dc16f27d 225 }
DeguNaoto 0:b613dc16f27d 226 else if(left){
DeguNaoto 0:b613dc16f27d 227 sendData(1,5);
DeguNaoto 0:b613dc16f27d 228 }
DeguNaoto 0:b613dc16f27d 229 else if(right){
DeguNaoto 0:b613dc16f27d 230 sendData(1,4);
DeguNaoto 0:b613dc16f27d 231 }
DeguNaoto 0:b613dc16f27d 232 else if(l1){ /*L up*/
DeguNaoto 0:b613dc16f27d 233 if(edge_l1){
DeguNaoto 0:b613dc16f27d 234 edge_l1=0;
DeguNaoto 0:b613dc16f27d 235 if(stateL!=92) stateL++;
DeguNaoto 0:b613dc16f27d 236 sendData(4,stateL);
DeguNaoto 0:b613dc16f27d 237 }
DeguNaoto 0:b613dc16f27d 238 }
DeguNaoto 0:b613dc16f27d 239 else if(l2){ /*L down*/
DeguNaoto 0:b613dc16f27d 240 if(edge_l2){
DeguNaoto 0:b613dc16f27d 241 edge_l2=0;
DeguNaoto 0:b613dc16f27d 242 if(stateL!=1) stateL--;
DeguNaoto 0:b613dc16f27d 243 sendData(4,stateL);
DeguNaoto 0:b613dc16f27d 244 }
DeguNaoto 0:b613dc16f27d 245 }
DeguNaoto 0:b613dc16f27d 246 else if(r1){ /*R up*/
DeguNaoto 0:b613dc16f27d 247 if(edge_r1){
DeguNaoto 0:b613dc16f27d 248 edge_r1=0;
DeguNaoto 0:b613dc16f27d 249 if(stateR!=92) stateR++;
DeguNaoto 0:b613dc16f27d 250 sendData(5,stateR);
DeguNaoto 0:b613dc16f27d 251 }
DeguNaoto 0:b613dc16f27d 252 }
DeguNaoto 0:b613dc16f27d 253 else if(r2){ /*R down*/
DeguNaoto 0:b613dc16f27d 254 if(edge_r2){
DeguNaoto 0:b613dc16f27d 255 edge_r2=0;
DeguNaoto 0:b613dc16f27d 256 if(stateR!=1) stateR--;
DeguNaoto 0:b613dc16f27d 257 sendData(5,stateR);
DeguNaoto 0:b613dc16f27d 258 }
DeguNaoto 0:b613dc16f27d 259 }
DeguNaoto 0:b613dc16f27d 260 }
DeguNaoto 0:b613dc16f27d 261 #endif
DeguNaoto 0:b613dc16f27d 262 #endif /*manualMode.h*/