Components and supplies
M2.5 x 20
ES 3104 Servo / 17g
General Purpose Transistor NPN
Breadboard Power Supply Module
M2.5 x 15mm Bolts and Nuts
Arduino Mega 2560
on / off switch
NEMA 17 Stepper Motor
Nema 23 Stepper Motor
Capacitor 100 µF
Flange Coupling / 5mm ID
Bearing / 30mm OD
12V White LED Set
T-Connector / Male
Pushbutton switch 12mm
Flange Coupling / 8mm ID
ES 9051 Servo / 4.1 g
M6 x 22mm Bolts and Nuts
Breadboard (generic)
M6 x 40mm Bolts and Nuts
TB6600 Stepper Motor Driver
12V White LED Strip
Tools and machines
Minus Head Screw Driver
Allen Wrench
Soldering iron (generic)
Plus Head Screw Driver
3D Printer (generic)
Apps and platforms
Arduino IDE
Project description
Code
Gesture Bot control via serial commands
arduino
This code is just used to control the hand using keyboard command. It can be modified in the future to work with a blutooth, wifi module and control via an app. A custom remote or perhaps glove could also be used to control but for now i've just tested with the commands sent via computer keyboard.
1#include <Servo.h> 2 3Servo servo1; 4Servo servo2; 5Servo servo3; 6Servo servo4; 7Servo servo5; 8Servo servo7; 9Servo servo6; 10Servo servo8; 11Servo servo9; 12Servo servo10; 13 14int servoPosA = 170; 15int servoPosB = 160; 16int servoPosC = 100; 17int servoPosD = 100; 18int servoPosE = 120; 19int servoPosF = 100; 20int servoPosG = 100; 21int servoPosH = 100; 22int servoPosI = 180; 23int servoPosJ = 100; 24 25 26int led1 = 24; // single led 27int led2 = 25; // single led 28int ledSet1 = 12; // LED SET 29int ledSet2 = 13; // LED SET 30int BUTTON = 22; 31boolean buttonState = LOW; 32int i; 33 34 35int pulPin1 = 52; 36int dirPin1 = 53; 37int pulPin2 = 50; 38int dirPin2 = 51; 39 40void setup() { 41 42 for (int q = 2; q < 14; q++){ 43 pinMode(q, OUTPUT); 44 } 45 pinMode(22, INPUT); 46 pinMode(24, OUTPUT); 47 pinMode(25, OUTPUT); 48 for (int w = 50; w < 54; w++){ 49 pinMode(w, OUTPUT); 50 } 51 52 servo1.attach(2); 53 servo2.attach(3); 54 servo3.attach(4); 55 servo4.attach(5); 56 servo5.attach(6); 57 servo7.attach(7); 58 servo6.attach(8); 59 servo8.attach(9); 60 servo9.attach(10); 61 servo10.attach(11); 62 63 delay(4000); 64 65 /* the following bit of code stops the hand from moving further more when the push button is pressed, once pressed moves to a certail number of steps for its origin*/ 66 67 while (buttonState == LOW){ 68 for (int e = 0; e < 1; e++){ 69 digitalWrite(dirPin1, HIGH); 70 buttonState = digitalRead(BUTTON); 71 digitalWrite(pulPin1, HIGH); 72 buttonState = digitalRead(BUTTON); 73 delayMicroseconds(5000); 74 buttonState = digitalRead(BUTTON); 75 digitalWrite(pulPin1, LOW); 76 buttonState = digitalRead(BUTTON); 77 delayMicroseconds(5000); 78 buttonState = digitalRead(BUTTON); 79 } 80} 81if (buttonState == HIGH){ 82 for (int f = 0; f < 300; f++){ 83 digitalWrite(dirPin1, LOW); 84 digitalWrite(pulPin1, HIGH); 85 delayMicroseconds(10000); 86 digitalWrite(pulPin1, LOW); 87 delayMicroseconds(10000); 88 } 89 digitalWrite(led1, HIGH); 90 digitalWrite(led2, HIGH); 91 delay(2000); 92} 93Serial.begin(9600); 94Serial.println("Please select a control hinge for the hand from the keypad"); 95} 96 97void loop() { 98servoPosA = constrain(servoPosA, 80, 170); 99servoPosB = constrain(servoPosB, 90, 180); 100servoPosC = constrain(servoPosC, 100, 150); 101servoPosD = constrain(servoPosD, 100, 150); 102servoPosE = constrain(servoPosE, 75, 160); 103servoPosF = constrain(servoPosF, 100, 150); 104servoPosG = constrain(servoPosG, 85, 170); 105servoPosH = constrain(servoPosH, 100, 150); 106servoPosI = constrain(servoPosI, 10, 180); 107servoPosJ = constrain(servoPosJ, 100, 150); 108 109 110 111while (Serial.available() > 0){ 112 113 char hand_move = Serial.read(); 114 if (hand_move == 'a'){ 115 Serial.println("Selected finger - LITTLE FINGER_LOWER HINGE_OPEN"); 116 for(int i = 170; i>80; i--){ 117 servo1.write(i); 118 delay(25); 119 char stop_sense = Serial.read(); 120 if (stop_sense == '.'){ 121 break; 122 } 123 } 124 125 } 126 if (hand_move == 'z'){ 127 Serial.println("Selected finger - LITTLE FINGER_LOWER HINGE_CLOSE"); 128 for(int j = 80; j<170; j++){ 129 servo1.write(j); 130 delay(25); 131 char stop_sense = Serial.read(); 132 if (stop_sense == '.'){ 133 break; 134 } 135 } 136 137 } 138 if (hand_move == 's'){ 139 Serial.println("Selected finger - RING FINGER_LOWER HINGE_OPEN"); 140 for(int i = 180; i>90; i--){ 141 servo2.write(i); 142 delay(25); 143 char stop_sense = Serial.read(); 144 if (stop_sense == '.'){ 145 break; 146 } 147 } 148 149 } 150 if (hand_move == 'x'){ 151 Serial.println("Selected finger - RING FINGER_LOWER HINGE_CLOSE"); 152 for(int j = 90; j<180; j++){ 153 servo2.write(j); 154 delay(25); 155 char stop_sense = Serial.read(); 156 if (stop_sense == '.'){ 157 break; 158 } 159 } 160 161 } 162 if (hand_move == 'q'){ 163 Serial.println("Selected finger - LITTLE FINGER_UPPER HINGE_OPEN"); 164 for(int i = 150; i>100; i--){ 165 servo3.write(i); 166 delay(25); 167 char stop_sense = Serial.read(); 168 if (stop_sense == '.'){ 169 break; 170 } 171 } 172 173 } 174 if (hand_move == '1'){ 175 Serial.println("Selected finger - LITTLE FINGER_UPPER HINGE_CLOSE"); 176 for(int j = 100; j<150; j++){ 177 servo3.write(j); 178 delay(25); 179 char stop_sense = Serial.read(); 180 if (stop_sense == '.'){ 181 break; 182 } 183 } 184 185 } 186 if (hand_move == 'w'){ 187 Serial.println("Selected finger - RING FINGER_UPPER HINGE_OPEN"); 188 for(int i = 150; i>100; i--){ 189 servo4.write(i); 190 delay(25); 191 char stop_sense = Serial.read(); 192 if (stop_sense == '.'){ 193 break; 194 } 195 } 196 197 } 198 if (hand_move == '2'){ 199 Serial.println("Selected finger - LITTLE FINGER_LOWER HINGE_CLOSE"); 200 for(int j = 100; j<150; j++){ 201 servo4.write(j); 202 delay(25); 203 char stop_sense = Serial.read(); 204 if (stop_sense == '.'){ 205 break; 206 } 207 } 208 209 } 210 if (hand_move == 'd'){ 211 Serial.println("Selected finger - MIDDLE FINGER_LOWER HINGE_OPEN"); 212 for(int i = 160; i>75; i--){ 213 servo5.write(i); 214 delay(25); 215 char stop_sense = Serial.read(); 216 if (stop_sense == '.'){ 217 break; 218 } 219 } 220 221 } 222 if (hand_move == 'c'){ 223 Serial.println("Selected finger - MIDDLE FINGER_LOWER HINGE_CLOSE"); 224 for(int j = 75; j<160; j++){ 225 servo5.write(j); 226 delay(25); 227 char stop_sense = Serial.read(); 228 if (stop_sense == '.'){ 229 break; 230 } 231 } 232 233 } 234 if (hand_move == 'f'){ 235 Serial.println("Selected finger - INDEX FINGER_LOWER HINGE_OPEN"); 236 for(int i = 170; i>85; i--){ 237 servo6.write(i); 238 delay(25); 239 char stop_sense = Serial.read(); 240 if (stop_sense == '.'){ 241 break; 242 } 243 } 244 245 } 246 if (hand_move == 'v'){ 247 Serial.println("Selected finger - INDEX FINGER_LOWER HINGE_CLOSE"); 248 for(int j = 85; j<170; j++){ 249 servo6.write(j); 250 delay(25); 251 char stop_sense = Serial.read(); 252 if (stop_sense == '.'){ 253 break; 254 } 255 } 256 257 } 258 if (hand_move == 'e'){ 259 Serial.println("Selected finger - MIDDLE FINGER_UPPER HINGE_OPEN"); 260 for(int i = 150; i>100; i--){ 261 servo7.write(i); 262 delay(25); 263 char stop_sense = Serial.read(); 264 if (stop_sense == '.'){ 265 break; 266 } 267 } 268 269 } 270 if (hand_move == '3'){ 271 Serial.println("Selected finger - MIDDLE FINGER_UPPER HINGE_CLOSE"); 272 for(int j = 100; j<150; j++){ 273 servo7.write(j); 274 delay(25); 275 char stop_sense = Serial.read(); 276 if (stop_sense == '.'){ 277 break; 278 } 279 } 280 281 } 282 if (hand_move == 'r'){ 283 Serial.println("Selected finger - INDEX FINGER_UPPER HINGE_OPEN"); 284 for(int i = 150; i>100; i--){ 285 servo8.write(i); 286 delay(25); 287 char stop_sense = Serial.read(); 288 if (stop_sense == '.'){ 289 break; 290 } 291 } 292 293 } 294 if (hand_move == '4'){ 295 Serial.println("Selected finger - INDEX FINGER_UPPER HINGE_CLOSE"); 296 for(int j = 100; j<150; j++){ 297 servo8.write(j); 298 delay(25); 299 char stop_sense = Serial.read(); 300 if (stop_sense == '.'){ 301 break; 302 } 303 } 304 305 } 306 if (hand_move == 'g'){ 307 Serial.println("Selected finger - THUMB_LOWER HINGE_OPEN"); 308 for(int i = 180; i>10; i--){ 309 servo9.write(i); 310 delay(25); 311 char stop_sense = Serial.read(); 312 if (stop_sense == '.'){ 313 break; 314 } 315 } 316 317 } 318 if (hand_move == 'b'){ 319 Serial.println("Selected finger - THUMB_LOWER HINGE_CLOSE"); 320 for(int j = 10; j<180; j++){ 321 servo9.write(j); 322 delay(25); 323 char stop_sense = Serial.read(); 324 if (stop_sense == '.'){ 325 break; 326 } 327 } 328 329 } 330 if (hand_move == 't'){ 331 Serial.println("Selected finger - THUMB_UPPER HINGE_OPEN"); 332 for(int i = 150; i>100; i--){ 333 servo10.write(i); 334 delay(25); 335 char stop_sense = Serial.read(); 336 if (stop_sense == '.'){ 337 break; 338 } 339 } 340 341 } 342 if (hand_move == '5'){ 343 Serial.println("Selected finger - THUMB_UPPER HINGE_CLOSE"); 344 for(int j = 100; j<150; j++){ 345 servo10.write(j); 346 delay(25); 347 char stop_sense = Serial.read(); 348 if (stop_sense == '.'){ 349 break; 350 } 351 } 352 353 } 354 if (hand_move == '-'){ 355 Serial.println("Selected ELBOW_UP"); 356 for (int f = 0; f < 50; f++){ 357 digitalWrite(dirPin1, LOW); 358 digitalWrite(pulPin1, HIGH); 359 delayMicroseconds(10000); 360 digitalWrite(pulPin1, LOW); 361 delayMicroseconds(10000); 362 char stop_sense = Serial.read(); 363 if (stop_sense == '.'){ 364 break; 365 } 366 367 } 368 } 369 if (hand_move == '+'){ 370 Serial.println("Selected ELBOW_DOWN"); 371 for (int g = 0; g < 50; g++){ 372 digitalWrite(dirPin1, HIGH); 373 digitalWrite(pulPin1, HIGH); 374 delayMicroseconds(10000); 375 digitalWrite(pulPin1, LOW); 376 delayMicroseconds(10000); 377 char stop_sense = Serial.read(); 378 if (stop_sense == '.'){ 379 break; 380 } 381 382 } 383 } 384 if (hand_move == '/'){ 385 Serial.println("Selected WRIST_ANTICLOCKWISE"); 386 for (int f = 0; f < 200; f++){ 387 digitalWrite(dirPin2, HIGH); 388 digitalWrite(pulPin2, HIGH); 389 delayMicroseconds(3000); 390 digitalWrite(pulPin2, LOW); 391 delayMicroseconds(3000); 392 char stop_sense = Serial.read(); 393 if (stop_sense == '.'){ 394 break; 395 } 396 397 } 398 } 399 if (hand_move == '*'){ 400 Serial.println("Selected WRIST_CLOCKWISE"); 401 for (int g = 0; g < 200; g++){ 402 digitalWrite(dirPin2, LOW); 403 digitalWrite(pulPin2, HIGH); 404 delayMicroseconds(3000); 405 digitalWrite(pulPin2, LOW); 406 delayMicroseconds(3000); 407 char stop_sense = Serial.read(); 408 if (stop_sense == '.'){ 409 break; 410 } 411 412 } 413 } 414 415 416 417 } 418 419} 420
Gesture Bot control via serial commands
arduino
This code is just used to control the hand using keyboard command. It can be modified in the future to work with a blutooth, wifi module and control via an app. A custom remote or perhaps glove could also be used to control but for now i've just tested with the commands sent via computer keyboard.
1#include <Servo.h> 2 3Servo servo1; 4Servo servo2; 5Servo servo3; 6 7Servo servo4; 8Servo servo5; 9Servo servo7; 10Servo servo6; 11Servo servo8; 12Servo 13 servo9; 14Servo servo10; 15 16int servoPosA = 170; 17int servoPosB = 160; 18int 19 servoPosC = 100; 20int servoPosD = 100; 21int servoPosE = 120; 22int servoPosF 23 = 100; 24int servoPosG = 100; 25int servoPosH = 100; 26int servoPosI = 180; 27int 28 servoPosJ = 100; 29 30 31int led1 = 24; // single led 32int led2 = 25; // single 33 led 34int ledSet1 = 12; // LED SET 35int ledSet2 = 13; // LED SET 36int BUTTON 37 = 22; 38boolean buttonState = LOW; 39int i; 40 41 42int pulPin1 = 52; 43int 44 dirPin1 = 53; 45int pulPin2 = 50; 46int dirPin2 = 51; 47 48void setup() { 49 50 51 for (int q = 2; q < 14; q++){ 52 pinMode(q, OUTPUT); 53 } 54 pinMode(22, 55 INPUT); 56 pinMode(24, OUTPUT); 57 pinMode(25, OUTPUT); 58 for (int w = 50; 59 w < 54; w++){ 60 pinMode(w, OUTPUT); 61 } 62 63 servo1.attach(2); 64 servo2.attach(3); 65 66 servo3.attach(4); 67 servo4.attach(5); 68 servo5.attach(6); 69 servo7.attach(7); 70 71 servo6.attach(8); 72 servo8.attach(9); 73 servo9.attach(10); 74 servo10.attach(11); 75 76 77 delay(4000); 78 79 /* the following bit of code stops the hand from moving 80 further more when the push button is pressed, once pressed moves to a certail number 81 of steps for its origin*/ 82 83 while (buttonState == LOW){ 84 for (int e = 85 0; e < 1; e++){ 86 digitalWrite(dirPin1, HIGH); 87 buttonState = digitalRead(BUTTON); 88 89 digitalWrite(pulPin1, HIGH); 90 buttonState = digitalRead(BUTTON); 91 delayMicroseconds(5000); 92 93 buttonState = digitalRead(BUTTON); 94 digitalWrite(pulPin1, LOW); 95 buttonState 96 = digitalRead(BUTTON); 97 delayMicroseconds(5000); 98 buttonState = digitalRead(BUTTON); 99 100 } 101} 102if (buttonState == HIGH){ 103 for (int f = 0; f < 300; f++){ 104 digitalWrite(dirPin1, 105 LOW); 106 digitalWrite(pulPin1, HIGH); 107 delayMicroseconds(10000); 108 digitalWrite(pulPin1, 109 LOW); 110 delayMicroseconds(10000); 111 } 112 digitalWrite(led1, HIGH); 113 digitalWrite(led2, 114 HIGH); 115 delay(2000); 116} 117Serial.begin(9600); 118Serial.println("Please 119 select a control hinge for the hand from the keypad"); 120} 121 122void loop() 123 { 124servoPosA = constrain(servoPosA, 80, 170); 125servoPosB = constrain(servoPosB, 126 90, 180); 127servoPosC = constrain(servoPosC, 100, 150); 128servoPosD = constrain(servoPosD, 129 100, 150); 130servoPosE = constrain(servoPosE, 75, 160); 131servoPosF = constrain(servoPosF, 132 100, 150); 133servoPosG = constrain(servoPosG, 85, 170); 134servoPosH = constrain(servoPosH, 135 100, 150); 136servoPosI = constrain(servoPosI, 10, 180); 137servoPosJ = constrain(servoPosJ, 138 100, 150); 139 140 141 142while (Serial.available() > 0){ 143 144 char hand_move 145 = Serial.read(); 146 if (hand_move == 'a'){ 147 Serial.println("Selected finger 148 - LITTLE FINGER_LOWER HINGE_OPEN"); 149 for(int i = 170; i>80; i--){ 150 servo1.write(i); 151 152 delay(25); 153 char stop_sense = Serial.read(); 154 if (stop_sense == 155 '.'){ 156 break; 157 } 158 } 159 160 } 161 if (hand_move == 162 'z'){ 163 Serial.println("Selected finger - LITTLE FINGER_LOWER HINGE_CLOSE"); 164 165 for(int j = 80; j<170; j++){ 166 servo1.write(j); 167 delay(25); 168 char 169 stop_sense = Serial.read(); 170 if (stop_sense == '.'){ 171 break; 172 } 173 174 } 175 176 } 177 if (hand_move == 's'){ 178 Serial.println("Selected 179 finger - RING FINGER_LOWER HINGE_OPEN"); 180 for(int i = 180; i>90; i--){ 181 182 servo2.write(i); 183 delay(25); 184 char stop_sense = Serial.read(); 185 186 if (stop_sense == '.'){ 187 break; 188 } 189 } 190 191 } 192 193 if (hand_move == 'x'){ 194 Serial.println("Selected finger - RING FINGER_LOWER 195 HINGE_CLOSE"); 196 for(int j = 90; j<180; j++){ 197 servo2.write(j); 198 199 delay(25); 200 char stop_sense = Serial.read(); 201 if (stop_sense == 202 '.'){ 203 break; 204 } 205 } 206 207 } 208 if (hand_move == 209 'q'){ 210 Serial.println("Selected finger - LITTLE FINGER_UPPER HINGE_OPEN"); 211 212 for(int i = 150; i>100; i--){ 213 servo3.write(i); 214 delay(25); 215 216 char stop_sense = Serial.read(); 217 if (stop_sense == '.'){ 218 break; 219 220 } 221 } 222 223 } 224 if (hand_move == '1'){ 225 Serial.println("Selected 226 finger - LITTLE FINGER_UPPER HINGE_CLOSE"); 227 for(int j = 100; j<150; j++){ 228 229 servo3.write(j); 230 delay(25); 231 char stop_sense = Serial.read(); 232 233 if (stop_sense == '.'){ 234 break; 235 } 236 } 237 238 } 239 240 if (hand_move == 'w'){ 241 Serial.println("Selected finger - RING FINGER_UPPER 242 HINGE_OPEN"); 243 for(int i = 150; i>100; i--){ 244 servo4.write(i); 245 246 delay(25); 247 char stop_sense = Serial.read(); 248 if (stop_sense == 249 '.'){ 250 break; 251 } 252 } 253 254 } 255 if (hand_move == 256 '2'){ 257 Serial.println("Selected finger - LITTLE FINGER_LOWER HINGE_CLOSE"); 258 259 for(int j = 100; j<150; j++){ 260 servo4.write(j); 261 delay(25); 262 263 char stop_sense = Serial.read(); 264 if (stop_sense == '.'){ 265 break; 266 267 } 268 } 269 270 } 271 if (hand_move == 'd'){ 272 Serial.println("Selected 273 finger - MIDDLE FINGER_LOWER HINGE_OPEN"); 274 for(int i = 160; i>75; i--){ 275 276 servo5.write(i); 277 delay(25); 278 char stop_sense = Serial.read(); 279 280 if (stop_sense == '.'){ 281 break; 282 } 283 } 284 285 } 286 287 if (hand_move == 'c'){ 288 Serial.println("Selected finger - MIDDLE FINGER_LOWER 289 HINGE_CLOSE"); 290 for(int j = 75; j<160; j++){ 291 servo5.write(j); 292 293 delay(25); 294 char stop_sense = Serial.read(); 295 if (stop_sense == 296 '.'){ 297 break; 298 } 299 } 300 301 } 302 if (hand_move == 303 'f'){ 304 Serial.println("Selected finger - INDEX FINGER_LOWER HINGE_OPEN"); 305 306 for(int i = 170; i>85; i--){ 307 servo6.write(i); 308 delay(25); 309 char 310 stop_sense = Serial.read(); 311 if (stop_sense == '.'){ 312 break; 313 } 314 315 } 316 317 } 318 if (hand_move == 'v'){ 319 Serial.println("Selected 320 finger - INDEX FINGER_LOWER HINGE_CLOSE"); 321 for(int j = 85; j<170; j++){ 322 323 servo6.write(j); 324 delay(25); 325 char stop_sense = Serial.read(); 326 327 if (stop_sense == '.'){ 328 break; 329 } 330 } 331 332 } 333 334 if (hand_move == 'e'){ 335 Serial.println("Selected finger - MIDDLE FINGER_UPPER 336 HINGE_OPEN"); 337 for(int i = 150; i>100; i--){ 338 servo7.write(i); 339 340 delay(25); 341 char stop_sense = Serial.read(); 342 if (stop_sense == 343 '.'){ 344 break; 345 } 346 } 347 348 } 349 if (hand_move == 350 '3'){ 351 Serial.println("Selected finger - MIDDLE FINGER_UPPER HINGE_CLOSE"); 352 353 for(int j = 100; j<150; j++){ 354 servo7.write(j); 355 delay(25); 356 357 char stop_sense = Serial.read(); 358 if (stop_sense == '.'){ 359 break; 360 361 } 362 } 363 364 } 365 if (hand_move == 'r'){ 366 Serial.println("Selected 367 finger - INDEX FINGER_UPPER HINGE_OPEN"); 368 for(int i = 150; i>100; i--){ 369 370 servo8.write(i); 371 delay(25); 372 char stop_sense = Serial.read(); 373 374 if (stop_sense == '.'){ 375 break; 376 } 377 } 378 379 } 380 381 if (hand_move == '4'){ 382 Serial.println("Selected finger - INDEX FINGER_UPPER 383 HINGE_CLOSE"); 384 for(int j = 100; j<150; j++){ 385 servo8.write(j); 386 387 delay(25); 388 char stop_sense = Serial.read(); 389 if (stop_sense == 390 '.'){ 391 break; 392 } 393 } 394 395 } 396 if (hand_move == 397 'g'){ 398 Serial.println("Selected finger - THUMB_LOWER HINGE_OPEN"); 399 for(int 400 i = 180; i>10; i--){ 401 servo9.write(i); 402 delay(25); 403 char stop_sense 404 = Serial.read(); 405 if (stop_sense == '.'){ 406 break; 407 } 408 } 409 410 411 } 412 if (hand_move == 'b'){ 413 Serial.println("Selected finger 414 - THUMB_LOWER HINGE_CLOSE"); 415 for(int j = 10; j<180; j++){ 416 servo9.write(j); 417 418 delay(25); 419 char stop_sense = Serial.read(); 420 if (stop_sense == 421 '.'){ 422 break; 423 } 424 } 425 426 } 427 if (hand_move == 428 't'){ 429 Serial.println("Selected finger - THUMB_UPPER HINGE_OPEN"); 430 for(int 431 i = 150; i>100; i--){ 432 servo10.write(i); 433 delay(25); 434 char stop_sense 435 = Serial.read(); 436 if (stop_sense == '.'){ 437 break; 438 } 439 } 440 441 442 } 443 if (hand_move == '5'){ 444 Serial.println("Selected finger 445 - THUMB_UPPER HINGE_CLOSE"); 446 for(int j = 100; j<150; j++){ 447 servo10.write(j); 448 449 delay(25); 450 char stop_sense = Serial.read(); 451 if (stop_sense == 452 '.'){ 453 break; 454 } 455 } 456 457 } 458 if (hand_move == 459 '-'){ 460 Serial.println("Selected ELBOW_UP"); 461 for (int f = 0; f < 50; 462 f++){ 463 digitalWrite(dirPin1, LOW); 464 digitalWrite(pulPin1, HIGH); 465 466 delayMicroseconds(10000); 467 digitalWrite(pulPin1, LOW); 468 delayMicroseconds(10000); 469 470 char stop_sense = Serial.read(); 471 if (stop_sense == '.'){ 472 break; 473 474 } 475 476 } 477 } 478 if (hand_move == '+'){ 479 Serial.println("Selected 480 ELBOW_DOWN"); 481 for (int g = 0; g < 50; g++){ 482 digitalWrite(dirPin1, 483 HIGH); 484 digitalWrite(pulPin1, HIGH); 485 delayMicroseconds(10000); 486 487 digitalWrite(pulPin1, LOW); 488 delayMicroseconds(10000); 489 char stop_sense 490 = Serial.read(); 491 if (stop_sense == '.'){ 492 break; 493 } 494 495 496 } 497 } 498 if (hand_move == '/'){ 499 Serial.println("Selected WRIST_ANTICLOCKWISE"); 500 501 for (int f = 0; f < 200; f++){ 502 digitalWrite(dirPin2, HIGH); 503 digitalWrite(pulPin2, 504 HIGH); 505 delayMicroseconds(3000); 506 digitalWrite(pulPin2, LOW); 507 delayMicroseconds(3000); 508 509 char stop_sense = Serial.read(); 510 if (stop_sense == '.'){ 511 break; 512 513 } 514 515 } 516 } 517 if (hand_move == '*'){ 518 Serial.println("Selected 519 WRIST_CLOCKWISE"); 520 for (int g = 0; g < 200; g++){ 521 digitalWrite(dirPin2, 522 LOW); 523 digitalWrite(pulPin2, HIGH); 524 delayMicroseconds(3000); 525 digitalWrite(pulPin2, 526 LOW); 527 delayMicroseconds(3000); 528 char stop_sense = Serial.read(); 529 530 if (stop_sense == '.'){ 531 break; 532 } 533 534 } 535 } 536 537 538 539 540 } 541 542} 543
Downloadable files
The Schematic Diagram
Gesture Bot schematic diagram
The Schematic Diagram
Documentation
Gesture Bot design files
These are the CATIA V5 design files for Gesture Bot and the respective repository for it.
https://github.com/hannu-hell/Gesture-Bot-CATIA-V5-files
Gesture Bot design files
These are the CATIA V5 design files for Gesture Bot and the respective repository for it.
https://github.com/hannu-hell/Gesture-Bot-CATIA-V5-files
Comments
Only logged in users can leave comments
hannu_hell
0 Followers
•0 Projects
Table of contents
Intro
11
0