Compare commits

...

2 Commits

2 changed files with 22 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 codeurs
===============================================================
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 codeurs
-------------------
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 codeurs, afin de valider leur câblage.

30
main.c
View File

@ -25,22 +25,24 @@ void setup(void){
stdio_init_all();
Teleplot_init();
Temps_init();
// Broches des codeur gérées en GPIO
gpio_init(11); // Codeur 1, voie A
gpio_init(12); // Codeur 1, voie B
gpio_init(2); // Codeur 2, voie A
gpio_init(3); // Codeur 2, voie B
// Broches des codeur en entrée
gpio_set_dir(11, false); // Codeur 1, voie A
gpio_set_dir(12, false); // Codeur 1, voie B
gpio_set_dir(2, false); // Codeur 2, voie A
gpio_set_dir(3, false); // Codeur 2, voie B
}
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_add_variable_int("Codeur1_A", gpio_get(11));
Teleplot_add_variable_int("Codeur1_B", gpio_get(12));
Teleplot_add_variable_int("Codeur2_A", gpio_get(2));
Teleplot_add_variable_int("Codeur2_B", gpio_get(3));
Teleplot_envoie_tampon();
}
// Toutes les 500 millisecondes, inverser la valeur de "valeur"
if(temps_ms % 500 == 0){
valeur = -valeur;
Teleplot_envoie_tampon();
}
}
}