プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

Hello Raspberry Pi Pico world!

Hello worldしてみた

昨年、elchikaでもらった秋月電子商品券で購入してほったらかしにしていたラズパイピコを試してみました。
ラズパイピコはArduino IDEで使えて、CPUも強力でDual Coreということです。

Arduino IDEの設定

ラズパイピコはArduino IDEで使うほかに、VS Codeで使う方法もあるようですが、最も簡単に使えそうなArduino IDEをまずは試してみることにしました。

まず、IDEの「ツール」メニューからボードマネージャーを開きます。
ここでpicoで検索します。
現時点では2つのライブラリがヒットします。
これらを両方入れておきます。(一つ目はDEPRECATEDなので無視)

Hello world

まずは簡単なGPIOとSerialを使うプログラムを書いてみます。
ここでLED_BUILTINというのはボード上のチップLEDのことです。

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(115200);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  
  delay(500);                       
  digitalWrite(LED_BUILTIN, LOW);   
  delay(500);                       
  Serial.print("Hello world");
}

まずは、Arduino Mbed OS RP2040 Boardsのボード設定で書き込みます。

書き込みボタンを押下すると一度ラズパイピコのフォルダが開きますが勝手に閉じて書き込みが成功します。

次にRaspberr Pi RP2040 Boars(2.0.0)のボード設定でも試してみます。
こちらは、一度USB接続を外して、Bootボタンを押しながら接続しなおす、という工程を入れないとうまく書き込みができないようです。
また、USBの認識が時々ボードを認識しない、という現象が起きます。

Dual Coreを試してみる

ラズパイピコの最大のメリットであるDual Coreを試してみます。

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}
void setup1() {
  Serial.begin(115200);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  
  delay(500);                       
  digitalWrite(LED_BUILTIN, LOW);   
  delay(500);                      
}

void loop1() {
  Serial.println("Hello world!");
  delay(300);
}

Dual Coreを使うときは、Coreごとにsetup()loop()を分けて記述します。

こちらも同様に書き込みをしてみますが、Arduino Mbed OS RP2040 Boardsのボード設定ではどうしてもCore2が動きません。
Raspberr Pi RP2040 Boars(2.0.0)のボード設定では動きました。
SerialがCore2では動かないのか?とかいろいろ試してみましたが、そういうわけではないようです。

まとめ

Raspberyy Pi Picoを動かしてみました。
簡単にDual Core(マルチコア)を使えるというのがすごいですね。
ボード設定は現時点で2種類あります。
通常はArduino版を使うほうがボード認識が自動なので楽ですが、Dual Core(マルチコア)を活用したいときはEarle F. Philhowerのものを使わないと駄目なようです。