@@ -19,29 +19,38 @@ Arduino_AlvikCarrier::Arduino_AlvikCarrier(){
1919 wire = new TwoWire (I2C_1_SDA, I2C_1_SCL);
2020
2121 // I2C external bus
22- ext_wire = new TwoWire (I2C_2_SDA,I2C_2_SCL);
22+ ext_wire = new TwoWire (I2C_2_SDA, I2C_2_SCL);
2323
2424 // uart to esp32
25- serial = new HardwareSerial (UART_RX,UART_TX);
25+ serial = new HardwareSerial (UART_RX, UART_TX);
2626
2727 // RGB leds
28- led1 = new RGBled (LED_1_RED,LED_1_GREEN,LED_1_BLUE);
29- led2 = new RGBled (LED_2_RED,LED_2_GREEN,LED_2_BLUE);
28+ led1 = new RGBled (LED_1_RED, LED_1_GREEN, LED_1_BLUE);
29+ led2 = new RGBled (LED_2_RED, LED_2_GREEN, LED_2_BLUE);
3030
3131 // motors
32- motor_left = new DCmotor (MOTOR_LEFT_A,MOTOR_LEFT_A_CH, MOTOR_LEFT_B, MOTOR_LEFT_B_CH,MOTOR_LEFT_FLIP);
33- motor_right = new DCmotor (MOTOR_RIGHT_A,MOTOR_RIGHT_A_CH,MOTOR_RIGHT_B,MOTOR_RIGHT_B_CH,MOTOR_RIGHT_FLIP);
32+ motor_left = new DCmotor (MOTOR_LEFT_A, MOTOR_LEFT_A_CH, MOTOR_LEFT_B, MOTOR_LEFT_B_CH, MOTOR_LEFT_FLIP);
33+ motor_right = new DCmotor (MOTOR_RIGHT_A, MOTOR_RIGHT_A_CH, MOTOR_RIGHT_B, MOTOR_RIGHT_B_CH, MOTOR_RIGHT_FLIP);
3434
3535 // encoders
36- encoder_left = new Encoder (TIM3,ENC_LEFT_FLIP);
37- encoder_right = new Encoder (TIM5,ENC_RIGHT_FLIP);
36+ encoder_left = new Encoder (TIM3, ENC_LEFT_FLIP);
37+ encoder_right = new Encoder (TIM5, ENC_RIGHT_FLIP);
3838
3939 // motor control
40- motor_control_left = new MotorControl (motor_left,encoder_left,MOTOR_KP_DEFAULT,MOTOR_KI_DEFAULT,MOTOR_KD_DEFAULT,MOTOR_CONTROL_PERIOD);
41- motor_control_right = new MotorControl (motor_right,encoder_right,MOTOR_KP_DEFAULT,MOTOR_KI_DEFAULT,MOTOR_KD_DEFAULT,MOTOR_CONTROL_PERIOD);
40+ motor_control_left = new MotorControl (motor_left, encoder_left,
41+ MOTOR_KP_DEFAULT, MOTOR_KI_DEFAULT, MOTOR_KD_DEFAULT,
42+ MOTOR_CONTROL_PERIOD, CONTROL_MODE_LINEAR, MOTOR_CONTROL_STEP,
43+ POSITION_KP_DEFAULT, POSITION_KI_DEFAULT, POSITION_KD_DEFAULT,
44+ POSITION_CONTROL_PERIOD, POSITION_MAX_SPEED);
45+
46+ motor_control_right = new MotorControl (motor_right, encoder_right,
47+ MOTOR_KP_DEFAULT, MOTOR_KI_DEFAULT, MOTOR_KD_DEFAULT,
48+ MOTOR_CONTROL_PERIOD, CONTROL_MODE_LINEAR, MOTOR_CONTROL_STEP,
49+ POSITION_KP_DEFAULT, POSITION_KI_DEFAULT, POSITION_KD_DEFAULT,
50+ POSITION_CONTROL_PERIOD, POSITION_MAX_SPEED);
4251
4352 // color sensor
44- apds9960 = new APDS9960 (*wire,APDS_INT);
53+ apds9960 = new APDS9960 (*wire, APDS_INT);
4554
4655 // servo
4756 servo_A = new Servo ();
@@ -57,16 +66,16 @@ Arduino_AlvikCarrier::Arduino_AlvikCarrier(){
5766 imu = new LSM6DSOSensor (wire, LSM6DSO_I2C_ADD_L);
5867 ipKnobs = &iKnobs;
5968 imu_delta_time = MOTION_FX_ENGINE_DELTATIME;
60- sample_to_discard= 0 ;
69+ sample_to_discard = 0 ;
6170
6271 // version
6372 version_high = VERSION_BYTE_HIGH;
6473 version_mid = VERSION_BYTE_MID;
6574 version_low = VERSION_BYTE_LOW;
6675
6776 // kinematics
68- kinematics = new Kinematics (WHEEL_TRACK_MM,WHEEL_DIAMETER_MM);
69- kinematics_movement= 0 ;
77+ kinematics = new Kinematics (WHEEL_TRACK_MM, WHEEL_DIAMETER_MM);
78+ kinematics_movement = 0 ;
7079
7180}
7281
@@ -125,9 +134,9 @@ int Arduino_AlvikCarrier::begin(){
125134}
126135
127136void Arduino_AlvikCarrier::getVersion (uint8_t &high_byte, uint8_t &mid_byte, uint8_t &low_byte){
128- high_byte= version_high;
129- mid_byte= version_mid;
130- low_byte= version_low;
137+ high_byte = version_high;
138+ mid_byte = version_mid;
139+ low_byte = version_low;
131140}
132141
133142
@@ -136,7 +145,7 @@ void Arduino_AlvikCarrier::getVersion(uint8_t &high_byte, uint8_t &mid_byte, uin
136145/* *****************************************************************************************************/
137146
138147int Arduino_AlvikCarrier::beginAPDS (){
139- pinMode (APDS_LED,OUTPUT);
148+ pinMode (APDS_LED, OUTPUT);
140149 enableIlluminator ();
141150 if (!apds9960->begin ()){
142151 return ERROR_APDS;
@@ -150,13 +159,13 @@ void Arduino_AlvikCarrier::updateAPDS(){
150159 }
151160 // digitalWrite(APDS_LED,HIGH);
152161 if (apds9960->colorAvailable ()){
153- apds9960->readColor (bottom_red,bottom_green,bottom_blue,bottom_clear);
162+ apds9960->readColor (bottom_red, bottom_green, bottom_blue, bottom_clear);
154163 }
155164 // digitalWrite(APDS_LED,LOW);
156165}
157166
158167void Arduino_AlvikCarrier::setIlluminator (uint8_t value){
159- digitalWrite (APDS_LED,value);
168+ digitalWrite (APDS_LED, value);
160169}
161170
162171void Arduino_AlvikCarrier::enableIlluminator (){
@@ -208,11 +217,11 @@ void Arduino_AlvikCarrier::setServoB(int position){
208217/* *****************************************************************************************************/
209218
210219int Arduino_AlvikCarrier::beginI2Cselect (){
211- pinMode (SELECT_I2C_BUS,OUTPUT);
220+ pinMode (SELECT_I2C_BUS, OUTPUT);
212221}
213222
214223void Arduino_AlvikCarrier::setExternalI2C (uint8_t state){
215- digitalWrite (SELECT_I2C_BUS,state);
224+ digitalWrite (SELECT_I2C_BUS, state);
216225}
217226
218227void Arduino_AlvikCarrier::connectExternalI2C (){
@@ -348,14 +357,14 @@ void Arduino_AlvikCarrier::updateTouch(){
348357}
349358
350359bool Arduino_AlvikCarrier::getAnyTouchPressed (){
351- if (touch_sensor->touched (touch_status,TOUCH_PAD_GUARD)){
360+ if (touch_sensor->touched (touch_status, TOUCH_PAD_GUARD)){
352361 return true ;
353362 }
354363 return false ;
355364}
356365
357366bool Arduino_AlvikCarrier::getTouchKey (const uint8_t key){
358- if (touch_sensor->touched (touch_status,key)&&touch_sensor->touched (touch_status,TOUCH_PAD_GUARD)){
367+ if (touch_sensor->touched (touch_status, key)&&touch_sensor->touched (touch_status, TOUCH_PAD_GUARD)){
359368 return true ;
360369 }
361370 return false ;
@@ -411,23 +420,23 @@ bool Arduino_AlvikCarrier::getTouchDelete(){
411420/* *****************************************************************************************************/
412421
413422int Arduino_AlvikCarrier::beginLeds (){
414- pinMode (LED_BUILTIN,OUTPUT);
423+ pinMode (LED_BUILTIN, OUTPUT);
415424 // turn off leds
416425 led1->clear ();
417426 led2->clear ();
418427 return 0 ;
419428}
420429
421430void Arduino_AlvikCarrier::setLedBuiltin (const uint8_t value){
422- digitalWrite (LED_BUILTIN,value);
431+ digitalWrite (LED_BUILTIN, value);
423432}
424433
425434void Arduino_AlvikCarrier::setLedLeft (const uint32_t color){
426435 led1->set (color);
427436}
428437
429438void Arduino_AlvikCarrier::setLedLeft (const uint32_t red, const uint32_t green, const uint32_t blue){
430- led1->set (red,green,blue);
439+ led1->set (red, green, blue);
431440}
432441
433442void Arduino_AlvikCarrier::setLedLeftRed (const uint32_t red){
@@ -447,7 +456,7 @@ void Arduino_AlvikCarrier::setLedRight(const uint32_t color){
447456}
448457
449458void Arduino_AlvikCarrier::setLedRight (const uint32_t red, const uint32_t green, const uint32_t blue){
450- led2->set (red,green,blue);
459+ led2->set (red, green, blue);
451460}
452461
453462void Arduino_AlvikCarrier::setLedRightRed (const uint32_t red){
@@ -468,8 +477,8 @@ void Arduino_AlvikCarrier::setLeds(const uint32_t color){
468477}
469478
470479void Arduino_AlvikCarrier::setLeds (const uint32_t red, const uint32_t green, const uint32_t blue){
471- setLedLeft (red,green,blue);
472- setLedRight (red,green,blue);
480+ setLedLeft (red, green, blue);
481+ setLedRight (red, green, blue);
473482}
474483
475484void Arduino_AlvikCarrier::setAllLeds (const uint8_t value){
@@ -613,26 +622,26 @@ void Arduino_AlvikCarrier::errorLed(const int error_code){
613622
614623void Arduino_AlvikCarrier::drive (const float linear, const float angular){
615624 kinematics->forward (linear, angular);
616- setRpm (kinematics->getLeftVelocity (),kinematics->getRightVelocity ());
625+ setRpm (kinematics->getLeftVelocity (), kinematics->getRightVelocity ());
617626}
618627
619628void Arduino_AlvikCarrier::rotate (const float angle){
620- float initial_angle= kinematics->getTheta ();
621- float final_angle= angle+initial_angle;
622- float error= angle;
623- unsigned long t= millis ();
629+ float initial_angle = kinematics->getTheta ();
630+ float final_angle = angle+initial_angle;
631+ float error = angle;
632+ unsigned long t = millis ();
624633 while (abs (error)>2 ){
625634 if (millis ()-t>20 ){
626- t= millis ();
635+ t = millis ();
627636 updateMotors ();
628637 kinematics->inverse (motor_control_left->getRPM (),motor_control_right->getRPM ());
629638 kinematics->updatePose ();
630- error= final_angle-kinematics->getTheta ();
639+ error = final_angle-kinematics->getTheta ();
631640 }
632641 if (angle>0 ){
633- drive (0 ,40 );
642+ drive (0 , 40 );
634643 }else {
635- drive (0 ,-40 );
644+ drive (0 , -40 );
636645 }
637646 }
638647 drive (0 ,0 );
@@ -644,26 +653,26 @@ void Arduino_AlvikCarrier::rotate(const float angle){
644653
645654
646655void Arduino_AlvikCarrier::move (const float distance){
647- float initial_travel= kinematics->getTravel ();
648- float final_travel= abs (distance)+initial_travel;
649- float error= abs (distance);
650- unsigned long t= millis ();
656+ float initial_travel = kinematics->getTravel ();
657+ float final_travel = abs (distance)+initial_travel;
658+ float error = abs (distance);
659+ unsigned long t = millis ();
651660
652661 while (error>2 ){
653662 if (millis ()-t>20 ){
654- t= millis ();
663+ t = millis ();
655664 updateMotors ();
656- kinematics->inverse (motor_control_left->getRPM (),motor_control_right->getRPM ());
665+ kinematics->inverse (motor_control_left->getRPM (), motor_control_right->getRPM ());
657666 kinematics->updatePose ();
658- error= final_travel-kinematics->getTravel ();
667+ error = final_travel-kinematics->getTravel ();
659668 }
660669 if (distance>0 ){
661- drive (40 ,0 );
670+ drive (40 , 0 );
662671 }else {
663- drive (-40 ,0 );
672+ drive (-40 , 0 );
664673 }
665674 }
666- drive (0 ,0 );
675+ drive (0 , 0 );
667676 updateMotors ();
668677 motor_control_left->brake ();
669678 motor_control_right->brake ();
@@ -673,7 +682,7 @@ void Arduino_AlvikCarrier::move(const float distance){
673682
674683
675684void Arduino_AlvikCarrier::updateKinematics (){
676- kinematics->inverse (motor_control_left->getRPM (),motor_control_right->getRPM ());
685+ kinematics->inverse (motor_control_left->getRPM (), motor_control_right->getRPM ());
677686 kinematics->updatePose ();
678687 if (kinematics_movement!=0 ){
679688 // do controls
0 commit comments