Example project for the Line Follower robot.
Dependencies: PM2_Libary Eigen
Diff: main.cpp
- Revision:
- 34:702246639f02
- Parent:
- 33:cff70742569d
- Child:
- 38:6d11788e14c0
--- a/main.cpp Thu May 05 07:41:46 2022 +0000 +++ b/main.cpp Thu May 05 11:08:20 2022 +0200 @@ -3,7 +3,7 @@ #include "PM2_Libary.h" -# define M_PI 3.14159265358979323846 /* pi */ +# define M_PI 3.14159265358979323846 // number pi // logical variable main task bool do_execute_main_task = false; // this variable will be toggled via the user button (blue button) to or not to execute the main task @@ -15,7 +15,7 @@ void user_button_released_fcn(); // while loop gets executed every main_task_period_ms milliseconds -int main_task_period_ms = 200; // define main task period time in ms e.g. 50 ms -> main task runns 20 times per second +int main_task_period_ms = 10; // define main task period time in ms e.g. 50 ms -> main task runns 20 times per second Timer main_task_timer; // create Timer object which we use to run the main task every main task period time in ms // led on nucleo board @@ -23,9 +23,6 @@ I2C i2c(PB_9, PB_8); // I2C (PinName sda, PinName scl) SensorBar sensor_bar(i2c, 0.1175f); -// PinName sda = PB_9; -// PinName scl = PB_8; -// SensorBar sensor_bar = SensorBar(0.1175f); int main() { @@ -45,31 +42,34 @@ main_task_timer.reset(); - /* if (do_execute_main_task) { + + /* + uint8_t sensor_bar_raw_value = sensor_bar.getRaw(); + for( int i = 7; i >= 0; i-- ) { + printf("%d", (sensor_bar_raw_value >> i) & 0x01); + } + printf(", "); + */ + + int8_t sensor_bar_binaryPosition = sensor_bar.getBinaryPosition(); + printf("%d, ", sensor_bar_binaryPosition); + + uint8_t sensor_bar_nrOfLedsActive = sensor_bar.getNrOfLedsActive(); + printf("%d, ", sensor_bar_nrOfLedsActive); + + float sensor_bar_angleRad = 0.0f; + float sensor_bar_avgAngleRad = 0.0f; + if (sensor_bar.isAnyLedActive()) { + sensor_bar_angleRad = sensor_bar.getAngleRad(); + sensor_bar_avgAngleRad = sensor_bar.getAvgAngleRad(); + } + printf("%f, ", sensor_bar_angleRad * 180.0f / M_PI); + printf("%f\r\n", sensor_bar_avgAngleRad * 180.0f / M_PI); + } else { } - */ - - // sensor_bar.update(); - - printf("---\r\n"); - - uint8_t sensor_bar_raw_value = sensor_bar.getRaw(); - for( int i = 7; i >= 0; i-- ) { - printf("%d", (sensor_bar_raw_value >> i) & 0x01); - } - printf("\r\n"); - - int8_t sensor_bar_binaryPosition = sensor_bar.getBinaryPosition(); - printf("%d\r\n", sensor_bar_binaryPosition); - - uint8_t sensor_bar_nrOfLedsActive = sensor_bar.getNrofLedsActive(); - printf("%d\r\n", sensor_bar_nrOfLedsActive); - - float sensor_bar_angleRad = sensor_bar.getAngleRad(); - printf("%f\r\n", sensor_bar_angleRad * 180.0f / M_PI); user_led = !user_led;