注目キーワード

【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」はこちら!
created by Rinker
Raspberry Pi
¥1,318 (2024/02/21 09:52:15時点 Amazon調べ-詳細)
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~
ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,190 (2024/02/20 20:48:50時点 Amazon調べ-詳細)

ピンヘッダを自分ではんだ付けするもの

created by Rinker
Raspberrypi
¥1,330 (2024/02/20 17:27:31時点 Amazon調べ-詳細)
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能やWifi/Bluetoothを搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

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/W」はこちら!
created by Rinker
Raspberry Pi
¥1,318 (2024/02/21 09:52:15時点 Amazon調べ-詳細)
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~
ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,190 (2024/02/20 20:48:50時点 Amazon調べ-詳細)

ピンヘッダを自分ではんだ付けするもの

created by Rinker
Raspberrypi
¥1,330 (2024/02/20 17:27:31時点 Amazon調べ-詳細)
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能やWifi/Bluetoothを搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

「Raspberry Pi Pico W」のその他の記事はこちら!

すけろく うーむ。 対応付けが難しいな。 げんろく どうした? Raspberry Pi Picoで悩んでいるようだな。 すけろく Raspberry Pi PicoやPico Wの GPIOピンの情報がボード上にプリント されていないから資料との対応付けがやりづらくてな。 げんろく そうか。そういう課題があるのだな。 よし、解決するグッツを作って提供してみよう! 皆さんは、「Raspberry […]

すけろく うーむ。 モーターを毎回同じくらい回転させることはできんのかな。 げんろく DCモーターや、サーボモーターだと、 回転量を正確に制御することは難しいぞ。 すけろく では、何か解決策はあるのかぇ? げんろく ステッピングモーターというものがある。 モーターの回転をステップとして制御できる。 今回はこのあたりを動かしてみるか。 この記事では、「Raspberry Pi  Pico W」を使っ […]

すけろく 以前の記事で、Raspberry Pi Pico Wを Picoprobe経由でデバッグすることができた。 しかし、シリアルの入出力がArduino IDEで 読み込めないのだ。 げんろく そうだな。 Raspberry Pi PicoやRaspberry Pi Pico Wでは、 シリアル出力用の「Serial.println」では、 Picoprobe経由で取得できない。 すけろく […]

すけろく ん~。 このエラーの時の変数の値が知りたいな~ げんろく どうした? プログラムがうまく動かないのか? すけろく そうなのだ。 Raspberry Pi Pico Wでもデバック機能が使えると いいのだが。。。 げんろく ちなみに、Arduino IDE 2.1.0 のデバッグ機能で Raspberry Pi Pico / Wのデバッグができるぞ! やっとできたプログラムを動かしてみると […]

すけろく Raspberry Pi Pico WのBluetoothを 使ってみたいの~ げんろく うむ。そうだな。 そろそろ試してみてもよかろう。 すけろく しかしどんなことができるかの? げんろく Serial通信をBluetooth経由でやってみるのはどうだ? せっかくなのでLEDを遠隔で操作してみよう。 今回は記事では、「Raspberry Pi Pico W」をArduinoでプログラミ […]

すけろく うぬぬ。 げんろく どうした? 何かあったのか? すけろく Raspberry Pi Pico W にArduinoから プログラムが書き込めないのだ・・・ げんろく そうか。 前回書き込み時にバグを仕込んだな。 再初期化の方法を教えよう。 今回は記事では、「Raspberry Pi Pico W」をArduinoでプログラミングする際に発生する問題について、解決方法を紹介します。 発生 […]

すけろく Raspberry Pi Pico Wは、Wi-Fi接続できる。 ということは、ブラウザで接続できるな! げんろく そうだな。 ブラウザからRaspberry Pi Pico Wを 制御することもできる。 すけろく じゃあ、ブラウザから指示を出すことが できるな。 げんろく よし、スマホやパソコンからブラウザ経由で Raspberry Pi Pico Wを制御してみよう。 今回は記事では […]

すけろく Raspberry Pi Pico Wが、Arduinoでプログラミング できることは分かった。 げんろく そうだな。 意外とArduinoのライブラリで動く。 すけろく ああ。 ここらへんで、たくさんのLEDでも光らせてみないか? げんろく よし、LEDストラップを光らせてみるか! 今回は記事では、「Raspberry Pi Pico W」をArduinoでプログラミングします。 M5 […]

すけろく 最近、透明なディスプレイが出てきたな。 げんろく ああ。透過型ディスプレイというやつだな。 すけろく Raspberry Pi Pico Wでも使えるのか? げんろく 手元にあるものはSPI通信を使うタイプだから Raspberry Pi Pico Wでも使えるぞ。 Arduino でプログラムしてみるか! 今回は記事では、「Raspberry Pi Pico W」をArduinoでプロ […]

すけろく Raspberry Pi Pico Wでお天気情報を インターネットから取得できたな。 げんろく うむ。 お天気情報を取り込むことができたな。 すけろく 次は、お天気情報をディスプレイに 表示させたいな。 げんろく よし。 ならば、e-Paper(電子ペーパー)に表示してみるか! 今回は記事では、「Raspberry Pi Pico W」をArduinoでプログラミングします。 インター […]