ArduinoとPythonでシリアル通信

ArduinoとPythonでシリアル通信通信がしたい.
具体的には,
センサの値をArduinoで読み取り,シリアル通信を使ってPythonに送り,Python側でいろいろな処理をしたい.
ってことがあると思います.
このときいくつか方法があります.
僕が試したのは2つ.

  1. センサから読み取ったデータをArduinoでシリアル通信に適したデータに変換し,Python側に送信する.
  2. センサから読み取ったデータを文字列で送り,データの処理はPythonに任せる.

1の方法についてはここが参考になります.たぶん1の方法の方がArduinoとかシリアル通信の仕様的には正しいものだと思います.
しかし,多くの値を送る際とかにコードが煩雑になってしまう気もします.
そんなときのための2の方法.

全部文字列にして送っちゃう.

送る側のArduinoのコードはこんな感じ.

Serial.print(value0);
Serial.print(" ");
Serial.print(value1);
Serial.print(" ");
Serial.print(value2);
Serial.print("\n");
Serial.read();

複数に分けていますが,文字列を送信しています.
最後のSerial.read();はおまじない.

受け取る側のPythonのコードはこう.

#シリアル通信ライブラリのインポート
import serial

#ポートの設定
ser = serial.Serial(port="hogehogehogehoge", baudrate=9600)

#おまじない(その2)
ser.write("*".encode())

#データの取得&取得したデータの空白,改行,データ分割
serData = ser.readline().strip().rsplit()

#データを取り出す
value0 = float(serData[0])
value1 = float(serData[1])
value2 = float(serData[2])

Pythonは文字列処理楽だし,文字列にして送るもの一考です.
通信速度的には少し落ちるようです.
double型のデータとか送りやすいし,なんなら文字列を送るのにも使えます.
気が向いたらどうぞ.