OSCILLO


Introduction

1. Présentation du problème

2. Résolution

3. Programme

4. Améliorations possibles


Introduction

J.-L. COLAS a réalisé et publié un programme intitulé OSCILLO (description dans le n° 801 du Bulletin de l'Union des Physiciens) qui permet de simuler un oscillateur bicourbe sur un ordinateur.

L'idée m'a paru très intéressante et j'ai proposé aux élèves de 1ères S et ES suivant l'Option Informatique (qui aura probablement disparu des programmes au moment où vous lirez ce texte) de réaliser une simulation de ce type sur TI-92 (ou pour certains sur - leur - TI-89 en adaptant l'affichage), cette calculatrice étant le support des Travaux Pratiques de programmation faits dans le cadre de l'O.I. dans mon lycée.

Cette activité a duré une demi-douzaine d'heures, à la fois en cours (décomposition du problème, recherche de l'organigramme...) qu'en T.P. (programmation). Il est à noter que les meilleurs élèves ont pu transposer leur programme sur PC (en QBasic) et le faire fonctionner, mais en couleurs !


1. Présentation du problème

On souhaite simuler sur l'écran de la TI-92 (ou d'un ordinateur) le fonctionnement d'un oscilloscope relié à un générateur délivrant une tension sinusoïdale.

L'utilisateur doit indiquer la valeur maximale de la tension (en V) et sa fréquence (en Hz ), ainsi que les réglages du balayage (en ms/div) et de la sensibilité verticale (en V/div).

La courbe doit apparaître dans une grille de 10 x 8 cases reproduisant ce que l'on verrait effectivement sur l'écran d'un oscilloscope.


2. Résolution

Les élèves ont procédé par étapes :

tracé de la grille

saisie des indications de l'utilisateur

traitement des données

affichage de la courbe

amélioration de l'interface


3. Programme

Il s'agit en fait d'une synthèse des différentes suggestions des élèves : on notera par exemple la possibilité de choisir le type de quadrillage de l'écran... Le lancement se fait après avoir changé de répertoire :

Lancement

Ecran d'accueil

Les différents choix possibles se font à l'aide des touches de fonctions, et l'on trouvera ci-dessous un exemple (classique) de simulation :

Touches F1 à F5

Exemple


4. Améliorations possibles

J'ai soumis ce programme à J.-L. Colas, qui a bien voulu me suggérer un certain nombre de corrections et d'améliorations (qui n'ont pas été faites, les élèves ayant travaillé depuis sur le multimédia et sa programmation sur PC) , que je vous laisse - faute de temps - le plaisir de mettre en oeuvre par vous-même :

  1. Une petite amélioration serait d'agrandir un peu la taille de la grille dans laquelle est tracée la sinusoïde. Actuellement elle est au format 80×100, mais j'ai vu que l'on pouvait aller jusqu'à 96×120 : cela ferait une grille un peu plus grande, pour pas grand chose à changer dans le code.
     
  2. Il y a un petit défaut lors du tracé d'une courbe dont l'amplitude dépasse les bornes verticales de la grille : il apparaît des traits plus ou moins horizontaux reliant le dernier pixel tracé à celui qui réapparaît dans la grille.
     
  3. J'ai pensé aussi à rajouter une option pour tracer la courbe suivante en superposition ou bien en nouvelle courbe, par exemple un sous-menu de "courbe" (il est possible de superposer plusieurs courbes si on modifie les réglages et si on choisit «Ecran/Courbe» sans redemander «Choix de la grille» ; les réglages affichés seront alors ceux de la dernière courbe...) .
     
  4. Il y a un petit truc à corriger concernant l'affichage de la fréquence : si l'on prend d'abord 100 Hz, puis 50 Hz, on voit s'afficher 50Hzz. Pour corriger, il faut rajouter 3 espaces après le z, pour le cas où l'on passerait de 5 Hz à 1000 Hz. De même pour l'affichage de umax.
     
  5. Si l'on modifie le balayage ou le calibre, il vaut peut-être mieux effacer les courbes précédemment tracées.
     
  6. Au lieu de pi, j'ai trouvé que les calculs (le tracé) se faisaient plus vite avec la valeur approchée 3,14 .
     
  7. Et il faudrait introduire une nouvelle variable, qui vaudrait 2 pour un tracé rapide, et 1 pour les umax trop grands et périodes trop petites, car dans ces cas les courbes sont très inclinées et y(i) varie très vite en fonction de i, et les tracés sont interrompus trop tôt avant d'atteindre les bord de la fenêtre...