OscPB : Oscilloscope par PureBasic

Pierre DIEUMEGARD

professeur de SVT

Lycée Pothier

F 45044 Orléans

courriel : pierre.dieumegard@free.fr

Buts d'OscPB : mesures rapides, aussi bien sous Windows que sous Linux, pour tous appareils

De nombreux systèmes connectables aux ordinateurs permettent de faire des mesures rapides (c'est à dire avec un intervalle de l'ordre de la milliseconde ou microseconde entre les mesures). Ces systèmes sont normalement livrés avec un logiciel permettant de visualiser et enregistrer les mesures sur l'ordinateur. OscPB fait aussi ce type de mesures, mais avec quelques avantages particuliers :

OscPB est très compatible

- compatible avec de nombreux appareils de mesure (potentiellement), grâce à son système de pilotes par bibliothèques dynamiques (fichiers .dll pour Windows, et fichiers .so pour Linux).
- compatible avec les deux systèmes d'exploitation Linux et Windows. Bien sûr, les fichiers exécutables sont différents, mais le fichier-source est identique ou très semblable.
- compatible avec les tableurs et logiciels d'analyse de données, d'une part par le système de copier/coller les mesures dans le « presse-papier », d'autre par par sauvegarde des données dans des fichiers-textes lisibles par les tableurs (champs séparés par des tabulations).
- capable de transformer les variables par une fonction frappée au clavier, par exemple « (x + 35)/100 », ou «

OscPB est de type « logiciel libre »

OscPB est un acronyme pour indiquer qu'il a une fonction d'oscilloscope programmé à l'aide de PureBasic 4.

PureBasic est un langage de type Basic disponible sur le site http://www.purebasic.com. La version téléchargeable est limitée, mais permet déjà de faire de bons programmes, et la version complète est très peu coûteuse. Il en existe plusieurs versions pour divers systèmes d'exploitation, en particulier pour Windows 32 bits, Linux et Macintosh.

Sur le site http://sciencexp.free.fr/logwinlinux/osc_pb/osc_pb.htm, vous pourrez trouver à la fois les fichiers exécutables pour Linux et Windows, et le fichier-source PureBasic.

En contrepartie, OscPB n'est pas (encore) (très) puissant

* une seule voie de mesure

* 200 mesures par série

* intervalle minimal entre mesures de 1 milliseconde

Installation et emploi de OscPB

Installation : copier les fichiers dans le répertoire

Le principe est identique pour Linux et pour Windows : copier le programme exécutable dans le répertoire choisi, ainsi que le ou les fichiers de pilotes de mesure.

Mettez aussi les fichiers d'aide dans ce répertoire.

Lancement : double-cliquer sur le programme exécutable

Il apparaît une fenêtre avec 5 options de menu :

- Quitter : pour quitter OscPB, à réserver pour la fin

- Réglages : pour choisir l'appareil et la voie de mesure, ainsi que l'intervalle entre les mesures

- Donnée : lorsque des mesures auront été faites, vous pourrez les copier dans le presse-papier, ou les sauvegarder sur fichier.

- ? : donne accès à un peu d'aide

- Acquisition : pour réaliser les séries de mesures. On peut soit faire une seule série de mesure, soit répéter automatiquement les mesures (par défaut, toutes les secondes).

Réglages matériels : appareil et voie de mesure

Il faut obligatoirement choisir le pilote avant de choisir la voie de mesure.

