2022/03/06追記
コメントで、この記事で紹介した接続方法では危険では?というご指摘がありました。
私の環境ではとりあえずは動作しましたが、長時間の動作確認はしておりません。
コメントの内容をご確認のうえ、自己責任でお試しいただきますようお願いいたします。
前回は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で購入してみようという方は下記を参照してみてください。
海外通販だと配送時間が心配になると思いますが、今回は注文から18日(土日を除く営業日では13日)で到着しました。ちょっと時間がかかった方だと思います。
ちなみに、UART-USB変換に用いられるチップは「CP2102」というものと「PL2303HX」というものがあります。
ざっと調べてみると「PL2303HX」はWindows10で苦労している方が多かったので、私は「CP2102」を採用している製品を購入してみました。
到着した製品
AliExpressで注文したUART-USB変換アダプタは
緩衝材付の袋に入って配送されてきました。中華通販ではおなじみの封筒です。
封筒を開けて製品を取り出してみるとパッケージはなく透明なビニール袋に入っているだけでした。
購入したUART-USB変換アダプタはUSBポートに直差しするタイプです。
Raspberry Piに接続する側は4つの端子に分かれています。
AliExpressのサイトの説明によると
色 | 信号 |
---|---|
レッド | +5 (VCC) |
ブラック | GND |
ホワイト | RXD |
グリーン | TXD |
となっています。
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からダウンロードできます。
私がダウンロードしたときには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の回路図で確認します。
私の使っているRaspberry Pi 3 Model B+の場合はピンヘッダの回路図は下記のようになっています。
接続は次のようにします。
ピン番号 | 信号 | UART-USB変換アダプタ |
---|---|---|
8 | TXD0 | ホワイト |
10 | RXD0 | グリーン |
14 | GND | ブラック (GND) |
ブラック(GND)については6番ピンなど他のGND接続されている端子でも問題ありません。私の場合は6番ピンはCPU冷却ファンのグランドに使っているので、今回は14番ピンを使用しました。
UART-USB変換アダプタのレッド(+5 VCC)についてはUSB側から既に5Vを取得しているので接続不要です。
接続するとこんな感じになります。接続部が黒いコネクタになっているのがUART-USB変換アダプタです(赤いコネクタはCPU冷却ファンです)。
ターミナルソフトの導入
接続が完了したらターミナルソフトを導入しましょう。
定番はTeraTermです。
窓の杜からインストーラをダウンロードしておきましょう。
インストールはダウンロードしたファイルを実行するだけです。
いろいろ選択肢がありますが、基本的にはデフォルトのまま「次へ」を選んでおけば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をコンソールで操作する方はシリアルコンソールを使えるようにしておくことをおすすめします。
次回は話題を変えてアクションカム用のスタビライザーのレビューをしたいと思います。
コメント
これだとRasPiのRxのUSBシリアル変換のTxから5V入って入力端子壊れるのではないかと・・
5Vのシリアルコンバーターなので受信のRxはいいとしてTxからは5V TTLが出ますね。RasPiは3.3VなのでRasPiのRxに5Vが入ると思いますよ。
コメントありがとうございます。
確かにアリエクの説明には「The CP2102 USB to TTL (5V)」って書いてありますね、動いたのは運が良かったのでしょうか。
時間があれば電圧を確認したいところなのですが、このラズパイは押し入れの奥深くにいってしまいました・・・