2023-10-22 16:48:14 +00:00
|
|
|
#include "pico/stdlib.h"
|
2023-12-16 11:12:55 +00:00
|
|
|
#include "hardware/adc.h"
|
2024-01-09 20:03:50 +00:00
|
|
|
#include "communication.h"
|
2023-10-22 16:48:14 +00:00
|
|
|
#include <stdio.h>
|
2024-01-12 18:05:56 +00:00
|
|
|
#include "moteur.h"
|
2023-12-22 17:21:19 +00:00
|
|
|
|
2024-01-09 20:03:50 +00:00
|
|
|
// Juste pour information - les broches sont re-définies dans i2c_slave
|
|
|
|
#define I2C0_SDA_PIN 16
|
|
|
|
#define I2C0_SCL_PIN 17
|
|
|
|
|
|
|
|
// Juste pour information - les broches sont re-définies dans i2c_master
|
|
|
|
#define I2C1_SDA_PIN 18
|
|
|
|
#define I2C1_SCL_PIN 19
|
|
|
|
|
2024-01-21 17:48:59 +00:00
|
|
|
// Allumage de la led verte
|
|
|
|
#define PIN_LED_VERTE 25
|
2023-12-16 11:12:55 +00:00
|
|
|
|
2023-10-22 16:48:14 +00:00
|
|
|
void main(void)
|
|
|
|
{
|
2024-01-12 17:30:24 +00:00
|
|
|
char message[256], reception[256];
|
2024-01-12 18:05:56 +00:00
|
|
|
|
|
|
|
// Init "all"
|
2023-10-22 16:48:14 +00:00
|
|
|
stdio_init_all();
|
2023-12-22 17:21:19 +00:00
|
|
|
Init_motion_motor();
|
2024-01-09 20:03:50 +00:00
|
|
|
communication_init();
|
|
|
|
|
2024-01-21 17:48:59 +00:00
|
|
|
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;
|
2024-01-09 20:03:50 +00:00
|
|
|
|
2024-01-12 18:05:56 +00:00
|
|
|
while(1){
|
2024-01-09 20:03:50 +00:00
|
|
|
|
2024-01-12 18:05:56 +00:00
|
|
|
if (!(communication_read_message(reception) == I2C_ECHEC))
|
|
|
|
{
|
2024-01-21 17:48:59 +00:00
|
|
|
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;
|
|
|
|
|
2024-01-12 18:05:56 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2024-01-21 17:48:59 +00:00
|
|
|
vitesse_angle = 0;
|
|
|
|
vitesse_m1 = 0;
|
|
|
|
vitesse_m2 = 0;
|
|
|
|
vitesse_m3 = 0;
|
|
|
|
vitesse_m4 = 0;
|
2023-12-22 18:54:12 +00:00
|
|
|
|
2024-01-21 17:48:59 +00:00
|
|
|
pwm_set_chan_level(4, PWM_CHAN_B, 10);
|
|
|
|
|
|
|
|
}
|
2023-12-22 18:54:12 +00:00
|
|
|
|
2024-01-21 17:48:59 +00:00
|
|
|
if(vitesse_angle != 0)
|
|
|
|
{
|
|
|
|
vitesse_m1 = vitesse_angle;
|
|
|
|
vitesse_m2 = vitesse_angle;
|
|
|
|
vitesse_m3 = vitesse_angle;
|
|
|
|
vitesse_m4 = vitesse_angle;
|
|
|
|
}
|
2023-12-22 18:54:12 +00:00
|
|
|
|
2024-01-21 17:48:59 +00:00
|
|
|
printf(">vitesseM1:%d\n", vitesse_m1);
|
|
|
|
printf(">vitesseM2:%d\n", vitesse_m2);
|
|
|
|
printf(">vitesseM3:%d\n", vitesse_m3);
|
|
|
|
printf(">vitesseM4:%d\n", vitesse_m4);
|
2024-01-12 17:30:24 +00:00
|
|
|
|
2024-01-21 17:48:59 +00:00
|
|
|
Motor1_speed(vitesse_m1);
|
|
|
|
Motor2_speed(vitesse_m2);
|
|
|
|
Motor3_speed(vitesse_m3);
|
|
|
|
Motor4_speed(vitesse_m4);
|
|
|
|
}
|
2023-12-16 11:12:55 +00:00
|
|
|
}
|