3.5インチミニディスプレイに好きなデータを表示する2つの方法 -Python編-

3.5インチミニディスプレイに好きなデータを表示する2つの方法 -Python編-

3.5インチのUSBディスプレイについて調べを進めました。

PCケースの中にも設置できるギークな3.5インチミニディスプレイ

表示デザインをカスタムする手段

この製品は専用のアプリからUSBを通したシリアル通信で画面のデータを送ります。
よって普通のディスプレイの様に好き勝手な表示はできません。

そこで専用のアプリが使う画像データを作る方法を探しました。
しかしネットを探す限り、メーカーはツールを非公開にしている模様。
唯一見つけられたのは、Pythonで書かれたオープンソースのツールでした。

というわけで、表示内容をカスタムする手段は2つに絞られます。

  • Pythonのツールturing-smart-screen-pythonを使って1から作る。
  • 専用アプリのテーマエディタで既存テーマを流用して作る

今回はPythonのツールを使って表示までやってみました。

turing-smart-screen-python

Githubにて開発されており、現在も機能アップの最中とのこと。
縦型表示にはまだ未対応だそうです。

専用アプリとは異なり、Pythonの動くLinux、Macでも動作可能。

Pythonのインストール

まずWindowsにPythonの環境を作ります。
と言ってもストアからアプリ入れるだけで完成。

“Windowsターミナル(管理者)”またはコマンドプロンプトを起動し、Python3と入力します。
すると勝手にMicrosoft Storeが起動するので、表示されたPython 3.10をインストール。

あとはコマンドラインからPython3が実行できるようになります。

ライブラリのインストールにはPIPを使うので、インストール&アプデしておきます。

PS W:\> python3 -m pip install --upgrade pip
Requirement already satisfied: pip in c:\program files\windowsapps\pythonsoftwarefoundation.python.3.10_3.10.1776.0_x64__qbz5n2kfra8p0\lib\site-packages (22.2.1)
Collecting pip
  Downloading pip-22.2.2-py3-none-any.whl (2.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 13.0 MB/s eta 0:00:00
Installing collected packages: pip
  WARNING: The scripts pip.exe, pip3.10.exe and pip3.exe are installed in 'C:\Users\xxxxx\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pip-22.2.2

[notice] A new release of pip available: 22.2.1 -> 22.2.2
[notice] To update, run: C:\Users\xxxxx\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\python.exe -m pip install --upgrade pip

モジュールの追加

次に実行に必要な2つのライブラリ、pyserialとPillowを追加します。

PS W:\> pip install pyserial
Collecting pyserial
  Downloading pyserial-3.5-py2.py3-none-any.whl (90 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.6/90.6 kB 2.6 MB/s eta 0:00:00
Installing collected packages: pyserial
Successfully installed pyserial-3.5

PS W:\> pip install Pillow
Collecting Pillow
  Downloading Pillow-9.2.0-cp310-cp310-win_amd64.whl (3.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3/3.3 MB 20.9 MB/s eta 0:00:00
Installing collected packages: Pillow
Successfully installed Pillow-9.2.0

コードダウンロード

プログラム本体を持ってきます。

GitHub – mathoudebine/turing-smart-screen-python: A simple Python manager for “Turing Smart Screen” 3.5″ IPS USB-C display

上記ページの”Code”と書かれた緑色のアイコンを押し、”Download ZIP”を選びます。
ダウンロードできたら適当なフォルダに解凍します。

シリアルポートの設定

メモ帳で解凍したmain.pyを開きます。
上から15行目にあるCOM_PORT行をコメントアウトし、実際のCOMポートを指定を明示します。

# COM_PORT = "/dev/ttyACM0"
COM_PORT = "COM4"

判別はデバイスマネージャーを開き、”ポート(COMとLPT)”にある”USBシリアルデバイス(COMx)”を確認すればわかります。
もし複数ある場合は一度3.5inch LCDからケーブルを抜き、消えたポートが正解。

実行

あとはコマンドラインで”python3 main.py”と実行すればOK。
非推奨命令が入ってる、とワーニングが毎秒表示されます。それを消すためmain.pyの先頭に

import warnings
warnings.filterwarnings('ignore')

を追記しました。

表示は時間、バーグラフのデモ、任意のスタイルのテキストと壁紙。
開発中なのでmain.pyに直接表示する内容が記述されています。
そこを変更すれば日本語フォントを使ったり、別の壁紙にしたりは可能でした。

ただ専用アプリのようにハードウェアの情報を拾う機能が含まれていません。
そこは各自で用意してね、という事なのでしょう。

完全に1からデザインできるけれど、なかなか敷居が高いという事はわかりました。

次回は、専用アプリに含まれるテーマエディタを使ったカスタマイズについて書きます。

コメントを残す