Raspberry Pi Picoのプログラミング環境として、オススメなのはArduino IDEです。
昨年、その扱い方を解説する本をKindle書籍として出版しましたが、その中で紹介しているボード定義よりも使いやすいarduino-picoというものがあるため、新たに書き直したものを出版しました。
2022年版マイコンはじめの一歩! Arduino IDEではじめるRaspberry Pi Pico: 1st
紹介しているボード定義は、すでにRaspberry Pi Pico Wにも対応していて、Wi-Fiも手軽に扱えるようになっています。
この記事では、書籍には書かなかった小ネタを紹介します。
Raspberry Pi PicoのBOOTSELボタンでリセットする方法
Raspberry Pi Picoにはリセットボタンがありません。Arduino IDEで書き込む際は、自動的にリセットかけてくれるので、特に問題はありませんが、それでもスケッチを頭から動かしたいときにリセットしたくなるタイミングがあります。その際には、以下のように書くとBOOTSELボタンでリセットできるようになります。
void setup()
{
{
void loop()
{
if(BOOTSEL){
delay(10);
while(BOOTSEL);
delay(10);
rp2040.reboot();
}
}
arduino-picoでは、BOOTSEL
にBOOTSELボタンの状態が入ります。それを読み込んで、BOOTSELボタンを押して、離した際にリセットがかかるようにしたスケッチです。
BOOTSELボタンを押したときにリセットをかけるとBOOTモードが切り替わってしまうため、離したときにリセットがかかるようにしています。delayはチャタリングを防止するためのものです。
(2023/04/09 編集 いつの間にか、リセット用の関数が用意されていたため、それを使用するように上記スケッチを書き換えました。arduino-pico 3.1.0では確認済み)
クロップアップダウン時の消費電流
arduino-picoでは、Raspberry Pi Picoのクロックを簡単に切り替えられるようになっています。
高速な処理が必要な場合は、オーバークロックすることも可能ですが、Raspberry Pi Picoとしてはクロックダウンして消費電流を押さえられる方が魅力だと思います。
通常の133MHzではRaspberry Pi Pico単体の消費電流は20mA
程度ですが、クロックが50MHz、250MHzのときに次のようになりました。
Raspberry Pi Picoの電源回路は、アップダウンコンバータを積んでいるので単3電池2本でも動くようになっています。バッテリー駆動の場合は、50MHzにダウンすれば電池寿命は倍程度になる様です。