Modifications

Sauter à la navigation Sauter à la recherche
Ligne 98 : Ligne 98 :     
==Explication du code et lien vers le Git==
 
==Explication du code et lien vers le Git==
===Code STMCubeIDE===
+
===Explication du Code STMCubeIDE===
 
Comme nous l'avons expliqué dans le rapport nous avons utilisé les fonctions suivantes dans notre code sur STMCubeIDE ;
 
Comme nous l'avons expliqué dans le rapport nous avons utilisé les fonctions suivantes dans notre code sur STMCubeIDE ;
 
  '''HAL_UART_Transmit_IT'''(&huart4, (uint8_t*) txt_a_envoyer,sizeof(txt_a_envoyer));
 
  '''HAL_UART_Transmit_IT'''(&huart4, (uint8_t*) txt_a_envoyer,sizeof(txt_a_envoyer));
Ligne 117 : Ligne 117 :     
<br>
 
<br>
'''Affichage des valeurs souhaitées'''<br>
   
Pour transmettre les différentes valeurs souhaitées, nous avons ajouté dans le code de la STM les fonctions mentionnées plus haut.  
 
Pour transmettre les différentes valeurs souhaitées, nous avons ajouté dans le code de la STM les fonctions mentionnées plus haut.  
 
On envoie ensuite les données dans un ordre précis : on commence par envoyer le flag qui va nous permettre de marquer le début de chaque nouveau while, nous avons choisi de lui donner la valeur -9999 car cette valeur ne peut être atteinte par aucune autre données que nous affichons. Il n'y a donc pas de problème possible de ce côté là. Ce flag nous sera utile pour la suite car cela signalera à l'application qui réceptionne les données quand nous serons au début de la boucle while du code. Cela permet donc de synchroniser l'envoi des données.
 
On envoie ensuite les données dans un ordre précis : on commence par envoyer le flag qui va nous permettre de marquer le début de chaque nouveau while, nous avons choisi de lui donner la valeur -9999 car cette valeur ne peut être atteinte par aucune autre données que nous affichons. Il n'y a donc pas de problème possible de ce côté là. Ce flag nous sera utile pour la suite car cela signalera à l'application qui réceptionne les données quand nous serons au début de la boucle while du code. Cela permet donc de synchroniser l'envoi des données.
Ligne 171 : Ligne 170 :  
  HAL_UART_Transmit_IT(&huart3, (uint8_t*) buff_posy,sizeof(buff_posy)); // position y
 
  HAL_UART_Transmit_IT(&huart3, (uint8_t*) buff_posy,sizeof(buff_posy)); // position y
 
  osDelay(400);
 
  osDelay(400);
*Notre code est maintenant prêt à être implémenté sur le robot.
     −
Par exemple l'image ci-dessous avec des valeurs fictives (compteurs qui s'incrémentent) :
+
===Récupérer le code général===
 
  −
[[Fichier:Terminal.png|200px|vignette|centré|Réception de données]]
  −
 
  −
'''Système d'exploitation Temps Réel''' <br>
  −
[[Fichier:Logo freertos.jpg|vignette|droite]]
  −
 
  −
Afin de coordonner toutes les tâches que le robot a à effectuer, on utilise conjointement avec l'équipe de projet de 4A un OS (système d'exploitation) temps réel. Il s'agit de FreeRTOS. Celui-ci est intégrable directement depuis l'outil STMCubeIDE et il est même possible de prédéfinir nos différentes tâches et une multitude de paramètres (les priorités des tâches par exemple). Un OS temps réel permet aussi de gérer la préemptivité (ou la priorité) de chaque tâche, une tâche de haute priorité ayant toujours la priorité sur une tâche de basse priorité. Il va de soit que notre tâche prendra une priorité faible par rapport aux autres tâches puisque le plus important pour le robot est qu'il puisse se diriger et manœuvrer et que notre tache consiste juste à afficher des données. Pour suivre le schéma de code utilisé par les autres groupes, nous avons dû créer une nouvelle tâche avec FreeRTOS : dataDisplayTask. Tout notre code se trouve donc à l'intérieur de cette tâche. FreeRTOS se chargera ensuite d'alterner entre toutes les tâches du programme du robot en fonction de leur priorité. On pourra par contre revoir cette priorité dans le cas où l'on ajoute un bouton d'arrêt d'urgence sur notre application ou même créer une autre tâche spécialement pour ce bouton avec une forte priorité. Une fois la ou les tâche(s) et les paramètres définis, il nous suffit de générer le code et de remplir notre tâche.
  −
[[Fichier:Capture menu FreeRTOS.png|centré|vignette|Paramétrage de FreeRTOS]]
  −
 
  −
===Récupérer du code général===
   
Pour pouvoir accéder au code général du robot vous devez :
 
Pour pouvoir accéder au code général du robot vous devez :
 
*Créer un compte GitLab
 
*Créer un compte GitLab
*Contacter le responsable de Polybot pour qu'il vous donne l'accès aux Git de polybot
+
*Contacter le responsable de Polybot (Errikos Messara) pour qu'il vous donne l'accès aux Git de Polybot
 
*Accéder au dossier concerné
 
*Accéder au dossier concerné
 
*Télécharger le master
 
*Télécharger le master
Ligne 192 : Ligne 180 :     
<br>
 
<br>
Si vous souhaitez uniquement regarder la tâche relative à notre partie du projet, vous pourrez la trouver sous format .txt au lien suivant : METTRE LE LIEN DE NOTRE CODE
+
Si vous souhaitez uniquement regarder la tâche relative à notre partie du projet, vous pourrez la trouver sous format .txt au lien suivant : [https://drive.google.com/file/d/1vw60jSFCPwRbrCF2yBndYtXRUh3kE4vX/view?usp=sharing Code .txt]
    
==Utilisation des modules Bluetooth HC-06==
 
==Utilisation des modules Bluetooth HC-06==
243

modifications

Menu de navigation