L’utilisation des interfaces PyQt pour créer des oscilloscopes simples monovoie à communication série compatible Arduino est une excellente solution pour les développeurs qui souhaitent créer des applications graphiques interactives. Cet article vous expliquera comment créer une interface PyQt pour un oscilloscope simple monovoie à communication série compatible Arduino, ainsi que les avantages et les inconvénients de cette solution. Vous apprendrez également comment configurer et utiliser votre oscilloscope pour vos projets.
Mes interfaces PyQt : Oscilloscope simple monovoie à communication série compatible Arduino

Intro
- Interface permettant de réaliser un simple oscilloscope utilisable avec Arduino.
- Interface Série permettant de fixer le port à utiliser, le délai entre 2 mesures, stopper/démarrer la communication
- Interface graphique permettant le zoom sur la courbe, l’export du graphique dans fichier ou clipboard au format données, vectoriel ou image !
Pré-requis
- python 2.7
- pyqt4.x
- modules :
- numpy
- serial
- pyqtgraph
L’interface PyQt
Pratique : l’archive est disponible ici : http://ubuntuone.com/3vB0UMIAusGIyedXZy1tXs
Les 2 fichiers suivants sont à enregistrer dans un même répertoire :
Le fichier d’interface *.py
- Disponible ici : https://gist.github.com/sensor56/3f55bc8d8c5a8b0f843a#file-tuto_pyqt_pyserial_pyqtgraph_oscillo_param_axes-py
Le fichier d’application *Main.py
- Disponible ici : https://gist.github.com/sensor56/3f55bc8d8c5a8b0f843a#file-tuto_pyqt_pyserial_pyqtgraph_oscillo_param_axesmain-py
Code Arduino d’exemple
Code minimal
// par X. HINAULT – 01/2010
// — Que fait ce programme ? —
/* Affiche le résultat brut d’une conversion analogique numérique sur la fenêtre terminal du PC*/
// — Fonctionnalités utilisées —
// Utilise la connexion série vers le PC
// Utilise la conversion analogique numérique 10bits sur les voies analogiques analog 0,
// — Circuit à réaliser —
// Connexion série entre la carte Arduino et le PC (utilise les broches 0 et 1)
// Broche Analog 0 (=broche 14) en entrée Analogique : connecter la sortie d’une résistance Variable 10K elle-même connectée entre 0 et 5V
//**************** Entête déclarative *******
// A ce niveau sont déclarées les librairies, les constantes, les variables…
// — Inclusion des librairies utilisées —
// — Déclaration des constantes —
// — constantes des broches —
const int RVar=0; //declaration constante de broche analogique
// — Déclaration des variables globales —
int mesureBrute=0;// Variable pour acquisition résultat brut de conversion analogique numérique
// — Initialisation des fonctionnalités utilisées —
//**************** FONCTION SETUP = Code d’initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme
void setup() { // debut de la fonction setup()
// — ici instructions à exécuter au démarrage —
Serial.begin(115200); // initialise connexion série à 115200 bauds
// IMPORTANT : régler le terminal côté PC avec la même valeur de transmission
} // fin de la fonction setup()
// ********************************************************************************
//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s’exécute sans fin en boucle aussi longtemps que l’Arduino est sous tension
void loop(){ // debut de la fonction loop()
// — ici instructions à exécuter par le programme principal —
// acquisition conversion analogique-numerique (CAN) sur la voie analogique
mesureBrute=analogRead(RVar);
// affiche valeur numerique entière ou à virgule au format décimal
Serial.println(mesureBrute);
delay(20);
} // fin de la fonction loop() – le programme recommence au début de la fonction loop sans fin
// ********************************************************************************
// — Fin programme —
Code permettant de fixer le débit de mesure
Utilisation
- Connecter une carte Arduino au PC
- Lancer l’interface côté PC
- Clic sur init pour lancer la mesure
- Interactivité du graphique :
- zoom par clic gauche maintenu
- autoscale par clic que mini bouton <A> du graphique
- boutons de configuration des axes et de ré-initialisation
Articles similaires:
- Mes interfaces PyQt : Oscilloscope simple monovoie à communication série compatible Arduino
- http://web.archive.org/web/20210804223007/http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTLABSerialAdvanced
- Test de la fonction math pow()
- Affichage du résultat de la mesure de 3 voies analogiques sous forme graphique dans une interface Processing.
- Utiliser un buzzer piézo en capteur de son/choc
Articles Liés
- Mes interfaces PyQt : Oscilloscope simple monovoie à communication série compatible Arduino
L'utilisation des interfaces PyQt pour créer des oscilloscopes simples monovoie à communication série compatible Arduino…
- Mes applications et interfaces PyQt utilisables
PyQt est un framework de développement d'interfaces graphiques multiplateformes qui permet aux développeurs de créer…
- Procédure installation PyQt pour Python
L'installation de PyQt pour Python est une tâche relativement simple et peut être réalisée en…