Raspberry Piでシリアルコンソールを使う

前回はRaspberry Piにリモートデスクトップで接続できるようにしてみました。

これでRaspberry Piにディスプレイを接続しなくても、ほぼ利用上は問題はなくなりました。ただこの構成ではネットワークにトラブルがある場合に、何もできなくなってしまいます。

この問題を解決するために今回はシリアルコンソールを導入したいと思います。

この記事はRaspberry Pi 3 Model B+で実験・確認しています。

UART-USB変換アダプタの購入

Raspberry Piでシリアルコンソールを使うためには、Raspberry Piのシリアル出力(UART端子)をPCにつなげる必要があります。

このために必要なのがUART-USB変換アダプタです。

AliExpressでの注文

今回は中華通販サイトのAliExpressを使ってみました。

購入したのは下記の製品です。

私が購入したときには送料込みで2.40ドル(約260円)でした。

AliExpressで購入してみようという方は下記を参照してみてください。

今回は中国の通販サイトであるAliExpressの使い方について紹介します。海外からものを買うのは難しそうな気がしますが、少しの英単語を覚えれば結構簡単に行うことができます。最近は中国のメーカが魅力的な(怪しい!?)商品を出しているので興味がある方はチャレンジしてみましょう。

海外通販だと配送時間が心配になると思いますが、今回は注文から18日(土日を除く営業日では13日)で到着しました。ちょっと時間がかかった方だと思います。

ちなみに、UART-USB変換に用いられるチップは「CP2102」というものと「PL2303HX」というものがあります。

ざっと調べてみると「PL2303HX」はWindows10で苦労している方が多かったので、私は「CP2102」を採用している製品を購入してみました。

到着した製品

AliExpressで注文したUART-USB変換アダプタは

緩衝材付の袋に入って配送されてきました。中華通販ではおなじみの封筒です。

UART-USB変換アダプタの配送状態

封筒を開けて製品を取り出してみるとパッケージはなく透明なビニール袋に入っているだけでした。

UART-USB変換アダプタのパッケージ

購入したUART-USB変換アダプタはUSBポートに直差しするタイプです。

UART-USB変換アダプタ

Raspberry Piに接続する側は4つの端子に分かれています。

UART-USB変換アダプタのコネクタ

AliExpressのサイトの説明によると

信号
レッド+5 (VCC)
ブラックGND
ホワイトRXD TXD
グリーンTXD RXD

となっています。

AliExpressのサイトでは

White: TXD (need to connect the other RXD), Green: RXD(need to connect the other TXD)

と書かれていますが。大嘘でした。

実際はホワイトはRXDで、グリーンがTXDです。

とりあえず注文通りの製品がきたようでひと安心です。

UART-USB変換アダプタの導入

UART-USB変換アダプタを入手したらこれを使えるようにしましょう。

Windows10へドライバの導入

Windows用のドライバは下記のURLからダウンロードできます。

CP210x USB - UART ブリッジ仮想 COM ポート(VCP)ドライバは、CP210x 製品とのホスト通信を容易にするための仮想 COM ポートとしてのデバイス動作に必要です。これらのデバイスも、ダイレクト・アクセス・ドライバを用いてホストと接続できます。

私がダウンロードしたときにはWindows10用のドライバはバージョンv10.1.7でした。

ドライバのダウンロード

ダウンロードしたzipファイルを展開すると「CP210xVCPInstaller_x64.exe」というファイルがあるのでこれを実行します。

Windows10が32bit版の場合は「CP210xVCPInstaller_x86.exe」を使用します。

ドライバのインストールはかんたんです。最初の画面は「次へ」を選択します。

ドライバのインストール

あっという間にインストールが終わるので「完了」を選択しましょう。

ドライバのインストール完了

これでWindows10へのドライバのインストールは完了です。

Windows10へのUART-USB変換アダプタの接続

Windows10へドライバのインストールが完了したら、購入したUART-USB変換アダプタをWindows10のUSBポートに接続します。

デバイスマネージャ

ドライバが正しく導入されていれば「ポート (COM と LPT)」の下に「Silicon Labs CP210x USB to UART Bridge (COM3)」と表示されるはずです。

