Skip to content

Commit bab02c2

Browse files
committed
add switch between states (SHOULDER, ELBOW, WRIST) using enter button
1 parent d4cf872 commit bab02c2

File tree

1 file changed

+44
-29
lines changed

1 file changed

+44
-29
lines changed

examples/Controlling_Manually_Braccio/Controlling_Manually_Braccio.ino

Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#define COLOR_YELLOW 0xE5AD24
99

1010
// Variables
11-
String selectedJoints;
1211
float homePos[6] = {157.5, 157.5, 157.5, 157.5, 157.5, 90.0};
1312
float angles[6]; // All motors current angles
1413

@@ -21,6 +20,16 @@ auto shoulder = Braccio.get(5);
2120
auto base = Braccio.get(6);
2221

2322
String jointsPair[] = {"Shoulder", "Elbow", "Wrist"};
23+
String selectedJoints = "Shoulder";
24+
25+
enum states {
26+
SHOULDER,
27+
ELBOW,
28+
WRIST
29+
};
30+
31+
int state = SHOULDER;
32+
2433

2534
static const char * btnm_map[] = {"Shoulder", "\n",
2635
"Elbow", "\n",
@@ -38,32 +47,35 @@ lv_obj_t * directional; // Direction button matrix
3847

3948
// Function
4049
void moveJoints(uint32_t btnID) {
41-
if (selectedJoints == "Shoulder") {
42-
switch (btnID) {
43-
case 4: shoulder.move().to(angles[4] - 10.0); break;
44-
case 1: base.move().to(angles[5] - 10.0); break;
45-
case 2: base.move().to(angles[5] + 10.0); break;
46-
case 5: shoulder.move().to(angles[4] + 10.0); break;
47-
default: break;
48-
}
49-
}
50+
switch (state) {
51+
case SHOULDER:
52+
switch (btnID) {
53+
case 4: shoulder.move().to(angles[4] - 10.0); break;
54+
case 1: base.move().to(angles[5] - 10.0); break;
55+
case 2: base.move().to(angles[5] + 10.0); break;
56+
case 5: shoulder.move().to(angles[4] + 10.0); break;
57+
default: break;
58+
}
59+
break;
60+
case ELBOW:
61+
switch (btnID) {
62+
case 4: elbow.move().to(angles[3] - 10.0); break;
63+
case 5: elbow.move().to(angles[3] + 10.0); break;
64+
default: break;
65+
}
66+
break;
67+
case WRIST:
68+
switch (btnID) {
69+
case 4: wristPitch.move().to(angles[2] - 10.0); break;
70+
case 1: wristRoll.move().to(angles[1] - 10.0); break;
71+
case 2: wristRoll.move().to(angles[1] + 10.0); break;
72+
case 5: wristPitch.move().to(angles[2] + 10.0); break;
73+
default: break;
74+
}
75+
break;
76+
default:
77+
break;
5078

51-
if (selectedJoints == "Elbow") {
52-
switch (btnID) {
53-
case 4: elbow.move().to(angles[3] - 10.0); break;
54-
case 5: elbow.move().to(angles[3] + 10.0); break;
55-
default: break;
56-
}
57-
}
58-
59-
if (selectedJoints == "Wrist") {
60-
switch (btnID) {
61-
case 4: wristPitch.move().to(angles[2] - 10.0); break;
62-
case 1: wristRoll.move().to(angles[1] - 10.0); break;
63-
case 2: wristRoll.move().to(angles[1] + 10.0); break;
64-
case 5: wristPitch.move().to(angles[2] + 10.0); break;
65-
default: break;
66-
}
6779
}
6880
}
6981

@@ -89,8 +101,12 @@ static void eventHandlerDirectional(lv_event_t * e) {
89101
moveJoints(pressed_key);
90102

91103
if (pressed_key == BUTTON_ENTER) {
92-
mainMenu(); // Load motor menu screen
93-
lv_obj_del(directional); // Delete the object
104+
//mainMenu(); // Load motor menu screen
105+
//lv_obj_del(directional); // Delete the object
106+
state++;
107+
if (state > WRIST) {
108+
state = SHOULDER; // restart from the shoulder
109+
}
94110
}
95111
}
96112
}
@@ -184,5 +200,4 @@ void setup() {
184200
}
185201

186202
void loop() {
187-
188203
}

0 commit comments

Comments
 (0)