Code pour la validation du câblage des moteurs

This commit is contained in:
Samuel 2025-01-04 18:49:19 +01:00
parent 920ef67393
commit 44b17271d4
2 changed files with 33 additions and 23 deletions

View File

@ -1,12 +1,9 @@
De lart de déplacer un robot avec classe - Teleplot
====================================================
De lart de déplacer un robot avec classe - Câblage des moteurs
===============================================================
Le but est de vous proposer une série darticles vous présentant les arcanes du déplacement dun robot, en fournissant à chaque étape une idée de démonstration et les principales pistes de débogage. Les articles sont disponibles ici : [Wiki Eurobot](https://www.eurobot.org/wiki/fr/informatics/de_l_art_de_deplacer_son_robot_avec_classe)
Temps
-----
Câblage des moteurs
-------------------
Ajout de la gestion du temps à l'aide de trois fonctions simples.
- Une fonction qui incrémente notre temps de 1.
- Une fonction dinitialisation qui crée linterruption qui appellera notre fonction précédente toutes les 1 millisecondes.
- Une fonction qui renvoie le nombre de milliseconde écoulée depuis linitialisation.
Le code principal permet de tester le bon fonctionnement des moteurs, afin de valider leur câblage.

43
main.c
View File

@ -25,22 +25,35 @@ void setup(void){
stdio_init_all();
Teleplot_init();
Temps_init();
// Broches des moteurs gérées en GPIO
gpio_init(7);
gpio_init(13);
gpio_init(27);
gpio_init(5);
gpio_init(10);
gpio_init(9);
// Broches des moteurs en sortie
gpio_set_dir(7, true); // M1 Sens 1
gpio_set_dir(13, true); // M1 Sens 2
gpio_set_dir(27, true); // M1 Vitesse
gpio_set_dir(5, true); // M2 Sens 2
gpio_set_dir(10, true); // M2 Sens 1
gpio_set_dir(9, true); // M2 Vitesse
// Commande des broches
gpio_put(7, 0);
gpio_put(13, 1);
gpio_put(27, 1);
gpio_put(5, 0);
gpio_put(10, 1);
gpio_put(9, 1);
}
void loop(void){
static uint32_t temps_ms = 0;
if(temps_ms != Temps_get_temps_ms()){
temps_ms = Temps_get_temps_ms();
// Toutes les 10 millisecondes, envoyer la valeur de "valeur"
if(temps_ms % 10 == 0){
Teleplot_add_variable_int("valeur", valeur);
Teleplot_envoie_tampon();
}
// Toutes les 500 millisecondes, inverser la valeur de "valeur"
if(temps_ms % 500 == 0){
valeur = -valeur;
Teleplot_envoie_tampon();
}
}
tight_loop_contents();
}