COM3の部分の「3」は環境・PCによって変わります。この番号はあとで使うので覚えておきましょう。

Raspberry Piへの接続

あとはUART-USB変換アダプタをRaspberry Piに接続します。

どこに接続するかはRaspberry Piの回路図で確認します。

This section contains documentation with technical information about the Raspberry Pi hardware, including official add-ons and the Pi itself.

私の使っているRaspberry Pi 3 Model B+の場合はピンヘッダの回路図は下記のようになっています。

Raspberry Pi 3 Model B+のI/Oピン情報

接続は次のようにします。

ピン番号信号UART-USB変換アダプタ
8TXD0ホワイト グリーン (RXD)
10RXD0グリーン ホワイト (TXD)
14GNDブラック (GND)

ブラック(GND)については6番ピンなど他のGND接続されている端子でも問題ありません。私の場合は6番ピンはCPU冷却ファンのグランドに使っているので、今回は14番ピンを使用しました。

UART-USB変換アダプタのレッド(+5 VCC)についてはUSB側から既に5Vを取得しているので接続不要です。

接続するとこんな感じになります。接続部が黒いコネクタになっているのがUART-USB変換アダプタです(赤いコネクタはCPU冷却ファンです)。

UART-USB変換アダプタの接続

ターミナルソフトの導入

接続が完了したらターミナルソフトを導入しましょう。

定番はTeraTermです。

「Tera Term」定番のターミナルエミュレーター

窓の杜からインストーラをダウンロードしておきましょう。

Tera Termのダウンロード

インストールはダウンロードしたファイルを実行するだけです。

いろいろ選択肢がありますが、基本的にはデフォルトのまま「次へ」を選んでおけばOKです。

TeraTermのインストールが完了したら起動してみましょう。

最初に接続先を選択できるので「シリアル」と「COM3: Silicon Labs CP210x USB to UART Bridge」を選択して「OK」を選びましょう。

「COM3: ・・・」はデバイスマネージャで認識されたUART-USB変換アダプタの番号です。

シリアルの選択

また、通信速度を115200bpsにするために「設定」→「シリアルポート」を選択して、スピードを「115200」に変更して「OK」を選択しておきます。

通信速度の設定

また、この設定をTeraTermに覚えさせるために「設定」→「設定の保存」で「TERATERM.INI」を上書きして保存しておきましょう。

Raspberry Piの設定

UARTを接続すればそのまま使えると思いきや、Raspberry Pi側にも設定が必要です。

$ sudo raspi-config

これでRaspberry Piの設定ツールが起動するので「5 Interfacing Option」→「P6 Serial」→「はい」と選択しておきます。

画面に

The serial login shell is enabled                        │
The serial interface is enabled 

と表示されるのを確認しましょう。

いろいろ調べると/boot/config.txtに「enable_uart=1」を記載する必要があるという情報がありますが、どうもrespi-configがやってくれるようで、私の場合は「enable_uart=1」が既に記載されていました。

$ grep uart /boot/config.txt
enable_uart=1

シリアルコンソールの動作確認

ここまでの設定が完了したらTeraTermを起動している状態で、Raspberry Piを再起動してみましょう。

こんな感じにRaspberry Piの起動ログが見えるようになります。

シリアルコンソールに表示される起動ログ

もちろんシリアルコンソールからもログイン可能です。

シリアルコンソールでのログイン

これでディスプレイもネットワークもない環境でもRaspberry Piを使うことができます。

なお、TeraTermはフォントや画面サイズを変えられます。好みのフォント・サイズに変更したら、「設定」→「設定の保存」で保存しておきましょう。

まとめ

今回はRaspberry Piでシリアルコンソールを使えるようにしてみました。

UART-USB変換アダプタを購入する必要がありますが、価格や数百円です。シリアルコンソールが使えると、ネットワーク接続やディスプレイがない状況でもRaspberry Piを操作することができます。

Raspberry Piをコンソールで操作する方はシリアルコンソールを使えるようにしておくことをおすすめします。

次回は話題を変えてアクションカム用のスタビライザーのレビューをしたいと思います。