何かあったのか?
プログラムが書き込めないのだ・・・
前回書き込み時にバグを仕込んだな。
再初期化の方法を教えよう。
すけろく ついに、国内でもRaspberry Pi Pico Wを手に入れたぞ! げんろく Wi-Fiモジュールがついているので、 国内の技適取得が必要だったからな。 すけろ[…]
記事内でご紹介する「Raspberry Pi Pico W」はこちら!
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からボードマネージャの
設定を次のように行います。
※ボタンは押したまま
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からボードマネージャの設定を
次のように行います。
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」はこちら!
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」を使っ […]