注目キーワード

【Arduino】Raspberry Pi Pico/W をデバッグする!Picoprobe経由でシリアル入出力をする方法 Arduinoプログラミング!

すけろく
以前の記事で、Raspberry Pi Pico Wを
Picoprobe経由でデバッグすることができた。
しかし、シリアルの入出力がArduino IDEで
読み込めないのだ。
げんろく
そうだな。
Raspberry Pi PicoやRaspberry Pi Pico Wでは、
シリアル出力用の「Serial.println」では、
Picoprobe経由で取得できない。
すけろく
なに!
そうなのか?
では、シリアルの入出力は確認できないのか?
げんろく
いや。
やりようはある。
今回はそのあたりを紹介していこう。
今回の記事では、「Raspberry Pi Pico/W」を、「Picoprobe」経由でプログラミングする場合に
Arudino IDEのシリアルモニタで、シリアル入出力を行う方法について紹介します。
プログラムを実行する「Raspberry Pi Pico/W」を直接パソコンに接続して使う場合に
シリアル入出力するための記述「Serial.begin()」をつかいますよね。
しかし、「Picoprobe」経由でデバッグしながら、シリアル入出力を確認するためには、
「Serial.begin()」では、出力を確認できないんです。
ではどうすればよいか。
というポイントについて、ご紹介します。
Picoprobe」とは、「Raspberry Pi Pico/W」をデバッグするための仕組みです。
Arduino IDEでも利用できます。
Picoprobe」の作り方については、次の記事で紹介しています。
Arduino IDEで「Picoprobe」を使ってデバッグする方法はこちら!
関連記事

すけろく ん~。 このエラーの時の変数の値が知りたいな~ げんろく どうした? プログラムがうまく動かないのか? すけろく そうなのだ。 Raspberry Pi Pico[…]

ご紹介する「Raspberry Pi Pico/W」はこちら!

Raspberry Pi Pico
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

Click Me !!Amazonで確認
小さなマイコン!ここからはじめましょう!

Raspberry Pi Pico W
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能やWifi/Bluetoothを搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

Click Me !!Amazonで確認
Wifi対応の小さなマイコン!ここからはじめましょう!

Raspberry Pi Pico/Wのシリアル入出力

Raspberry Pi Pico/W」でのシリアル入出力は、UARTというプロトコルを使用して行います。

UARTとは?
UART(Universal Asynchronous Receiver Transmitter)は調歩同期式シリアル通信のひとつで、開始と終了の合図を取り決めておいて、その合図にしたがってデータを通信するという方式です。開始の合図を「スタートビット」、終了の合図を「ストップビット」とし、「スタートビット」と「ストップビット」の間に「データビット」を挟んで通信します。「データビット」の後に、通信するデータが正しく転送されたかを確認するための「パリティビット」を付加する場合もあります。通信を行うという性質上、送信ポート(TX)と受信ポート(RX)の2つのポートで構成されます。
マイコンや、パソコン周辺機器のポートを確認する場合、そのマイコンから見たポートの識別として書いてあります。
つまり、マイコンAとマイコンBで通信する場合、接続は次のようになります。
●マイコンA:UART TX → マイコンB:UART RX
●マイコンB:UART RX ← マイコンB:UART TX
※矢印の方向に注意してください。

まずは、「Raspberry Pi Pico/W」をの入出力ピン(GPIO)の配置を見てください。

Raspberry Pi PicoとRaspberry Pi Pico Wでは、入出力ピン(GPIO)の配置は同じです。
ここで注目していただきたいのが、「UARTx TX」と「URATx RX」です。※紫いろのタグです。
「UART0」と「UART1」の2つのグループがあることがわかります。
これは、「Raspberry Pi Pico/W」ををプログラミングする際に、どのポートを使うかを変更できることを意味します。
また、入出力ピン(GPIO)の配置には表現されていませんが、microUSBでパソコンに接続した場合に有効になる「UART」のグループがあります。
これまで出てきた、UARTのグループは全部で、3グループです。
Raspberry Pi Pico/W」ををArduino IDEでプログラミングする場合、「Serial.begin()」と記述するとmicroUSB経由での「UART」グループを使うことになります。
デバッグ機能を使わずにプログラミングする場合、パソコンと直接microUSBで接続する場合に、この仕様は便利です。
ここで、「Picoprobe」経由で行う場合の、接続図を見てみましょう。
プログラムを実行する「Raspberry Pi Pico/W」は、パソコンとUSB接続せず、「Picoprobe」と接続しています。
つまり、microUSB経由での「UART」グループは使えません。
つながってないですから。。。
そこで使うのが、接続図の「黄色」と「オレンジ」の線です。
これは、「UART0」のグループで接続しているということを表しています。
なので、プログラムの記述も、「UART0」グループを使ってシリアル入出力を行うように記述する必要があります
では、どう記述すべきなのか。というと、
シリアル入出力のプログラミング記述は、以下の対応がされています。
プログラム内の記述 UARTグループ 備考
Serial.begin() microUSB経由でのUARTグループ Picoprobe経由でない場合の記述方法
Serial1.begin() UART0 グループ
Serial2.begin() UART1 グループ
実際のプログラム例では、次のようになります。
void setup() {
   Serial1.setTX(0);
   Serial1.setRX(1);
   Serial1.begin(115200);
   Serial1.println("Serial Output Test Start");
}
void loop() {
   Serial1.println("Serial Output Test OK");
}
※UART0グループを使う場合、標準でGPIOの「0」「1」を使うので、「setTX、setRX」は省略可能です。

Picoprobeとパソコンの接続

プログラムの記述方法は、わかりました。

次は、パソコン上で認識されている「Picoprobe」が、どういったデバイスとして接続されているかを確認します。

Picoprobe」をパソコンに接続した際に、次のように認識されていればそのまま利用できます。

もし、次のように、「ユニバーサル シリアル バス デバイス」として認識されている場合は変更が必要です。

確認したところ、次のツールを使ってドライバを変更することで利用することができました。

ツール:zadig-2.8.exe(2023年6月時点)
変更内容

  1. [Options]から、[List All Devices]を選択します
  2. 対象のインターフェイスを選択します
  3. Driverを「USB Serial(CDC)」に変更します
  4. Replace Driverボタンを押します

 

Arduino IDEの設定

最後に、Arduino IDE側を設定して、シリアルモニタで確認します。

設定箇所は、次の通りです。

「ツール」ー「ポート」を、デバイスマネージャで確認したCOMポートに設定します。

これで、全ての設定が完了しました。

編集後記

いかがだったでしょうか。

今回の記事では、「Raspberry Pi Pico/W」を、「Picoprobe」経由でプログラミングする場合に
Arudino IDEのシリアルモニタで、シリアル入出力を行う方法について紹介しました。
これで、シリアルを使った入出力を使うことができるようになります。
ぜひ、試してみてください。

 

本記事が、少しでも皆さんのお役に立てればと思います。
もし、本記事が役に立ったと!応援したい!という方、いらっしゃいましたら、
以下のリンクからRaspberry Pi PicoやRaspberry Pi Pico Wを、ぜひ手に入れてくださいね~
記事は以上になります。
最後までご覧いただきありがとうございました。

Raspberry Pi Pico
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

Click Me !!Amazonで確認
小さなマイコン!ここからはじめましょう!

Raspberry Pi Pico W
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能やWifi/Bluetoothを搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

Click Me !!Amazonで確認
Wifi対応の小さなマイコン!ここからはじめましょう!