このエラーの時の変数の値が知りたいな~
プログラムがうまく動かないのか?
Raspberry Pi Pico Wでもデバック機能が使えると
いいのだが。。。
Raspberry Pi Pico / Wのデバッグができるぞ!
デバッグとは、プログラムした、ソースコード(スケッチ)のエラーや、バグ(意図しない動きなど)を見つけて、修正することです。
この記事紹介する、デバッグ機能は、プログラムを実行した際に、ソースコード(スケッチ)内の指定した行にあるプログラムで実行を止め、その時点の変数などの値を調べたり、停止したプログラムの次の処理を順々に実行(ステップ実行)させることができる機能のことを示します。
この機能があると、プログラムの各ステップにおける状態を確認できるため、デバッグ作業が非常にやりやすくなります。
正確なタイマ機能を搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~


ピンヘッダを自分ではんだ付けするもの
正確なタイマ機能やWifi/Bluetoothを搭載しています。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~



Arduino IDE でRaspberry Pi Pico/Wをデバッグするには
まず、今回の記事の目標を確認しましょう。
次のような仕組みを作ることが目標です。
図でもわかるように、Picoprobe用の「Raspberry Pi Pico」を一つ用意します。
Raspberry Pi Picoは、安価で手に入るので、おすすめです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~


- Raspberry Pi Picoに「Picoprobe」を構成する
- プログラム実行用のRaspberry Pi Pico/WをArduino IDE で書き込めるようにする
- プログラム実行用のRaspberry Pi Pico/Wと「Picoprobe」を結線する
- Arduino IDE 2.1.0のデバッグ環境を整える
- 「Picoprobe」経由でプログラムを書き込む
- デバッグ機能を使う
Raspberry Pi Picoに「Picoprobe」を構成する
Raspberry Pi Picoに、「Picoprobe」を構成します。
所要時間:10分程度
左のRaspberry Pi 公式サイトにアクセスします。

「Debugging using another Raspberry Pi Pico」
「Download the UF2 file」のリンクを
クリックします。

ダウンロードされる「picoprobe.uf2」を
コピーします。

Raspberry Pi Pico の「BootSel」ボタン
を押します。
※ボタンは押したまま

Raspberry Pi Pico をパソコンにUSBで
接続します。
※ボタンは押したまま

Raspberry Pi Pico がパソコンに
USBドライブとして認識されます。
※ボタンを離す

コピーした「picoprobe.uf2」を
Raspberry Pi Picoのドライブへ
ペーストします。
※読み込まれるとUSBドライブの
認識が外されます。

Windowsのデバイスマネージャを開きます。
「ユニバーサルシリアルバスデバイス」に
「Picoprobe CMSIS-DAP v2」として認識されます。※「libusb-win32」デバイスとして認識される
可能性があります。
その場合は「補足」にあるツールを使って、
「WinUSB(v6.1.7600.xx)」に
ドライバを変更します。
補足
Iibusb-win32」デバイスとして認識されている場合、次のツールを使ってドライバを変更します。
ツールは、インターネットで検索してダウンロードしてください。
ツール:zadig-2.8.exe(2023年6月時点)
変更内容
・[Options]から、[List All Devices]を選択します
・対象のインターフェイスを選択します
・Driverを「WinUSB」に変更します
・ Replace Driverボタンを押します
プログラム実行用のRaspberry Pi Pico/WをArduino IDE で書き込めるようにする
すけろく ついに、国内でもRaspberry Pi Pico Wを手に入れたぞ! げんろく Wi-Fiモジュールがついているので、 国内の技適取得が必要だったからな。 すけろ[…]
すけろく うぬぬ。 げんろく どうした? 何かあったのか? すけろく Raspberry Pi Pico W にArduinoから プログラムが書き込めないのだ・・・ […]
プログラム実行用のRaspberry Pi Pico/Wと「Picoprobe」を結線する
Raspberry Pi Pico Wにピンヘッダをはんだ付けする
「Raspberry Pi Pico W」には、ピンヘッダをつけるための穴(ランド)がついています。
ピンヘッダをつけることで、ブレッドボードや、ディスプレイのシールドなどと接続することができます。
ピンヘッダとは次のようなものです。
入手元:秋月電子
型番:PH-1x40S
片方のピンが長いものになります。
40ピンありますので、8ピン分を切って使うなどできます。
秋月電子さんの通販サイトURLはこちらです。
電子工作という言葉を聞くとまず思い浮かぶのは、中学校の技術家庭の授業でやったはんだ付け。 最近の学校は実習とかやっているのかなとふと思います。 子供の頃は何となく作業していたので、今思うと「よく部品壊さなかったな・・・」と思いま[…]
Raspberry Pi Picoのはんだ付け部分
Raspberry Pi Picoのはんだ付け部分は、次の通りになります。
周囲GPIOと今回デバッグに使うGPIOは上下逆に、ピンヘッダをはんだ付けします。
はんだ付けした結果は次のようになります。
デバッグに使うピンヘッダだけ、上向きにはんだ付けしています。
Raspberry Pi Pico Wのはんだ付け部分
Raspberry Pi Pico W のはんだ付け部分は、次の通りになります。
周囲GPIOと今回デバッグに使うGPIOは上下逆に、ピンヘッダをはんだ付けします。


