はじめに
過去RasPi2をシリアル通信で弄っていたので、RasPi3でも同様に・・・と思ったのですがうまくいきませんでした。
「RaspberryPi3 Serial」で検索したところ、こちらのページにいきつきました。
Raspberry Pi 3 UART Overlay Workaround
どうやらシリアルコンソール向けに利用されていたUARTがRasPi3から搭載されたBluetoothにデフォルトを取られてしまったようで、シリアル通信を行う場合はいくつか設定を弄らなければならないようです。
解決策
こちらのページの通り設定したところシリアル通信が可能になりました。
Raspberry Pi 3 UART Boot Overlay Part Two
OSイメージが2016-03-18以前にリリースされたRaspbian-Jessieか、以降にリリースされたRaspbian-Jessieかで手順が異なるようです。
RasPi3が本格的に出回ったのが3/25,26からのようなので、多くの方は2016-03-18以降のOSイメージを使うのではないかと思います。なので、ここでは以降版の手順を紹介します。私も以降版の手順しか検証していません。
1. /boot/config.txtを編集する
sudo vi /boot/config.txt
(ここより上は省略)
# 末尾にこの行を追記
dtoverlay=pi3-miniuart-bt
2. /boot/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
※config.txtは末尾に追記でしたが、こちらは完全に置き換えてください。
3. 再起動する
sudo reboot
補足
今回編集するファイルはどちらもFATのbootパーティション以下のファイルなので、ディスプレイやキーボードが用意できない場合は、SDカードの内容を直接PCから編集することでも対応可能です。
私はMacで試みて無事シリアル通信できました、Windowsでも文字コードや改行コードなどに気をつければ問題ないかと思います。
シリアル通信にあたってはFTDI社のシリアル変換アダプターを利用しました。それを使うためのドライバーのインストールなどはこちらを参考にしてください
【myThingsハンズオン】RaspberryPiをセットアップしよう
解決策にも書いたように2016-03-18以前のOSイメージか、2016-03-18以降のOSイメージかで手順が異なります。今後、OSイメージが更新されれば手順が変わる可能性もあるので注意しましょう!