diff --git a/lib/LineSensor/src/LineSensor.cpp b/lib/LineSensor/src/LineSensor.cpp index 879fee1..516a7ff 100644 --- a/lib/LineSensor/src/LineSensor.cpp +++ b/lib/LineSensor/src/LineSensor.cpp @@ -23,7 +23,12 @@ float LineSensor::AverageReflectance(void) } bool LineSensor::LineDetected() { +#ifdef DARK return AverageReflectance() > LINE_THRESHOLD; +#endif +#ifndef DARK + return AverageReflectance() < 200; +#endif } float LineSensor::CalcError(void) @@ -32,6 +37,9 @@ float LineSensor::CalcError(void) float sum = 0; for (int i = 0; i INTERSECTION_THRESHOLD; +#endif +#ifndef DARK + return AverageReflectance() < 100; +#endif } diff --git a/lib/LineSensor/src/LineSensor.h b/lib/LineSensor/src/LineSensor.h index 2b9d4e0..311ff4a 100644 --- a/lib/LineSensor/src/LineSensor.h +++ b/lib/LineSensor/src/LineSensor.h @@ -2,19 +2,17 @@ #include -#define FIRST_LINE_SENSOR A0 - class LineSensor { protected: const static uint8_t sensorCount = 6; - const byte sensors[sensorCount] = {A0,A7,A2,A3,A4,A6}; + const byte sensors[sensorCount] = {A0,A11,A2,A3,A4,A6}; bool prevOnIntersection = false; +public: float AverageReflectance(); -public: LineSensor(void) {} void Initialize(void); float CalcError(void); // varies between 1 and 6 diff --git a/src/robot.cpp b/src/robot.cpp index 5b1682b..6f1061a 100644 --- a/src/robot.cpp +++ b/src/robot.cpp @@ -135,7 +135,12 @@ void Robot::LineFollowingUpdate(void) { if(robotState == ROBOT_LINING) { +#ifdef DARK float setpoint = rollingTurnRate > 0.1 ? 4 : 3; +#endif +#ifndef DARK + float setpoint = 3.5; +#endif float lineError = setpoint - lineSensor.CalcError();