実現したいこと
- NanoVNA-H4を用いて、シリアル通信をしてPCにリアルタイムでデータを取り込み、csvファイルに書き込みたい。
発生している問題・エラーメッセージ
まずCOMポートが開けないというところで困っています。
次に下記のソースコードを実行したらデータが送信されるのでしょうか。
シリアル通信がどのようにしたら始まるのかいまいちわかりません。
例外が発生しました: SerialException could not open port 'COM1': FileNotFoundError(2, '指定されたファイルが見つかりません。', None, 2) File "C:\Python\output.py", line 9, in <module> ser = serial.Serial(port='COM1',baudrate=115200) # 'COM1'は接続されたCOMポートに置き換える ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ serial.serialutil.SerialException: could not open port 'COM1': FileNotFoundError(2, '指定されたファイルが見つかりません。', None, 2)
該当のソースコード
python
1import serial 2import csv 3import time 4import struct 5 6 7 8# 仮想COMポートを開く9ser = serial.Serial(port='COM1',baudrate=115200) # 'COM1'は接続されたCOMポートに置き換える10 11# CSVファイルに書き込むヘッダ行12header = ['Frequency', 'S11_real', 'S11_imag', 'S21_real', 'S21_imag']13# CSVファイルのパス14csv_file_path = 'data.csv'15 16start_time = time.time() #現在時刻を取得17 18try:19 # CSVファイルを作成し、ヘッダ行を書き込む20 with open(csv_file_path, mode='w', newline='') as csv_file:21 writer = csv.writer(csv_file)22 writer.writerow(header)23 24 while True:25 # データを受信する (適切なバイト数に置き換える)26 data = ser.read(32) # 32バイトのデータを受信する例27 28 # データの解析処理を実装 (NanoVNA-H4のデータフォーマットに依存)29 freq = struct.unpack() 30 s11_real, s11_imag = struct.unpack()31 s21_real, s21_imag = struct.unpack()32 data_row = [freq, s11_real, s11_imag, s21_real, s21_imag]33 # データをCSVファイルに追記する34 with open(csv_file_path, mode='a', newline='') as csv_file:35 writer = csv.writer(csv_file)36 # data_rowは解析したデータをリスト形式で置き換える37 writer.writerow(data_row)38 39 current_time = time.time() #現在時刻を更新40 41 print("経過時間:",current_time - start_time) 42 43 #現在時刻と開始時刻の差が5秒以上であればループを抜ける44 if current_time - start_time >= 5:45 break46 47except KeyboardInterrupt:48 # Ctrl+Cでプログラムを終了する場合の例外処理49 print("プログラムを終了します。")50 51finally:52 # COMポートを閉じる53 ser.close()54
補足情報(FW/ツールのバージョンなど)
while文の中身は今回はまだ完成していません。この問題が解決次第、しっかりと書く予定です。そのため、そこの部分は気にしないでください。

0 コメント