File tree 4 files changed +184
-23
lines changed
4 files changed +184
-23
lines changed Original file line number Diff line number Diff line change 1
1
#include " Danceoff.h"
2
2
3
- Danceoff::Danceoff (Car* car) {
3
+ Danceoff::Danceoff (Car *car)
4
+ {
4
5
_car = car;
5
6
}
6
7
@@ -13,11 +14,13 @@ Danceoff::Danceoff(Car* car) {
13
14
// car->stop();
14
15
// delay(milliseconds)
15
16
16
- void Danceoff::dance0 () {
17
-
17
+ void Danceoff::dance0 ()
18
+ {
19
+
18
20
_car->setSpeed (100 );
19
21
20
- for (int i = 0 ; i < 10 ; i++) {
22
+ for (int i = 0 ; i < 10 ; i++)
23
+ {
21
24
_car->moveForward ();
22
25
delay (500 );
23
26
_car->turnLeft ();
@@ -27,13 +30,140 @@ void Danceoff::dance0() {
27
30
_car->turnLeft ();
28
31
delay (500 );
29
32
}
33
+
30
34
_car->stop ();
31
35
}
32
36
37
+ void Danceoff::dance1 ()
38
+ {
39
+ _car->setSpeed (100 );
40
+
41
+ for (int i = 0 ; i < 20 ; i++)
42
+ {
43
+ _car->turnLeft ();
44
+ delay (250 );
45
+ _car->moveForward ();
46
+ delay (250 );
47
+ }
48
+
49
+ _car->moveBackward ();
50
+ delay (2000 );
51
+
52
+ _car->moveForward ();
53
+ delay (2000 );
54
+
55
+ _car->turnRight ();
56
+ delay (2000 );
57
+
58
+ _car->turnLeft ();
59
+ delay (2000 );
33
60
34
- void Danceoff::dance1 () {
61
+ _car->moveBackward ();
62
+ delay (2000 );
63
+
64
+ _car->stop ();
65
+ }
35
66
67
+ void Danceoff::dance2 ()
68
+ {
36
69
_car->setSpeed (100 );
37
-
38
70
71
+ _car->turnLeft ();
72
+ delay (5000 );
73
+
74
+ _car->moveForward ();
75
+ delay (500 );
76
+
77
+ _car->turnRight ();
78
+ delay (5000 );
79
+
80
+ _car->moveForward ();
81
+ delay (500 );
82
+
83
+ _car->moveBackward ();
84
+ delay (500 );
85
+
86
+ _car->turnLeft ();
87
+ delay (500 );
88
+
89
+ _car->moveBackward ();
90
+ delay (2500 );
91
+
92
+ _car->turnRight ();
93
+ delay (500 );
94
+
95
+ _car->moveForward ();
96
+ delay (500 );
97
+
98
+ _car->moveBackward ();
99
+ delay (500 );
100
+
101
+ _car->stop ();
102
+ }
103
+
104
+ void Danceoff::dance3 ()
105
+ {
106
+
107
+ _car->setSpeed (100 );
108
+
109
+ for (int i = 0 ; i < 10 ; i++)
110
+ {
111
+ _car->moveBackward ();
112
+ delay (250 );
113
+
114
+ _car->moveForward ();
115
+ delay (250 );
116
+ }
117
+
118
+ for (int i = 0 ; i < 3 ; i++)
119
+ {
120
+ _car->turnLeft ();
121
+ delay (1000 );
122
+
123
+ _car->turnRight ();
124
+ delay (1000 );
125
+ }
126
+
127
+ for (int i = 0 ; i < 10 ; i++)
128
+ {
129
+ _car->moveForward ();
130
+ delay (250 );
131
+
132
+ _car->turnLeft ();
133
+ delay (250 );
134
+
135
+ _car->moveBackward ();
136
+ delay (250 );
137
+
138
+ _car->turnRight ();
139
+ delay (250 );
140
+ }
141
+
142
+ _car->stop ();
143
+ }
144
+
145
+ int Danceoff::length ()
146
+ {
147
+ return 4 ;
148
+ }
149
+
150
+ void Danceoff::dance (int number)
151
+ {
152
+ switch (number)
153
+ {
154
+ case 0 :
155
+ dance0 ();
156
+ break ;
157
+ case 1 :
158
+ dance1 ();
159
+ break ;
160
+ case 2 :
161
+ dance2 ();
162
+ break ;
163
+ case 3 :
164
+ dance3 ();
165
+ break ;
166
+ default :
167
+ break ;
168
+ }
39
169
}
Original file line number Diff line number Diff line change 4
4
#include < Arduino.h>
5
5
#include " Car.h"
6
6
7
+ // TODO: split each dance into a seperate class
8
+
7
9
class Danceoff
8
10
{
9
- Car* _car;
11
+ Car * _car;
10
12
11
13
public:
12
14
Danceoff (Car *car);
13
-
15
+
14
16
void dance0 ();
15
17
void dance1 ();
16
18
void dance2 ();
17
19
void dance3 ();
20
+
21
+ int length ();
22
+ void dance (int number);
18
23
};
19
24
20
25
#endif
Original file line number Diff line number Diff line change 2
2
3
3
## License
4
4
5
- Read the LICENSE file included in the repository.
5
+ Read the LICENSE file included in the repository.
6
6
7
7
## Overview
8
8
9
9
This is a personal arduino project based on the LAFVIIN Multi-Functional Smart Car Kit.
10
10
11
11
### Danceoff
12
12
13
- This is a class I wrote with my kids to program the robot to do certian dances. After we were done, we had a danceoff where we had someone vote for their favorite dance.
13
+ This is a class I wrote with my kids and wife to program the robot to do a dance they came up with. After we were done, we had a danceoff where we had a 3rd party vote for their favorite dance.
14
+
15
+ dance3 was the winner.
14
16
15
17
## Tooling
16
18
17
- Use the arduino IDE to load, or VS code after setting it up for c ++/arduino development.
19
+ Use the Arduino IDE to load, or Arduino extension for VS Code after setting it up for C ++/Arduino development.
Original file line number Diff line number Diff line change @@ -17,46 +17,70 @@ void setup()
17
17
18
18
tinyDancer = new Danceoff (car);
19
19
20
- // Setup Serial
20
+ // I have a bluetooth card which is wired to send data over the serial port.
21
21
Serial.begin (9600 );
22
22
}
23
23
24
+ void allDances ()
25
+ {
26
+ for (int i = 0 ; i < tinyDancer->length (); i++)
27
+ {
28
+ tinyDancer->dance (i);
29
+ }
30
+ }
31
+
24
32
void serialControl ()
25
33
{
26
34
if (Serial.available ())
27
35
{
28
- unsigned char direction = Serial.read ();
29
-
36
+ unsigned char command = Serial.read ();
30
37
car->setSpeed (100 );
31
- switch (direction )
38
+ switch (command )
32
39
{
33
40
case ' F' :
34
41
car->moveForward ();
42
+ delay (1000 );
43
+ car->stop ();
44
+
35
45
break ;
36
46
case ' B' :
37
47
car->moveBackward ();
48
+ delay (1000 );
49
+ car->stop ();
50
+
38
51
break ;
39
52
case ' L' :
40
53
car->turnLeft ();
54
+
41
55
break ;
42
56
case ' R' :
43
57
car->turnRight ();
44
58
break ;
45
59
case ' S' :
46
60
car->stop ();
47
61
break ;
48
- case ' D' :
49
- // dance();
62
+
63
+ // TODO: store this in some sort of dictionary, and get rid of the switch
64
+ case ' 0' :
65
+ tinyDancer->dance0 ();
66
+ break ;
67
+ case ' 1' :
68
+ tinyDancer->dance1 ();
69
+ break ;
70
+ case ' 2' :
71
+ tinyDancer->dance2 ();
72
+ break ;
73
+ case ' 3' :
74
+ tinyDancer->dance3 ();
75
+ break ;
76
+ case ' 4' :
77
+ allDances ();
50
78
break ;
51
79
}
52
80
}
53
81
}
54
82
55
83
void loop ()
56
84
{
57
- tinyDancer->dance0 ();
58
-
59
- while (true ) {
60
- delay (500 );
61
- }
62
- }
85
+ serialControl ();
86
+ }
You can’t perform that action at this time.
0 commit comments