RaspberryPiとシリアル接続
目次
RaspberryPiとシリアル接続
RaspberryPiを使って、実験したり、IoT電子工作したり、実際に保守運用したりすると、当たり前ですがRaspberryPiに接続して、設定やプログラミングなど様々な操作をします。
その際に、RaspberryPiと接続する方法がいくつかがあります。
直接接続
RaspberryPiと電源、モニター、キーボード、マウス(あとは、必要な周辺機器、センサー類)
SSH接続
電源は必要ですが、その他モニター、キーボード、マウスを接続するとき、少し煩雑な場合は、ネットワーク越しにssh接続することがよくあります。ssh接続がデフォルトで無効になっていますので、RaspberryPiのOSを作成するときに、空のsshファイルを作成して、Raspberry PiのOSカードにコピペしてあげることで、有効にすることが可能です。
下記の関連記事をご参照ください。
VNC接続
sshと形態が同じですが、こちらもネットワークを経由して接続する方法です。
sshと違って、デスクトップの操作やGUIが必要な場合は、VNCの方が直感的です。この場合はVNCのクライアントソフトウェアが必要です。あるいはChromeのVNC extensionを使うこともできます。
Xサーバ接続
RaspberryPiがLinux系のOSが(DebianベースのRaspbianなど)が動いている場合はXサーバが動いているので、Xサーバ経由で接続することが可能です。(もちろんRaspberryPi側はデスクトップ環境が入っている前提ですが)
MacOSですと、XQuartzがデフォルトで入っていますので、XQuartzを使って、RaspberryPiと接続することが可能です。
USB-シリアル接続
あと、ネットワークに障害は発生した場合、モニターなども使えない環境ですと、最後の手段として、USB-Serialで接続することが可能です。
USB側はパソコンと接続します。
シリアルは側はピンジャンパーとRaspberryPiと接続します。(写真にあるのはRaspberryPi3と愛用しているアルミ削り出し専用ケースです。)
シリアル接続する際に、USB-TTLシリアルコンソール変換ケーブルが必要です。
[amazonjs asin=”B00K7YYFNM” locale=”JP” title=”Raspberry Pi ラズベリーパイ用の USB-TTLシリアルコンソールのUSB変換COMケーブルモジュールのケーブル”]
シリアル通信を有効に
重要:シリアル通信をできるようにするために、SDカードを作成し、初回起動時に
sudo raspi-config
で、シリアル通信を有効にしないと、運用中のRaspberryPiが障害発生し、ネットワークも接続できない状態ですと、辛い思いをすることになるでしょう。設定はお早めに!笑
ドライバーのインストール
USB-シリアルのケーブルが認識してもらうためには、ドライバーのインストールが必要です!
ドライバーのダウンロードはこちらです。
“Prolific Chipset” 向けのドライバを入れましたら /dev/tty.usbserial
として認識してくれます。
通信開始の手順
①usb-serialケーブルを接続します。
②私の環境では、MacOSですので、下記の命令を実行すると
screen /dev/tty.usbserial 115200
③RaspberryPi電源投入
最初はブランクの画面
一回Enterキーを押すと
RaspberryPiへのログイン画面が出てきます!
無事ログインできました! ttyS0が確認できます。(上の写真の赤いマーク)
もし
"Sorry, could not find a PTY"
が表示されましたら、他のscreenコマンドで、/dev/usbserialと接続するプロセスが停止していない可能性があります。
終了手順
①sudo shutdown -h now
で Pi3 の電源を落としてください。
②screen の window を Control-a k で kill します。一回「本当にkillしていいですか」の確認メッセージが出ます。
kill実行する前のプロセスと実行後のプロセスが確認できます。
③最後ケーブルを抜く(Ctrl+Cではなくて!)
この手順を忘れると、Macのシャットダウンができなくなったり、Pi3 への再接続ができなくなったりする可能性がありますので、ご注意ください。ケーブルを抜くことで、screenコマンド実行状態からexitします。
シリアル接続は、そのまま接続して入れば、rebootしても、当たり前ですが、sshのように切れたりしません。何故ならば、物理接続ですので、rebootしても、情報が常に流れています。