Skip to content

Commit 109f41f

Browse files
committed
update kinematics example
1 parent 2a5b9af commit 109f41f

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

examples/kinematics/kinematics.ino

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,24 @@
99
1010
*/
1111

12-
// WIP
12+
// This example shows how to implement kinematics commands and retrieve odometry data from Arduino_AlvikCarrier class
1313

1414
#include "Arduino_AlvikCarrier.h"
1515

1616
Arduino_AlvikCarrier alvik;
1717

1818
unsigned long tmotor=0;
1919
unsigned long ttask=0;
20+
unsigned long tled=0;
2021
uint8_t task=0;
22+
bool led_value = false;
2123

2224
void setup() {
2325
Serial.begin(115200);
2426
alvik.begin();
2527
ttask=millis();
2628
tmotor=millis();
29+
tled=millis();
2730
task=0;
2831
}
2932

@@ -33,19 +36,19 @@ void loop() {
3336
alvik.updateMotors();
3437
alvik.updateKinematics();
3538
Serial.print("\t");
36-
Serial.print(alvik.kinematics->getLinearVelocity());
39+
Serial.print(alvik.getLinearVelocity());
3740
Serial.print("\t");
38-
Serial.print(alvik.kinematics->getAngularVelocity());
41+
Serial.print(alvik.getAngularVelocity());
3942
Serial.print("\t");
40-
Serial.print(alvik.kinematics->getX());
43+
Serial.print(alvik.getX());
4144
Serial.print("\t");
42-
Serial.print(alvik.kinematics->getY());
45+
Serial.print(alvik.getY());
4346
Serial.print("\t");
44-
Serial.print(alvik.kinematics->getTheta());
47+
Serial.print(alvik.getTheta());
4548
Serial.print("\n");
4649
}
4750

48-
if (millis()-ttask>5000){
51+
if ((millis()-ttask>5000)||alvik.isTargetReached()){
4952
ttask=millis();
5053
switch (task){
5154
case 0:
@@ -56,7 +59,7 @@ void loop() {
5659
alvik.drive(0,0);
5760
break;
5861
case 2:
59-
alvik.rotate(-90);
62+
alvik.move(100);
6063
break;
6164
case 3:
6265
alvik.disableKinematicsMovement();
@@ -68,4 +71,17 @@ void loop() {
6871
task=0;
6972
}
7073
}
74+
75+
if (millis()-tled>200){
76+
tled=millis();
77+
led_value=!led_value;
78+
if (task==1){
79+
alvik.setLedLeftGreen(false);
80+
alvik.setLedLeftRed(led_value);
81+
}
82+
if (task==3){
83+
alvik.setLedLeftRed(false);
84+
alvik.setLedLeftGreen(led_value);
85+
}
86+
}
7187
}

0 commit comments

Comments
 (0)