シリアルモニタの文字化けを解決する方法
M5Core2の開発をVS CodeとPlatformIOで進めていると、シリアル通信でのデバッグ中に文字化けが発生することがよくあります。本記事では、その原因と解決方法を詳しく解説します。
文字化けが引き起こす問題
シリアル通信の文字化けが発生すると、エラーやログが判読不能になるため、作業効率が低下してしまいます。
文字化けの原因
-
通信速度の不一致
送信側と受信側の通信速度が異なると、データが正しく解釈されず文字化けが発生します。 -
ケーブルとの接続の問題
低品質なUSBケーブルや接続ポートの不具合が原因になることがあります。 -
COMポートの設定ミス(Windowsの場合)
COMポートの設定が正しくない場合に問題が発生します。
解決方法
文字化けを解消するには、以下のファイルを設定します:
src/main.cpp
platformio.ini
さらに、ケーブルの接続、COMポートの設定の確認も行います。
STEP1: 通信速度を一致させる
-
src/main.cpp
とplatformio.ini
で通信速度を一致させます。 - 以下の通信速度のいずれかを試します:
300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200
① src/main.cpp
の設定
以下のコードを記述し、通信速度を設定します:
void setup() {
Serial.begin(19200); // 通信速度を19200bpsに設定
}
void loop() {
// デバッグ用コードを書く
}
-
Serial.begin()
を使って通信速度を設定します。 -
setup()
内で通信速度を指定してください。
参考: Arduinoリファレンス
② platformio.ini
の設定
platformio.ini
はPlatformIOプロジェクトの設定ファイルです。以下のように設定します:
[env:m5stack-core2]
platform = espressif32
board = m5stack-core2
framework = arduino
monitor_speed = 19200
lib_deps =
m5stack/M5Core2@0.1.2
-
monitor_speed
: シリアルモニタの通信速度を設定します。
src/main.cpp
と同じ値に設定してください。
STEP2: ケーブルとの接続の確認
- 接続ポートが正しく差し込まれているか確認します。
- ケーブル自体の不具合の可能性もあるので、他のケーブルでも試すことをオススメします。
STEP3: COMポートの確認(Windows)
- デバイスマネージャを開き、使用中のCOMポートを確認します。
まとめ
シリアル通信の文字化けは、通信速度の不一致やケーブルの問題、COMポート設定のミスなどが主な原因です。問題を一つずつ確認し、適切な設定を行うことで解決できます。
参考資料
補足事項
-
platformio.ini
のplatform
、board
、framework
はプロジェクト作成時に自動で設定されます。 - 必要なライブラリを追加すると、
lib_deps
に自動反映されます。