注目キーワード

【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,260 (2024/04/27 17:41:43時点 Amazon調べ-詳細)
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~
ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,210 (2024/04/27 14:11:22時点 Amazon調べ-詳細)

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

created by Rinker
Raspberrypi
¥1,635 (2024/04/28 05:59:36時点 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,260 (2024/04/27 17:41:43時点 Amazon調べ-詳細)
Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~
ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,210 (2024/04/27 14:11:22時点 Amazon調べ-詳細)

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

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

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

すけろく うーむ。 どうしたものか。 げんろく どうした。 暗い顔をして。 すけろく カーモデルのウィンカー点滅を再現したくてな。 明滅回路を作ろうか悩んでおる。 げんろく ん!? そんなときは、メインプロセッサと切り離して 動作するPIOの出番ではないのか! この記事では、「Raspberry Pi  Pico/W」に実装されている「PIO(Programmable I/O」を実際に使ってみます […]

すけろく Raspberry Pi Pico/WのPIO機能を使ってUARTの送信には成功した。 しかし、まだ受信側ができていないのぉ。 げんろく そうだな。 今度は受信側を試してみるか。 すけろく どうせなら、パソコンから送った文字を返すような やり取りができるといいな。 げんろく よし。 UART送受信を実装してみよう。 この記事では、「Raspberry Pi  Pico/W」に実装されてい […]

すけろく Raspberry Pi Pico/WのPIO機能については前回調べた。 今度は実際に使ってみたいの~ げんろく そうだな。 実際にプログラムする際の注意事項などを見ていこう。 すけろく Arduino IDEでも使用できるのか? げんろく ああ。 使えるぞ! Arduino IDEで使う場合を例にやっていこう。 この記事では、「Raspberry Pi  Pico/W」に実装されている […]

すけろく Raspberry Pi Pico/Wには、PIOという機能があるらしいな。 げんろく そうだ。 UARTなどのインタフェース不足や、実装されていない機能を GPIOに対してプログラムできる機能だ。 すけろく Raspberry Pi Pico/Wをもっと知るために PIOを調べてみたい。 げんろく よし! PIOについて少し調べてみるか! この記事では、「Raspberry Pi  P […]

すけろく うーむ。 げんろく どうした浮かない顔して。 すけろく これまで、Raspberry Pi Pico / Wをいろいろ確認してきたが 外付けのボタンの認識ってやったかぇ? げんろく たしかに!まだ取り上げていない基本的なものがあるな よし、今回はボタン押下時の状態を Raspberry Pi Pico / Wで認識してみよう。 この記事では、「Raspberry Pi  Pico W」を […]

すけろく 宅内で使っているリモコンは、どういった仕組みで テレビなどをつけているのかな~? げんろく 赤外線を使って信号を送っているのだ。 すけろく しかし、たくさんある機器のリモコンが混信しないのは どういった仕組みなのかぇ? げんろく よし、今回は赤外線リモコンの通信を 調査してみるか! この記事では、「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のデバッグができるぞ! やっとできたプログラムを動かしてみると […]