Project 8.1 シリアル通信/Serial Print

前回はパッシブブザーを使用して音のトーンをコントロールしてみました。

あわせて読みたい
Project 7.2 パッシブブザーと正弦波/Alertor 前回はアクティブブザーを使用しながらトランジスタについて学びました。 https://kaneshige.org/?p=296 今回はパッシブブザーを使用して音のトーンをコントロールして...

今回はESP32-S3とのシリアル通信について学びます。
ESP32-S3とシリアル通信できるようになると、プログラムのデバッグ(=テスト、不具合箇所の特定)を行いやすくなります。

目次

シリアル通信とは

シリアル通信は一般的にUART (Universal Asynchronous Receiver/Transmitter) を指し、電子回路における通信で広く使われています。2本の通信線を持ち、ひとつはデータ送信 (TXライン)、もうひとつはデータ受信 (RXライン) を司ります。 2つのデバイス間におけるシリアル通信の接続は以下のようになります

補足

  • シリアル通信は1度に1ビットずつデータを伝送する方法です。
  • 長距離の通信や、多くのコンピュータネットワークで使われています。これは少ない配線で済むことや、長距離の平行通信で同期をとることが難しいことが理由です。

シリアル通信におけるボーレートの重要性

シリアル通信を開始する前に、通信を行う両者は同じボーレートを設定しなければなりません。ボーレートが一致していないと、デバイス間の通信はうまく機能しません。一般的に使用されるボーレートは、9600 や 115200 です。

補足

  • ボーレートはシリアル通信で1秒間に転送するビット数を表す単位です(bps: bits per second) 。

ESP32-S3のシリアルポート

Freenove ESP32-S3 はUSB-シリアル変換機能を内蔵しているため、USBケーブルで接続するだけでコンピューターと通信することができます。

Arduino IDEのシリアル通信機能

Arduino IDEは、シリアル通信接続を通してFreenove ESP32-S3にプログラムをアップロードします。コンピューターは接続されているシリアルデバイスを「COMx」(xは番号)として認識します。Arduino IDEに搭載されているシリアルモニタを利用することで、Freenove ESP32-S3と通信を行うことができます。

  1. Freenove ESP32-S3をUSBケーブルでコンピューターに接続する
  2. 接続されているデバイスを確認する
  3. Arduino IDEの「シリアルモニタ」アイコンをクリックして、シリアルモニタの画面を開く

説明

  1. 送信エリア: このエリアにテキストを入力し、Enterキーを押すと、ESP32-S3に送信されます。
  2. 受信エリア: ESP32-S3から受信したデータが表示されます。
  3. ボーレート: シリアル通信の速度を設定します。一般的には、9600bpsまたは115200bpsを使用します。昔のインターネットのスピードですね。
  4. クリア: 受信エリアのデータをクリアします。
  5. 自動スクロール: 受信エリアを自動的にスクロールします。
  6. 改行: 受信データの末尾に改行文字を追加します。
  7. 送信形式: 送信データの形式を設定します。テキスト形式、16進数形式、8進数形式などがあります。

シリアルモニタが開けない場合

シリアルモニタが開けない場合は、以下の点を確認してください。

  • Freenove ESP32-S3がコンピュータに正しく接続されていること
  • Arduino IDEのメニューバーにある「ツール」から、正しいシリアルポートを選択していること

では実際にコードを動かして動作を確かめてみましょう!

/**********************************************************************
  Filename    : SerialPrinter
  Description : Use UART send some data to PC, and show them on serial monitor.
  Auther      : www.freenove.com
  Modification: 2022/10/20
**********************************************************************/

void setup() {
  Serial.begin(115200);
  Serial.println("ESP32S3 initialization completed!");
}

void loop() {
  Serial.printf("Running time : %.1f s\r\n", millis() / 1000.0f);
  delay(1000);
}

受信エリアに表示されたでしょうか?

プログラムをアップロード後にボード上のリセットボタンを押すと動作を始めると思います。

次回はESP32-S3側でデータを受け取る処理を動かしてみましょう。

あわせて読みたい
Project 8.2 シリアル通信受信編/Serial Read and Write 前回はシリアル通信でESP32-S3からデータを受信してみました。 https://kaneshige.org/?p=314 今回はESP32-S3でデータを受け取る処理を動かしてみましょう。 早速コード...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

金重総合研究所の主席研究員。
子供の頃から研究者を目指し、ライフワークとして日々様々な研究をしています。
経営・マネジメント・金融・DXあたりが本職です。
私を採用したい人、私と一緒に働きたい人、一緒に知識を肥やしていきたい人はぜひお声がけ下さい。

コメント

コメントする

目次