Projet 5A 2020 2021/Semaine 4

PROJET 1 : Carte de puissance
Cette semaine, nous avons finalisé le schéma, corrigé les dernières imperfections, ajusté les références pour être en accord avec le reste du robot notamment pour la partie bus CAN.

Le schéma général finalisé

Ensuite, nous avons pu finaliser l'association entre les symboles et les empreintes de tous les composants. De cette manière, on peut commencer le placement des composants. Le but étant de faire une carte qui prendra le moins de place possible, on place les composants de manière optimisée, et en respectant les règles fondamentales de conception, telles que des pistes courtes pour les forts courants, et une certaine séparation dans les différentes zones de puissance.

Les composants placés, sans routage

On peut alors commencer le routage, en se servant du calculateur inclus dans KiCad, qui nous permet de calculer les largeurs de piste en fonction des courants.



PROJET 2 : Ecran de contrôle
Pendant les vacances et durant cette semaine, nous avons réussi à résoudre notre problème de configuration avec STMCubeIDE. Nous pouvons maintenant bien réaliser la liaison entre la STM et un autre périphérique (terminal PC, mobile...) via notre module Bluetooth. Pour cela nous utilisons l'USART3 en asynchrone. Nous avons ensuite ajouté du code pour notre application afin de pouvoir afficher les données envoyées directement sur l'appli. Donc maintenant on peut tester le bon fonctionnement de notre système directement sur l'appli que nous avons créée (nous avons par exemple testé en affichant un compteur envoyé par la STM). Il a ensuite fallu gérer le fait que nous recevions plusieurs données à la suite (vitesse, tension, position...etc), nous avons donc fais des recherches sur la façon de gérer la synchronisation entre l'application et la STM32 concernant l'envoi et la réception des données. Pour cela, nous avons synchronisé (en les paramétrant) les 2 clocks : de l'appli et de la STM (delay). Malgré cela, les données n'était pas toujours reçues aux bons moments par l'appli, nous avons donc rajouté une variable flag qui permet de mieux synchroniser l'appli et la STM. Maintenant il ne nous reste plus qu'un léger bug à résoudre : de temps en temps, au lieu de recevoir une donnée précise on en reçoit deux à la suite. Mais cela ce produit de plus en plus lorsqu'on diminue la fréquence d'actualisation des données. Nous allons donc tenter de trouver une solution.

Concernant la vitesse d'affichage nous avons choisi (pour le moment) : 1 seconde comme fréquence d'actualisation de chaque donnée. Nous verrons avec les autres groupes si cela leur suffit.

Après discussion avec les autres groupes, nous avons commencé à créer une nouvelle tâche sur FreeRTOS. Cela permet de réaliser plusieurs tâches en simultanée et de gérer le degré d'importance de chaque tâche (la notre étant une tâche d'affichage elle ne sera pas très importante). Nous allons utiliser cette tâche pour récupérer les variables souhaitées dans le code du robot (la tension de la batterie et le nombre de rotation des encodeurs), calculer les valeurs de la vitesse instantanée et de la position du robot à partir du nombre de rotation des encodeurs et envoyer toutes ces données à notre application via le module Bluetooth. Nous avons donc pour le moment bien paramétré et initialisé la tâche FreeRTOS. Nous avons réussi à récupérer la valeur du nombre de rotation des encodeurs dans le code du robot; nous avons également commencé à réaliser les calculs de la vitesse et de la position à partir de ces valeurs.