Compare commits
	
		
			2 Commits
		
	
	
		
			modulus-pl
			...
			d1e03616c5
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | d1e03616c5 | ||
|  | b4bc492f96 | 
							
								
								
									
										3
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.vscode/settings.json
									
									
									
									
										vendored
									
									
								
							| @@ -4,6 +4,7 @@ | ||||
|         "cmath": "cpp", | ||||
|         "*.tcc": "cpp", | ||||
|         "string": "cpp", | ||||
|         "ranges": "cpp" | ||||
|         "ranges": "cpp", | ||||
|         "numeric": "cpp" | ||||
|     } | ||||
| } | ||||
| @@ -58,6 +58,19 @@ extern long last_p; | ||||
| // This value must always be at least 2, otherwise the code will break due to there being an array with a zero or negative length or a division by zero | ||||
| #define ENCODER_BUFFER_ENTRY_COUNT 3 | ||||
|  | ||||
| <<<<<<< HEAD | ||||
|  | ||||
| // Number of encoder ticks per full rotation of each swerve drive steering motor | ||||
| #define STEERING_ENCODER_TICKS_PER_ROTATION     (1024.0 * 8.0) | ||||
| // Number of encoder ticks per degree of rotation for the swerve drive steering motors | ||||
| #define STEERING_ENCODER_TICKS_PER_DEGREE       (STEERING_ENCODER_TICKS_PER_ROTATION / 360.0) | ||||
|  | ||||
| // Maximum speed allowed for the steering motors (out of 127.0) | ||||
| #define STEERING_MOTOR_SPEED_LIMIT 127.0 // TODO as of 20230927, lower this if they're spinning too fast for the robot to handle | ||||
|  | ||||
| // Start decelerating the steering motors linearly when they're within this many degrees of their target angle | ||||
| #define STEERING_SLOW_DELTA 30.0 | ||||
| ======= | ||||
| // Steering parameters | ||||
| #define STEERING_ENCODER_TICKS_PER_ROTATION     (1024.0 * 8.0)                                  // Number of encoder ticks per full rotation of each swerve drive steering motor | ||||
| #define STEERING_ENCODER_TICKS_PER_DEGREE       (STEERING_ENCODER_TICKS_PER_ROTATION / 360.0)   // Number of encoder ticks per degree of rotation for the swerve drive steering motors | ||||
| @@ -70,6 +83,7 @@ extern long last_p; | ||||
| #define STEERING_SLOW_APPROACH_SPEED (0.16 * (MOTOR_MAX_POWER / STEERING_MOTOR_SPEED_LIMIT))    // Slow approach speed for steering motors | ||||
| #define STEERING_TOLERANCE_DISABLE_DRIVE 30.0                                                    // Disable the drive motors if any steering motor is off-target by more than this many degrees | ||||
| #define STEERING_HOVER_RANGE 10.0                                                               // Angular range where steering motors tend to hover around their targets | ||||
| >>>>>>> modulus-plus-dev | ||||
|  | ||||
| // Claw status | ||||
| #define CLAW_UNKNOWN        1   // Position unknown | ||||
|   | ||||
							
								
								
									
										36
									
								
								src/main.cpp
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								src/main.cpp
									
									
									
									
									
								
							| @@ -44,8 +44,13 @@ PCF8574 ioex2(0x21, 20, 21); | ||||
