howto:divers:adalm2000

ADALM 2000, d'Analog Devices

L'ADALM2000 (M2K), fabriqué par Analog Devices, est un dispositif portable qui présente plusieurs fonctions pour le travail électronique. L'ADALM2000 présente un oscilloscope numérique, un générateur de fonctions, un analyseur logique, un voltmètre, un réseau, un analyseur de bus numérique et de spectre, et deux alimentations programmables. Le M2K est autonome et alimenté par USB. Le module d'apprentissage se connecte à un hôte via le logiciel d'application Scopy, compatible avec Mac, Linux et Windows.

* Oscilloscope USB à 2 canaux * Générateur de fonctions à 2 canaux * Analyseur logique numérique à 16 canaux * Générateur de modèles à 16 canaux * E/S numériques virtuelles à 16 canaux * Voltmètre à un canal (CA, CC, ±20 V) * Analyseur réseau : Bode, Nyquist, Nichols * Analyseur de spectre * Interfaces d'analyseurs de bus numériques : SPI, I²C, UART, parallèle * Deux alimentations programmables (0…+5 V, 0…-5 V)

Nous l'utilisons au fablab comme un outil tout en un de laboratoire. Un wiki en anglais détaille tout le fonctionnement de cette appareil: https://wiki.analog.com/university/tools/m2k Mais l'architecture matérielle, basée sur un FPGA, permet d'écrire soi-même des programmes qui seront exécutés sur l'Adalm2000. En revanche, ce genre de conceptions requiert un niveau plus qu'avancé (ingénieur)! https://wiki.analog.com/university/tools/m2k/developers

Il y a donc plusieurs méthodes pour utiliser cet appareil, de la plus conviviale à la plus barbue. La plus conviviale passe par un logiciel appelé Scopy. Les instructions d'installation sont ici. A noter que pour Linux, il faudra auparavant installer les règles de gestion USB , à savoir un fichier à copier dans /etc/udev/rules.d/ . Après redémarrage d'udev, l'appareil sera reconnu. Puis, installer Flatpak, qui permet d'empaqueter les applications et leur runtime, c'est à dire l'environnement logiciel nécessaire à les faire tourner, puis Scopy.

C'est l'utilisation que nous allons illustrer dans un premier temps. Pour cela, nous allons montrer le fonctionnement d'un encodeur à quadrature. Il existe beaucoup de ressources en français et en anglais, nous vous laissons chercher un peu si vous souhaitez une explication plus détaillée que celle qui va suivre. Une ressource utile parmi d'autres: https://playground.arduino.cc/Main/RotaryEncoders/ . Cette explication est aussi très claire: https://www.locoduino.org/spip.php?article82

Pour commencer, quelle est la différence entre un encodeur et un potentiomètre ? Le potentiomètre a des butées, un début et une fin, et module une résistance entre un minimum et un maximum. Un encodeur, en revanche présente une capacité de rotation infinie. On ne lit pas une valeur, mais un changement de rotation dans un sens ou dans un autre.

Un encodeur est cranté, il y a un certain nombre de pas par tour, leur nombre influe sur sa précision. À chaque passage de cran vers la droite ou vers la gauche, deux interrupteurs génèrent une impulsion, ils passent de l'état ouvert à l'état fermé. Seulement, ce changement d'état est légèrement décalé dans le temps. C'est ce décalage qui permet de lire le sens de rotation et la vitesse. Dans un sens, le A est commuté avant le B. Dans l'autre sens, le B est commuté avant le A.

C'est ce principe que nous allons illustrer grâce aux fonctions oscilloscope et alimentation de l'Adalm2000.

Il faut en premier lieu brancher les sondes de l'Adalm2000. La fiche rouge de l'alimentation prendra place à l'endroit de l'alimentation 3.3V de l'esp8266. La fiche noire, à la place du GND. Enfin, les deux sondes de mesure iront sur les deux broches chargées de lire l'encodeur.

Il faut maintenant envoyer du courant dans les boutons, pour pouvoir les lire. Après avoir lancé *Scopy* et connecté l'Adalm2000, nous cliquons sur l'onglet Power Supply. Nous voyons que nous pouvons générer deux tensions différentes. Nous réglons la première sur 3V.

Cliquons maintenant sur l'onglet Oscilloscope. L'interface suivante apparaît. Elle représente, sous forme graphique, les variations de tension des signaux qui sont lus. Deux paramètres sont très importants à ajuster pour bien voir ce qui se passe: l'échelle horizontale (le temps) et l'échelle verticale (la tension). Il faut tourner l'encodeur pou voir combien de temps environ dure chaque changement d'état, et s'arrêter sur le réglage qui rend la courbe la plus lisible (10 ms dans notre cas). Verticalemnt, le centre de l'écran est 0V, et chaque case correspond à 1V. On voit que le signal est soit de 0V, soit de 3V, avec très peu de modulation intermédiaire (signal carré).

Chaque courbe colorée correspond à l'une des deux sondes que nous avons connecté, la orange/blanche et la bleue.

Voici les courbes lues exportées grâce à la fonction intégrée à *Scopy*. À gauche, rotation horaire, à droite, rotation anti-horaire. Le décalage des crans est bien visible, à gauche la courbe violette est commutée en premier, à droite, c'est la orange. L'écartement des crans dépend de la vitesse de rotation.

  • howto/divers/adalm2000.txt
  • Dernière modification: 2021/06/24 15:46
  • (modification externe)