Prenez des captures d'écran LCD avec Python-LEGO Mindstorms

Lors de la rédaction d'articles à l'aide de LEGO Mindstorms EV3 (ci-après EV3), des images peuvent être insérées. Vous pouvez utiliser l'affichage de l'écran EV3 pour expliquer la situation, par exemple lors de la connexion de l'EV3 via Bluetooth. Cette fois, je décrirai comment faire une capture d'écran de l'écran LCD d'EV3.

À propos d'EV3

Version éducative LEGO® MINDSTORMS EV3

Environnement dans cet article

Connexion sans fil ~ prise de vue

Tout d'abord, connectez EV3 et PC via Bluetooth. Cliquez ici pour la méthode de connexion (https://qiita.com/Hiroki-Fujimoto/items/6ce278411ca151fee750#pc%E3%81%A8ev3%E3%81%AEbluetooth%E6%8E%A5%E7%B6%9A) référence.

Accédez ensuite à EV3 à partir de l'extension ev3dev de VS Code. 1.png Une fois l'accès terminé, un cercle vert s'affiche. Faites un clic gauche sur les 3 EV auxquels vous accédez pour afficher le menu, alors sélectionnez Prendre une capture d'écran. 2.png

Ensuite, la fenêtre de résultat de la prise de vue s'affiche sur VS Code. Le chemin du dossier contenant l'image PNG est affiché en haut de la fenêtre. 3.png

Le fichier PNG réel est généré comme suit. Contrairement à l'écran noir et blanc de l'écran LCD, la partie sélectionnée est affichée en bleu. 3-1.png

Connexion filaire ~ Prise de vue

Lorsque vous souhaitez prendre une photo de l'écran LCD avant la connexion sans fil, par exemple pour expliquer la procédure de connexion avec Bluetooth En connectant EV3 et PC avec un câble USB, il est accessible à partir de VS Code de la même manière.

Tout d'abord, connectez EV3 et PC à l'aide d'un câble USB. Aucun paramètre spécial n'est requis lors de la connexion via Bluetooth. 10.png Après cela, accédez à EV3 à partir de ev3dev de VS Code. La notation qui était «connexion réseau Bluetooth» au moment de Bluetooth est changée en «Ethernet 7» au moment de la connexion USB. 4.png

Vous pouvez prendre une capture d'écran de l'écran LCD une fois connecté via USB en cliquant avec le bouton gauche sur les 3 EV qui accèdent de la même manière et en sélectionnant «Prendre une capture d'écran» dans le menu. 5.png

Le fichier PNG réel est généré comme suit. 5-2.png

Prise de vue sur l'écran LCD pendant l'exécution du programme

Si les deux étapes ci-dessus sont effectuées lors de l'exécution du programme, les caractères affichés sur l'écran LCD peuvent également être photographiés.

