View  Edit  Attributes  History  Attach  Print  Search

ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
Python > Shell > ATELIERS Python + Qt > PyQt apps > PyQt+Arduino | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | Les Mini-PC |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |

Mes interfaces PyQt : Oscilloscope simple monovoie à communication série compatible Arduino

Par X. HINAULT - Juin 2013

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

Le fichier d'application *Main.py

Code Arduino d'exemple

Code minimal

// --- Programme Arduino ---
// 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