はじめに
Nervesでは、コンソールにiex>
が表示されます。
この出力は、HDMIやシリアルコンソールに出力されます。
rpi4等HDMIがある場合は、HDMIに出力がデフォルトになっていますが、この設定を変更する事ができます。
今回は、M5Stack Core MP135を例に、シリアルコンソールに切り替える方法を紹介します。
ラズパイでも同様の方法で可能だと思います。
シリアルコンソールの用意
シリアルコンソールを使うためには、USBシリアル変換が必要です。
amazon等で購入できます。3.3Vのものを選びます。
以前は安いものを使っていたんですが、チップが正規品ではない為に、標準のドライバが使えない問題が多々あり、安すぎないものを選ぶのが良いかとおもいます。
私が使っているのはこれです。
この製品は、Windows11で特にドライバーのインストール作業無しで、使えました。
機器との接続
M5Stack Core MP135には、Port Cがシリアルポートになっています。
ケーブルは、スイッチサイエンスで購入しました。
重要な点は、USBシリアル変換の正しいピンに接続する事です。
TXDとRXDを接続する必要があるので、間違えないように注意してください。
M5Stack Core MP135 | USBシリアル |
---|---|
黄(TXD) | RXD |
白(RXD) | TXD |
赤(5V) | 接続しない |
黒(GND) | GND |
赤色の5Vは、接続しないでください。誤って接続すると機器やUSBシリアル変換が壊れる可能性があるので気をつけましょう。
config.exsの設定
config.exsに以下の設定を追加します。
config :nerves, :erlinit,
ctty: "ttySTM0"
ラズパイ4の場合は、ttyS0
ラズパイ3の場合は、ttyAMA0
を指定します。
ドキュメント
https://hexdocs.pm/nerves/advanced-configuration.html#overriding-erlinit-config-from-mix-config
後は通常通りビルドします。
実行
PCにシリアルコンソールを接続して、ターミナルソフトを起動します。
ターミナルソフトの設定は、ボーレートは115200bpsに設定します。
電源を入れると、シリアルコンソールにログが表示されます。
まとめ
HDMI出力の方が、モニターやキーボードで操作したい場合は、便利ですが、シリアルコンソールの方が、文字として入出力できるので、Windowsでの切り取り貼り付けができて便利です。
よく使う場合は、USBシリアル変換の常備をお勧めします。