PhaseTwo completed.
This commit is contained in:
@@ -50,9 +50,22 @@ const char* password = "hi123456";
|
|||||||
int trimFR = 0;
|
int trimFR = 0;
|
||||||
int trimBL = 0;
|
int trimBL = 0;
|
||||||
int trimBR = 0;
|
int trimBR = 0;
|
||||||
|
#define BUFFER_SIZE 7
|
||||||
|
int buffer_FL[BUFFER_SIZE];
|
||||||
|
int buffer_FR[BUFFER_SIZE];
|
||||||
|
int buffer_BL[BUFFER_SIZE];
|
||||||
|
int buffer_BR[BUFFER_SIZE];
|
||||||
|
int buffer_LF[BUFFER_SIZE];
|
||||||
|
int buffer_LB[BUFFER_SIZE];
|
||||||
|
int buffer_RF[BUFFER_SIZE];
|
||||||
|
int buffer_RB[BUFFER_SIZE];
|
||||||
|
|
||||||
bool ph1 = false; // Phase 1 complete flag
|
int bufferIndex = 0;
|
||||||
|
bool bufferFilled = false;
|
||||||
|
bool ph1 = false; // Phase 1 complete flag
|
||||||
|
bool ph2 = false; //phase 2 complete flag
|
||||||
|
bool ph3 = false; //phase 3 complete flag
|
||||||
|
bool p2_stop = false; // Flag when its passed the top of the hill
|
||||||
|
|
||||||
// Telnet server to watch serial
|
// Telnet server to watch serial
|
||||||
WiFiServer telnetServer(23);
|
WiFiServer telnetServer(23);
|
||||||
@@ -80,9 +93,10 @@ void Go90left();
|
|||||||
void slideRight();
|
void slideRight();
|
||||||
void slideLeft();
|
void slideLeft();
|
||||||
void receiveSensorData(); // Receive the sensors data from micro sensors
|
void receiveSensorData(); // Receive the sensors data from micro sensors
|
||||||
|
int rollingAverage(int buffer[]); // rollingAverage function call
|
||||||
void sensorsTest();
|
void sensorsTest();
|
||||||
void motorsTest();
|
void motorsTest();
|
||||||
|
void phaseThree();
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(115200);
|
Serial.begin(115200);
|
||||||
@@ -164,14 +178,27 @@ if (WiFi.status() == WL_CONNECTED) {
|
|||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
// ph1 = true;
|
// ph1 = true;
|
||||||
|
// ph2 = true;
|
||||||
|
// ph3 = true;
|
||||||
|
|
||||||
|
|
||||||
if (!ph1) {
|
if (!ph1) {
|
||||||
phaseOne();
|
phaseOne();
|
||||||
ph1 = true;
|
ph1 = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!ph2) {
|
||||||
|
phaseTwo();
|
||||||
|
ph2 = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!ph3) {
|
||||||
|
phaseThree();
|
||||||
|
ph3 = true;
|
||||||
|
}
|
||||||
|
|
||||||
// motorsTest();
|
// motorsTest();
|
||||||
// sensorsTest();
|
sensorsTest();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,14 +213,14 @@ void phaseOne() {
|
|||||||
int speed;
|
int speed;
|
||||||
|
|
||||||
receiveSensorData();
|
receiveSensorData();
|
||||||
while ((distance = (sens_FL + sens_FR) / 2) > 250) {
|
while ((distance = (sens_FL + sens_FR) / 2) > 240) {
|
||||||
// Slow down as we approach target
|
// Slow down as we approach target
|
||||||
if (distance > 500) {
|
if (distance > 500) {
|
||||||
speed = 180;
|
speed = 180;
|
||||||
} else if (distance > 400) {
|
} else if (distance > 350) {
|
||||||
speed = 120;
|
speed = 80;
|
||||||
} else {
|
} else {
|
||||||
speed = 80; // Slow down even more
|
speed = 40; // Slow down even more
|
||||||
}
|
}
|
||||||
motorsGo(speed);
|
motorsGo(speed);
|
||||||
delay(5); // Wait for new sensor data to arrive
|
delay(5); // Wait for new sensor data to arrive
|
||||||
@@ -206,12 +233,57 @@ void phaseOne() {
|
|||||||
Go90right();
|
Go90right();
|
||||||
delay(2000);
|
delay(2000);
|
||||||
motorsGo(80);
|
motorsGo(80);
|
||||||
delay(1650); // Go into the pit 1800 miliseconds
|
delay(1250); // Go into the pit 1800 miliseconds,
|
||||||
motorsStop();
|
motorsStop();
|
||||||
delay(3000);
|
delay(3000); //how long to pick balls? dunno
|
||||||
motorsGo(-150);
|
motorsGo(-150);
|
||||||
delay(1600); // Go out of the pit 1800 miliseconds
|
delay(1200); // Go out of the pit 1800 miliseconds
|
||||||
motorsStop();
|
motorsStop();
|
||||||
|
delay(500);
|
||||||
|
slideLeft();
|
||||||
|
delay(1450);
|
||||||
|
motorsStop();
|
||||||
|
delay(2000);
|
||||||
|
}
|
||||||
|
|
||||||
|
void phaseTwo() {
|
||||||
|
// Wait for valid sensor readings - ENABLE IF YOU ARE TESTING ONLY THIS PHASE
|
||||||
|
// while (sens_FL < 0 || sens_FR < 0) {
|
||||||
|
// receiveSensorData(); // read sensors
|
||||||
|
// delay(10);
|
||||||
|
// }
|
||||||
|
|
||||||
|
receiveSensorData();
|
||||||
|
|
||||||
|
|
||||||
|
while (!p2_stop) {
|
||||||
|
while ((sens_FL + sens_FR) / 2 > 8000) {
|
||||||
|
motorsGo(-255);
|
||||||
|
delay(5); // Wait for new sensor data to arrive
|
||||||
|
receiveSensorData(); // Get fresh reading each iteration
|
||||||
|
}
|
||||||
|
while ((sens_FL + sens_FR) / 2 < 680) { // Used to be 680
|
||||||
|
motorsGo(-180);
|
||||||
|
delay(5); // Wait for new sensor data to arrive
|
||||||
|
receiveSensorData(); // Get fresh reading each iteration
|
||||||
|
}
|
||||||
|
while ((sens_FL + sens_FR) / 2 > 320) {
|
||||||
|
motorsGo(-120);
|
||||||
|
delay(5); // Wait for new sensor data to arrive
|
||||||
|
receiveSensorData(); // Get fresh reading each iteration
|
||||||
|
}
|
||||||
|
p2_stop = true;
|
||||||
|
receiveSensorData();
|
||||||
|
}
|
||||||
|
motorsStop();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void phaseThree() {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void otaTask(void *parameter) {
|
void otaTask(void *parameter) {
|
||||||
@@ -347,6 +419,17 @@ void motorBR(int speed) {
|
|||||||
motorBL(0);
|
motorBL(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int rollingAverage(int buffer[]) {
|
||||||
|
int sum = 0;
|
||||||
|
int count = bufferFilled ? BUFFER_SIZE : (bufferIndex + 1);
|
||||||
|
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
sum += buffer[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return sum / count;
|
||||||
|
}
|
||||||
|
|
||||||
void receiveSensorData() {
|
void receiveSensorData() {
|
||||||
String data;
|
String data;
|
||||||
|
|
||||||
@@ -503,7 +586,7 @@ void Go90right() {
|
|||||||
motorFR(-150);
|
motorFR(-150);
|
||||||
motorBL(150);
|
motorBL(150);
|
||||||
motorBR(-150);
|
motorBR(-150);
|
||||||
delay(1150);
|
delay(1250);
|
||||||
motorsStop();
|
motorsStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -512,7 +595,7 @@ void Go90left() {
|
|||||||
motorFR(150);
|
motorFR(150);
|
||||||
motorBL(-150);
|
motorBL(-150);
|
||||||
motorBR(150);
|
motorBR(150);
|
||||||
delay(1150);
|
delay(1250);
|
||||||
motorsStop();
|
motorsStop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user