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 l’art de déplacer un robot avec classe - Teleplot
====================================================
De l’art de déplacer un robot avec classe - Câblage des moteurs
===============================================================
Le but est de vous proposer une série d’articles vous présentant les arcanes du déplacement d’un 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 d’initialisation qui crée l’interruption qui appellera notre fonction précédente toutes les 1 millisecondes.
- Une fonction qui renvoie le nombre de milliseconde écoulée depuis l’initialisation.
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();
}