|  | ||||
| // JANK: soldered to pico or headers | ||||
| PioEncoder enc1(18); // Front Left | ||||
| <<<<<<< HEAD | ||||
| PioEncoder enc2(0); // Front Right // TODO WIRING AND CONFIRMATION 20230929 | ||||
| PioEncoder enc3(27); // Back Left // TODO WIRING AND CONFIRMATION 20230929 | ||||
| ======= | ||||
| PioEncoder enc2(0); // Front Right | ||||
| PioEncoder enc3(2); // Back Left | ||||
| >>>>>>> modulus-plus-dev | ||||
| PioEncoder enc4(14);  // Back Right | ||||
|  | ||||
|  | ||||
| @@ -998,7 +1003,11 @@ void loop() { | ||||
|  | ||||
|   // Claw servo control | ||||
|   int new_claw_command = CLAW_COMMAND_UNSET; | ||||
| <<<<<<< HEAD | ||||
|   int claw_direction = getButton(CLAW_OPEN_BUTTON) - getButton(CLAW_CLOSE_BUTTON); | ||||
| ======= | ||||
|   int claw_direction = ((int) getButton(CLAW_OPEN_BUTTON)) - ((int) getButton(CLAW_CLOSE_BUTTON)); | ||||
| >>>>>>> modulus-plus-dev | ||||
|   switch(claw_direction) { | ||||
|     case 0: | ||||
|       new_claw_command = CLAW_COMMAND_STAY; | ||||
| @@ -1016,9 +1025,13 @@ void loop() { | ||||
|   int new_tilt_command = TILT_COMMAND_UNSET; | ||||
|   clawarm = updateTiltCommand(clawarm, new_tilt_command); | ||||
|  | ||||
| <<<<<<< HEAD | ||||
|   telemetry(zeroed_lx_float, zeroed_ly_float, zeroed_rx_float, zeroed_ry_float, loop_drive_mode, left_joystick_angle, left_joystick_magnitude, right_joystick_angle, right_joystick_magnitude, previous_loop_processing_duration_core_0); // DEBUG ONLY, telemetry | ||||
| ======= | ||||
|  | ||||
|   telemetry(zeroed_lx_float, zeroed_ly_float, zeroed_rx_float, zeroed_ry_float, loop_drive_mode, left_joystick_angle, left_joystick_magnitude, right_joystick_angle, right_joystick_magnitude, previous_loop_processing_duration_core_0); // DEBUG ONLY, telemetry | ||||
|  | ||||
| >>>>>>> modulus-plus-dev | ||||
|  | ||||
|   // update motors after calculation | ||||
|   set_motor(FLDRIVE, swrv.front_left_power); | ||||
| @@ -1036,6 +1049,14 @@ void loop() { | ||||
|   power_data_transfer_br = swrv.back_right_spin_power; | ||||
|   spinlock_release(&drive_power_command_spinlock_flag); | ||||
|  | ||||
|   // Lock the spinlock and transfer the steering motor data to core 1, which will send the data to the sabertooth motor controllers | ||||
|   spinlock_lock_core_0(&drive_power_command_spinlock_flag); | ||||
|   power_data_transfer_fl = swrv.front_left_power; | ||||
|   power_data_transfer_fr = swrv.front_right_spin_power; | ||||
|   power_data_transfer_bl = swrv.back_left_spin_power; | ||||
|   power_data_transfer_br = swrv.back_right_spin_power; | ||||
|   spinlock_release(&drive_power_command_spinlock_flag); | ||||
|  | ||||
|   // update stepper motors | ||||
|   // TESTING: comment out this code to check performance impact | ||||
|   set_motor(LIFTALL, clawarm.arm_set_motor_int); | ||||
| @@ -1072,6 +1093,20 @@ void drive_control_core_1() { // Control drive motors from core 1 from loop1() f | ||||
|   spinlock_release(&drive_power_command_spinlock_flag); // Release the spinlock | ||||
|  | ||||
|   // Set motors if the requested power is different than the previously requested power | ||||
| <<<<<<< HEAD | ||||
|   if(local_fl != power_data_transfer_prev_fl) { | ||||
|     set_motor(FLSTEER, local_fl); | ||||
|   } | ||||
|   if(local_fr != power_data_transfer_prev_fr) { | ||||
|     set_motor(FRSTEER, local_fr); | ||||
|   } | ||||
|   if(local_bl != power_data_transfer_prev_bl) { | ||||
|     set_motor(BLSTEER, local_bl); | ||||
|   } | ||||
|   if(local_br != power_data_transfer_prev_br) { | ||||
|     set_motor(BRSTEER, local_br); | ||||
|   } | ||||
| ======= | ||||
|   //if(local_fl != power_data_transfer_prev_fl) { | ||||
|     set_motor(FLSTEER, local_fl); | ||||
|   //} | ||||
| @@ -1084,6 +1119,7 @@ void drive_control_core_1() { // Control drive motors from core 1 from loop1() f | ||||
|   //if(local_br != power_data_transfer_prev_br) { | ||||
|     set_motor(BRSTEER, local_br); | ||||
|   //} | ||||
| >>>>>>> modulus-plus-dev | ||||
|  | ||||
|   // Set the previously requested power data to the current power data, will be read in the next loop | ||||
|   power_data_transfer_prev_fl = local_fl; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user