3GIM > Arduino  IDEのインストール（IoTab版）

# はじめに

これは3GIMで　　を始めようの記事の一部です。

# Arduinoの環境構築

IoTabへ書き込むためのArduinoの環境構築を進めていきます。

## Arduino IDE のインストール
https://www.arduino.cc/en/Main/Software

MacとWindows（10 & 7）両方で試したので両者記載しています。だいたい同じ操作でインストールできます。

インストーラーをダウンロードする。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/44559739-a9dd-0a07-768e-d7fb77b784c9.png' width='400px' />

寄付するか否かですが、そこは良心で。そのまま進めたい場合には「JUST DOWNLOAD」を
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/1b4b09a7-312f-a20a-7c71-a1b5732b773e.png' width='400px' />


インストール開始してしばらく固まったように見えますが、待ちましょう。

Windowsの場合には時々インストールの確認ダイアログボックスが表示されます。インストールボタンを押して先に進めます。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/612e96ca-8cad-a53a-e914-290a629ea142.png' width='400px' />

しばらく待つとCloseボタンが押せるようになります。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/f3190577-bd82-8973-5709-3a134c1c1730.png' width='400px' />

デバイスマネージャーにUSBシリアルデバイスが表示されていればOKです。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/345af273-43b8-a6f7-2b9b-744167b5a6b6.jpeg' width='400px' />


## Arduinoを実行してみます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/1d9ca54e-05da-f1e5-4f4f-c55c34404e58.png' width='400px' />

ファイアウォールの警告がでる場合がありますがアクセスを許可するを押しましょう。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/af7acb4d-c400-c0a2-ff05-3019aa904dec.png' width='400px' />



## monitor4GIM_IoTAB.ino を実行してみる。

とりあえずこのままサンプルを実行してみますが、'SerialUSB' was not declared in this scope
というエラーがいっぱい出てきてしまいました。

<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/35d743ab-02aa-05a9-53d5-c1b58f087c10.png' width='400px' />


