Diminution de la vitesse de communication 100kHz -> 10kHz + taille du message 255 -> 25.
Lecture des consignes de vitesse pour commander les moteurs
This commit is contained in:
		
							parent
							
								
									30326baef7
								
							
						
					
					
						commit
						b5b6914f2a
					
				| @ -102,6 +102,6 @@ void communication_send_message(unsigned char * message, unsigned int message_le | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int communication_read_message(unsigned char * message){ | int communication_read_message(unsigned char * message){ | ||||||
|     i2c_lire_registre(I2C_SLAVE_ADDRESS, 0, message, 255); |     i2c_lire_registre(I2C_SLAVE_ADDRESS, 0, message, 25); | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
|  | |||||||
| @ -31,7 +31,7 @@ enum i2c_resultat_t i2c_transmission(uint8_t _adresse_7bits, uint8_t* emission, | |||||||
| 
 | 
 | ||||||
| void i2c_maitre_init(void){ | void i2c_maitre_init(void){ | ||||||
|     //stdio_init_all();
 |     //stdio_init_all();
 | ||||||
|     i2c_init(i2c1, 100 * 1000); |     i2c_init(i2c1, 10 * 1000); | ||||||
| 
 | 
 | ||||||
|     printf("Initialisation des broches\n"); |     printf("Initialisation des broches\n"); | ||||||
|     for(int i=0; i++; i<=28){ |     for(int i=0; i++; i<=28){ | ||||||
|  | |||||||
							
								
								
									
										68
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										68
									
								
								main.c
									
									
									
									
									
								
							| @ -12,8 +12,8 @@ | |||||||
| #define I2C1_SDA_PIN 18 | #define I2C1_SDA_PIN 18 | ||||||
| #define I2C1_SCL_PIN 19 | #define I2C1_SCL_PIN 19 | ||||||
| 
 | 
 | ||||||
| // Convert te joystick value to an char value
 | // Allumage de la led verte
 | ||||||
| uint8_t Conversions_joystick2uint8(uint16_t joystick_value); | #define PIN_LED_VERTE 25 | ||||||
| 
 | 
 | ||||||
| void main(void) | void main(void) | ||||||
| { | { | ||||||
| @ -24,35 +24,59 @@ void main(void) | |||||||
| 	Init_motion_motor(); | 	Init_motion_motor(); | ||||||
| 	communication_init(); | 	communication_init(); | ||||||
| 	 | 	 | ||||||
| 	uint vitesse_x = 0; | 	gpio_init(PIN_LED_VERTE); | ||||||
| 	uint vitesse_y = 0; | 	gpio_set_function(PIN_LED_VERTE, GPIO_FUNC_PWM); | ||||||
|  | 	pwm_set_clkdiv(4, 10000); | ||||||
|  | 	pwm_set_wrap(4, 100); | ||||||
|  | 	pwm_set_enabled(4, true); | ||||||
|  | 	pwm_set_chan_level(4, PWM_CHAN_B, 100); | ||||||
|  | 
 | ||||||
|  | 	uint vitesse_angle = 0; | ||||||
|  | 	uint vitesse_m1 = 0; | ||||||
|  | 	uint vitesse_m2 = 0; | ||||||
|  | 	uint vitesse_m3 = 0; | ||||||
|  | 	uint vitesse_m4 = 0; | ||||||
| 
 | 
 | ||||||
| 	while(1){ | 	while(1){ | ||||||
| 
 | 
 | ||||||
| 		if (!(communication_read_message(reception) == I2C_ECHEC)) | 		if (!(communication_read_message(reception) == I2C_ECHEC)) | ||||||
| 		{ | 		{ | ||||||
| 			vitesse_x = reception[0]-128; | 			vitesse_m1 = reception[0] - 128; | ||||||
| 			vitesse_y = reception[1]-128; | 			vitesse_m2 = reception[0] - 128; | ||||||
|  | 			vitesse_m3 = reception[1] - 128; | ||||||
|  | 			vitesse_m4 = reception[1] - 128; | ||||||
|  | 
 | ||||||
|  | 			vitesse_angle = reception[2] - 128; | ||||||
|  | 
 | ||||||
| 		} | 		} | ||||||
| 		else | 		else | ||||||
| 		{ | 		{ | ||||||
| 			vitesse_x = 0; | 			vitesse_angle = 0; | ||||||
| 			vitesse_y = 0; | 			vitesse_m1 = 0; | ||||||
|  | 			vitesse_m2 = 0; | ||||||
|  | 			vitesse_m3 = 0; | ||||||
|  | 			vitesse_m4 = 0; | ||||||
|  | 
 | ||||||
|  | 			pwm_set_chan_level(4, PWM_CHAN_B, 10); | ||||||
|  | 		 | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		Motor1_speed(vitesse_x); | 		if(vitesse_angle != 0) | ||||||
| 		Motor2_speed(vitesse_x); | 		{ | ||||||
| 		Motor3_speed(vitesse_y); | 			vitesse_m1 = vitesse_angle; | ||||||
| 		Motor4_speed(vitesse_y); | 			vitesse_m2 = vitesse_angle; | ||||||
|  | 			vitesse_m3 = vitesse_angle; | ||||||
|  | 			vitesse_m4 = vitesse_angle; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		printf(">vitesseM1:%d\n", vitesse_m1); | ||||||
|  | 		printf(">vitesseM2:%d\n", vitesse_m2); | ||||||
|  | 		printf(">vitesseM3:%d\n", vitesse_m3); | ||||||
|  | 		printf(">vitesseM4:%d\n", vitesse_m4); | ||||||
|  | 
 | ||||||
|  | 		Motor1_speed(vitesse_m1); | ||||||
|  | 		Motor2_speed(vitesse_m2); | ||||||
|  | 		Motor3_speed(vitesse_m3); | ||||||
|  | 		Motor4_speed(vitesse_m4); | ||||||
| 	} | 	} | ||||||
| } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| /// @brief Prend un nombre entre 0 et 4096, et sort un nombre entre 0 et 255
 |  | ||||||
| /// @return un nombre entre 0 et 255
 |  | ||||||
| uint8_t Conversions_joystick2uint8(uint16_t joystick_value) |  | ||||||
| { |  | ||||||
| 	uint8_t valeur = joystick_value / 4; |  | ||||||
| 	return valeur; |  | ||||||
| } | } | ||||||
							
								
								
									
										4
									
								
								moteur.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								moteur.c
									
									
									
									
									
								
							| @ -56,8 +56,8 @@ void Init_motion_motor(void) | |||||||
| 	gpio_set_function(MOTEUR4_PIN_ACTIVATION, GPIO_FUNC_PWM); | 	gpio_set_function(MOTEUR4_PIN_ACTIVATION, GPIO_FUNC_PWM); | ||||||
| 
 | 
 | ||||||
| 	// Set wrap of pwm slices
 | 	// Set wrap of pwm slices
 | ||||||
| 	pwm_set_wrap(0, 1000); | 	pwm_set_wrap(0, 127); | ||||||
| 	pwm_set_wrap(1, 1000); | 	pwm_set_wrap(1, 127); | ||||||
| 
 | 
 | ||||||
| 	// Active all pwm slices
 | 	// Active all pwm slices
 | ||||||
| 	pwm_set_enabled(0, true); | 	pwm_set_enabled(0, true); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user