raspberryPi3とWindowsPCでシリアル通信する方法
環境
RaspberryPi3
WindowsPC
USB-serial変換ケーブル
FTDI USB・シリアル変換ケーブル(3.3V): 半導体 秋月電子通商 電子部品 ネット通販
接続
raspberryPi側
調べると色々出てきますが、変換ケーブルのGND, TXD, RXDをRaspberryPiのGPIOに差し込みます
ここで注意が必要なのが、送信と受信を対にするために以下のように接続します
PC側
PC側は普通にUSBに差すだけです。
差したあとにデバイスマネージャーで認識されているか確認しましょう
設定
raspberryPi側
調べていくと、raspberryPiのシリアル通信ポートは既に他の用途で使われているようで、これを使えるようにする方法がRaspberryPiのモデルやRaspbianのversionによって様々で、ちょっと苦戦しました。
最終的に私がうまくいった方法は・・・
1. raspi-configでserial通信を有効化する
2. /boot/config.txtへ追記
$ sudo vi /boot/config.txt enable_uart=1 # 末尾へ追記する
3. getty無効化
sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service
4. 再起動する
通信(確認)
PC側 ⇒ raspberryPi
今回はターミナルとしてteratermを利用しました
接続方法を選択する際にTCP/IPではなくシリアルを選択します
raspberryPiのボーレートは115200なので、「設定 > シリアルポート」から、ボーレートの変更を行います
変更後にエンターキーを一度押すとログイン画面が表示されます。
raspberryPi ⇒ PC側
色々方法はあるようですが、今回はscreenを利用して確認をします
screen /dev/ttyS0 115200
これでscreen経由で入力した情報がシリアル側へ表示されればOKです
おまけ
/boot/cmdline.txtの編集
このままだとシリアル通信側に全てコンソール情報が常に表示されてしまうので、cmdline.txtファイルを編集することでそれを防ぐことができます
$ sudo vi /boot/cmdline.txt dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait # console=serial0, 115200を削除します