Choix du pilote (caractéristique de l'appareil de mesure)

En cliquant sur cette option de menu, une boite de dialogue s'ouvre.

Si vous êtes sous Windows, la liste des fichiers d'extension .dll présents dans le répertoire de départ s'affiche. Si vous êtes sous Linux, c'est la liste des fichiers d'extension .so qui s'affiche.

Choisissez un de ces fichiers, correspondant à votre appareil de mesure. Sur l'image ci-contre, on a le choix entre le boitier ADES, connectable à la prise parallèle (imprimante), ou bien le système Capman, connectable à la prise « manettes de jeux ».

Lorsqu'un pilote correct a été choisi, le titre de la fenêtre générale change : elle affiche le titre de l'appareil de mesure. Ultérieurement, lorsque vous aurez choisi la voie de mesure, la valeur mesurée y sera aussi affichée.

Choix de la voie de mesure

Le pilote choisi contient la description des diverses voies de mesures possibles. Choisissez l'une d'entre elles.

Il est aussi possible de transformer les valeurs envoyées par l'appareil. Par exemple, l'appareil peut envoyer un nombre entre 0 et 1023 signifiant un nombre de volts entre 0 et 5. Si vous connaissez cette loi de transformation, frappez la dans la ligne de saisie correspondante. Les fonctions doivent être frappées en fonction du paramètre « x » qui est la valeur envoyée directement par l'appareil.

La syntaxe des formules de transformation est donnée en annexe.

Réalisation des séries de mesures : soit une par une, soit répétées automatiquement

Le menu « acquisition » donne accès à deux possibilités :

Une seule série de mesures (Contrôle-M)

Dès que l'on clique sur cette option (ou que l'on frappe Ctrl-M), une série de mesures est effectuée, puis affichée en rouge sur fond noir.

Sur la ligne du bas sont indiquées les valeurs des abscisses, en millisecondes à partir du départ.

Sur le bord gauche sont indiquées les valeurs minimales et maximales des mesures de la série.

Mesures répétées (Contrôle-R)

La validation de cette option provoque une prise de mesure par séries successives, toutes les secondes.

Lorsqu'on frappe une seconde fois Ctrl-R, cette option est désactivée, et les mesures s'arrêtent. On peut alors les sauvegarder ou les copier dans le presse-papier, pour les faire traiter par un tableur.

Exportation de données vers d'autres logiciels

OscPB n'est capable ni de modélisation, ni d'analyse statistique. C'est le travail d'autres logiciels plus spécialisés.

Copier les données vers le presse-papier (« clipboard ») = frappe de Ctrl-C

Après avoir copié les données dans le presse-papier, il suffira en principe de passer dans votre tableur (Excel, OpenOffice, Spread32, QuattroPro, GNumeric ou autre...) et de prendre l'option « coller » (Ctrl-V). Les données devraient être transmises à la feuille de calcul en deux colonnes : la première colonne est le temps en millisecondes, la deuxième colonne est la valeur mesurée (en unités dépendant de votre système de mesure et de la fonction de transformation choisie).

Sauvegarder les données dans un fichier-texte = frappe de Ctrl-S

Une fenêtre de dialogue s'ouvre, et vous propose de sauvegarder les données.

L'extension proposée est « .txt », mais vous pouvez en choisir une autre.

Le fichier est constitué de 200 lignes, correspondant aux 200 mesures de la série. Chaque ligne est constituée de deux valeurs numériques, séparées par une tabulation. Les valeurs numériques utilisent le point comme signe décimal.

Ces fichiers sont lisibles par les tableurs-grapheurs, ainsi que par les logiciels de modélisation ou de calcul numérique (Matlab, Scilab, etc), mais avec quelques limitations... Les fichiers .txt réalisés par OscPB sont conçus pour avoir le maximum de compatibilité avec les divers logiciels, mais il y a quelques problèmes classiques.

Le signe décimal de votre tableur : point ou virgule ?

La majorité des logiciels scientiques utilise le point comme signe décimal. Par exemple, la valeur « un et demi » est codée en « 1.5 ». Mais en français de France, il est habituel d'utiliser la virgule comme signe décimal, et « un et demi » est prononcé « un virgule cinq », c'est pourquoi certains logiciels codent cette valeur en « 1,5 ».

Il est donc possible que votre tableur considère les valeurs numériques contenant des points comme des chaînes de caractères, à ne pas transformer en nombres. C'est le cas en particulier de Microsoft Excel en version française, et de OpenOffice, lui aussi en version française.

