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%使用