BitTradeOne さんから、ちょっと面白いミニディスプレイが発売になりました。
いわゆるサブモニターとして使うのではなく、
ArduinoやRaspberryPiなどマイコンで直接ディスプレイに表示するような用途を
USB接続してPCやMacから行うことができます。
マイコン側はデバッグが大変なので、処理をPC側に持ってこれるのは助かります。
自分は仕事でセンサー類を用いた実験器具を作成することがあり、
実験の計画作成やデータ保存などはPC側からPythonで行い、
センサーの読み取りや表示はArduino等マイコン側で行うことが多かったのですが、
これを使用すると表示の制御もPC側に持ってくることが可能です。
それでは使用方法を見ていきます。
Python環境がすでに入っていることを前提としています(スミマセン)。
また、今回はPython実行環境としてVSCodeを使用しています。
使用方法
ミニディスプレイをPCまたはMacに接続します。
製品にはいい感じに強そうなUSBケーブルが同梱されていますが、
USBA-USBCなので、Macで使用する場合は変換コネクタが必要になります。
接続すると、ミニディスプレイにテスト用の文字列が表示されます。
次に、こちらのミニディスプレイを使用するためのGitHubからリソースを取得します。
ダウンロードして解凍(またはClone)したら、そのフォルダをVSCodeで開きます。
実行すると、
背景の上に文字やプログレスバーが表示されるデモ画面になります。
試しに
lcd_comm.DisplayText("Basic text", 50, 85)
の部分を変更すると、表示位置や文字列を変更することができました。
背景画像は
background = f"res/backgrounds/example_{lcd_comm.get_width()}x{lcd_comm.get_height()}.png"
のように直接引っ張ってくることが可能です(↑の例では解像度で引っ張ってくる画像を変えています)。
もともとPCのステータス等を表示する用途で用意されたライブラリだけあって、
プログレスバーや円形にデザインされたグラフが用意されているようです。
lcd_comm.DisplayText(str(datetime.now().time()), 160, 2,
font=Path(__file__).parent / "res" / "fonts" / "roboto" / "Roboto-Bold.ttf",
font_size=20,
font_color=(255, 0, 0),
background_image=background)
でテキストを表示したり、
lcd_comm.DisplayRadialProgressBar(98, 260, 25, 4,
min_value=0,
max_value=100,
value=bar_value,
angle_sep=0,
bar_color=(0, 255, 0),
font_color=(255, 255, 255),
background_image=background)
で円形のプログレスバーを表示したりしています。
他にも、
library > lcd > lcd_comm.pyの中を見てみると、
def DisplayLineGraph(self, x: int, y: int, width: int, height: int,
values: List[float],
min_value: float = 0,
max_value: float = 100,
autoscale: bool = False,
line_color: Color = (0, 0, 0),
line_width: int = 2,
graph_axis: bool = True,
axis_color: Color = (0, 0, 0),
axis_font: str = str(Path(__file__).parent.parent.parent / "res" / "fonts" / "roboto" / "Roboto-Black.ttf"),
axis_font_size: int = 10,
background_color: Color = (255, 255, 255),
background_image: Optional[str] = None):
でグラフを描いたりといったことができるようです。
以上、簡単な使用方法の説明でした!