投稿

8月, 2023の投稿を表示しています

PiMagの自動・外部制御にむけて(1)

イメージ
PiMag(ポータブル40テスラ装置)にはraspberry piが搭載されていて、そこにに置いた自作pythonプログラムで制御しています。そこでtkinterというpython標準のGUIを使用しています。そのGUI特有の機能を使っています。 問題は外部でリモートコントロールしたり、自動計測することを考えたときに、GUIベースなのは微妙と言うことです。今のソフトはtkinterの機能を駆使しているので、フレキシブルじゃないです。そこで 「テキスト設定ファイル」に値を読み書きすることを基本とする、というプログラムにしようと思います。ボタンを押しても、まずはテキストファイルの値を書き換え、それを別のプログラムが参照して次の動きを作る、ということです。 そうすれば、GUIのボタンを押さなくても、外部からテキストファイルを書き換えることで、ボタンを押すようなことができそうです。 そのテキストファイルは複数のプログラムが参照する可能性があるので、ファイルを安全に読み書きできる必要があります。 ファイル名readerwriter.pyとして下記を作ります。 from filelock import FileLock def safe_write(filename, content): lock_file = filename + ".lock" with FileLock(lock_file): with open(filename, 'w') as f: f.write(content) def safe_read(filename): lock_file = filename + ".lock" with FileLock(lock_file): with open(filename, 'r') as f: return f.read() 実行結果は下記です。 これを応用して、望みのプログラムを作ろうと思います。

34 kAも流せました。

イメージ
 作った装置の電流の限界でもテストしてみるか、ということで、負荷をショートさせてテストしました 34.6 kAを記録しました。 コイルをつけた状態では10 kAもつかわないですし、スプリットコイルでも最大15kA程度だと思います。今回の電流テストで装置が十分以上の高い能力を持っているということがわかりました。 取り付けに関しては改善点がありました。実際、30 kAあたりで接触不良の箇所で放電し始めました。接触が悪いところを全部直したので、最終的には安全に放電できました。 最初はサイリスタ付近の電気接触が悪くて小さめの異常放電。 それで作っておいたサイリスタスタックを投入しました。ただのクランプでよくここまで持ったなあという感じです。 そのあと大きな異常放電があり、これは抵抗付近の電気接触が悪かったためでした。これは派手に行きました。 これも直して、 最後は安全に34 kA放電できました。めでたしめでたし・・・? なかなかエキサイティングでした。

Python: Lecroyのオシロスコープを操作する(USB接続)

RecroySaveData_v1 Controlling Lecroy oscillosope ¶ In [2]: import pyvisa In [4]: rm = pyvisa . ResourceManager () list = rm . list_resources () dso = rm . open_resource ( list [ 0 ]) In [5]: dso . query ( '*IDN?' ) Out[5]: 'LECROY,WS4024HD,LCRY4903C18939,9.7.1\n' In [6]: dso . query ( "trig_mode?" ) Out[6]: 'SINGLE\n' In [7]: dso . write ( "trmd stop" ) dso . query ( "trig_mode?" ) Out[7]: 'STOP\n' In [8]: dso . write ( "trmd norm" ) dso . query ( "trig_mode?" ) Out[8]: 'NORM\n' In [9]: dso . writ...