@@ -55,6 +55,7 @@ class MotorControl{
55
55
56
56
float controller_period;
57
57
float conversion_factor;
58
+ float conversion_factor_travel;
58
59
float measure;
59
60
float last_measure;
60
61
@@ -104,7 +105,8 @@ class MotorControl{
104
105
id_memory=0 ;
105
106
mean=0.0 ;
106
107
107
- conversion_factor = 60.0 *(1 /MOTOR_RATIO)/(controller_period);
108
+ conversion_factor_travel = (1.0 /MOTOR_RATIO);
109
+ conversion_factor = 60.0 *(1.0 /MOTOR_RATIO)/(controller_period);
108
110
vel_pid = new PidController (kp,ki,kd,controller_period,CONTROL_LIMIT);
109
111
}
110
112
@@ -115,16 +117,6 @@ class MotorControl{
115
117
vel_pid->reset ();
116
118
clearMemory ();
117
119
}
118
- /*
119
- bool setRPM(const float ref){
120
- if ((ref<MOTOR_LIMIT)&&(ref>-MOTOR_LIMIT)){
121
- reference = ref;
122
- vel_pid->setReference(reference);
123
- return true;
124
- }
125
- return false;
126
- }
127
- */
128
120
129
121
float checkLimits (float value){
130
122
if (value>CONTROL_LIMIT){
@@ -163,14 +155,6 @@ class MotorControl{
163
155
}
164
156
165
157
166
- void test (){
167
- motor->setSpeed (2000 );
168
- delay (1000 );
169
- motor->setSpeed (-2000 );
170
- delay (1000 );
171
- }
172
-
173
-
174
158
/*
175
159
void update(){
176
160
measure = encoder->getCount();
@@ -240,6 +224,7 @@ class MotorControl{
240
224
241
225
measure = encoder->getCount ();
242
226
encoder->reset ();
227
+ travel += measure*conversion_factor_travel;
243
228
measure = measure*conversion_factor;
244
229
245
230
/* experimental
@@ -248,7 +233,6 @@ class MotorControl{
248
233
}
249
234
end */
250
235
251
-
252
236
addMemory (measure);
253
237
254
238
/*
@@ -257,23 +241,13 @@ class MotorControl{
257
241
motor->setSpeed(0);
258
242
clearMemory();
259
243
}
260
-
261
244
*/
262
245
263
-
264
246
measure = meanMemory ();
265
247
266
- /*
267
- measure = encoder->getCount();
268
- encoder->reset();
269
- measure = measure*conversion_factor;
270
- */
271
-
272
-
273
248
// vel_pid->update(measure);
274
249
// motor->setSpeed(vel_pid->getControlOutput());
275
250
276
-
277
251
if (control_mode==CONTROL_MODE_LINEAR){
278
252
if (step_index<iterations){
279
253
step_index++;
@@ -289,7 +263,6 @@ class MotorControl{
289
263
vel_pid->setReference (reference);
290
264
}
291
265
292
-
293
266
vel_pid->update (measure);
294
267
motor->setSpeed (vel_pid->getControlOutput ());
295
268
}
@@ -326,6 +299,14 @@ class MotorControl{
326
299
vel_pid->reset ();
327
300
}
328
301
302
+ void resetTravel (){
303
+ travel=0 ;
304
+ }
305
+
306
+ float getTravel (){
307
+ return travel;
308
+ }
309
+
329
310
330
311
};
331
312
0 commit comments