-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtry_slow.ino
150 lines (131 loc) · 2.36 KB
/
try_slow.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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
// connect motor controller pins to Arduino digital pins
// motor one
int enA = 11;
int in1 = 2;
int in2 = 3;
// motor two
int enB = 6;
int in3 = 4;
int in4 = 5;
// servo pen
int servoPin = 13;
int speed = 255;
//Include for servo
#include <Servo.h> // servo library
//Define Servo
Servo servo; // servo control object
void set_speed(int pin, int speed)
{
//if(pin == enA)
// analogWrite(pin, 200);
//else
digitalWrite(pin, HIGH);
}
void setup()
{
Serial.begin (9600);
servo.attach(servoPin);
// set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
}
void forward(int duration)
{
Serial.println("Forward");
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
set_speed(enA, speed);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
set_speed(enB, speed);
delay(duration);
}
void right(int duration)
{
Serial.println("Right");
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
set_speed(enA, speed);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
set_speed(enB, speed);
delay(duration);
}
void left(int duration)
{
Serial.println("Right");
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
set_speed(enA, speed);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
set_speed(enB, speed);
delay(duration);
}
void sstop(int duration)
{
// now turn off motors
Serial.println("Off");
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
delay(duration);
}
void drawSquare()
{
Serial.println("drawSquare start");
// malben - starts from the lower left corner
forward(1100);
right(270);
forward(800);
right(270);
forward(1100);
right(270);
forward(800);
right(270);
}
void drawZigzag()
{
Serial.println("drawZigzag start");
// forward zigzag
right(100);
forward(300);
left(200);
forward(300);
right(200);
forward(300);
left(200);
forward(300);
right(100);
}
void penDown()
{
servo.write(90);
Serial.println("Pen Down");
}
void penUp()
{
servo.write(180);
Serial.println("Pen Up");
}
void loop()
{
penUp();
delay(7000);
penDown();
drawSquare();
penUp();
sstop(1000);
right(200);
forward(300);
left(200);
//sstop(1000);
penDown();
drawZigzag();
sstop(1000);
}