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){
|
||||
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){
|
||||
//stdio_init_all();
|
||||
i2c_init(i2c1, 100 * 1000);
|
||||
i2c_init(i2c1, 10 * 1000);
|
||||
|
||||
printf("Initialisation des broches\n");
|
||||
for(int i=0; i++; i<=28){
|
||||
|
68
main.c
68
main.c
@ -12,8 +12,8 @@
|
||||
#define I2C1_SDA_PIN 18
|
||||
#define I2C1_SCL_PIN 19
|
||||
|
||||
// Convert te joystick value to an char value
|
||||
uint8_t Conversions_joystick2uint8(uint16_t joystick_value);
|
||||
// Allumage de la led verte
|
||||
#define PIN_LED_VERTE 25
|
||||
|
||||
void main(void)
|
||||
{
|
||||
@ -24,35 +24,59 @@ void main(void)
|
||||
Init_motion_motor();
|
||||
communication_init();
|
||||
|
||||
uint vitesse_x = 0;
|
||||
uint vitesse_y = 0;
|
||||
gpio_init(PIN_LED_VERTE);
|
||||
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){
|
||||
|
||||
if (!(communication_read_message(reception) == I2C_ECHEC))
|
||||
{
|
||||
vitesse_x = reception[0]-128;
|
||||
vitesse_y = reception[1]-128;
|
||||
vitesse_m1 = reception[0] - 128;
|
||||
vitesse_m2 = reception[0] - 128;
|
||||
vitesse_m3 = reception[1] - 128;
|
||||
vitesse_m4 = reception[1] - 128;
|
||||
|
||||
vitesse_angle = reception[2] - 128;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
vitesse_x = 0;
|
||||
vitesse_y = 0;
|
||||
vitesse_angle = 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);
|
||||
Motor2_speed(vitesse_x);
|
||||
Motor3_speed(vitesse_y);
|
||||
Motor4_speed(vitesse_y);
|
||||
if(vitesse_angle != 0)
|
||||
{
|
||||
vitesse_m1 = vitesse_angle;
|
||||
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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user