R2P2ESP32

UARTエコー

UARTでPCとシリアル通信します (picoruby-uart)。

UART(シリアル通信)は、デバイス同士の通信の代表例です。ここでは、ESP32が受け取った文字を そのまま送り返します。

部品

  • USBシリアル変換モジュール(3.3Vロジックのもの)

回路

配線図: USBシリアル変換モジュールのTXをRXへ、RXをTXへ、GNDをGNDへ、3V3を3V3へ接続
USBシリアル変換モジュール ESP32-DevKitC
TX RX
RX TX
GND GND
3V3 3V3
5V 接続しない

TXとRXは交差させます。片方の送信側をもう片方の受信側につなぎます。

Note: DevKitCのRX/TXはGPIO3/GPIO1、つまりUART0で、ボード上のUSBブリッジも このピンを使っています。両方の接続でこのピンを共有する点に注意してください。

プログラム

require 'uart'

uart = UART.new(unit: 'ESP32_UART0', txd_pin: 1, rxd_pin: 3)
loop do
  str = uart.read
  unless str.nil?
    uart.write(str)
  end
  sleep_ms(10)
end

届いた文字を1つ読み出し、そのまま書き込み返す(エコーする)プログラムです。

実行

変換モジュールのUSBをPCに接続すると、2つ目のシリアルポートとして認識されます。 ターミナルソフトで開いてください。例:

$ screen /dev/ttyUSB0

(デバイス名はOSによって異なります。macOSなら/dev/tty.usbserial-*など。)

次に、プログラムをuart.rbとして保存し、デバイスの/homeに配置して (ファイル転送を参照)、シェルから実行します。

$> ./uart.rb

screenのウィンドウでキー入力すると、入力した文字がそのまま表示されます。