前提・実現したいこと
ラズパイとPCをシリアル通信で結び、
Python3にて画像をラズパイからPCに転送することを試みていますが、
以下のようなエラーが発生しています。
発生している問題・エラーメッセージ
File "C:~\bytes_receive_1.py", line 16, in bytes_receive img_bytes = "".join(img_bytes_list) #リスト → 文字列 TypeError: sequence item 0: expected str instance, bytes found
該当のソースコード
Python3 PC側 server_main_0_1.py # -*- coding: utf-8 -*- from bytes_receive_1 import bytes_receive from bytes_convert_img_0_2 import convert_img img_bytes = bytes_receive() img = convert_img(img_bytes) img.save('./images/decoded_img.jpg', quality=75) bytes_receive_1.py # -*- coding: utf-8 -*- import serial def bytes_receive(): ser = serial.Serial( port = "COM6", baudrate=115200, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 5 ) img_bytes_list = ser.readlines() print(img_bytes_list) img_bytes = "".join(img_bytes_list) #リスト → 文字列 print(img_bytes) ser.close() print("End") return img_bytes ラズパイ側 client_main_1.py # -*- coding: utf-8 -*- from img_convert_string_1_1 import convert_string from string_transfer_0 import transfer_to_pc img_gray = "../images/smile_img.jpg" img_string = convert_string(img_gray) transfer_to_pc(img_string) img_convert_string_1_1.py # -*- coding: utf-8 -*- #import numpy as np from PIL import Image def convert_string(img_gray = "../images/smile_img.jpg"): #img = np.array(Image.open(img_gray)) #画像をndarray化 img = Image.open(img_gray) (width, height) = img.size print((width, height) ) #img_string = img.tobytes() + b"\n" img_string = img.tobytes() #バイト配列へ変換 return img_string string_transfer_0.py # -*- coding: utf-8 -*- import serial def transfer_to_pc(string): port = serial.Serial( port = "/dev/ttyS0", baudrate=115200, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 3.0 ) port.write(string) port.close()
試したこと
PC側にてserver_main_0_1.pyを
ラズパイ側にてclient_main_1.pyを実行させる。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー