<< Back to Object Oriented Programming Portfolio
Grab It Assignment
#include <Arduino.h>
#include <declare.cpp>
#include <debugLight.cpp>
#include <drive.cpp>
#include <sonarSensor.cpp>
#include <gripper.cpp>
void setup()
{
// Initialize serial communication
Serial.begin(9600);
// Initialize the NeoPixel
NeoPixel.begin();
// Initialize the input and outputs
pinMode(BLUETOOTH_TRANSMIT, OUTPUT);
pinMode(NEOPIXEL_PIN, OUTPUT);
pinMode(MOTOR_A_BACKWARD, OUTPUT);
pinMode(MOTOR_A_FORWARD, OUTPUT);
pinMode(MOTOR_B_FORWARD, OUTPUT);
pinMode(MOTOR_B_BACKWARD, OUTPUT);
pinMode(SONAR_SENSOR_TRIGGER, OUTPUT);
pinMode(SONAR_SENSOR_ECHO, INPUT);
// Initialize the outputs
digitalWrite(MOTOR_A_BACKWARD, HIGH);
digitalWrite(MOTOR_A_FORWARD, HIGH);
digitalWrite(MOTOR_B_FORWARD, HIGH);
digitalWrite(MOTOR_B_BACKWARD, HIGH);
}
void loop()
{
unsigned long currentMillis = millis();
if (currentMillis - _lastTime < 1000)
{
gripperSetup();
}
else if (currentMillis - _lastTime >= 1000 && currentMillis - _lastTime < 1300)
{
Serial.println("Close gripper");
closeGripper();
}
else if (currentMillis - _lastTime >= 1300 && currentMillis - _lastTime < 2300)
{
Serial.println("Drive forward");
driveForward();
}
else if (currentMillis - _lastTime >= 2300 && currentMillis - _lastTime < 3300)
{
Serial.println("Turn right");
turnRight();
}
else if (currentMillis - _lastTime >= 3300 && currentMillis - _lastTime < 4300)
{
Serial.println("Turn left");
turnLeft();
}
else if (currentMillis - _lastTime >= 4300 && currentMillis - _lastTime < 5300)
{
Serial.println("Drive backward");
driveBackward();
}
else if (currentMillis - _lastTime >= 5300 && currentMillis - _lastTime < 6300)
{
Serial.println("Stop");
driveStop();
}
else if (currentMillis - _lastTime >= 6300 && currentMillis - _lastTime < 6600)
{
Serial.println("Open gripper");
openGripper();
}
else if (currentMillis - _lastTime >= 6600)
{
Serial.println("Reset");
setStandByColor();
_lastTime = currentMillis;
}
}