HOME >> 鉄道模型実験室 > リアルタイム表示トライ その3
Python を使用し測定データをリアルタイムで表示できないか検討しています。 残っているのは課題1のシリアル通信関係である。 この一週間、悪戦苦闘してきたプロジェクトもやっとゴールが見えてきた。
.
■ トライ4
最後に、残っているのは課題1のシリアル通信関係に取り掛かることにしよう。
まず、シリアル通信のライブラリーを検索して、pyserial というライブラリーを使うことにしました。 サイトの解説に従って、このライブラリーをインストールしました。
#-*- coding:utf-8 -*- import win32com.client import time import serial ser = serial.Serial('COM8',9600) ser.readline() xl_app = win32com.client.GetObject(Class='Excel.Application') while True: val_arduino = ser.readline() buf = val_arduino.strip().decode('UTF-8') a = buf.split(',') rn = xl_app.Cells(4,2).value xl_app.Cells(rn,2).value = a[0] xl_app.Cells(rn,3).value = a[1] xl_app.Cells(rn,4).value = a[2] xl_app.Cells(rn,5).value = a[3] xl_app.Cells(rn,6).value = a[4] xl_app.Cells(rn,7).value = a[5] xl_app.Cells(rn,8).value = a[6] xl_app.Cells(4,2).value = rn + 1 time.sleep(1) ser.close exit()
問題なくインストールできました。
次に、プログラムは先回の内容をもとに右の様に記述しました。 記述内容は最終状態ですが、注意点をメモしておきます。
● テストの実施
実施状態を下の写真に示します。 測定を始めようとして、すでに一週間が経っていました。 再び、測定装置のセットを行い、パソコン側もエクセルのシートを開き、右のプラグラムを走らせました。 やっとのことで本来のテストが出来るのではないかとワクワクしながら、パソコン画面を見つめていました。
しかし、無情にもグラフにはプロット点が一点だけで、他のデーが表示されません。
無念! またダメか?
と思っていたのですが、何のことはない、装置の測定方法を忘れていたのです。 同じ条件で動力車を走らせているので、データは一点に集中します。 バラツキのない測定が出来ている証明なのです。 ・・・・・・・もう! 間抜けめ!
供給電圧を少しずつ変えていくと、動力車の速度も変化し(当たり前ですな)、それに合わせてグラフ上に次々とプロットされていきました。
やったぜ! .
思わず 出来たぞ! と叫んでしまいました。
■ あとがき
この一週間、悪戦苦闘のPython への挑戦でした。 もう 81歳ではなくて、まだ 81歳であることも実感しましたし、マクロによる記述よりも、
Python の記述がなんとシンプルであることか!
も証明されたようです。 恐るべし Python なり。
● 手順を整理しておきます。
測定装置の準備が出来たら、
そして、測定を開始します。
なお、Python プログラムを実行させる方法は、実施してきた Windows PoweShell から実行する方法以外に、IDE を使う方法もあるようです。 それもいろいろな種類があるようなので、今後の研究課題としましょう。 そして、今回作成したソフトを使って、実際の測定を実施し、問題点の抽出や改良を実施することします。
*******************************************************************
そして、今回のプロジェクトはここで、無事に完了と言うことにします。
2022/6/15