Comme le montre l'illustration ci-contre (avec OpenOffice 2), on s'en aperçoit lorsque les cases du tableur contiennent une grande quantité de zéros, et que les essais de formules sur les cases en question aboutissent à des erreurs.

Solution 1 pour copier/coller : changer de tableur

Un bon tableur, très compact, compatible avec Excel, est Spread32, trouvable en http://www.byedesign.freeserve.co.uk

Solution 2 pour copier/coller : Remplacer les points par des virgules par l'option « Rechercher/Remplacer »

Avec OpenOffice2, prenez « Editer | Rechercher & Remplacer », puis mettez un point dans la première ligne et une virgule dans la deuxième, et cliquez sur le quatrième bouton « Remplacer tout ».

Solution 3 pour copier/coller : Changer la configuration du tableur

OpenOffice2 dont les paramètres linguistiques sont configurés pour le français de France veut la virgule comme signe décimal, mais lorsqu'on le configure pour le français de Suisse, c'est le point qui est le signe décimal. Il suffit donc de configurer les paramètres linguistiques par « Outils | Options | Paramètres linguistiques | Langues », et de choisir « Français (Suisse) » comme langue par défaut.

Problèmes et solutions pour les noms de fichiers : changer l'extension lors de la sauvegarde par OscPB ou lors du chargement dans le tableur

Les fichiers enregistrés par OscPB sont de type « fichier-texte délimité », où le séparateur est la tabulation, c'est pourquoi ils ont l'extension .txt. Il serait aussi possible d'utiliser la virgule, ou le point-virgule comme délimiteur. C'est pourquoi de nombreux logiciels utilisent l'extension .csv pour ce type de fichiers : csv signifie en anglais « Comma Separated Values », ou en français « Champs Séparés par des Virgules », et normalement le séparateur est la virgule. Mais Microsoft-Excel français utilise le point-virgule comme séparateur, puisque la virgule en est le signe décimal, et il y a donc des problèmes à l'importation de tels fichiers...

Une solution générale et d'utiliser l'extension .txt, qui signale simplement que c'est un fichier de type texte, lisible par tous les logiciels de bureautique. Mais ces logiciels ne savent pas forcément que .txt est un fichier à charger par un tableur, et OpenOffice le charge dans le traitement de texte si on ne lui donne pas de précisions...

Sauvegarder avec l'extension .csv ou .txt ?

- Excel, Lotus 123, QuattroPro et Spread32 lisent correctement les fichiers d'extension .txt. Il en est de même pour CurveExpert, ES-Plot, XL-plot, WinStat-ITCF, Régressi...

- OpenOffice le lit correctement, une fois qu'on a précisé qu'il faut le lire dans le tableur, en précisant dans la liste « Type » qu'il s'agit d'un fichier de tableur de type Texte Csv (voir ci-contre) : il faut faire défiler la liste assez longuement !

Pour que OpenOffice lise le fichier directement dans le tableur, on peut lui donner l'extension .csv ; l'inconvénient est que le logiciel s'attend à la virgule (ou au point-virgule) comme séparateur de champ, et non à la tabulation. Avec OpenOffice, il faut cocher la case « tabulation » dans la boite de dialogue.

Annexes

Origines de OscPB

OscPB a été réalisé à l'aide de PureBasic 4.02, de Fantaisie Software (Strasbourg). Pour l'obtenir, consultez www.purebasic.fr.

L'analyseur syntaxique de la fonction de transformation provient de http://forums.purebasic.com/english/viewtopic.php?t=15762&start=0&sid=6061d6ba4bd21baba4d3371ac0a40533

Syntaxe des fonctions de transformation

Les opérateurs classiques sont reconnus : +, -, *, /, ^, (, )

Les fonctions suivantes sont reconnues : ACOS, ASIN, ATAN, ABS, COS, INT,LOG, LOG10, SIN, SQR, TAN, RANDOM