Skip to content

Commit 287f05a

Browse files
authored
Merge pull request #4 from arduino-libraries/position
Position Control
2 parents 74983de + ae4d0d2 commit 287f05a

File tree

6 files changed

+257
-148
lines changed

6 files changed

+257
-148
lines changed

examples/position/position.ino

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,66 +9,75 @@
99
1010
*/
1111

12-
// WIP
1312

1413
#include "Arduino_AlvikCarrier.h"
1514

1615
Arduino_AlvikCarrier alvik;
1716

18-
PidController pid(1.2,0,1.0,20,50);
19-
20-
2117
unsigned long tmotor=0;
2218
unsigned long ttask=0;
2319
uint8_t task=0;
2420
float reference;
25-
float position;
26-
float error;
2721

2822
void setup() {
2923
Serial.begin(115200);
3024
alvik.begin();
31-
ttask=millis();
32-
tmotor=millis();
33-
task=0;
34-
reference=0;
35-
position=0;
36-
error=0;
25+
task = 0;
26+
reference = 0;
27+
ttask = millis();
28+
tmotor = millis();
3729
}
3830

3931
void loop() {
4032
if (millis()-tmotor>20){
41-
tmotor=millis();
33+
tmotor = millis();
4234
alvik.updateMotors();
43-
position=alvik.motor_control_left->getTravel()*360.0;
44-
pid.update(position);
45-
alvik.motor_control_left->setRPM(pid.getControlOutput());
4635
Serial.print(reference);
4736
Serial.print("\t");
48-
Serial.println(position);
37+
Serial.print(alvik.getPositionLeft());
38+
Serial.print("\n");
4939
}
5040

5141
if (millis()-ttask>5000){
52-
ttask=millis();
42+
ttask = millis();
5343
switch (task){
5444
case 0:
55-
reference=90;
45+
reference = 90;
5646
break;
5747
case 1:
58-
reference=0;
48+
reference = 0;
5949
break;
6050
case 2:
61-
reference=-90;
51+
reference = -90;
6252
break;
6353
case 3:
64-
reference=0;
54+
reference = 0;
55+
break;
56+
case 4:
57+
reference = 360;
58+
break;
59+
case 5:
60+
reference = 45;
61+
break;
62+
case 6:
63+
reference = -270;
64+
break;
65+
case 7:
66+
reference = 0;
67+
break;
68+
case 8:
69+
reference = 5;
70+
break;
71+
case 9:
72+
reference = 10;
6573
break;
6674
}
67-
pid.setReference(reference);
75+
alvik.setPositionLeft(reference);
6876
task++;
69-
if (task>3){
70-
task=0;
77+
if (task>9){
78+
task = 0;
7179
}
7280
}
7381

7482
}
83+

0 commit comments

Comments
 (0)