-
Notifications
You must be signed in to change notification settings - Fork 2
/
ArduinoProgram.ino
111 lines (107 loc) · 2.02 KB
/
ArduinoProgram.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <Servo.h>
#define numOfValsRec 6
#define digitsPerValRec 1
Servo servoThumb;
Servo servoIndex;
Servo servoMiddle;
Servo servoRing;
Servo servoPinky;
Servo servoWrist;
int valsRec[numOfValsRec];
//$00000
int stringLength = numOfValsRec * digitsPerValRec + 1;
int counter = 0;
bool counterStart = false;
String receivedString;
void setup()
{
Serial.begin(9600);
servoThumb.attach(7);
servoIndex.attach(9);
servoMiddle.attach(11);
servoRing.attach(8);
servoPinky.attach(10);
servoWrist.attach(13);
}
void receiveData()
{
while (Serial.available())
{
char c = Serial.read();
if (c == '$')
{
counterStart = true;
}
if (counterStart)
{
if (counter < stringLength)
{
receivedString = String(receivedString + c);
counter++;
}
if (counter >= stringLength)
{
for (int i = 0; i < numOfValsRec; i++)
{
int num = (i * digitsPerValRec) + 1;
valsRec[i] = receivedString.substring(num, num + digitsPerValRec).toInt();
}
receivedString = "";
counter = 0;
counterStart = false;
}
}
}
}
void loop()
{
receiveData();
if (valsRec[0] == 1)
{
servoThumb.write(180);
}
else
{
servoThumb.write(0);
}
if (valsRec[1] == 0)
{
servoIndex.write(180);
}
else
{
servoIndex.write(0);
}
if (valsRec[2] == 0)
{
servoMiddle.write(180);
}
else
{
servoMiddle.write(0);
}
if (valsRec[3] == 0)
{
servoRing.write(180);
}
else
{
servoRing.write(0);
}
if (valsRec[4] == 0)
{
servoPinky.write(180);
}
else
{
servoPinky.write(0);
}
if (valsRec[5] == 0)
{
servoWrist.write(100);
}
else
{
servoWrist.write(0);
}
}