Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main_ps3.cpp
- Committer:
- DeguNaoto
- Date:
- 2015-11-07
- Revision:
- 23:26f9483439fe
- Parent:
- 21:bdf8ac5c200c
- Child:
- 24:6d2573d6f2b6
File content as of revision 23:26f9483439fe:
/** * This program is written in main micro computer "mbed" for 2015 NHK Robot Contest (Bteam). */ /***コース選択***/ #define BLUE //#define RED /***マシン状態計測***/ //#define MESURE #if defined(BLUE) && defined(RED) #error Caution, You should define either BLUE or RED #endif #ifdef MESURE #include "mbed.h" short mesureflag=0; LocalFileSystem local("local") short testflag=0; FILE *fp_r = fopen("/local/velocity.dat", "w"); #endif /*#include "mbed.h" LocalFileSystem local("local"); FILE *fp_r = fopen("/local/velocity.dat", "w");*/ #include "machine_ps3.h" #define deff 70.0 Serial pc(USBTX, USBRX); int main() { Com.attach(&Call,RATE); initializeMotors(); initializeControllers(); initializeRS485(); initializeMbedSerial(); #ifdef BLUE sita=PI/4.0,targ_sita=PI/4.0; IndicatorBLUE = 1; #else sita=-PI/4.0,targ_sita=-PI/4.0; IndicatorRED = 1; #endif Indicator4=1; Enable=1; wait(0.3); sendData(7,0); while(1) { if(autoflag){ autoIM920(); /*IM920 button*/ /********************************Nomal Mode*********************************/ if((step==0)&&((8600.0>x)&&(x>800.0))) { targ_sita=-0.02; // targ_sita=0.0; step=1; } // if((step==1)&&(x>8600.0+deff)) { if((step==1)&&(x>8600.0)) { targ_velocity=0.0; direction_controller.setBias(0.0); direction_controller.reset(); velocity_controller.setBias(0.0); velocity_controller.reset(); step=2; } if((step==2)&&((velocity<500.0)&&(velocity>-500.0))){ step=3; spcount=0.0; flagf=0; // targ_sita=0.1; targ_sita=0.0; } // if((step==3)&&(x<2000.0)) { if((step==3)&&(x<1400.0)) { targ_sita=PI/4; step=4; } if((step==4)&&(x<600.0)) { targ_velocity=0.0; step=114; } /***Cylinder***/ if((x>3130.0+deff)&&(CStep==1)) { // if((x>2030.0+deff)&&(CStep==1)) { if(!skip) sendData(1,1); CStep=2; } if((x>5900.0+deff)&&(CStep==2)) { if(!skip) sendData(1,3); CStep=3; } if((x>7680.0+deff)&&(CStep==3)) { if(!skip) sendData(1,2); CStep=4; } if((x<6580.0+deff)&&(CStep==4)) { if(!skip) sendData(1,5); CStep=5; } if((x<6100.0+deff)&&(CStep==5)) { if(!skip) sendData(1,4); CStep=6; } if((x<4000.0)&&(CStep==6)){ sendData(7,0); CStep=114; } } else if(!autoflag) { flaga=0; mesureSwing(); manualMoveIM920(); /*analogStick*/ manualIM920(); /*IM920 button*/ } /***update state***/ pc.printf("x:%f ,y:%f ,sita:%f ,r:%f\r\n",x,y,sita,Pulses_move_r); // pc.printf("a2:%d ,b:%d ,X:%d ,Y:%d\r\n",a2,b,X,Y); // wait(RATE); } }