IREM des Pays de la Loire

Petit musée du calcul


irem65.tgz

Une simulation sous scilab d'une des premières calculettes électroniques programmables : ce script peut faire revivre le modèle hp65 de la firme de William Hewlett et David Packard.
Les principales différences sont que le nombre de pas de programmes n'est pas limité à une centaine comme sur l'original, et que l'on peut visualiser l'ensemble de la mémoire vive.
La précision de calcul est celle fournie par scilab (calcul en virgule flottante sur l'ordinateur) : les résultats peuvent donc être différents de ceux donnés par le modèle original.

Règle à calcul...

...virtuelle sous l'environnement graphique X.
Pour transformer une machine capable de réaliser des milliards de calculs par seconde avec seize chiffres significatifs en un ustensile qui permit, pendant plusieurs siècles, de faire plusieurs calculs par minute avec trois chiffres significatifs.

Instruments de calcul mécaniques

Il y avait une vie avant l'électronique !

Ordinateurs électroniques analogiques

Une chaîne de caractères comme "analog computer" dans tout bon moteur de recherche permet d'évoquer les ordinateurs équipés d'amplificateurs opérationnels qui connurent un certain succès des années 1950 aux années 1970.
Les opérateurs intégro-différentiels linéaires et les calculs vectoriels (à coefficients fixes) leur convenaient bien ; mais les multiplications leur étaient plus difficiles...

Bull gamma3 chez aconit
Bull gamma3 chez histoireinform
Bull gamma3 chez feb

Les débuts des ordinateurs en France.

Vidéo Tom Osborne
HP9845
HP9825 et HP9100

Les premiers calculateurs de table HP.


Instruments de mesure bon marché

ordinateur + carte son + scilab donne : un générateur basse fréquence à deux voies indépendantes, générateur de fonctions et d'impulsions

Depuis quelques lustres, les professionnels se sont équipés en oscilloscopes numériques.
On trouve sur le marché de l'occasion des oscilloscopes analogiques datant des années 1960 à 1980 pour des prix accessibles aux amateurs.

Les fabricants d'oscilloscopes analogiques revendiquent une précision de quelques pourcents pour les bases de temps.
Un ordinateur muni d'une carte son pourra se transformer en générateur basse fréquence avec des formes d'ondes seulement limitées par l'imagination du rédacteur de scripts scilab.
La précision temporelle et l'exactitude obtenues seront largement suffisantes pour étalonner la base de temps d'un vaillant oscilloscope analogique.

Les fichiers wav obtenus ici sont au format stéréophonique, 44100 échantillons de 16 bits par seconde ; ils peuvent donc être joués sur la plupart des cartes sons d'ordinateurs portables et tous lecteurs de CD.
Pour exploiter des cartes sons de performances différentes, il suffit de modifier les paramètres de l'instruction wavwrite.
La durée des échantillons doit être suffisamment longue, car avec un jeu en boucle, il existe souvent un arrêt d'une fraction de seconde à la jointure.
En général, l'amplitude de sortie de la carte son n'est pas calibrée...
*******************************************************************************

En mode balayage ordinaire

*******************************************************************************
Une onde sinusoïdale de 30 s à 441 Hz (5,1M)

stacksize(1e8)
T=44100;
t=1:30*T;
y=sin(441*2*%pi*t/T);
Y=[y;y]';
wavwrite(Y,T,16,'essai.wav')

-------------------------------------------------------------------------------
Une impulsion rectangulaire de presque 1 ms répétée toutes les 10 ms (1,7M)

stacksize(1e8)
T=44100;
z=ones(44,1);
zz=-ones(441-44,1);
Z=[z z;zz zz];
Z=[Z;Z;Z;Z;Z;Z;Z;Z;Z;Z];
Z=[Z;Z;Z;Z;Z;Z;Z;Z;Z;Z];
Z=[Z;Z;Z;Z;Z;Z;Z;Z;Z;Z];
wavwrite(Z,T,16,'puls.wav')

-------------------------------------------------------------------------------
Un signal carré de 30 s à 22,05 kHz (5,1M)
C'est la fréquence la plus élevée que l'on puisse atteindre avec une carte son ordinaire.

stacksize(1e8)
T=44100;
t=1:30*T;
x=modulo(t,2)*2-1;
X=[x;x]';
wavwrite(X,T,16,'carre.wav')

-------------------------------------------------------------------------------
Exercice :
produire des dents de scie (rampes), des signaux triangulaires, des signaux rectangulaires de rapport cycliques variés...
*******************************************************************************

En mode XY

*******************************************************************************
Pour utiliser l'oscilloscope en mode XY, on peut utiliser les voies gauche et droite de la carte son indépendamment l'une de l'autre. On construit ci-dessous des figures de Lissajous.

AVERTISSEMENT : il faut faire jouer les fichiers wav en boucle. Pendant l'intervalle entre deux lectures, le faisceau restera stationnaire : attention à ne pas brûler l'écran. En cas de doute ou de fausse manœuvre, réduire la luminosité au minimum et passer le plus vite possible en mode balayage ordinaire.
-------------------------------------------------------------------------------
Le signal essai.wav ci-dessus permet de mesurer le déphasage entre l'amplificateur vertical et l'amplificateur horizontal.
-------------------------------------------------------------------------------
Deux signaux sinusoïdaux en opposition de phase (5,1M)

stacksize(1e8)
T=44100;
t=1:30*T;
y=sin(%pi*t/50);
x=-y;
Y=[y;x]';
wavwrite(Y,T,16,'deg180.wav')

-------------------------------------------------------------------------------
Deux signaux sinusoïdaux déphasés d'un quart de tour (5,1M)

stacksize(1e8)
T=44100;
t=1:30*T;
y=sin(%pi*t/50);
z=cos(%pi*t/50);
Z=[z;y]';
wavwrite(Z,T,16,'deg90.wav')

-------------------------------------------------------------------------------
Deux signaux sinusoïdaux déphasés d'un sixième de tour (5,1M)

stacksize(1e8)
T=44100;
t=1:30*T;
y=sin(%pi*t/50);
w=sin(%pi*t/50+%pi/3);
X=[y;w]';
wavwrite(X,T,16,'deg60.wav')

-------------------------------------------------------------------------------
Deux signaux sinusoïdaux de rapport de fréquence double (5,1M)

stacksize(1e8)
T=44100;
t=1:30*T;
y=sin(%pi*t/50);
xx=sin(%pi*t/25);
Y=[xx;y]';
wavwrite(Y,T,16,'h2.wav')

-------------------------------------------------------------------------------
Deux signaux sinusoïdaux de rapport de fréquence deux tiers (5,1M)

stacksize(1e8)
T=44100;
t=1:30*T;
yy=sin(3*%pi*t/50);
xx=sin(%pi*t/25);
Z=[xx;yy]';
wavwrite(Z,T,16,'h2-3.wav')

-------------------------------------------------------------------------------