Retour Thème 3 Ressources S5 Modalités S5 Objectifs pédagogiques S5

Dans ce sujet du troisième thème, vous allez interfacer une carte d’acquisition (ici une carte Nucléo) avec une application graphique (développée en Python).

Cahier des charges

Le système devra pouvoir :

  1. Acquérir un ensemble de N échantillons à une fréquence d’échantillonnage Fe
  2. Stocker les échantillons
  3. Transmettre les donner à une interface graphique (via une liaison série)
  4. Afficher les données à chaque nouvelle requête d’acquisition

Le traitement numérique devra être réalisé à l’aide d’une carte Nucléo L476RG ou G431RB.

L’interface graphique sera réalisée en Python / PyQt5 et devra permettre de paramétrer le nombre de points à acquérir et la fréquence d’échantillonnage souhaitée (ou le temps total d’échantillonnage et le pas d’échantillonnage). Elle devra également permettre l’affichage des données.

Le port de communication pourra également être paramétrable pour la connexion à la carte d’acquisition.

Ressources utiles

Etapes

A réécrire

Carte acquisition

  • Phase 1.a
    • Acquérir une série de N points à intervalle régulier et les stocker dans un tableau
    • Déclencher l’acquisition sur un signal externe
    • Rendre paramétrable le nombre d’échantillons et la période d’échantillonnage
  • Phase 2
    • Intégrer le traitement des commandes établies en parallèle (voir section suivante)

Protocole de communication

  • Phase 1.b
    • Etablir une liste de commandes à transmettre de l’interface à la carte d’acquisition
    • Ecrire un programme embarqué qui permet de réagir à ces différentes commandes et tester avec une console (TeraTerm)
    • Ecrire et tester des fonctions en Python qui permettent d’initialiser la liaison série avec la carte d’acquisition et envoyer des commandes
    • Etablir un protocole de transfert des N données depuis la carte d’acquisition vers l’ordinateur (liaison Série)
    • Compléter le programme embarqué pour qu’il renvoie un ensemble de N données (arbitraires)
    • Ajouter des fonctions en Python (et les tester) permettant d’acquérir ces N données dans un tableau
    • Tester toutes ces fonctionnalités en lançant une acquisition depuis un script Python et en affichant les données dans un graphique
  • Phase 2
    • Intégrer le traitement des commandes établies dans le code de la carte d’acquisition (voir section précédente)

Interface graphique

  • Phase 1.c
    • Créer une interface contenant un bouton permettant de rafraichir un graphique (données arbitraires sur N valeurs)
    • Ajouter des zones paramétrables pour le choix de N et Fe (zone de texte ou choix multiples)
    • Ajouter une zone de choix du port de communication de la carte d’acquisition et un bouton de connexion
    • Ajouter un bouton de lancement d’acquisition
  • Phase 2
    • Intégrer la bibliothèque Python de communication série avec la carte d’acquisition (voir section précédente)
    • Tester l’ensemble de l’application
Thème 3 / Acquisition de données