Takamasa Terai / Mbed 2 deprecated Daigaku_Robo

Dependencies:   mbed

Committer:
moyashi620
Date:
Wed Oct 29 04:27:02 2014 +0000
Revision:
0:d5bcb9684f1e
Robot_Prog

Who changed what in which revision?

UserRevisionLine numberNew contents of line
moyashi620 0:d5bcb9684f1e 1 #include "mbed.h"
moyashi620 0:d5bcb9684f1e 2
moyashi620 0:d5bcb9684f1e 3 // Machine UP/DOWN (LEFT)
moyashi620 0:d5bcb9684f1e 4 DigitalOut UP_DOWN_1(P0_8); //8
moyashi620 0:d5bcb9684f1e 5 DigitalOut UP_DOWN_2(P1_25); //25
moyashi620 0:d5bcb9684f1e 6
moyashi620 0:d5bcb9684f1e 7 // Belt Combare Rolling (C_LEFT)
moyashi620 0:d5bcb9684f1e 8 DigitalOut BELT_ROLL_1(P0_2); //2
moyashi620 0:d5bcb9684f1e 9 DigitalOut BELT_ROLL_2(P1_24); //24
moyashi620 0:d5bcb9684f1e 10
moyashi620 0:d5bcb9684f1e 11 // Belt Combare Moving (Upper M/C)
moyashi620 0:d5bcb9684f1e 12 DigitalOut BELT_MOVE_1(P0_0);
moyashi620 0:d5bcb9684f1e 13 DigitalOut BELT_MOVE_2(P1_4);
moyashi620 0:d5bcb9684f1e 14
moyashi620 0:d5bcb9684f1e 15 // Machine Move FW/CFW (C_RIGHT / RIGHT)
moyashi620 0:d5bcb9684f1e 16 DigitalOut FW_CFW_1(P1_27);
moyashi620 0:d5bcb9684f1e 17 DigitalOut FW_CFW_2(P1_18);
moyashi620 0:d5bcb9684f1e 18
moyashi620 0:d5bcb9684f1e 19 // Catch Action (Upper M/C)
moyashi620 0:d5bcb9684f1e 20 DigitalOut CATCH_1(P0_10);
moyashi620 0:d5bcb9684f1e 21 DigitalOut CATCH_2(P0_15);
moyashi620 0:d5bcb9684f1e 22
moyashi620 0:d5bcb9684f1e 23 // LED
moyashi620 0:d5bcb9684f1e 24 DigitalOut led1(LED1);
moyashi620 0:d5bcb9684f1e 25 DigitalOut led2(LED2);
moyashi620 0:d5bcb9684f1e 26 DigitalOut led3(LED3);
moyashi620 0:d5bcb9684f1e 27 DigitalOut led4(LED4);
moyashi620 0:d5bcb9684f1e 28 DigitalOut led5(P0_9);
moyashi620 0:d5bcb9684f1e 29
moyashi620 0:d5bcb9684f1e 30 // Sensor Input
moyashi620 0:d5bcb9684f1e 31 AnalogIn Sensor_read(P0_22);
moyashi620 0:d5bcb9684f1e 32
moyashi620 0:d5bcb9684f1e 33 // Switch Input
moyashi620 0:d5bcb9684f1e 34 DigitalIn UP(P0_12);
moyashi620 0:d5bcb9684f1e 35 DigitalIn DOWN(P0_13);
moyashi620 0:d5bcb9684f1e 36 DigitalIn BELT_ROLL_FW(P0_18);
moyashi620 0:d5bcb9684f1e 37 DigitalIn BELT_ROLL_CFW(P0_19);
moyashi620 0:d5bcb9684f1e 38 DigitalIn BELT_MOVE_FW(P0_17);
moyashi620 0:d5bcb9684f1e 39 DigitalIn BELT_MOVE_CFW(P1_17);
moyashi620 0:d5bcb9684f1e 40 DigitalIn FW(P0_16);
moyashi620 0:d5bcb9684f1e 41 DigitalIn CFW(P0_14);
moyashi620 0:d5bcb9684f1e 42
moyashi620 0:d5bcb9684f1e 43 Ticker wari;
moyashi620 0:d5bcb9684f1e 44 Ticker moto;
moyashi620 0:d5bcb9684f1e 45
moyashi620 0:d5bcb9684f1e 46 char flag = 1;
moyashi620 0:d5bcb9684f1e 47 unsigned char times = 0;
moyashi620 0:d5bcb9684f1e 48
moyashi620 0:d5bcb9684f1e 49 void stop(){ // Interrupt Routine
moyashi620 0:d5bcb9684f1e 50 float sens = Sensor_read;
moyashi620 0:d5bcb9684f1e 51 flag = 1;
moyashi620 0:d5bcb9684f1e 52 if(sens > 0.6){
moyashi620 0:d5bcb9684f1e 53 UP_DOWN_1 = 1;
moyashi620 0:d5bcb9684f1e 54 UP_DOWN_2 = 1;
moyashi620 0:d5bcb9684f1e 55 led1 = 0;
moyashi620 0:d5bcb9684f1e 56 flag = 0;
moyashi620 0:d5bcb9684f1e 57 }
moyashi620 0:d5bcb9684f1e 58 }
moyashi620 0:d5bcb9684f1e 59
moyashi620 0:d5bcb9684f1e 60 void rev(){
moyashi620 0:d5bcb9684f1e 61 BELT_ROLL_1 = 0;
moyashi620 0:d5bcb9684f1e 62 BELT_ROLL_2 = 1;
moyashi620 0:d5bcb9684f1e 63 led5 = 1;
moyashi620 0:d5bcb9684f1e 64 }
moyashi620 0:d5bcb9684f1e 65
moyashi620 0:d5bcb9684f1e 66 void matsu(){
moyashi620 0:d5bcb9684f1e 67 times++;
moyashi620 0:d5bcb9684f1e 68 }
moyashi620 0:d5bcb9684f1e 69
moyashi620 0:d5bcb9684f1e 70
moyashi620 0:d5bcb9684f1e 71 void jikan_1(){
moyashi620 0:d5bcb9684f1e 72 FW_CFW_2 = 0;
moyashi620 0:d5bcb9684f1e 73 FW_CFW_1 = 1;
moyashi620 0:d5bcb9684f1e 74 led2 = 1;
moyashi620 0:d5bcb9684f1e 75 wait(0.0003);
moyashi620 0:d5bcb9684f1e 76
moyashi620 0:d5bcb9684f1e 77 FW_CFW_1 = 0;
moyashi620 0:d5bcb9684f1e 78 wait(0.001);
moyashi620 0:d5bcb9684f1e 79 }
moyashi620 0:d5bcb9684f1e 80
moyashi620 0:d5bcb9684f1e 81 void jikan_2(){
moyashi620 0:d5bcb9684f1e 82 FW_CFW_2 = 1;
moyashi620 0:d5bcb9684f1e 83 FW_CFW_1 = 0;
moyashi620 0:d5bcb9684f1e 84 led2 = 1;
moyashi620 0:d5bcb9684f1e 85 wait(0.0003);
moyashi620 0:d5bcb9684f1e 86 FW_CFW_2 = 0;
moyashi620 0:d5bcb9684f1e 87 wait(0.001);
moyashi620 0:d5bcb9684f1e 88 }
moyashi620 0:d5bcb9684f1e 89
moyashi620 0:d5bcb9684f1e 90 int main() {
moyashi620 0:d5bcb9684f1e 91 wari.attach_us(&stop,100000);
moyashi620 0:d5bcb9684f1e 92 moto.attach(&matsu,1);
moyashi620 0:d5bcb9684f1e 93
moyashi620 0:d5bcb9684f1e 94 // rolling
moyashi620 0:d5bcb9684f1e 95 BELT_ROLL_1 = 1;
moyashi620 0:d5bcb9684f1e 96 BELT_ROLL_2 = 0;
moyashi620 0:d5bcb9684f1e 97
moyashi620 0:d5bcb9684f1e 98 while(1){
moyashi620 0:d5bcb9684f1e 99 if(times == 10){
moyashi620 0:d5bcb9684f1e 100 rev();
moyashi620 0:d5bcb9684f1e 101 }else if(times > 11){
moyashi620 0:d5bcb9684f1e 102 BELT_ROLL_1 = 1;
moyashi620 0:d5bcb9684f1e 103 BELT_ROLL_2 = 0;
moyashi620 0:d5bcb9684f1e 104 led5 = 0;
moyashi620 0:d5bcb9684f1e 105 times = 0;
moyashi620 0:d5bcb9684f1e 106 }
moyashi620 0:d5bcb9684f1e 107 if(flag == 1){
moyashi620 0:d5bcb9684f1e 108 if(UP == 0 && DOWN == 1){
moyashi620 0:d5bcb9684f1e 109 UP_DOWN_1 = 1;
moyashi620 0:d5bcb9684f1e 110 UP_DOWN_2 = 0;
moyashi620 0:d5bcb9684f1e 111 led1 = 1;
moyashi620 0:d5bcb9684f1e 112 }
moyashi620 0:d5bcb9684f1e 113 }
moyashi620 0:d5bcb9684f1e 114
moyashi620 0:d5bcb9684f1e 115 if(UP == 1 && DOWN == 0){
moyashi620 0:d5bcb9684f1e 116 UP_DOWN_1 = 0;
moyashi620 0:d5bcb9684f1e 117 UP_DOWN_2 = 1;
moyashi620 0:d5bcb9684f1e 118 led1 = 1;
moyashi620 0:d5bcb9684f1e 119 }else if(UP == 0 && DOWN == 0){
moyashi620 0:d5bcb9684f1e 120 UP_DOWN_1 = 1;
moyashi620 0:d5bcb9684f1e 121 UP_DOWN_2 = 1;
moyashi620 0:d5bcb9684f1e 122 led1 = 0;
moyashi620 0:d5bcb9684f1e 123 }
moyashi620 0:d5bcb9684f1e 124
moyashi620 0:d5bcb9684f1e 125 if(FW == 1 && CFW == 0){
moyashi620 0:d5bcb9684f1e 126 jikan_1();
moyashi620 0:d5bcb9684f1e 127 }else if(FW == 0 && CFW == 1){
moyashi620 0:d5bcb9684f1e 128 jikan_2();
moyashi620 0:d5bcb9684f1e 129 }else if(FW == 0 && CFW == 0){
moyashi620 0:d5bcb9684f1e 130 FW_CFW_1 = 0;
moyashi620 0:d5bcb9684f1e 131 FW_CFW_2 = 0;
moyashi620 0:d5bcb9684f1e 132 led2 = 0;
moyashi620 0:d5bcb9684f1e 133 }
moyashi620 0:d5bcb9684f1e 134
moyashi620 0:d5bcb9684f1e 135 if(BELT_ROLL_FW == 1 && BELT_ROLL_CFW == 0){
moyashi620 0:d5bcb9684f1e 136 CATCH_1 = 1;
moyashi620 0:d5bcb9684f1e 137 CATCH_2 = 0;
moyashi620 0:d5bcb9684f1e 138 led4 = 1;
moyashi620 0:d5bcb9684f1e 139 }else if(BELT_ROLL_FW == 0 && BELT_ROLL_CFW == 1){
moyashi620 0:d5bcb9684f1e 140 CATCH_1 = 0;
moyashi620 0:d5bcb9684f1e 141 CATCH_2 = 1;
moyashi620 0:d5bcb9684f1e 142 led4 = 1;
moyashi620 0:d5bcb9684f1e 143 }else if(BELT_ROLL_FW == 0 && BELT_ROLL_CFW == 0){
moyashi620 0:d5bcb9684f1e 144 CATCH_1 = 1;
moyashi620 0:d5bcb9684f1e 145 CATCH_2 = 1;
moyashi620 0:d5bcb9684f1e 146 led4 = 0;
moyashi620 0:d5bcb9684f1e 147 }
moyashi620 0:d5bcb9684f1e 148
moyashi620 0:d5bcb9684f1e 149 if(BELT_MOVE_FW == 1 && BELT_MOVE_CFW == 0){
moyashi620 0:d5bcb9684f1e 150 BELT_MOVE_1 = 1;
moyashi620 0:d5bcb9684f1e 151 BELT_MOVE_2 = 0;
moyashi620 0:d5bcb9684f1e 152 led3 = 1;
moyashi620 0:d5bcb9684f1e 153 }else if(BELT_MOVE_FW == 0 && BELT_MOVE_CFW == 1){
moyashi620 0:d5bcb9684f1e 154 BELT_MOVE_1 = 0;
moyashi620 0:d5bcb9684f1e 155 BELT_MOVE_2 = 1;
moyashi620 0:d5bcb9684f1e 156 led3 = 1;
moyashi620 0:d5bcb9684f1e 157 }else if(BELT_MOVE_FW == 0 && BELT_MOVE_CFW == 0){
moyashi620 0:d5bcb9684f1e 158 BELT_MOVE_1 = 1;
moyashi620 0:d5bcb9684f1e 159 BELT_MOVE_2 = 1;
moyashi620 0:d5bcb9684f1e 160 led3 = 0;
moyashi620 0:d5bcb9684f1e 161 }
moyashi620 0:d5bcb9684f1e 162 }
moyashi620 0:d5bcb9684f1e 163 }