Cette fois, créez le programme suivant sur VS Code et enregistrez l'écran LCD lorsqu'il est exécuté sur EV3. Cliquez ici pour savoir comment créer et transférer des programmes (https://qiita.com/Hiroki-Fujimoto/items/6ce278411ca151fee750#%E3%83%97%E3%83%AD%E3%82%B0%E3%83 Voir% A9% E3% 83% A0% E3% 81% AE% E4% BD% 9C% E6% 88% 90).

from ev3dev2.display import Display
import ev3dev2.fonts as fonts
import time

screen = Display()
screen.clear()
font = fonts.load('luBS12')

def main():
    screen.draw.text((10, 10), 'Test1 Display String!', font=font)
    screen.draw.text((10, 30), 'Test2!', font=font)
    screen.update()
    time.sleep(5.0)
    screen.clear()

if __name__ == "__main__":
    main()

Après avoir créé le programme, cliquez sur la marque ci-dessous sur VS Code pour transférer l'espace de travail vers EV3. 5-1.png

Après le transfert, ouvrez un terminal SSH et exécutez cd ev3 workspace / (cd workspace name /) Exécutez python3 display.py. 6.png 7.png

Lorsque le programme est exécuté, une chaîne de caractères sera affichée sur l'écran LCD pendant 5 secondes, alors sélectionnez «Prendre une capture d'écran» pendant ce temps. 8.png

Le programme prend une capture d'écran de la chaîne de caractères affichée sur l'écran LCD. 9.png

Le fichier PNG réel est généré comme suit. L'arrière-plan lorsque le programme est exécuté est affiché en jaune. 9-1.png

Recommended Posts

Prenez des captures d'écran LCD avec Python-LEGO Mindstorms
[Python] Prenez une capture d'écran
Jetez un œil au traitement de LightGBM Tuner
Prenez la valeur du thermo-hygromètre SwitchBot avec Raspberry Pi
Visualisez le vocabulaire caractéristique d'un document avec D3.js
Calculer le produit des matrices avec une expression de caractère?
[Python3] Prenez une capture d'écran d'une page Web sur le serveur et recadrez-la davantage
Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police
Prendre une capture d'écran en Python
Un diagramme de réseau a été créé avec les données du COVID-19.
Mesurer l'importance des entités avec un outil de forêt aléatoire
Analysez le modèle thématique pour devenir romancier avec GensimPy3
L'histoire de la création d'un bot de boîte à questions avec discord.py
Comment prendre une capture d'écran de l'écran Chrome (l'empêcher de se couper au milieu)
Traitez le contenu du fichier dans l'ordre avec un script shell
Une histoire coincée avec l'installation de la bibliothèque de machine learning JAX
Jetons un coup d'œil à la carte des fonctionnalités de YOLO v3
Trouvez la valeur optimale de la fonction à l'aide d'un algorithme génétique (partie 2)
[Statistiques] Saisir l'image de la théorie de la limitation du pôle central avec un graphe
[python, ruby] sélénium-Obtenez le contenu d'une page Web avec le pilote Web
Prenez le journal d'exécution du céleri
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
Si vous donnez une liste avec l'argument par défaut de la fonction ...
L'histoire de la création d'un pilote standard pour db avec python.
Compter la partie concaténée maximale d'un graphe aléatoire avec NetworkX
Obtenir l'URL du ticket JIRA créé par la bibliothèque jira-python
L'idée d'alimenter le fichier de configuration avec un fichier python au lieu de yaml
Python-Get angles de moteur avec LEGO Mindstorms
L'histoire de l'exportation d'un programme
L'histoire de la création d'un module qui ignore le courrier avec python
Créez un programme de jugement de compatibilité avec le module aléatoire de python.
Jetons un coup d'œil à l'incendie de forêt sur la côte ouest des États-Unis avec des images satellites.
Une histoire qui visualise le présent de Qiita avec Qiita API + Elasticsearch + Kibana
L'histoire d'un capteur de stationnement en 10 minutes avec le kit de démarrage GrovePi +
[EC2] Comment faire une capture d'écran de votre smartphone avec du sélénium
[Explication AtCoder] Contrôlez les problèmes A, B, C d'ABC182 avec Python!
Calculer l'itinéraire le plus court d'un graphe avec la méthode Dyxtra et Python
Générez une liste contenant le nombre de jours du mois en cours.
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
Calculez la probabilité d'être une pièce de calmar avec le théorème de Bayes [python]
Hit une méthode d'une instance de classe avec l'API Web Python Bottle
Recevez une liste des résultats du traitement parallèle en Python avec starmap
L'histoire de la création d'une caméra sonore avec Touch Designer et ReSpeaker
J'ai fait GAN avec Keras, donc j'ai fait une vidéo du processus d'apprentissage.
Créez DNN-CRF avec Chainer et reconnaissez la progression des accords de la musique
Obtenez le salaire moyen d'un emploi avec des conditions spécifiées sur Indeed.com
J'ai fait une erreur en récupérant la hiérarchie avec MultiIndex of pandas
[Explication AtCoder] Contrôle ABC184 Problèmes A, B, C avec Python!
Alignez la taille de la barre de couleurs avec matplotlib
Vérifier l'existence du fichier avec python
Mesurer la force de l'association dans un tableau croisé
Rechercher le labyrinthe avec l'algorithme python A *
Prenez la logarithmique des éléments non nuls dans scipy.sparse
[python] [meta] Le type de python est-il un type?