19
19
* TYPEDEF
20
20
**************************************************************************************/
21
21
22
- enum states {
23
- SHOULDER,
24
- ELBOW,
25
- WRIST,
26
- PINCH
27
- };
28
-
29
- // Values of clicked input keys returned by Braccio.getKey() function (defined inside the library).
30
- enum KEYS
31
- {
32
- UP = 4 ,
33
- DOWN = 5 ,
34
- LEFT = 1 ,
35
- RIGHT = 2 ,
36
- CLICK = 3 , // click of joystick
37
- ENTER = 6 ,
38
- };
39
-
40
22
// IDs of the displayed directional UI buttons
41
23
enum BUTTONS {
42
24
BTN_UP = 1 ,
@@ -54,129 +36,13 @@ static const char *direction_btnm_map[] = {" ", LV_SYMBOL_UP, " ", "\n",
54
36
**************************************************************************************/
55
37
56
38
// Variables
57
- float homePos[6 ] = {157.5 , 157.5 , 157.5 , 157.5 , 157.5 , 190.0 };
58
- float angles[6 ]; // All motors current angles
59
-
60
- // Braccio ++ joints
61
- auto gripper = Braccio.get(1 );
62
- auto wristRoll = Braccio.get(2 );
63
- auto wristPitch = Braccio.get(3 );
64
- auto elbow = Braccio.get(4 );
65
- auto shoulder = Braccio.get(5 );
66
- auto base = Braccio.get(6 );
67
-
68
- char * jointsPair[] = {" Shoulder" , " Elbow" , " Wrist" , " Pinch" };
69
-
70
- int state = SHOULDER;
39
+ static float const HOME_POS[6 ] = {157.5 , 157.5 , 157.5 , 157.5 , 157.5 , 90.0 };
71
40
72
41
lv_obj_t * direction_btnm; // Direction button matrix
73
42
lv_obj_t * label; // Label
74
43
75
44
ManualControlApp app;
76
45
77
- // Function
78
- void moveJoints (uint32_t btnID) {
79
- switch (state) {
80
- case SHOULDER:
81
- switch (btnID) {
82
- case 4 : shoulder.move ().to (angles[4 ] - 10.0 ); break ;
83
- case 1 : base.move ().to (angles[5 ] - 10.0 ); break ;
84
- case 2 : base.move ().to (angles[5 ] + 10.0 ); break ;
85
- case 5 : shoulder.move ().to (angles[4 ] + 10.0 ); break ;
86
- default : break ;
87
- }
88
- break ;
89
- case ELBOW:
90
- switch (btnID) {
91
- case 4 : elbow.move ().to (angles[3 ] - 10.0 ); break ;
92
- case 5 : elbow.move ().to (angles[3 ] + 10.0 ); break ;
93
- default : break ;
94
- }
95
- break ;
96
- case WRIST:
97
- switch (btnID) {
98
- case 4 : wristPitch.move ().to (angles[2 ] - 10.0 ); break ;
99
- case 1 : wristRoll.move ().to (angles[1 ] - 10.0 ); break ;
100
- case 2 : wristRoll.move ().to (angles[1 ] + 10.0 ); break ;
101
- case 5 : wristPitch.move ().to (angles[2 ] + 10.0 ); break ;
102
- default : break ;
103
- }
104
- break ;
105
- case PINCH:
106
- switch (btnID) {
107
- case 1 : gripper.move ().to (angles[0 ] + 10.0 ); break ;
108
- case 2 : gripper.move ().to (angles[0 ] - 10.0 ); break ;
109
- default : break ;
110
- }
111
- default :
112
- break ;
113
- }
114
- }
115
-
116
- void updateButtons (uint32_t key)
117
- {
118
- if (key == UP){
119
- Braccio.lvgl_lock ();
120
- lv_btnmatrix_set_selected_btn (direction_btnm, BTN_UP);
121
- lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_CHECKED);
122
- Braccio.lvgl_unlock ();
123
- }
124
- else if (key == DOWN){
125
- Braccio.lvgl_lock ();
126
- lv_btnmatrix_set_selected_btn (direction_btnm, BTN_DOWN);
127
- lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_CHECKED);
128
- Braccio.lvgl_unlock ();
129
- }
130
- else if (key == LEFT) {
131
- Braccio.lvgl_lock ();
132
- lv_btnmatrix_set_selected_btn (direction_btnm, BTN_LEFT);
133
- lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_CHECKED);
134
- Braccio.lvgl_unlock ();
135
- }
136
- else if (key == RIGHT){
137
- Braccio.lvgl_lock ();
138
- lv_btnmatrix_set_selected_btn (direction_btnm, BTN_RIGHT);
139
- lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_CHECKED);
140
- Braccio.lvgl_unlock ();
141
- }
142
- else {
143
- Braccio.lvgl_lock ();
144
- lv_btnmatrix_set_selected_btn (direction_btnm, NULL );
145
- Braccio.lvgl_unlock ();
146
- }
147
- /*
148
- if (state == ELBOW){
149
- Braccio.lvgl_lock();
150
- lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
151
- lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
152
- Braccio.lvgl_unlock();
153
- }
154
- else if (state == PINCH){
155
- Braccio.lvgl_lock();
156
- lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_HIDDEN);
157
- lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_HIDDEN);
158
- Braccio.lvgl_unlock();
159
- }
160
- else{
161
- Braccio.lvgl_lock();
162
- lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_HIDDEN);
163
- lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_HIDDEN);
164
- lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
165
- lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
166
- Braccio.lvgl_unlock();
167
- }
168
- */
169
- /*
170
- Braccio.lvgl_lock();
171
- lv_label_set_text(label, jointsPair[state]);
172
- Braccio.lvgl_unlock();
173
- */
174
- }
175
-
176
- // Event Handlers
177
-
178
-
179
-
180
46
// Screens functions
181
47
182
48
void directionScreen (void )
@@ -217,7 +83,7 @@ void directionScreen(void)
217
83
lv_obj_set_width (label, 240 );
218
84
lv_obj_set_style_text_align (label, LV_TEXT_ALIGN_CENTER, 0 );
219
85
lv_obj_align (label, LV_ALIGN_CENTER, 0 , 0 );
220
- lv_label_set_text (label, jointsPair[state] );
86
+ lv_label_set_text (label, " " );
221
87
222
88
Braccio.lvgl_unlock ();
223
89
}
@@ -231,8 +97,10 @@ void setup()
231
97
/* Configure Braccio. */
232
98
Braccio.speed (MEDIUM);
233
99
/* Move to home position. */
234
- Braccio.moveTo (homePos [0 ], homePos [1 ], homePos [2 ], homePos [3 ], homePos [4 ], homePos [5 ]);
100
+ Braccio.moveTo (HOME_POS [0 ], HOME_POS [1 ], HOME_POS [2 ], HOME_POS [3 ], HOME_POS [4 ], HOME_POS [5 ]);
235
101
delay (500 );
102
+ /* Init state. */
103
+ app.update (Button::None);
236
104
/* Enable buttons. */
237
105
Braccio.lvgl_lock ();
238
106
lv_btnmatrix_clear_btn_ctrl (direction_btnm, 1 , LV_BTNMATRIX_CTRL_DISABLED);
@@ -241,8 +109,6 @@ void setup()
241
109
lv_btnmatrix_clear_btn_ctrl (direction_btnm, 7 , LV_BTNMATRIX_CTRL_DISABLED);
242
110
Braccio.lvgl_unlock ();
243
111
}
244
-
245
- app.update (Button::None);
246
112
}
247
113
248
114
void loop ()
0 commit comments