どうもボードの選択が違うようです。
[Arduino Yun and HTTP CLient](https://forum.arduino.cc/index.php?topic=377055.0)
https://forum.arduino.cc/index.php?topic=377055.0


## ボードのインストール

IoTabはこのボードを使っているようです。
[SAMD21 Mini/Dev Breakout Hookup Guide \- learn\.sparkfun\.com](https://learn.sparkfun.com/tutorials/samd21-minidev-breakout-hookup-guide/setting-up-arduino)

### ボードのインストール
ということでボードのインストールを始めます。
Proxy環境にある場合には事前にファイル→環境設定で設定を済ませておきましょう。

ツール→ボード→ボードマネージャで、ボードマネージャを選択します。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/440a2a97-327b-de4d-22de-0d9a2cc6ec41.png' width='400px' />

表示されるリストから、Arduino　SAMD　Boardsを探してインストールします。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/b59ce429-da8c-6f79-ecc0-cb4da072d4d4.png' width='400px' />
（インストールにしばらく時間がかかります。）

なかなか気づきにくいですが画面下部に状況が表示されています。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/5fd23868-2501-c808-91e3-8fb7b29327ab.png' width='500px' />

Windowsの場合、デバイスに変更を許可しますか？　ダイアログがでたら「はい」を選択します。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/e0efabfe-82e8-7929-ca94-90345d26bb2e.png' width='300px' />

デバイスソフトウェアをインストールしますか？が表示されたら「インストール」を選択します。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/e30200ed-e59b-473d-2db8-4dde024a3557.png' width='300px' />

環境によってはなかなか衝撃的なウィンドウがでる場合がありますが、インストールで先へ進めます。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/e7984e45-22f1-bb8f-e7f3-fc62840ccdb0.png' width='300px' />

<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/7d456517-8c86-9cb8-cc2d-9a7ab490c389.png)



インストールが完了したらバージョンの右側にINSTALLEDと表示されます。　このまま閉じてOKです。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/bfbbd9f6-2897-90b8-2df7-f50ce465f7f5.png' width='400px' />


## SparkFun SAMDボードの追加
SparkFun SAMDボードの追加を行います。
ファイル→環境設定を開きます
次に、追加のBoard Manager URLテキストボックスに以下のリンクを貼り付けます：

```url
https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json
```
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/074a5e25-7893-ad47-c307-27717565116b.png' width='400px' />

右側のボタンで確認できますが、これはやってもやらなくてもOKです。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/945599e5-0472-5faf-db0b-e6a88afcc2c2.png' width='200px' />
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/13a29bb2-0d03-8881-9df2-3380ccaec504.png' width='400px' />


開発環境を閉じて、再度ボードマネージャーを表示します。
下のほうにスクロールすると、今までなかった「SparkFun SAMD Boards by SparkFun Electronics」が表示されているのでインストールを実行します。

<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/6cfb0ead-1e55-1fbb-cedc-384d05f093cd.png' width='400px' />

完了したのち、INSTALLEDが表示されている事を確認してボードマネージャーを閉じます。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/37ab9d0d-7180-845d-3be3-2c11afb08cf7.png' width='400px' />

ツール→ボードを開くと、下のほうにSparkFunが追加されています。
SparkFun SAMD21 Dev Breakoutを選択します。

<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/3d8081e9-b408-523b-0076-f439caf9d075.png' width='400px' />


### Arduino SAMD Boards (32-bits ARM Cortex-M0+)
もコンパイルに必要なようなのでインストールします。
<img width="797" alt="スクリーンショット 2017-10-28 16.54.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/49910/ad1dac6a-bf24-2d08-3620-55335214af0b.png">



これでIoTabの設定が完了しました。

### どうしてもうまくいかない場合
これはIoTabが使っているのSparkFunのボードに起因しているようです。
[SAMD21 Mini/Dev Breakout Hookup Guide \- learn\.sparkfun\.com](https://learn.sparkfun.com/tutorials/samd21-minidev-breakout-hookup-guide/troubleshooting)



# Mac or Windows

* Macの場合はこれで完了です。
次へ進んでください。
Macの場合はドライバの設定も要らずほぼ問題なく進むと思います。

* Windowsの場合
Windowsの場合にはドライバとライブラリへのパスの設定が必用な場合があります。
また、シリアルポート（COM）がどうしても認識しないケースもあるようです。その場合にはPCを変えるなど試してみてください。
IoTabを使ってる場合には緑色のLEDがゆっくり点灯したら何か問題が起きている合図です。
これはIoTabが使っているのSparkFunのボードに起因しているようです。
[SAMD21 Mini/Dev Breakout Hookup Guide \- learn\.sparkfun\.com](https://learn.sparkfun.com/tutorials/samd21-minidev-breakout-hookup-guide/troubleshooting)


## ドライバのインストール

デバイスマネージャーで以下の状態になっているとドライバが必用です。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/5cf7e5a0-0df0-8b82-6b16-4fad0647dd67.png' width='400px' />


↓のページの写真の下あたりに「Windows Driver Installation」があるのでダウンロードします。
[SAMD21 Mini/Dev Breakout Hookup Guide \- learn\.sparkfun\.com](https://learn.sparkfun.com/tutorials/samd21-minidev-breakout-hookup-guide/hardware-setup)


<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/663eaeb5-8687-6847-74a0-cc36501b1f3c.png' width='400px' />

ZIPを解凍してドライバーの更新で解凍したフォルダを参照して進めます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/3aeefdaf-8f8d-5d0d-4a50-7d225c514cd8.png' width='400px' />

<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/850ad7c2-2536-2b45-783d-17f2bda1a578.png' width='400px' />

ポート（COMとLPT）に表示されればOKです。
<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/775918e2-a163-1d3d-ae69-2abe1e11e24f.png' width='400px' />

これでようやくIoTabと通信できるようになりましたので、ツール→シリアルポートで、COMを選びます。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/49910/fb4dc4c9-4bb5-28ad-0881-b4b74b782928.png)



## ライブラリ・パスの設定。
パスが通ってなければエラーが表示されると思います。

<img src='https://qiita-image-store.s3.amazonaws.com/0/49910/73181c1a-ce48-cd97-5869-b9f5e42a6498.png' width='600px' />

> SoftwareSerial.h: No such file or directory

まだエラーが出ます。
なかなか簡単には導入が進みませんね。

ボードを変えればコンパイルが成功する事と、メッセージの内容から、どうもライブラリのパスが通っていないようです。





今度は無事にコンパイルが終了しました。

マイコンボードに書き込みをしてみます。

IoTab側のボードの緑のLEDがゆっくり点滅している状態であることを確認します。