後継のプロジェクトがあります.詳しくは,https://github.com/elerac/optosigma をご覧ください.
ツクモ工学の自動偏光子ホルダー(PWA-100)をシグマ光機の1軸ステージコントローラ(GSC-01)を通して,Pythonで制御します.研究室用に作成.
pip install git+https://github.com/elerac/autopolarizer
インスタンスの作成時に接続要求が行われます.コンストラクタに渡す引数はシリアルポート名ですが,環境によっては下の例と違う場合があります.自分の環境に応じて適宜確認してください.
from autopolarizer import AutoPolarizer
polarizer = AutoPolarizer("/dev/tty.usbserial-FTRWB1RN")
ステージを機械原点に復帰させます.
polarizer.reset()
クラスのメンバdegree
は偏光板の角度と連動しています.
print(polarizer.degree) # 現在の偏光板の角度を取得
polarizer.degree = 90 # 偏光板の角度が90[deg]になるように回転
polarizer.degree += 60 # 偏光板の角度が現在の角度から+60[deg]になるように回転
ステージの移動時の最小速度[PPS],最大速度[PPS],加減速時間[mS](最小速度→最大速度or最大速度→最小速度に切り替わるまでの時間)を設定します.最小速度・最大速度の設定範囲は100-20000です.加減速時間の設定範囲は0-1000です.最大速度は最小速度以上の値に設定する必要があります.速度の設定は100[PPS]単位で行う必要があります.
spd_min = 500 # 最小速度[PPS]
spd_max = 5000 # 最大速度[PPS]
acceleration_time = 200 # 加減速時間[mS]
polarizer.set_speed(spd_min, spd_max, acceleration_time)
ステージを連続で回転させることができます.
polarizer.jog_plus() # +方向に回転
time.sleep(1) # 1秒待つ
polarizer.stop() # ステージ停止
polarizer.jog_minus() # -方向に回転
time.sleep(1) # 1秒待つ
polarizer.stop() # ステージ停止
偏光板の方向を反転します.このとき,角度は"360-角度"になります.
polarizer.flip_front = True
reset
やdegree
でのステージの移動において,デフォルトでは移動が完了するまで待つ処理を行っています.移動中にも別の処理を行いたい場合は,メンバ変数is_sleep_until_stop
をFalse
に設定してください.
polarizer.is_sleep_until_stop = False # 移動完了を待つフラグをFalseにする
polarizer.degree += 180 # 移動開始(移動完了を待たずに次の処理に行く)
"""ここに移動中に行う処理を書く"""
polarizer.sleep_until_stop() # 明示的に移動完了を待つ