これまで、Raspberry pi picoやRP2040-ZEROをMicroPythonで動かしてきた。
まぁ、これはこれで良かった。
MicroPythonはCのように{}で括らなくて良いので読みやすい。
エラーになった時に、どこで発生したのかが分かりやすくデバッグしやすい。
コンパイル⇒書き込みの手間も無いので、すぐに試せるのも、おじさんのような初心者にはありがたい。
そして、おじさんのPythonの勉強にもなった。
しかし、以前にも書いたがArduinoの方がライブラリや製作例が圧倒的に豊富で、電子工作するにはありがたい。今回はRP2040-ZEROをArduino IDEで動かしてみたい。
調べてみると、Arduino IDEでは2つの開発環境が有るらしい。
1つ目はArduino公式の開発環境
Arduino IDEのボードマネージャを開いてRP2040で検索すると出てくる。
詳細情報をクリックすると、Arduinoのホームページが出てくる。
ホームページ内でRP2040を検索すると、「Arduino Nano RP2040」に対応してるよ、Raspberry pi pico Wも動くよ、的なことが書いてありそう。
(英語なので詳しくは読んでない)
Mbed OSってARMが作ったRTOSらしい。これの上に環境を作っているようだ。
2つ目はこちら↓ Earle F. Philhower氏が作った物らしい
RP2040 Arduinoで検索するとこちらを使う記事が多い。
どちらを使うのが正解なのか、おじさんには分からない。
試しにArduino公式版「Arduino Mbed OS RP2040 Boards」をインストールしてみる。
ボードマネージャーからインストールボタンを押すだけの簡単作業。
インストールが完了したので内蔵のカラーLEDを光らせてみる。
以前にも使ったNeoPixelのライブラリを使う。
<スケッチ>
一番最初に書き込む際には、BOOTボタンを押したままUSBポートに繋ぎ、書き込みが終わるまでBOOTボタンを押し続ける必要が有る。(最初書けなくて焦った。)
2回目以降は何もする必要は無い。
少しづつ色を変えながら怪しげに光る。
おお、順調順調
次に、ハードウェア依存の多いタイマー割込みを試す。
CPUが違うと、いつもプログラムの書き直しが必要になる。初心者向けに標準化して欲しい。
何も考えずに、こちら↓のページから、タイマー割込みのサンプルスケッチをコピペしてみる。
すると、ライブラリが無い、といってエラーになる。
どうやらEarle F. Philhower版↓固有のコードのようだ。
公式版を改めて探してみる。
なら、こちら↓ならどうだろう。知らないライブラリのincludeも無いから動くかも?
結果は、やはり'add_repeating_timer_us' was not declared in this scopeとなりコンパイルできない。
むむむむ・・・
他にも検索していたらArduino公式↓があった
タイマー割込み使いたければ、github、もしくはライブラリマネージャーから、このライブラリをインストールしろと言うことらしい。
え~、標準機能じゃないの~、なんだかな~。
まぁ、他にもanalogWriteとかも試したけどanalogWriteFreqが指定できないとか、かゆいところに手が届かない感じがしたので、Arduino公式版は一旦断念することにする。
ボードマネージャーから削除ボタンを押して、アンインストール。
さようなら、Arduino公式版
次回はこっち↓を試してみる
「いろいろ試行錯誤してみるのも良いにゃ」