a
Dependencies: MotorDriver_SU mbed
Fork of tracer1106 by
Diff: tracer.cpp
- Revision:
- 5:477e7d629ea8
- Parent:
- 4:309fe4076d74
--- a/tracer.cpp Fri Nov 07 07:00:02 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -#include "mbed.h" -#include "MotorDriver_SU.h" - -DigitalIn sw(P0_1, PullUp); -// trace L to R -DigitalIn sensor1(P0_16); -DigitalIn sensor2(P0_13); -DigitalIn sensor3(P0_11); -// lift L to R -DigitalIn sensor4(P0_12); -DigitalIn sensor5(P0_14); - -MotorDriver_SU motor(MOTOR_DOUBLE); -MotorDriver_SU lift(MOTOR_SINGLE); - -int main(){ - while(1){ - int height = 0;//リフト位置指定 - while(sw == 0){ - motor.Drive(0, STOP, 0); //右タイヤ - motor.Drive(1, STOP, 0);//左タイヤ - lift.Drive(0, STOP, 0); - } - while(sw == 1){ - //patern1 - if(sensor1 == 1 && sensor2 == 1 && sensor3 == 0){ - motor.Drive(0, CW, 0); //右タイヤ - motor.Drive(1, CW, 2000);//左タイヤ - lift.Drive(0, STOP, 0); - } - //patern2 - else if(sensor1 == 1 && sensor2 == 0 && sensor3 == 1){ - motor.Drive(0, CW, 1000); - motor.Drive(1, CW, 1000); - lift.Drive(0, STOP, 0); - } - //patern3 - else if(sensor1 == 0 && sensor2 == 1 && sensor3 == 1){ - motor.Drive(0, CW, 2000); - motor.Drive(1, CW, 0); - lift.Drive(0, STOP, 0); - } - //patern4 - else if(sensor1 == 0 && sensor2 == 0 && sensor3 == 1){ - motor.Drive(0, CW, 0); - motor.Drive(1, CW, 1500); - lift.Drive(0, STOP, 0); - } - //patern5 - else if(sensor1 == 1 && sensor2 == 0 && sensor3 == 0){ - motor.Drive(0, CW, 1500); - motor.Drive(1, CW, 0); - lift.Drive(0, STOP, 0); - } - //patern6 - else if(sensor1 == 0 && sensor2 == 0 && sensor3 == 0){ - motor.Drive(0, CW, 1000); - motor.Drive(1, CW, 1000); - lift.Drive(0, STOP, 0); - } - - //patern7 - else if(sensor1 == 0 && sensor2 == 1 && sensor3 == 0){ - motor.Drive(0, CW, 1000); - motor.Drive(1, CW, 1000); - lift.Drive(0, STOP, 0); - } - - //patern8 探索回転方向 - //ラインの右側に出た場合 反時計回り - /*else if(sensor1 == 1 && sensor2 == 1 && sensor3 == 1){ - motor.Drive(0, CW, 2048); - motor.Drive(1, STOP, 0); - lift.Drive(0, STOP, 0); - }*/ - //ラインの左側に出た場合 時計回り - else if(sensor1 == 1 && sensor2 == 1 && sensor3 == 1 ){ - motor.Drive(0, STOP, 0); - motor.Drive(1, CW, 1500); - lift.Drive(0, STOP, 0); - } - - //リフト判定 - else if(sensor4 == 0 && sensor5 == 0 ){ - if(height == 0){ - //ストップ - motor.Drive(0, STOP, 0); - motor.Drive(1, STOP, 0); - - lift.Drive(0, CW, 4000); //リフトアップ - wait(1); - lift.Drive(0, STOP, 0); - wait(0.2); - //再スタート - motor.Drive(0, CW, 1000); - motor.Drive(1, CW, 1000); - wait(0.2); - height = 1;//lift位置 - } - else if(height == 1){ - motor.Drive(0, STOP, 0); - motor.Drive(1, STOP, 0); - - lift.Drive(0, CCW, 2000);//リフトダウン - wait(1); - lift.Drive(0, STOP, 0); - motor.Drive(0, CCW, 4000); - motor.Drive(1, CCW, 4000); - wait(3); - } - } - else{ - motor.Drive(0, CW, 500); - motor.Drive(1, CW, 500); - lift.Drive(0, STOP, 0); - } - } - } -} -