なかのにっき
最新版はこちら。
突っ込みは各日付の BBS エントリのほか、
メール (nakano@st.seikei.ac.jp) や
フォーム
からどうぞ。
なおスパム除けのため、BBS 機能には
緩い認証を入れて
います。
検索エンジンから来た方は、エンジンの方のキャッシュを見るか、
下の簡易検索を試してみてください。
hns - 日記自動生成システム - Version 2.19.5
先月 |
2024年12月 |
|
日 |
月 |
火 |
水 |
木 |
金 |
土 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
Namazu for hns による簡易全文検索
詳しくは 詳細指定/ヘルプを参照して下さい
|
|
#2
OWON の SPE6102
USB で繋ぐとすぐに COM4 デバイスができた。CH430 のドライバは MS さんが自動的にインストールしてくれる。だが python の serial 使って *idn? を送ってもうんともすんとも言わない。
定番の確認作業として teraterm の serial COM4 でつないでコマンド送ってもうんともすんとも言わない。
でいろいろ試した結果、デバイスと teraterm の baudrate を 115200 にしたら *IDN? に返信が返った。そういうことなのか…
んでさらに紆余曲折あって、
import serial
ser = serial.Serial('COM4', 115200, timeout=None)
ser.write(b'*idn?\r\n')
line = ser.readline()
print(line)
ser.close()
したら
b'OWN,SPE6102,24251887,FV:5.1.0\r\n'
なる返答が戻ってきて第一ステップクリア。
嵌まったところは:
- ser.write() に食わせる文字列は byte じゃないといけないので b'...' か '...'.encode() してやらないとだめ。
- \r\n (CR+LF) を文字列の最後につけないとだめ
というあたり。めんどくさい。このへん pyvisa 使えば幸せになれるのかしら。
しかし Keysight IO libraries suite を学生の皆さんの PC にインストールさせるのはちょっとヘビーすぎるだろうなあ。
ところで SPE6102、背面のメインスイッチ切っても Windows のシリアル接続が消えないんだがこれは…
まあそんなわけで。
#1
anaconda の jupyter notebook
来年の授業の仕込み。自分は VScode+WSL の python という環境に慣れているんだが、これは必修の「プログラミング基礎」で使っている環境なので。
Anaconda の Distribution
から、メアドを Submit して Windows 64bit 版を取得してインストール。
Just me で、その他設定は変更なし。
スタートメニューの "Jupyter Notebook" を起動し、サーバが立ち上がってアプリの選択になったら Google Chrome を選ぶ(これ VScode にしたらどうなるんだろ?)
Chrome の Jupyter Home タブから、"Upload" で以前作った学生実験用の jpynb ファイルを取得し、ダブルクリックで選択すると Chrome ブラウザの別タブでノートが開く。Run ボタンで実行できる。結果は Shift+右クリック で出てくるメニューからコピーして貼れる
(参考こちら)
@
pyvisa のインストール:
Home タブの File→New→Terminal
で Jupyter Notebook Terminal というタブが開くので、
conda install conda-forge::pyvisa
するとインストールされる。
(参考こちら)
これは Windows だとどうやら PowerShell なのね。
conda list
すると出てくるリストに
pyvisa 1.14.1 pyhd8ed1ab_1 conda-forge
があったから、たぶん入ったのかな。
でも Keysight の IO Libraries Suite を入れるステップが超重かったので、pyserial を入れる方針に変換。
@
pyserial のインストール:
こちらは
conda install anaconda::pyserial
で完了。
(参考こちら)
@
参考 anaconda のアップデート:
参考こちら。
本体は
conda update -n base conda
パッケージは
conda update --all
でいける模様。
#1
WSL2/Debian 環境構築
いろいろあって Windows10 を初期化したので、ツルシからインストールした。
- Windows Store から PowerShell 7.4, Windows Terminal をインストール
- PowerShell を開けて
wsl --install -d Debian
wsl --set-default-version 2
- ここで Windwos Terminal に Debian エントリができていなかったのでスタートメニューから Debian を一度アンインストール
- 再起動
- wsl が自動的に異動して Debian をインストールした。username/password を聞かれるので入力。
以上が終了したら Windows Terminal にも Debian メニューができてた。先に WT 入れろということですかねえ。
certbot revoke --cert-path ほげほげ.pem
でやる。UPKI のほうで証明書とったので、LE のは失効させたほうがいいかなと。
#1
python でリレー on/off
ちょっとした用途に USB/Serial の 2ch リレーモジュール
X-RL2
を買ってみた。
これは COM / NO (normally open) / NC (normally close)
があって、USB-Serial で A1 を送ると switched state, A0 を送ると normal state になる。
X-RL2 を USB ケーブルで接続したらデバイスマネージャで COM3 ができた。
python / Keysight visa 環境は
3 月に作ってあった
ので、Connection Expert から「+Add」→Serial で ASRL3::INSTR が見えた。
あとはこんなコードで動作(11/7 書き換え)
# pyvisa library should be installed by pip or somethind
import pyvisa
import sys
# Class to control USB relay X-RL2
class InstRelay:
def __init__(self, rm, visaId):
try:
self.instP = rm.open_resource(visaId)
except:
print("USB relay X-RL2 が認識できません")
while True:
key = input("Press Enter to exit.")
if not key:
break
sys.exit()
self.normalA()
self.normalB()
print("Relay is ready, A, B channels are normal state.")
def switchA(self):
self.instP.write('A1')
def switchB(self):
self.instP.write('B1')
def normalA(self):
self.instP.write('A0')
def normalB(self):
self.instP.write("B0")
#==================MAIN ROUTINE FROM HERE==================
# visa device names. Check by Keysight Connection Expert.
visaIdrelay = "ASRL3::INSTR" # X-RL2
# sleep time between meas. event
rm = pyvisa.ResourceManager()
RL2 = InstRelay(rm, visaIdrelay)
while True:
ui = input("Press key: A(sw)/a(norm) B(sw)/b(nrom) Q(uit)")
if ui == 'A':
RL2.switchA()
print("chA is now switched")
elif ui == 'a':
RL2.normalA()
print("chA is now normal")
elif ui == 'B':
RL2.switchB()
print("chB is now swithced")
elif ui == 'b':
RL2.normalB()
print("chB is now normal")
elif ui == 'Q':
sys.exit("Quit program.")
#1
単三電池
べつにどこに頼んだところで大層な額にはならないが値段調べ。
- amazon
20 本 776 円(税込) 、配送料なし→(38.8 円/本)
- モノタロウ
40 本 1,090 円(税別) 3,500 円以下の注文は送料 550 円→(30.0 or 43.7円/本)
- ソロエルアリーナ
40 本 1,215 円(税込)。ただし 2,000 未満の注文は要配送料(440 円)→(30.4 or 41.4円/本)
- たのめーる
20 本 896 円(税込) 、配送料なし→(44.8円/本)
ただしソロエルアリーナ・たのめーるは法人登録が必要。
そしてたのめーるにはさらに法人会員ディスカウントがあって最安となった。のでこちらで 20 本を発注。電池としての出来不出来はわかりませんが。
以上、5 日分です。
タイトル一覧
中野武雄 (NAKANO, Takeo) <nakano@st.seikei.ac.jp>
Since 1999-10-07
RSS feed,
更新時刻,
LIRS エントリ,
アクセス制御
(解説)
中野のホームページへ