In diesem Artikel wird davon ausgegangen, dass Sie ev3dev auf Ihrem EV3 installiert haben und über eine SSH-Verbindung verfügen. Wenn Sie die Umgebung nicht erstellt haben, lesen Sie bitte diesen Artikel.
mindstorm-Lass uns EV3 unter Linux steuern! Ev3dev OS und SSH-Verbindung installieren
Ich werde Ihnen zeigen, wie Sie mit ev3dev-lang-python der Python-ev3dev-Bibliothek ein BMP-Bild auf dem LCD-Bildschirm anzeigen. Die in der offiziellen Dokumentation beschriebene Methode hat nicht funktioniert, daher hoffe ich, dass Sie diesen Artikel hilfreich finden.
Auf der Homepage der Bibliothek wurde ein BMP-Bild mit einer für die LCD-Anzeige geeigneten Größe bereitgestellt. Laden Sie die Zip-Datei herunter, entpacken Sie sie und speichern Sie sie in EV3. BMP image collection
Lassen Sie uns das BMP-Bild auf dem LCD anzeigen.
Die offizielle Dokumentation (https://media.readthedocs.org/pdf/python-ev3dev/latest/python-ev3dev.pdf) beschreibt die Bildmethode.
image Returns a handle to PIL.Image class that is backing the screen. This can be accessed for blitting images to the screen. Example:
screen.image.paste(picture, (0, 0))
Wenn ich jedoch versuche, es auszuführen, scheint es, dass die Bildmethode nicht definiert ist und ein Fehler auftritt.
robot@ev3dev:~$ python
Python 2.7.9 (default, Aug 13 2016, 17:33:18)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>from PIL import Image, ImageDraw, ImageFont, ImageOps
>>>import ev3dev.auto as ev3
>>> screen = ev3.Screen()
>>>logo = Image.open('test.bmp')
>>> screen.image.paste(logo,(0,0))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Screen' object has no attribute 'image'
Mit dem folgenden Programm hat es gut funktioniert.
bmp_lcd.py
mport ev3dev.auto as ev3
from PIL import Image, ImageDraw, ImageFont, ImageOps
screen = ev3.Screen()
logo = Image.open('EV3_BMPs/Awake.bmp')
#screen.draw.bitmap((0, 0), logo.convert("L")) #Die Farbe ist umgekehrt
screen.draw.bitmap((0, 0), ImageOps.invert(logo.convert("L"))) #Erfolg
screen.update()
logo.convert("L")8 Bilder in-Konvertieren in Monochrom von Bitpixeln.
In diesem Zustand werden Schwarzweiß jedoch invertiert, wenn es auf dem LCD angezeigt wird. Daher wird ImageOps.invert () verwendet, um es wiederherzustellen.
Es wurde so angezeigt.
![awake.png](https://qiita-image-store.s3.amazonaws.com/0/149019/51f9fc2c-2323-86d1-bbad-7c3a95d45896.png)
## Referenz
>
[https://sites.google.com/site/ev3python/learn_ev3_python/screen/bmp-image-collection](https://sites.google.com/site/ev3python/learn_ev3_python/screen/bmp-image-collection)
>
[http://pillow.readthedocs.io/en/3.3.x/handbook/concepts.html#modes](http://pillow.readthedocs.io/en/3.3.x/handbook/concepts.html#modes)
>
[[Ev3dev] Erstellen Sie ein Programm, das LCD (Bildschirm) mit Python erfasst](http://qiita.com/murotani/items/8f301c57d3e5741ea8f7)
Recommended Posts