08.picoにArduino-IDEセットアップ


08.picoにArduino-IDEセットアップ

picoをArduino-IDEでスケッチします。また、電池基板も使用します。

電池基板

スイッチサイエンス製
https://www.switch-science.com/catalog/7413/

回路図
https://d2air1d4eqhwg2.cloudfront.net/media/files/5279d08a-e4e8-4afb-a7aa-8ce03135dc7d.pdf
によると、
・電池は単4(AAA)x1本
・電池は昇圧ICと直に接続
・昇圧ICは、BU33UV7NUX(ローム)
・on/offスライドSWは電池の+側と昇圧ICのEN端子間に接続
・picoのRUNの位置にあたるコネクタとGND間にプッシュSWが接続
 USBを抜き差しする代わりに、
 1.電池基板のRESET SWを押し続けたまま
 2.picoのBOOTSEL SWを押し続け
 3.1.を離し、2.を離す。と動作が同じです。
・3V3とVsys間にVbus電圧によるFET SWが接続
 (pico基板では、USB CNの5V(Vbus)からDiを通った後(Vsys)に昇降圧ICのVinと接続)
電池基板の昇圧ICのカタログより、
・EN=Vinで出力on,EN=GNDで出力off
・MODE=VinでPFM or PWMがAuto
・Vin=0.6-4.5V、Vout3.3V
・Iout=0.15A(Vin=0.9V時) (以下グラフより)
・Iout=0.20A(Vin=1.0V時)
・Iout=0.41A(Vin=1.5V時)
・Vin=0.9V,Iout=10mAで効率80%

ボードのインストール

Arduinoでpico用のボードライブラリには、
・Arduino公式
・earlephilhower/arduino pico
の2種類があり、下の方がいろいろできそうなのでそちらを利用します。

Arduino-IDE > ファイル > 環境設定 > 追加のボードマネージャのURL欄に以下を入力 > OK
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Arduino-IDE > ツール > ボード > ボードマネージャー > picoで検索すると3件表示されました。

・Arduino Mbed OS RP2040 Boards by Arduino Ver3.1.1
 https://www.arduino.cc/
 Arduino IDE2.0.0rcバージョンでは動作しません

・Raspberry Pi Pico/RP2040 by Earle F.Philhower,III Ver2.2.1
 https://github.com/earlephilhower/arduino-pico

・[DEPRECATED - Please install standalone packages] Arduino Mbed OS Boards by Arduino

1番目が公式(とりあえずこちらもインストール)、2番目はインストール、3番目は非推奨です。

PicoをUSB接続します。

Arduino-IDE > ツール > ボードで、
・Arduino Mbed OS RP2040 Boars > Rasberry Pi pico (公式)
・Raspberry Pi RP2040 Boards(2.2.1) > Rasberry Pi pico (こちら)
の下側を選択

サンプルスケッチで動作確認

すでに用意されているサンプルスケッチで動作確認をします。
Arduino-IDE > ファイル > スケッチ例 > (内蔵のスケッチ例) 01.Basics > Blink
Arduino-IDE > ツール > シリアルポート > COMを指定

LED_BUILTINについて

Arduino > Documentation > Reference > Variables > LED_BUILTIN
に組込み定義のLED_BUILTINがあります。
https://www.arduino.cc/reference/en/language/variables/constants/constants/
picoの場合は、Pinoutを見るとGP25です。

スケッチ


// Blink.ino  内蔵の緑LEDを1秒on 1秒offで繰返します
int led = LED_BUILTIN;  // 基板上の緑LEDのpin番号

void setup() {
  pinMode(led, OUTPUT);//デジタルpinの設定(pin番号,mode)
}

void loop() {
  digitalWrite(led, 1);  // LED on(H)
  delay(1000);           // 1秒待つ
  digitalWrite(led, 0);  // LED off(L)
  delay(1000);           // 1秒待つ
}
* フラッシュメモリ(2093056bit)は、スケッチが2%使用
* RAM(262144bit)は、グローバル変数が2%使用