注目キーワード

【Arduino】Raspberry Pi Pico W が書き込めなくなった?Arduino IDEでの対処法!

すけろく
うぬぬ。
げんろく
どうした?
何かあったのか?
すけろく
Raspberry Pi Pico W にArduinoから
プログラムが書き込めないのだ・・・
げんろく
そうか。
前回書き込み時にバグを仕込んだな。
再初期化の方法を教えよう。
今回は記事では、「Raspberry Pi Pico W」をArduinoでプログラミングする際に発生する問題について、解決方法を紹介します。
発生する問題とは、
Arduino IDEからの書き込み時エラー、Raspberry Pi Pico Wがだんまり
という事象です。
Raspberry Pi Pico W」は、Raspberry Pi財団が独自に開発したARM Cortex M0+デュアルコアのRP2040マイコンを搭載した開発基板です。
同じチップが搭載されている「Raspberry Pi Pico」の機能に加えて、Wi-Fiや、Bluetooth(今後サポートか?)といった通信機能が搭載されています。
MicroPythonでのプログラミングが主ですが、Arduino IDEでもプログラムを書き込むことができます。
当ブログでは、Arduino IDEを使ったプログラミング例を紹介していますよ。
この記事の前提となる「Raspberry Pi Pico W」のはじめかたについては、次の記事で紹介しています。
関連記事

すけろく ついに、国内でもRaspberry Pi Pico Wを手に入れたぞ! げんろく Wi-Fiモジュールがついているので、 国内の技適取得が必要だったからな。 すけろ[…]

記事内でご紹介する「Raspberry Pi Pico W」はこちら!

ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,190 (2024/04/14 12:15:13時点 Amazon調べ-詳細)
ピンヘッダを自分ではんだ付けするもの
created by Rinker
Raspberrypi
¥1,656 (2024/04/14 03:14:19時点 Amazon調べ-詳細)

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

 

書き込めなくなる事象と原因

Windowsや、MacOS、LinuxなどのOSが入っているパソコンなどでは、動かなくなったとき、

「アプリやデータがたくさんインストールされているので、簡単には初期化できない。。。」

という状況になることがあります。

正常に起動するまで時間がかかることがあります。

 

それに比べ、Raspberry Pi Pico  Wや、Arduinoなどのマイコンは、書き込んだプログラムを実行させるというシンプルな構造です。

動作が不安定になった場合は、プログラムの問題を修正して、もう一度書き込めばよいのです。

 

当ブログでもRaspberry Pi Pico Wに、Arduino IDEから何度も書き込みを行って完成版を作成しています。

しかし、今回発生した「書き込みできない」エラーは、頭を悩ませました。。

もしかして、Raspberry Pi Pico Wを壊してしまった?

 

何度試しても、書き込みできず、エラーとなってしまいます。

もしかして、Raspberry Pi Pico Wが、固まってる?

 

この問題の対処を行った際の内容を次の章で、紹介します。

 

原因は?

対処方法を試しながら調査した結果、原因は次の通りでした。

「利用したボードマネージャが提供している、Raspberry Pi Pico Wの
SPIポートの変更処理を記述したこと」

Raspberry Pi Pico Wは、SPIを構成できる環境が複数(SPI0,SPI1)あり、
標準ではSPI0が選択されますが、これを変更すると発生していました。

 

 

書き込めない時の対処方法

まず、今回のような問題が発生した場合、Raspberry Pi Pico Wの状況を把握を行いました。

確認を行った結果、対処方法を実行しています。

順を追って説明しますね。

状況確認のポイント

エラーが発生した際、まず状況を確認したポイントは次の通りです。

  • Arduino IDE からRaspberry Pi Pico WのCOMポートは認識されているか確認
  • プログラムのコンパイル(書き込み用への変換処理)は正常に終わっているか確認
  • シリアルモニターから何か情報はとれないか確認

 

Raspberry Pi Pico WのCOMポート認識確認

Arduino IDEがインストールされているパソコンのCOMポートとして、Raspberry Pi Pico Wが認識されていないか確認します。

この事象が発生した際には、COMポートとして認識されていました。

 

プログラムのコンパイルが正常に終了しているか確認

