Introduction
En STS SN, il est courant d'utiliser une carte Raspberry pour procéder à l'acquisition de mesures de tous types par différents bus de communication.
Les enseignants de l'option EC et IR n'ont pas de difficultés particulières pour réaliser ces acquisitions. Il est souvent nécessaire de créer une carte fille facilitant l'intégration, l'adaptation et la connexion des capteurs/actionneurs.
En revanche, développer une application graphique de supervision et de communication relève d'une compétence informatique précise pour exploiter la puissance du système, du langage et beaucoup apprécieraient d'être guidés dans ce domaine. C'est l'objet de cette formation qui présente UNE solution (parmi d'autres) avec la bibliothèque d'objets C++ Qt.
Dans un premier temps, nous mettrons en configuration la carte Raspberry pour développer en C++/Qt.
Nous prendrons ensuite connaissance de l'environnement de développement Qt-Creator, de la composition d'une application graphique Qt.
Ensuite, nous étudierons indépendamment chaque brique nécessaire au développement final de notre application :
Mise en œuvre d'une IHM avec Qt, gestion des signaux/slots (spécifique Qt).
Mise en œuvre de timer (
QTimer
) afin de définir un fonctionnement à intervalle régulier.Mise en œuvre d'une communication avec le SGBD MySQL (
QSql
...).Mise en œuvre d'une communication réseau client avec un serveur (
QTcpSocket
...).Mise en œuvre d'une communication série TTL ou RS232C (
QSerial
...).Commande d'une LED sur une broche du GPIO (sans utiliser de bibliothèque existante).
Communication par la bus I2C (sans utiliser de bibliothèque existante).
Communication par le bus SPI (sans utiliser de bibliothèque existante).
Mise en œuvre de threads (
QThread
) pour permettre le multitâche.Centralisation d'informations dans une mémoire partagée (
QSharedMemory
).
A travers ces travaux, nous exploiterons abondamment le langage C++ et ferons des rappels.
Au final, nous aurons les moyens de construire une application Qt graphique permettant l'acquisition, la commande et la communication des informations selon le cahier des charges fourni ci-après.
Pour la pratique, nous travaillerons directement sur une carte Raspberry munie du système d'exploitation Raspbian Lite et le nécessaire de développement d'une application Qt en C++. Il est aussi possible de travailler en compilation croisée (cross compiling), c'est à dire en compilant notre programme en utilisant la puissance de notre ordinateur personnel puis en le déployant sur notre carte cible, la carte Raspberry. Bien sur, pour cela, il faudra installer une chaîne de compilation croisée sur notre PC. C'est long et fastidieux.
Tous les sources examinés et plus encore sont disponibles dans les dépôts biblis
et appFormQtCpp
du site github
.