ブレッドボードを使って結線する
はんだ付けが終わったら、ブレッドボード上で、プログラム実行用のRaspberry Pi Pico/Wと、「Picoprobe」を結線します。
結線内容は次の通りです。


左右にVinとGNDがあり、中心部分に回路を構成して使います。




ブレッドボード上で使用する際にはこちらが便利です。
持っておくと便利です。
いろんな長さのものがセットになり、保管用のボックスもついています。
Arduino IDE 2.1.0のデバッグ環境を整える
前提条件
この手順は、Arduino IDEにボードマネージャとして「Raspberry Pi Pico/RP2040」がインストールされていることが必要です。
使用する情報 | 設定値 |
ボードマネージャURL | https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json |
ボードマネージャ名 | Raspberry Pi Pico/RP2040 |
ボードマネージャの追加手順については、次の記事をご覧ください。
ボードマネージャのインストール手順については、次の記事を参考にしてください!
今回は、「Arduino IDE 2.0」の「ボードマネージャ」と書き込み先のボードの指定について記載します。 Arduino IDEは、Arduinoに対応した各種ボード(Arduino uno、M5Stack、M5Stic[…]
所要時間:10分程度
Windowsのエクスプローラから、以下のフォルダにアクセスします。
C:\Users\{ユーザー名}\AppData\Local\Arduino15\packages\rp2040\hardware\rp2040\{Arduino-picoのバージョン}\lib

「picoprobe.tcl」をメモ帳で開きます。

「picoprobe.tcl」をメモ帳で開きます。
次のとおり変更し保存します。
【変更前】
source [find interface/picoprobe.cfg] 【変更後】
source [find interface/cmsis-dap.cfg]
Windowsのエクスプローラから、以下のフォルダにアクセスします。
C:\Users\{ユーザー名}\AppData\Local\Arduino15\packages\rp2040\tools\pqt-openocd\1.5.0-b-c7bab52\share\openocd\scripts\interface

「cmsis-dap.cfg」をメモ帳で開きます。

「picoprobe.tcl」をメモ帳で開きます。
次の内容を追加し保存します。
【変更前】
transport select swd
adapter_khz 500
「Picoprobe」経由でプログラムを書き込む
いよいよ、プログラムの書き込みを「Picoprobe」経由で行います。
所要時間:10分程度

パソコンと、「Picoprobe」を接続します。

Arduino IDEを起動します。
[ツール]-[ボード]から、下記を選択します。
[Raspberry Pi Pico/RP2040] – [Raspberry Pi Pico W]

3
[ツール]-[ボード]から、下記を選択します。
[Upload Method]から[Pocoplobe (CMSIS-DAP)]を
選択します。
void setup() { // put your setup code here, to run once: Serial.begin(); Serial.println("Picoprobe Test"); } void loop() { // put your main code here, to run repeatedly: Serial.println("Picoprobe Test loop"); }
新規にスケッチを開き、左のようなプログラムを
入力します。

[スケッチ]-[書き込み]を選択して書き込みます。

書き込みが終わるまでしばらく待ちます。
デバッグ機能を使う



編集後記
いかがだったでしょうか。
Raspberry Pi Pico/Wで開発する際に、便利なデバッグ機能をArduino IDEで使うことができました。
これで、効率的なプログラム開発ができますね!
Raspberry Pi Picoは、非常に安価な開発ボードなので、「Picoprobe」を手軽に手に入れることができます!
以下のリンクからRaspberry Pi PicoやRaspberry Pi Pico Wを、ぜひ手に入れてくださいね~


Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~



Raspberry Pi Pico Wの他の記事はこちらからどうぞ!
すけろく ウーム。 センサーなどの情報を記録したいな。 げんろく なに。Raspberry Pi Picoで記録媒体を 使いたいのか。 すけろく そうだ。 センサーやカメラのデータを保存したいのだ。 げんろく データの保管には、microSDカードが 使いやすいそ。使ってみるか! この記事では、「Raspberry Pi Pico/W」に「microSDカードスロット」を接続して読み書きしてみま […]
すけろく うーむ。 げんろく どうした?浮かない顔をして。 すけろく LEDを火のように光らせる方法を知りたくてな。 げんろく それなら、1/fの揺らぎを使って 再現してみるか。 この記事では、「Raspberry Pi Pico W」を使って、「LEDを揺らぎを加えて点灯させる」方法をご紹介します。 Raspberry Pi の中でも、省電力なCPUを搭載したマイコン開発ボードです。 他のRa […]
すけろく うーむ。 どうしたものか。 げんろく どうした。 暗い顔をして。 すけろく カーモデルのウィンカー点滅を再現したくてな。 明滅回路を作ろうか悩んでおる。 げんろく ん!? そんなときは、メインプロセッサと切り離して 動作する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」を使っ […]