-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathLand_Explorer(Mbed)
131 lines (111 loc) · 2.21 KB
/
Land_Explorer(Mbed)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include "mbed.h" //This file is for Gamepad Controlling
DigitalIn MoveIn1(p9); // Motor input,Move1 is the most significant digit
DigitalIn MoveIn2(p8);
DigitalIn MoveIn3(p7);
PwmOut Motor_1(p21); //Motor Output
PwmOut Motor_2(p22);
PwmOut Motor_3(p23);
PwmOut Motor_4(p24);
DigitalOut ENpin(p28);
PwmOut steer(p25); //Steer for camera
InterruptIn UP(p5);
InterruptIn DOWN(p6);
float i=0.6;
float step=0.02;
int MOVE;
void MovingF(){ //*****Control motor.Zero state added to avoid current overload
Motor_2=0;
Motor_1=0;
Motor_3=0;
Motor_4=0;
Motor_2=0.6;
Motor_1=0;
Motor_3=0.6;
Motor_4=0;
}
void MovingTL(){
Motor_2=0;
Motor_1=0;
Motor_3=0;
Motor_4=0;
Motor_2=0;
Motor_1=0.1;
Motor_3=0.6;
Motor_4=0;
}
void MovingTR(){
Motor_2=0;
Motor_1=0;
Motor_3=0;
Motor_4=0;
Motor_2=0.6;
Motor_1=0;
Motor_3=0;
Motor_4=0.1;
}
void MovingB(){
Motor_2=0;
Motor_1=0;
Motor_3=0;
Motor_4=0;
Motor_2=0;
Motor_1=0.4;
Motor_3=0;
Motor_4=0.4;
}
void MovingL(){
Motor_2=0;
Motor_1=0;
Motor_3=0;
Motor_4=0;
Motor_2=0;
Motor_1=0.5;
Motor_3=0.7;
Motor_4=0;
}
void MovingR(){
Motor_2=0;
Motor_1=0;
Motor_3=0;
Motor_4=0;
Motor_2=0.7;
Motor_1=0;
Motor_3=0;
Motor_4=0.5;
}
void MovingS(){
Motor_2=0;
Motor_1=0;
Motor_3=0;
Motor_4=0;
}
void up(){
i+=step;
if(i>1)
i=1;
}
void down(){
i-=step;
if(i<0.3)
i=0.3;
}
int main() {
steer.period_ms(2.5);
UP.rise(&up);
DOWN.rise(&down);
while(1){
steer=i;
MOVE=4*MoveIn1+2*MoveIn2+1*MoveIn3;
switch(MOVE){
case 0:MovingS();break;
case 1:MovingR();break;
case 2:MovingB();break;
case 3:MovingTR();break;
case 4:MovingL();break;
case 6:MovingTL();break;
case 7:MovingF();break;
default:break;
}
wait(0.05);
}
}