2015年11月2日月曜日

RaspberryPi + FTDI でシリアル通信をやってみた

概要

RaspberryPi に接続するのに SSH や HDMI などでディスプレイの表示ができないときに PC と RaspberryPi だけを使って接続することができます
シリアル通信という技術を使うことで実現することができるのでその方法を紹介します

環境

Mac へのドライバインストール

変換アダプタを Mac 上で使用できるようにするためにドライバをインストールします

http://www.ftdichip.com/Drivers/VCP/MacOSX/FTDIUSBSerialDriver_v2_3.dmg

をダウンロードしてポチポチやっていけばインストールできます
2015/10/30 時点でのドライバの最新版は v2_3 でしたので最新版が他にあればそちらをインストールするようにしてください

配線

まず完成した配線は以下の通りです
overview.jpg

ジャンパワイヤ (ジャンパ) が 3 本必要になります (Mac 側から電源を共有するのであれば更にもう一本ジャンパワイヤが必要になります)
以下配線の説明を簡単にしていきます

RaspberryPi 側の配線

まず、RaspberryPi 側の GPIO にジャンパ(メス)を接続します
GPIO の物理 PIN の番号でいうと 6番(GND), 8番(TX), 10番(RX) に接続します
3 本並んでいるのでわかりやすいと思います
rpi_to_ftdi.jpg

FTDI 側の配線

RaspberryPi(RPi) に配線したジャンパを FTDI のアダプタに接続します
まず、RPi 側の GND に接続したジャンパを FTDI の GND に接続します
アダプタに GPIO の番号が印字されているので GND のところに接続してください

次に RX, TX ですがここがちょっと気をつけるポイントです
RPi の TX に接続したジャンパは アダプタ側の RX に接続します
そして、RPi の RX に接続したジャンパは アダプタ側の TX に接続します
つまり、RX と TX がクロスすることになります
RPi 側のTX (送信) を FTDI 側で RX (受信) する感じです
ftdi_to_mac.jpg

Mac 側の接続

これはアダプタの USB 端子をそのまま PC に接続すればOKです
接続が完了したら以下のコマンドを実行して USB アダプタがちゃんと認識されているか確認してください

  • ls -ltr /dev/tty.*

自分の場合は以下の名前でアダプタが認識されていました

crw-rw-rw- 1 root wheel 18, 4 10 29 20:48 /dev/tty.usbserial-AI02RMKU

こんな感じの結果があれば OK です

screen コマンドでシリアル通信の準備をしておく

先に説明しておくべきでしたが、配線中は RaspberryPi の電源は OFF にしておいてください
ON の状態で実施してもシリアル通信のデータを Mac で受信することができません

USB のアダプタが認識できたら screen コマンドを使ってシリアル通信の準備をします
Mac 上でターミナルを起動します
以下のコマンドでシリアル通信を実現します

  • screen /dev/tty.usbserial-AI02RMKU 115200

最後の「115200」という数字はボーレートという値で RPi 側から送信されるボーレートの値が 115200 なのでそれに合わせる必要があります
とりあえず実行すると真っ暗な画面になりますが、そのまま待機しましょう

RaspberryPi の電源を ON にする

ここまで準備出来たら RaspberryPi の電源を ON にしましょう
今回はコンセントから直接電源を共有しているので、起動するには電源アダプタをコンセントに接続すれば OK です

すると screen で待機していたターミナル上に RaspberryPI の起動ログが流れていることが確認できると思います
起動が完了するとログインプロンプトが表示されるので、普通に Mac のキーボードを使ってログインすれば、RPi 上でコマンドを実行することが可能になります
raspberry_serial_console.png

最後に

紹介は以上です

Wi-Fi 環境があったり有線 LAN 環境があるのであれば SSH で接続することをおすすめします
理由としては機材を用意し配線する必要もないからです

シリアル通信を使うケースとしてはやはり緊急時等のデバッグかなと思います
RPi やネットワークに問題があり SSH できない場合やキーボードやモニタなどの機材が用意できない場合に PC さえあれば接続できるので便利です

今回は FTDI の変換アダプタを使いましたが USB とジャンパが一旦になっている専用のケーブルもあるのでそれを使ってもOKです
どちらにしろ最近の PC であれば USB に変換するのは必要だとは思いますが

0 件のコメント:

コメントを投稿