ガイカーカウンター GM-10 のPythonプログラム

なぜか部屋にガイカーカウンターが落ちていて、遙か昔にプログラムを書いていたようで、せっかくなので置いておく。 みたところ、matplotlibでプロットするプログラムになっているようだ。

import datetime

import serial

import matplotlib.pyplot as plt

import pandas as pd

ser = serial.Serial('/dev/tty.usbserial-FTSBTSEU', baudrate=38400, dsrdtr=True)
ser.read(2)

df = pd.DataFrame(columns=['time', 'count'])
df = df.set_index('time')
plt.ion()
fig, ax = plt.subplots()
while True:
    # measure
    ser.read(1)
    t = datetime.datetime.now()
    df.loc[t] = 1

    # aggs
    df_minutely = df.resample('1min').sum()

    # plot
    plt.cla()
    ax.set_title('RadiationCount - Geiger Counter Black Cat Systems GM-10')
    ax.set_xlabel('Time')
    ax.set_ylabel('Count')
    ax.set_ylim(0, df_minutely['count'].max()+1)
    df_minutely.plot(y='count', ax=ax)
    ax.plot_date(df_minutely.index.to_pydatetime(), df_minutely)
    plt.draw()
    plt.pause(0.1)

ser.close()