8
8
#define COLOR_YELLOW 0xE5AD24
9
9
10
10
// Variables
11
- String selectedJoints;
12
11
float homePos[6 ] = {157.5 , 157.5 , 157.5 , 157.5 , 157.5 , 90.0 };
13
12
float angles[6 ]; // All motors current angles
14
13
@@ -21,6 +20,16 @@ auto shoulder = Braccio.get(5);
21
20
auto base = Braccio.get(6 );
22
21
23
22
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
+
24
33
25
34
static const char * btnm_map[] = {" Shoulder" , " \n " ,
26
35
" Elbow" , " \n " ,
@@ -38,32 +47,35 @@ lv_obj_t * directional; // Direction button matrix
38
47
39
48
// Function
40
49
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 ;
50
78
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
- }
67
79
}
68
80
}
69
81
@@ -89,8 +101,12 @@ static void eventHandlerDirectional(lv_event_t * e) {
89
101
moveJoints (pressed_key);
90
102
91
103
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
+ }
94
110
}
95
111
}
96
112
}
@@ -184,5 +200,4 @@ void setup() {
184
200
}
185
201
186
202
void loop () {
187
-
188
203
}
0 commit comments