プログラムのコンパイル状況を確認します。

画面下部の結果を確認しても、この現象が発生した際には、コンパイルは成功していました。

シリアルモニタから情報が取得できないか確認

シリアルモニタを起動して通信状況を確認します。
この事象が発生した際のプログラムには、確認のためシリアル出力を随所に配置していましたが、シリアルモニタには表示されませんでした。
上記を確認したのち、対処方法を実行したところ、正常に書き込みが行えるようになりました。
次に対処方法を説明します。

対処方法の実施

確認した内容から、Raspberry Pi Pico Wは、まだ壊れていないと判断しました。

対処方法は、Raspberry Pi Pico Wの初期化です。

次の手順で行います。

Raspberry Pi Picoの初期化

Raspberry Pi Pico WでArduino IDEを使う場合の初期化方法について説明します。

次の手順を行うことで初期化できます。

 

所要時間:2~3分程度


Raspberry Pi Pico Wをパソコンから外します。

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

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

Arduino IDEで新規スケッチを開きます。
※ボタンは押したまま

Arudino IDEからボードマネージャの
設定を次のように行います。
※ボタンは押したまま

ボードマネージャ
[Raspberry Pi Pico/RP2040] -[Raspberry Pi Pico W]
ポート
UF2 Board

Arduino IDEからRaspberry Pi Pico Wへ
書き込みます。
※ボタンは押したまま

書き込みが終了したら、「BootSel」ボタン
を離します。

Raspberry Pi Pico Wをパソコンから外します。

Raspberry Pi Pico WをパソコンにUSB
で接続します。
この時、パソコン側にCOMポートとして
認識されます。

 

以上で、初期化の手順は完了です。

 

次のテストプログラムの書き込みに進んでください。

 

テストプログラムの書き込み

次にテストプログラムを書き込みます。

初期化が終わっていれば、Arudino IDEからCOMポートとして認識されているので、通常の書き込み手順で行います。

 

所要時間:3~5分程度


Raspberry Pi Pico WをパソコンとUSB接続します。
void setup() { 
// put your setup code here, to run once: 
Serial.begin(9600); 
delay(3000); 
Serial.println("Test Serial");
} 
void loop() { 
// put your main code here, to run repeatedly: 
Serial.println("Test Serial");
}

Arduino IDEで新規スケッチを開き、左のプログラム
を記述します。

Arudino IDEからボードマネージャの設定を
次のように行います。

ボードマネージャ
[Raspberry Pi Pico/RP2040] -[Raspberry Pi Pico W]
ポート
COMポート(認識したポートを指定)

Arduino IDEからRaspberry Pi Pico Wへ書き込み
を行います。

正常に書き込みが完了したことを確認します。

 

以上で、テストプログラムの書き込み手順は終了です。

 

最後にシリアルモニタで動作状況を確認します。

 

 

実行結果のシリアルモニタへの出力確認

最後にシリアルモニタで出力状況を確認します。

テストプログラムは、シリアルモニタを開くと”Test Serial”という文字が繰り返し表示されます。

 

所要時間:3~5分程度


シリアルモニタを起動します。
画面下部にシリアルモニタが表示されます。

シリアルモニタの転送速度を「9600」
に設定します。

シリアルモニタに左のように表示されれば
成功です。
以上で、シリアルモニタの確認手順は終了です。

 

 

 

編集後記

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

Raspberry Pi Pico WをArduino IDEでプログラミングしていると、必ず?発生する書き込めないエラーについて対処方法をご紹介しました。

 

同じような事象が発生した場合、まずは対処方法を実行し、Raspberry Pi Pico Wが正常であるかを確認しましょう!

この記事が、皆さんの助けになればと思います。

 

記事は以上となります。

最後までご覧いただきありがとうございました。

 

記事内でご紹介する「Raspberry Pi Pico W」はこちら!

ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,190 (2024/04/14 12:15:13時点 Amazon調べ-詳細)
ピンヘッダを自分ではんだ付けするもの
created by Rinker
Raspberrypi
¥1,656 (2024/04/14 03:14:19時点 Amazon調べ-詳細)

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

 

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のデバッグができるぞ! やっとできたプログラムを動かしてみると […]