Pine64 A+ 1GBにArduino IDEとThonnyをインストール

## はじめに
こんにちは、マトモなPCを持っていないbockringです。いつも個人開発をiPadでやるという謎行為に走っています。そしてジャンクのWindows PCで書き込むという… しかし、Windowsには相性問題があり、秋月電子さんのAE-RP2040というマイコンボードは接続できません。ということでLinuxの開発環境を整えていきます。

今回入れるIDEは、タイトルにある通り
・Arduino IDE(C/C++ベースのArduino言語のIDE)
・Thonny(Python/MicroPython/CircuitPythonのIDE)
の計2つです。

## 実行環境
[Pine64 A+ 1GB(既に販売終了しています)](https://pine64.com/product/pine-a64-1gb-board/)
| 項目 | 詳細 |
|:-:|:-:|
| SoC | AllWinner A64 |
| RAM | LPDDR3 1GB(512MB×2) |
| ROM | Team製MicroSDXC 64GB(Class 10) |
| OS | Armbian 24.2.1 jammy |

※Armbian 24はDebian系のUbuntuライクなOSです。
　Ubuntu 22.04 LTS Jellyfishと操作感はほぼ同じです。

インストールするIDEのバージョンはそれぞれ
・Arduino IDE : 1.8.19
・Thonny : 4.1.4

## Thonnyのインストール
[Thonny](https://thonny.org)に関しては、ターミナルでのコマンド1発でインストールできるので、先に行います。
```Terminal:Install Thonny
user@pine64:~$ sudo apt install thonny
```
これを実行し、途中で「インストール許可しますか？」的なことを聞かれたら`Y`と入力してインストール完了まで待つだけです。

あとはソフトウェア一覧かターミナルからThonnyを開き、言語などの設定を済ませば完了です。

さすがはPython実行環境なだけあって接続がスムーズです。となるとMicroPythonを頑張って覚えないと… Arduino言語で慣れてしまうと定義の仕方が慣れませんね…(笑)

## Arduino IDE 1.8.19のインストール
Arduino IDEの少し厄介なのは、ターミナルで
```Terminal:Install Arduino IDE?
user@pine64:~$ sudo apt install arduino-1.8.19
```
みたいに入れてもデータパックがありません(存在するなら有識者の方、教えてください…！)。

今回の環境は64bitのARM環境なので、[64bitARMプロセッサ用ファイル(※ダウンロードリンクです)](https://downloads.arduino.cc/arduino-1.8.19-linuxarm.tar.xz)を[Arduino公式サイト](https://www.arduino.cc)からダウンロードします。

次にプリインストールソフトウェアの「ファイル」や「XArchiver」などで、解凍します(「ファイル」で実行する方が無難)。

インストールです。解凍したフォルダ内の`install.sh`をダブルクリックすればターミナルが開くので待つだけでインストール完了です。

:::note warn
基本的にはインストールはどのバージョンでも同じなのですが、Armbian 23以前ではターミナルを用いて`install.sh`というArduino IDEのインストールファイルに実行権限を付与する必要があります。
これは、ファイルのプロパティ画面でも可能な気がしてしまいますが、実行できません。

また、「GDebi Package Installer」が開いてしまうこともあるかもしれませんが、インストールはできません。
:::
なんだかんだあってインストール完了です。このレガシーな開発画面、良いですね。

本当は初期バージョンの1.0とかも好きなんですが、対応ボードの幅が狭すぎるため却下しました。あとインストールファイルが用意されていない場合があります。

## Arduino IDEの設定
これだけ別章でやります。やることが多いからです。まず`Ctrl`+`,`でIDEの環境設定を開きます。

そして、
・コードの折りたたみの有効化
・行数表示の有効化
・起動時の最新バージョン確認機能の無効化
・言語の英語固定設定
の4つを設定します。個人的に、この中では、3つ目の「最新バージョン確認機能の無効化」が重要です。なぜなら、`IDE 1`系統だと、その確認時にIDEがプチフリーズします。つまり、入力ができません。しかも、今の時代にあえて`IDE 1`系統を入れる人は、`IDE 2`(VSCodeベース)なんか使用しないはずです。とっとと無効化しましょう。

次にボードマネージャから
・Raspberry Pi Pico / RP2040
・Arduino SAMD Boards (32-bits ARM Cortex-M0+)
・Arduino SAM Boards (32-bits ARM Cortex-M3)
の3つをインストール、なんですが、どうやらArduino DUE用のツール(M3のやつ)はArmbianは非対応のようです。PicoとM0(M0+のやつ)はインストールこそできたものの、コンパイルでなぜか失敗します。
```C:test.ino
int count = 0;

void setup () {
  Serial.begin(115200);
}

void loop () {
  count = count + 1;
  Serial.print("Count : ");
  Serial.println(count);
  delay(100);
}
```
秋月さんのAE-RP2040でも動くはずです。本来のMicroPythonで書くなら
```Python:test.py
from time import
count = 0

continue = 1
while continue == 1:
  count = count + 1
  print("Count :",count)
  time.sleep(0.1)

```
もちろん、ThonnyではPico上で実行できます。プロッタでも綺麗な直線見れました。

私の保有ボードは
| ボード | 数量 | 備考 |
|:-:|:-:|:-:|
| Arduino DUE R2 | 1 | Arduino IDEとの相性が良 |
| Arduino M0 R3 | 1 | 動作のみ確認済み |
| Tiny 2040 | 1 | 小さく、IOが少ない |
| AE-RP2040 | 2 | ちょうど良いサイズ |

ちなみに、RP2040をWindowsのArduino IDEで開発しようなんて夢は捨てて下さい。相性問題を起こします。というか、Windows上で開発するなら**メインマイコンとは別にUSBチップを積む**ボードを使用しましょう。ARMのマイコンに組み込まれてるタイプは、経験上相性問題が頻発します。

## おわりに
ネタ切れなので投稿しただけです、ありがとうございました。

ちなみに、Armbianって使ってる人が多くないんですよね。情報量を増やすためにもSBC関係の記事も投稿していこうと思います。

ちなみに相性問題も含めArduino IDEでの開発でおすすめできるボードは、
| ボード | 備考 |
|:-:|:-:|
| Arduino UNO R3 | 基本モデルで相性問題も低確率 |
| Arduino DUE R2 | 相性問題も低確率で高性能だが高コスト |
| Arduino Nano | ブレッドボードで開発しやすく安価 |

の3つです。もちろん、用途に合わせてPicoやLeonard、Micro、STM32、ESP32なども含めて検討して下さい。


それではまた〜