1. はじめに
本記事では、弊社のAD7SGPR USBコンパクト7セグディスプレイ「Nanapo」をデジタル時計として使用するためのPythonを公開します。社内の人間がコーディングしてくれました。
AD7SGPRは、シリアル通信で文字列を送るだけで値を表示できる7セグメントディスプレイです。そのためシリアル通信可能なWEBアプリやターミナルソフトから制御が可能です。
あまりハードのことを考えずに7セグの制御が可能です。
2. 必要なモジュール
今回使用するPythonのモジュールは以下の2つです。
-
serial
: シリアル通信を行うためのモジュールです。 -
time
: 時刻を取得・制御するためのモジュールです。
これらは標準のPythonライブラリに含まれているため、特別なインストールは必要ありません。
3. Pythonコード
以下が今回の主役、デジタル時計を制御するPythonのコードです。
import serial
import time
# AD7SGPRのシリアルポートを開く
com = serial.Serial('COM12', 115200)
while True:
# 現在時刻を取得
current_time = time.strftime('%H:%M:%S\n')
# AD7SGPRに現在時刻を送信
time_data = current_time.encode('ascii')
com.write(time_data)
# データが待っていれば一斉に読み込む
dummy = com.read_all()
print(dummy.decode('ascii')) # データをデコードしてプリント
# 1秒待機
time.sleep(1)
# シリアルポートを閉じる
com.close()
注意すべき点として、serial.Serial
で指定するシリアルポート(上記コードでは'COM12')は、使用する環境により変更してください。
4.動作の様子
Thonny4.0.2、
AD7SGPRファームウェアバージョン1.1で動作を確認しました。
5. まとめ
PythonとNanapoを用いて自作のデジタル時計を作る方法について解説しました。本コードを参考に様々な使い方をしていただけますと幸いです。
ほかにもWEBのAPIを絡めた表示ソフトのサンプルやNanapo自体のファームウェアも掲載しているためGitHubを覗いてみてください。
・AD7SGPRのGitHub