Loading src/firmware/.settings/language.settings.xml +2 −2 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="com.crt.advproject.GCCBuildCommandParser" keep-relative-paths="false" name="MCU GCC Build Output Parser" parameter="(arm-none-eabi-gcc)|(arm-none-eabi-[gc]\+\+)|(gcc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/> <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="-484741727297629036" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="-515984881481373884" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> Loading @@ -15,7 +15,7 @@ <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="-425127439029159884" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="-456370593212904732" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> Loading src/firmware/source/Config.hpp +18 −15 Original line number Diff line number Diff line Loading @@ -25,8 +25,8 @@ constexpr float TICKS_RANGE = 937.33; constexpr int REGULATOR_MAX_LIMIT = 300; constexpr int SERVO_MIN_LIMIT = -360; constexpr int SERVO_MAX_LIMIT = 280; constexpr int SERVO_MIN_LIMIT = -440; //-360; //-360; constexpr int SERVO_MAX_LIMIT = 360; //360; //280; constexpr int SERVO_MIDPOINT = (SERVO_MIN_LIMIT + SERVO_MAX_LIMIT) / 2; Loading @@ -38,32 +38,35 @@ constexpr int SERVO_MIDPOINT = (SERVO_MIN_LIMIT + SERVO_MAX_LIMIT) / 2; //constexpr double P_FINISH = P * 0.7; // cierne koliecka constexpr double P = 20; constexpr double P_FINISH = P * 0.7; constexpr double P = 15;//22; constexpr double P_INCR = 1.3;//22; constexpr double P_START = 5;//22; //constexpr double P_LOW_ERROR = 15; constexpr double P_FINISH = P; // P * 0.7; constexpr int SPEED_MIN_FAST = 80; constexpr int SPEED_CURVE_FAST = 180; constexpr int SPEED_MAX_FAST = 220; constexpr int SPEED_BRAKE_FAST_LIMIT = 180; constexpr int SPEED_BRAKE_FAST_LIMIT = 100; constexpr int SPEED_LINE_FAST_MINIMUM = 150; constexpr int BRAKE_FORCE = -512; constexpr int BRAKE_FORCE = -256; constexpr int SPEED_ACCELERATION = 300; //constexpr int SPEED_MIN_SLOW = 45; //constexpr int SPEED_CURVE_SLOW = 70; //constexpr int SPEED_MAX_SLOW = 120; constexpr int SPEED_MIN_SLOW = 80; constexpr int SPEED_CURVE_SLOW = 180; constexpr int SPEED_MAX_SLOW = 180; constexpr int SPEED_MIN_SLOW = 70; constexpr int SPEED_CURVE_SLOW = 80; constexpr int SPEED_MAX_SLOW = 90; constexpr int ABSOLUTELLY_MINIMUM_SPEED = 45; constexpr int DISTANCE_COUNTER_LIMIT = 10; constexpr double CURVE_LIMIT = 4; constexpr double CURVE_LIMIT = 3; constexpr int STRAIGHT_LINE_LIMIT = 60; constexpr int BOX_CLOSE_TRIGGER_DISTANCE_CM = 40; Loading @@ -74,7 +77,7 @@ constexpr int INITIAL_STOP_TIME_MS = 2000; constexpr int INITIALSTRAIGHT_TIME_SPEED = 500; constexpr bool INIT_FINISH = false; constexpr bool STOP = true; constexpr bool STOP = false; constexpr bool PRINT_CAMERA = false; constexpr bool CALIBRATE_REGL = false; constexpr bool CALIBRATE_SERVO = false; Loading @@ -82,16 +85,16 @@ constexpr bool CALIBRATE_SERVO = false; constexpr bool TEST_SONIC = false; constexpr int LED_PERCENTAGE = 60; constexpr int LED_PERCENTAGE = 0; constexpr bool AUTO_EXPOSITION = true; constexpr uint8_t DESIRED_LIGHTING = 200; constexpr uint8_t DESIRED_LIGHTING_OFFSET = 5; constexpr uint32_t EXPOSITION_INCREMENT = 1000; constexpr uint8_t DESIRED_LIGHTING_OFFSET = 20; constexpr uint32_t EXPOSITION_INCREMENT = 200; constexpr uint32_t DEFAULT_EXPOSITION = 5000; constexpr bool USE_DERIVATIVE_FINISH = true; constexpr uint8_t DERIVATIVE_THRESHOLD = 40; constexpr uint8_t DERIVATIVE_THRESHOLD = 25; constexpr std::size_t DARK_PIXELS_FINISH = 10; constexpr std::size_t BLACK_PIXEL_TRESHOLD = 80; Loading src/firmware/source/Schumacher.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ std::size_t find_line(LinearCamera::frame &derived, std::size_t mid_index, std:: Max<uint8_t> line = max(derived, lower_bound, upper_bound); //uint8_t derivative_threshold = compute_mean(derived); if (line.value >= DERIVATIVE_THRESHOLD) { return line.index; } Loading @@ -37,6 +39,7 @@ std::size_t find_line(LinearCamera::frame &derived, std::size_t mid_index, std:: { for (std::size_t i = mid_index; i > 0; i--) { if (derived[i] >= DERIVATIVE_THRESHOLD) { //if (derived[i] >= derivative_threshold) { return i; } } Loading @@ -47,6 +50,7 @@ std::size_t find_line(LinearCamera::frame &derived, std::size_t mid_index, std:: /* Find right line from middle */ for (std::size_t i = mid_index; i < 127; i++) { if (derived[i] >= DERIVATIVE_THRESHOLD) { //if (derived[i] >= derivative_threshold) { return i; } } Loading src/firmware/source/Utils/Algorithms.hpp +15 −0 Original line number Diff line number Diff line Loading @@ -115,5 +115,20 @@ max( const std::array< T, SIZE > &array, return maximum; } template <typename T, std::size_t SIZE> uint8_t compute_mean( const std::array< T, SIZE > &data) { uint64_t sum; for ( std::size_t i = 0; i < 128; i++ ) { sum += data[i]; } return sum / 128; } #endif /* UTILS_ALGORITHMS_HPP_ */ src/firmware/source/controls/Controls.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ void set_servo(int position) { void set_regulator(int speed) { speed = std::min(speed, REGULATOR_MAX_LIMIT); speed = std::max(0, speed); speed = std::max(-512, speed); uint32_t desired_ticks = TICKS_MIDDLE + speed * (TICKS_RANGE / 512); FTM_StopTimer(FTM1); Loading Loading
src/firmware/.settings/language.settings.xml +2 −2 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuildCommandParser" id="com.crt.advproject.GCCBuildCommandParser" keep-relative-paths="false" name="MCU GCC Build Output Parser" parameter="(arm-none-eabi-gcc)|(arm-none-eabi-[gc]\+\+)|(gcc)|([gc]\+\+)|(clang)" prefer-non-shared="true"/> <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="-484741727297629036" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="-515984881481373884" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> Loading @@ -15,7 +15,7 @@ <extension point="org.eclipse.cdt.core.LanguageSettingsProvider"> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="com.crt.advproject.GCCBuildCommandParser"/> <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="-425127439029159884" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <provider class="com.crt.advproject.specs.MCUGCCBuiltinSpecsDetector" console="false" env-hash="-456370593212904732" id="com.crt.advproject.GCCBuildSpecCompilerParser" keep-relative-paths="false" name="MCU GCC Built-in Compiler Parser" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true"> <language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.g++"/> </provider> Loading
src/firmware/source/Config.hpp +18 −15 Original line number Diff line number Diff line Loading @@ -25,8 +25,8 @@ constexpr float TICKS_RANGE = 937.33; constexpr int REGULATOR_MAX_LIMIT = 300; constexpr int SERVO_MIN_LIMIT = -360; constexpr int SERVO_MAX_LIMIT = 280; constexpr int SERVO_MIN_LIMIT = -440; //-360; //-360; constexpr int SERVO_MAX_LIMIT = 360; //360; //280; constexpr int SERVO_MIDPOINT = (SERVO_MIN_LIMIT + SERVO_MAX_LIMIT) / 2; Loading @@ -38,32 +38,35 @@ constexpr int SERVO_MIDPOINT = (SERVO_MIN_LIMIT + SERVO_MAX_LIMIT) / 2; //constexpr double P_FINISH = P * 0.7; // cierne koliecka constexpr double P = 20; constexpr double P_FINISH = P * 0.7; constexpr double P = 15;//22; constexpr double P_INCR = 1.3;//22; constexpr double P_START = 5;//22; //constexpr double P_LOW_ERROR = 15; constexpr double P_FINISH = P; // P * 0.7; constexpr int SPEED_MIN_FAST = 80; constexpr int SPEED_CURVE_FAST = 180; constexpr int SPEED_MAX_FAST = 220; constexpr int SPEED_BRAKE_FAST_LIMIT = 180; constexpr int SPEED_BRAKE_FAST_LIMIT = 100; constexpr int SPEED_LINE_FAST_MINIMUM = 150; constexpr int BRAKE_FORCE = -512; constexpr int BRAKE_FORCE = -256; constexpr int SPEED_ACCELERATION = 300; //constexpr int SPEED_MIN_SLOW = 45; //constexpr int SPEED_CURVE_SLOW = 70; //constexpr int SPEED_MAX_SLOW = 120; constexpr int SPEED_MIN_SLOW = 80; constexpr int SPEED_CURVE_SLOW = 180; constexpr int SPEED_MAX_SLOW = 180; constexpr int SPEED_MIN_SLOW = 70; constexpr int SPEED_CURVE_SLOW = 80; constexpr int SPEED_MAX_SLOW = 90; constexpr int ABSOLUTELLY_MINIMUM_SPEED = 45; constexpr int DISTANCE_COUNTER_LIMIT = 10; constexpr double CURVE_LIMIT = 4; constexpr double CURVE_LIMIT = 3; constexpr int STRAIGHT_LINE_LIMIT = 60; constexpr int BOX_CLOSE_TRIGGER_DISTANCE_CM = 40; Loading @@ -74,7 +77,7 @@ constexpr int INITIAL_STOP_TIME_MS = 2000; constexpr int INITIALSTRAIGHT_TIME_SPEED = 500; constexpr bool INIT_FINISH = false; constexpr bool STOP = true; constexpr bool STOP = false; constexpr bool PRINT_CAMERA = false; constexpr bool CALIBRATE_REGL = false; constexpr bool CALIBRATE_SERVO = false; Loading @@ -82,16 +85,16 @@ constexpr bool CALIBRATE_SERVO = false; constexpr bool TEST_SONIC = false; constexpr int LED_PERCENTAGE = 60; constexpr int LED_PERCENTAGE = 0; constexpr bool AUTO_EXPOSITION = true; constexpr uint8_t DESIRED_LIGHTING = 200; constexpr uint8_t DESIRED_LIGHTING_OFFSET = 5; constexpr uint32_t EXPOSITION_INCREMENT = 1000; constexpr uint8_t DESIRED_LIGHTING_OFFSET = 20; constexpr uint32_t EXPOSITION_INCREMENT = 200; constexpr uint32_t DEFAULT_EXPOSITION = 5000; constexpr bool USE_DERIVATIVE_FINISH = true; constexpr uint8_t DERIVATIVE_THRESHOLD = 40; constexpr uint8_t DERIVATIVE_THRESHOLD = 25; constexpr std::size_t DARK_PIXELS_FINISH = 10; constexpr std::size_t BLACK_PIXEL_TRESHOLD = 80; Loading
src/firmware/source/Schumacher.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,8 @@ std::size_t find_line(LinearCamera::frame &derived, std::size_t mid_index, std:: Max<uint8_t> line = max(derived, lower_bound, upper_bound); //uint8_t derivative_threshold = compute_mean(derived); if (line.value >= DERIVATIVE_THRESHOLD) { return line.index; } Loading @@ -37,6 +39,7 @@ std::size_t find_line(LinearCamera::frame &derived, std::size_t mid_index, std:: { for (std::size_t i = mid_index; i > 0; i--) { if (derived[i] >= DERIVATIVE_THRESHOLD) { //if (derived[i] >= derivative_threshold) { return i; } } Loading @@ -47,6 +50,7 @@ std::size_t find_line(LinearCamera::frame &derived, std::size_t mid_index, std:: /* Find right line from middle */ for (std::size_t i = mid_index; i < 127; i++) { if (derived[i] >= DERIVATIVE_THRESHOLD) { //if (derived[i] >= derivative_threshold) { return i; } } Loading
src/firmware/source/Utils/Algorithms.hpp +15 −0 Original line number Diff line number Diff line Loading @@ -115,5 +115,20 @@ max( const std::array< T, SIZE > &array, return maximum; } template <typename T, std::size_t SIZE> uint8_t compute_mean( const std::array< T, SIZE > &data) { uint64_t sum; for ( std::size_t i = 0; i < 128; i++ ) { sum += data[i]; } return sum / 128; } #endif /* UTILS_ALGORITHMS_HPP_ */
src/firmware/source/controls/Controls.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ void set_servo(int position) { void set_regulator(int speed) { speed = std::min(speed, REGULATOR_MAX_LIMIT); speed = std::max(0, speed); speed = std::max(-512, speed); uint32_t desired_ticks = TICKS_MIDDLE + speed * (TICKS_RANGE / 512); FTM_StopTimer(FTM1); Loading