Contrôle d'un capteur de distance
Application Qt pour contrôler une distance
Le principe est de faire l'acquisition d'une distance par un capteur connecté sur le port GPIO d'une carte Raspberry. Cette méthode est utilisée sur le logiciel embarqué sur un drone, projet de 2nde année.
Comme le montre le diagramme de classe UML ci-dessus, notre application informatique est composée des classes suivantes :
MainApp. Cette classe gère l'IHM de notre application. Elle est composée de la classe CCapteurGpioPing_Dist représentant notre capteur.
CCapteurGpioPing_Dist hérite de la classe QThread et est composée de cla classe CGpio. Elle dispose aussi d'une relation d'agrégation avec QSharedMemory mais n'est pas responsable de sa création ni sa destruction. La classe contient à minima les méthodes run() et lireDistance() . Paramètres à définir.
QThread est la classe existante permettant de gérer un thread, c'est à dire l'exécution d'une fonction en parallèle avec l'application principale. Cette méthode se nomme run(). Elle doit être définie dans la classe CCapteurGpioPing_Dist
QSharedMemory est une classe existante permettant de mémoriser des informations pour plusieurs processus dans le même système. Cette mémoire partagée est créée par la classe MainApp et utilisée par la classe CCapteurGpioPing_Dist.
CGpio est une classe dédiée à l'accès du GPIO de la carte Raspberry. Le fonctionnement sera simulé par trois méthodes : init(), lire(), ecrire(). Les paramètres de fonctionnement sont à définir.
Question
Codez l'infrastructure logicielle (seulement) avec qt-creator sous Linux en vous servant du diagramme de classe ci-dessus. Les noms des classes sont à respecter. L'IHM permettra de lire la valeur (simulée) de la distance (elle doit pouvoir varier).
Question
Pour les plus avancés, codez réellement l'application en faisant des recherches sur le site github/ditRasp pour comprendre le fonctionnement. Vous aurez besoin d'une carte Raspberry et d'un capteur.