Fonction pour envoyer les couleurs au mat balise + fonctions de test associées
This commit is contained in:
parent
4e898151f5
commit
eb0840aa99
@ -20,6 +20,7 @@ struct capteur_VL53L1X_t{
|
||||
double angle_ref_terrain_min; // Cone de détection du capteur (min)
|
||||
double angle_ref_terrain_max; // Cone de détection du capteur (max)
|
||||
uint donnee_valide;
|
||||
uint donnee_ignore; // Le capteur est ignoré car derrière le robot.
|
||||
}capteurs_VL53L1X[NB_CAPTEURS];
|
||||
|
||||
void actualise_VL53L1X(struct capteur_VL53L1X_t * capteur_VL53L1X, uint8_t distance_capteur_cm);
|
||||
@ -45,6 +46,7 @@ void actualise_VL53L1X(struct capteur_VL53L1X_t * capteur_VL53L1X, uint8_t dista
|
||||
capteur_VL53L1X->angle_ref_terrain += 2* M_PI;
|
||||
}
|
||||
|
||||
capteur_VL53L1X->distance_lue_cm = distance_capteur_cm;
|
||||
capteur_VL53L1X->distance_obstacle_robot_mm = 10 * (distance_capteur_cm + DISTANCE_CAPTEUR_CENTRE_ROBOT_CM);
|
||||
capteur_VL53L1X->angle_ref_terrain_min = capteur_VL53L1X->angle_ref_terrain - DEMI_CONE_CAPTEUR_RADIAN;
|
||||
capteur_VL53L1X->angle_ref_terrain_max = capteur_VL53L1X->angle_ref_terrain + DEMI_CONE_CAPTEUR_RADIAN;
|
||||
@ -133,6 +135,7 @@ double Balise_VL53L1X_get_distance_obstacle_mm(double angle_avancement_radiant){
|
||||
double distance_minimale = DISTANCE_OBSTACLE_IGNORE_MM;
|
||||
|
||||
for(uint8_t capteur=0; capteur<NB_CAPTEURS; capteur++){
|
||||
capteurs_VL53L1X[capteur].donnee_ignore = 1;
|
||||
for(uint8_t cone_index=0; cone_index<NB_CONE; cone_index++){
|
||||
if(Geometrie_intersecte_plage_angle(
|
||||
angle_avancement_radiant - cone[cone_index].angle, angle_avancement_radiant + cone[cone_index].angle,
|
||||
@ -142,6 +145,8 @@ double Balise_VL53L1X_get_distance_obstacle_mm(double angle_avancement_radiant){
|
||||
distance_minimale = capteurs_VL53L1X[capteur].distance_obstacle_robot_mm;
|
||||
}
|
||||
}
|
||||
// Le capteur est pris en compte au moins dans un cône
|
||||
capteurs_VL53L1X[capteur].donnee_ignore = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,7 +20,8 @@ enum longer_direction_t{
|
||||
|
||||
enum couleur_t{
|
||||
COULEUR_BLEU=0,
|
||||
COULEUR_VERT
|
||||
COULEUR_VERT,
|
||||
COULEUR_INCONNUE,
|
||||
};
|
||||
|
||||
extern enum etat_strategie_t{
|
||||
|
14
i2c_annexe.c
14
i2c_annexe.c
@ -3,12 +3,15 @@
|
||||
#include "stdio.h"
|
||||
|
||||
#define ADRESSE_PICO_ANNEXE 0x17
|
||||
#define ADRESSE_DEBUT_W 0x08
|
||||
#define ADRESSE_DEBUT_W 0x05
|
||||
#define ADRESSE_DEBUT_R 0x0A
|
||||
#define ADRESSE_TURBINE_PORTE 0x0A
|
||||
#define ADRESSE_CONTACTEURS 0x0B
|
||||
#define ADRESSE_VL53L1X 0x0C
|
||||
#define TAILLE_DONNEES_EMISSION 3
|
||||
#define ADRESSE_COULEUR 0x05
|
||||
#define ADRESSE_MASQUE_LED_1 0x06
|
||||
#define ADRESSE_MASQUE_LED_2 0x07
|
||||
#define TAILLE_DONNEES_EMISSION 6
|
||||
#define TAILLE_DONNEES_RECEPTION 14
|
||||
|
||||
|
||||
@ -61,6 +64,13 @@ void i2c_annexe_gestion(){
|
||||
|
||||
}
|
||||
|
||||
void i2c_annexe_couleur_balise(uint8_t couleur, uint16_t masque_led){
|
||||
donnees_emission[ADRESSE_COULEUR - ADRESSE_DEBUT_W] = couleur;
|
||||
donnees_emission[ADRESSE_MASQUE_LED_1 - ADRESSE_DEBUT_W] = (masque_led >> 8) & 0xFF;
|
||||
donnees_emission[ADRESSE_MASQUE_LED_2 - ADRESSE_DEBUT_W] = masque_led & 0xFF;
|
||||
donnees_a_envoyer=1;
|
||||
}
|
||||
|
||||
void i2c_annexe_active_turbine(void){
|
||||
donnees_emission[ADRESSE_TURBINE_PORTE - ADRESSE_DEBUT_W] |= 0x01;
|
||||
donnees_a_envoyer=1;
|
||||
|
@ -19,4 +19,5 @@ uint8_t i2c_annexe_get_contacteur_butee_C(void);
|
||||
uint8_t i2c_annexe_get_contacteur_longer_A(void);
|
||||
uint8_t i2c_annexe_get_contacteur_longer_C(void);
|
||||
|
||||
void i2c_annexe_get_distances(uint8_t *distance_capteur_cm);
|
||||
void i2c_annexe_get_distances(uint8_t *distance_capteur_cm);
|
||||
void i2c_annexe_couleur_balise(uint8_t couleur, uint16_t masque_led);
|
Loading…
Reference in New Issue
Block a user