Afficher une image en Python sur l'écran de la brique EV3

Le logiciel de programmation par briques graphiques livré avec le kit du robot Lego MindStorm dispose de nombreuses images. Pour les utiliser, il faut le recopier dans le projet du programme. En principe les fichiers des images Lego se trouvent dans le répertoire C:\Program Files\LEGO Software\LEGO MINDSTORMS EV3 Home Edition\Resources\BrickResources\Retail\Images\files.
Une bonne pratique consiste à créer un répertoire res dans le projet pour les ressources, que l'on peut subdiviser en deux sous répertoires images qui contient tous les fichiers des images utilisées par le projet et sounds pour les fichiers des sons.

Méthode d'affichage des images de la classe Display

L'affichage d'un fichier image s'effectue par l'invocation de la méthode display_image() de la classe Display. Cette instruction est équivalente à la brique graphique ci-dessous :
Elle est déclarée comme ci-dessous :
image_filename(filename, clear_screen=True, x1=0, y1=0, x2=None, y2=None)

Programmation

import time

from ev3dev2.display import Display

SCREEN = Display()


def display_image(filename):
    SCREEN.image_filename(filename)
    SCREEN.update()


if __name__ == '__main__':
    display_image('res/images/Eyes/Neutral.bmp')
    time.sleep(3)

Explications

  • La classe Display est importée à partir du module display de la bibliothèque ev3dev2.
  • La classe Display n'est instanciée qu'une seule fois. Cette instance est affecté à une constante globale SCREEN.
  • Pour afficher une image à partir d'un fichier, on invoque la méthode display_image() de la classe Display sur l'instance SCREEN. L'affichage n'est effectif que par l'invocation de la méthode update().
  • Le paramètre de la méthode display_image() est une chaîne de caractères contenant le chemin relatif par rapport au fichier du programme Python qui l'utilise.

Commentaires

Posts les plus consultés de ce blog

Connecter ev3dev2 à Internet en WiFi

Connecter Visual Studio Code à un robot MindStorm EV3 avec ev3dev-browser

Installer les modules EV3DEV2 sur Python