この記事は「 OLED-Displayと等幅フォント 」からの続きです。
文字を反転させてハイライト表示にして、〇〇である事を強調するようにしてみました。
反転文字と書きましたが「反転したように見える」が正しいかも。
↓ Ambient(ambidata.io)へデータ送信した時だけに、OLED-Displayの四角内を反転させます。四角内の数値の単位は分でありカウントダウンします。表示の更新は1分毎ですが、送信は5分毎にしています。
↓ データ送信しない表示更新時は反転させません。
私が凄く参考にしているサイトです。
Raspberry Pi: OLED-Display 128×64 mit Python ansteuern (I2C)
↑ このサイトのソースコード “Beispiel 3” を参考にしています。↓
↑ A、B、Cの四角を描くソースコード(Python)です。↓
#!/usr/bin/env python
# coding=utf-8
# Bibliotheken importieren
from lib_oled96 import ssd1306
from smbus import SMBus
from PIL import ImageFont
# Display einrichten
i2cbus = SMBus(1) # 0 = Raspberry Pi 1, 1 = Raspberry Pi > 1
oled = ssd1306(i2cbus)
# Ein paar Abkürzungen, um den Code zu entschlacken
draw = oled.canvas
DejaVuSerifBold14 = ImageFont.truetype('DejaVuSerif-Bold.ttf', 14)
# Display zum Start löschen
oled.cls()
oled.display()
# Formen zeichnen
draw.rectangle((80, 10, 127, 63), outline=1, fill=0) # A
draw.rectangle((10, 20, 100, 50), outline=1, fill=1) # B
draw.rectangle((0, 0, 20, 30), outline=1, fill=0) # C
draw.text((110, 20), "A", font=DejaVuSerifBold14, fill=1)
draw.text((50, 25), "B", font=DejaVuSerifBold14, fill=0)
draw.text((4, 5), "C", font=DejaVuSerifBold14, fill=1)
oled.display()
outline や fill の値を1又は0にする事で、縁取りの線や塗りつぶしの色が白や黒になるようです。
ただ、outline を0した場合などは、四角の重ね位置により意図しない描画になる事がありました。
使用OLED-Displayは秋月電子通商の製品で通販コードP-12031です。