概要
Raspberry PiにRaspbianをインストールしてPCとUARTで通信できるようにします。PCからUART信号の出力には、この記事ではadafruite社のFT232H Breakoutボード使用します。このボードにはFTDI社のFT232HQというICが搭載されていて、USB<-->UART変換をしてくれます。その他にUSB<-->I2C、USB<-->SPIの変換もできるのでそのうち使ってみたいと思います。
環境
- Lubuntu 18.04
- Raspberry Pi 3 Model B
- adafruite FT232H Breakout
Raspbianイメージのダウンロード
公式サイトは海外サーバなので日本にあるミラーサイトからGUI版のRaspbianをダウンロードしてくる。zipで圧縮されているので伸長するとimgファイルができます。
$ wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/raspbian-2018-06-29/2018-06-27-raspbian-stretch.zip
$ unzip ./2018-06-27-raspbian-stretch.zip
$ ls -lh 2018-06-27-raspbian-stretch.img
-rw-r--r-- 1 yoshi yoshi 4.5G 6月 27 10:22 2018-06-27-raspbian-stretch.img
RaspbianイメージをSDカードに書き込む
SDカードをPCに挿して/dev/sdbと認識されたことを確認してddコマンドでSDカードにイメージを書き込みます。デバイス名は、環境によっては/dev/sdaと認識されたりするので、このQiita記事を参考にして確認してください(SDカードにUbuntuのルートファイルシステムを作成する)
$ sudo dd if=2018-06-27-raspbian-stretch.img of=/dev/sdb bs=4M
$ sync
しばらく時間がかかります。私の環境では10分弱かかりました。終わるとsyncコマンドを実行して同期します。
SSH接続できるようにする
イメージの書き込みが終わったら一旦SDカードを抜き差しします。bootディレクトリにsshという名前の空のファイルを作成します。このファイルを作成するとラズパイの起動時にsshデーモンを起動してくれるようです。どういう仕組みかは未確認。
$ sudo lsblk /dev/sdb
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 1 14.4G 0 disk
├─sdb1 8:17 1 43.2M 0 part /media/yoshi/boot
└─sdb2 8:18 1 4.5G 0 part /media/yoshi/rootfs
$ touch /media/yoshi/boot/ssh
Raspberry Pi起動
SDカードをRaspberry Piに挿して、HDMIケーブルとLANケーブルを接続して、USBケーブルを繋いで電源を入れるとRaspbianが立ち上がります。最近のRaspbianは起動時の設定でpiユーザのパスワードを変更したり、無線LANの設定をしたりするようになってます。知りませんでした。さらにアップデートが始まり20分か30分位かかって再起動してやっと使えるようになりました。
IPアドレスを確認したらSSH接続でログインします。
Serial Portを有効にする
Raspberry Pi 3 model BではUARTのポートはBluetoothと兼用になっていてデフォルトではBluetoothを使うように設定されています。これをUARTを使用するように変更します。
raspi-configコマンドでラズパイの設定を変更します。
$ sudo raspi-config
最後に設定の確認をして再起動します。
PCとRaspberry Piの通信
PCとFT232HをUSBで接続、ラズパイとFT232HをGNDと、ラズパイのTX、FT232HのRXで接続して時の写真
PC側で115200pbsでシリアル接続し待機しておきます。
$ sudo screen /dev/ttyUSB0 115200
ラズパイ側からシリアル接続はビットレート115200bpsの設定をして、"Hello"を送信します。
$ stty -F /dev/serial0 115200
$ echo "Hello" > /dev/serial0