[ラズパイ] Pico W からPCへシリアル通信をする

投稿者: | 2024-03-17

ラズパイでシリアル通信をする時はUSBシリアル変換モジュールを使って・・・というのが多いですが、Pico W には最初からMicro USB-Bポートが付いているのでそれを利用したい。

何ならPCとUSB接続して、PCから給電しながらシリアル通信もすればいいじゃんってことでやってみました。

先に言っておくと、今回のはPico W → PCだけです。

PC → Pico W に対しては後日調べてみます。

まずはPC側にシリアル通信のためのソフト「Tera Term」をインストールしておきます。

Tera Term Open Source Project

https://teratermproject.github.io/

次に、PCにPico W をUSB接続してThonnyでmain.pyを書きます。

import utime
from machine import Pin

led = Pin("LED", Pin.OUT)
led.on()

utime.sleep(10)
print('hello world!')

led.off()

Pico W が起動するとLEDが点灯して10秒後に「hello world!」と表示され、LEDが消灯します。

以上です。

何とprint関数でPico W からPCへのシリアル通信ができてしまうのです。

で、ここで確認しておきたいのはPico W がどのポートを使用しているのかです。

Thonnyの右下に使用しているポートが表示されていますので確認すると、今回は「COM3」を使用しているのが分かります。

次にTera Termを起動して、COM3に接続します。

「アクセスが拒否されました」というエラーが表示されます。

これはThonnyがすでにCOM3を使用して接続していることが原因です。

なので、Thonnyを終了します。

次に、USB接続しているPico W を外します。

次に、外したPico W をPCにUSB接続します。

接続したらPico W が起動してLEDが点灯しますので、10秒以内にTera Termの「ファイル」→「新しい接続」でCOM3に接続します。

そして、Pico W のLEDが消灯した時にTera Term側に「hello world!」が送られてきたことが確認できます。

※2行目の「MicroPython ・・・」は実行したものが終了すると出力されるようです。

Pico W がPCとUSB接続していて、Pico W が測定したデータをPCへ送りたい時はこれで十分ですね。