Compare commits

..

No commits in common. "Valide_cablage_codeur" and "Teleplot" have entirely different histories.

6 changed files with 22 additions and 72 deletions

View File

@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.13)
include(pico_sdk_import.cmake)
project(PAMI_Cours_temps C CXX ASM)
project(PAMI_Cours C CXX ASM)
set(CMAKE_C_STNDARD 11)
set(CMAKE_CXX_STANDARD 17)
@ -10,27 +10,27 @@ set(PICO_EXAMPLES_PATH ${PROJECT_SOURCE_DIR})
pico_sdk_init()
add_executable(PAMI_Cours_temps
add_executable(PAMI_Cours
main.c
Teleplot.c
Temps.c
)
target_include_directories(PAMI_Cours_temps PRIVATE ${CMAKE_CURRENT_LIST_DIR})
target_include_directories(PAMI_Cours PRIVATE ${CMAKE_CURRENT_LIST_DIR})
target_link_libraries(PAMI_Cours_temps
target_link_libraries(PAMI_Cours
hardware_i2c
hardware_uart
pico_stdlib
pico_multicore
pico_cyw43_arch_lwip_poll
)
pico_enable_stdio_usb(PAMI_Cours_temps 1)
pico_enable_stdio_uart(PAMI_Cours_temps 1)
pico_enable_stdio_usb(PAMI_Cours 1)
pico_enable_stdio_uart(PAMI_Cours 1)
pico_add_extra_outputs(PAMI_Cours_temps)
pico_add_extra_outputs(PAMI_Cours)
add_custom_target(Flash
DEPENDS PAMI_Cours_temps
COMMAND sudo picotool load -f ${PROJECT_BINARY_DIR}/PAMI_Cours_temps.uf2
DEPENDS PAMI_Cours
COMMAND sudo picotool load -f ${PROJECT_BINARY_DIR}/PAMI_Cours.uf2
)

View File

@ -1,9 +1,13 @@
De lart de déplacer un robot avec classe - Câblage des codeurs
===============================================================
De lart de déplacer un robot avec classe - Teleplot
====================================================
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)
Câblage des codeurs
-------------------
Teleplot
--------
Le code principal permet de tester le bon fonctionnement des codeurs, afin de valider leur câblage.
Cette première étape consiste à transmettre des données depuis le robot vers un ordinateur, au format [Teleplot](https://teleplot.fr/) afin d'avoir de joli graphique. Pour profiter des graphiques, il faut avoir Teleplot d'installé sur l'ordinateur, le plus simple étant d'utiliser le plugin pour VS Code.
Le code fourni est un peu compliqué pour ce qu'il fait car il gère à la fois le cas du transfert par la liaison série et le transfert par la liaison UDP/Wifi. Dans le cas d'un transfert par UDP, il est très avantageux de mettre en place un système de tampon pour grouper les envois.
Pour que le code fonctionne, vous devez copier le fichier *wifi_settings.h.default* en *wifi_settings.h* puis l'éditer, même si vous n'utilisez pas le WIFI.

View File

@ -14,10 +14,6 @@ ip_addr_t addr;
long teleplote_temps_ms;
bool teleplot_temps_fige;
/// @brief Initialise le module Teleplot,
/// @param
/// @return /
int Teleplot_init(void){
#ifdef WIFI_ENABLE
if (cyw43_arch_init()) {

28
Temps.c
View File

@ -1,28 +0,0 @@
#include <stdio.h>
#include "pico/stdlib.h"
#include "Temps.h"
uint32_t temps_ms=0;
bool temps_est_init=false;
struct repeating_timer timer;
/// @brief Fonction qui incrément notre temps_ms de 1, appelé par interruption toutes les 1 ms.
/// @param t : necessaire uniquement à cause du SDK du RPi Pico.
bool Temps_increment(struct repeating_timer *t){
temps_ms++;
return true;
}
/// @brief Crée l'interruption qui appellera la fonction Temps_increment toutes les 1 ms.
void Temps_init(void){
if(!temps_est_init){
temps_ms=0;
add_repeating_timer_ms(-1, Temps_increment, NULL, &timer);
temps_est_init = true;
}
}
/// @brief Renvoie le temps actuel, depuis l'appel de Temps_init, en millisecondes
uint32_t Temps_get_temps_ms(void){
return temps_ms;
}

View File

@ -1,5 +0,0 @@
#include "pico/stdlib.h"
bool Temps_increment(struct repeating_timer *t);
void Temps_init(void);
uint32_t Temps_get_temps_ms(void);

23
main.c
View File

@ -5,14 +5,11 @@
*/
#include "pico/stdlib.h"
#include "Teleplot.h"
#include "Temps.h"
#include <stdio.h>
void setup(void);
void loop(void);
int valeur = 1;
void main(void)
{
setup();
@ -24,25 +21,11 @@ void main(void)
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){
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));
printf("Exemple\n");
Teleplot_add_variable_int("t", 2);
Teleplot_envoie_tampon();
sleep_ms(1000);
}