ランチにPicoはいかがでしょうか～第6話　Arduino IDE開発環境の導入～

ごきげんよう、ちゃまおです。

[前回の記事](https://qiita.com/Chamaotaku/items/b000fa1cb8526ab3fc9c)から、だいぶ空いてしまいましたが、皆様いかがお過ごしでしょうか？

ちょっと前に、picodisplayと言う製品を買ったので、その記事を書こうかなと思ったのですが、Arduino用の統合開発環境であるArduino IDEがRaspberry Pi Picoにも対応したみたいなので、今回は導入方法を解説します。

# Arduino IDEについて
Arduino IDEとは、Arduinoと言うマイコンボードに関するIDE(Integrated Development Environment: 統合開発環境)の事です。電子工作の歴史的には、「PICかAVRを使ったC言語での開発」→「Arduino登場」→「Raspberry Pi登場」と言う感じで、Arduinoが登場した2010年代頃から、電子工作が身近になったと言う印象を私は持っています。

# Arduino IDE開発環境の導入

[こちらのページ](https://www.arduino.cc/en/software)から、Windows用のArduino IDE (Windows Win7 and newer)をインストールしましょう。2021年4月23日時点での最新版は1.8.13です。

無事にインストールが終わったら、ソフトを立ち上げ、「ツール -> ボード -> ボードマネージャー」をクリックします。

![Arduino1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/d6d53114-af08-1a3b-fa50-c5ce325e55ad.png)

検索窓に「pico」と入力すると、下図のように「Arduino Mbed OS RP2040 Boards」が出てくるので、インストールします。

![Arduino2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/6aa33ae3-9405-4045-d6b0-c23876384f91.png)

インストールが完了すると、「ツール -> ボード」から、Raspberry Pi Picoが選べるようになるので、選びます。導入は以上です。

![Arduino3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/d21f5185-4211-8dbb-9176-4ca1f48a8298.png)

# Arduino IDEでLチカ

ここからは実際に、サンプルコードを使って、Arduino IDE上でLチカの実装をしてみましょう。「ファイル -> スケッチ例 -> 01. Basics -> Blink」を選択すると、別ウィンドウでサンプルコードが開かれます。

![Arduino4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/b7120d92-db56-5525-c280-f9f0bce9e972.png)

サンプルコードが開かれたら、パソコンにRaspberry Pi Picoを接続し、Arduino IDEの画面上部にある「→」ボタンを押す事で、ソースコードのコンパイルと、Raspberry Pi Picoへの書き込みが行われて、基板上のLEDが点滅を繰り返したら成功です。マイコンボードに書き込みを行っている為、C/C++での開発時と同様、ソースコードの内容は、パソコンと接続を外した後も、保持されていました。

![Arduino5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/930492/7ae129a1-dea1-7791-6eed-e524d80a3d4e.png)

# ちょっとだけコード解説
ArduinoはC/C++をベースとしたArduino言語と呼ばれる独自言語が用いられています。先ほどのサンプルコードも、Arduino言語で書かれています。この言語の特徴としては、```void setup()```と```void loop()```の2つの関数で構成されている事です。

```void setup()```では、1回だけ実行される内容を書きます。今回の場合、```pinMode(LED_BUILTIN, OUTPUT);```が書かれていますが、これは「LED_BUILTINで定義されているピン(Raspberry Pi Picoの場合、25番ピン)をOUTPUTとして定義する」と言う意味です。

```void loop()```では、繰り返し実行される内容を書きます。今回の場合、```digitalWrite(LED_BUILTIN, HIGH);```と```delay(1000);```が書かれていますが、前者は「LED_BUILTINで定義されているピン(Raspberry Pi Picoの場合、25番ピン)をHIGH(スイッチON)にするよ」と言う意味で、後者は「1000ms待つよ」と言う意味です。LEDのスイッチをOFFにしたい場合は、```digitalWrite(LED_BUILTIN, LOW);```と書きます。

# もう一つの開発環境の導入方法
実は、Arduino IDE開発環境の導入方法はもう一つあります。[Earle F. Philhower, IIIさんがGithubで公開している方法](https://github.com/earlephilhower/arduino-pico)です。これを用いて、[別の方が解説動画](https://youtu.be/IZKpCz6LEdg)をアップロードしています。私はこの方法が上手くいきませんでしたが、気になる方は動画を参考に導入してみてください。

# …で、結局何で開発すれば良いの？
これまでに、[C/C++での開発環境の導入](https://qiita.com/Chamaotaku/items/05ae4c47c1f8724512c1)、[Micro Pythonでの開発環境の導入](https://qiita.com/Chamaotaku/items/bf7c8c36541987c95790)を紹介して、今回はArduino IDEでの開発環境の導入を紹介しました。電子工作を始めたばかりだと、どれを使って開発するのが良いのか分からないかもしれません。私自身、どれもまだ使いこなせていませんが、Lチカを通じて感じた事を以下に書きます。

- C/C++は、環境構築が難しいし、そもそもC言語が難しい為、ライブラリの扱いの難易度が高いけれども、開発の自由度は高そう。

- Micro Pythonは、環境構築がとても楽だし、Pythonは簡単だけど、ソースコードの内容を保持出来ないので、組み込みには向いていない。(注)もし保持出来る方法があったら、それは私の情報不足ですので、教えて頂けると助かります。

- Arduino IDEは、環境構築が楽だし、Arduino言語に関する情報は世の中にたくさんあるので、これまでのArduino用ライブラリがそのまま使えると開発が進みそう。(注)これまでのArduino用ライブラリがそのまま使えるかは未確認。

簡単に感想を書きましたが、結局は自分が書きやすい言語を使うのが一番だと思います。

以上です、お疲れ様でした。

# 次回予告
次回はpicodisplayの記事を書きたいなと思っていますが、未定です。