【IoT】Arduinoはじめました

##0. はじめに
Nashです。
前回SAPの記事を書いたのですが、大人の事情で削除せざるを得ない状況になってしまいました。

今回はSAPとは全く関係ない話です。

最近Arduinoを買ったので準備からHello Worldまで実施してみました。
いつかArduinoとSAPをつなげて色々遊んでみるために、まずはArduinoの基礎を学ぼうと思います。

以下の情報はネットや本でごまんとあると思いますが、自学目的も兼ねてるので、温かい目で見てください。笑


##1. 準備
###1-1. Arduinoの購入
秋葉原などの電気街やオンラインでも購入できます。
私は他に購入したいものがあった関係で、マルツオンラインさんで購入しました。
[Arduino Uno Rev3(アルディーノ)【A000066】](https://www.marutsu.co.jp/pc/i/604593/)

###1-2. PCおよび接続するためのケーブル準備
Arduinoで遊ぶには、開発環境で書いたスケッチ(プログラム)をArduinoにアップロードする必要があります。
そのためスケッチを書くためのPCおよびPC-Arduino間をつなぐためのケーブルを準備します。メーカはなんでも良いと思います。私が下記を使いました。
[USB（A）オス - USB（B）オス](https://www.amazon.co.jp/%E3%82%A8%E3%83%AC%E3%82%B3%E3%83%A0-USB%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB-USB2-0-B%E3%82%BF%E3%82%A4%E3%83%97-U2C-BN15BK/dp/B00OPIFYKO?th=1)

###1-3. Arduino IDEセットアップ
PCにスケッチを書くための開発環境を構築します。
[Arduino](https://www.arduino.cc/)の公式ページから[SOFTWARE]-[DOWNLOAD]を開くと、インストーラがあります。現時点(2020/06)では1.8.12が最新版です。
ダウンロード後はインストーラを使って、自PCにArduino IDEをインストールしてください。
(WindowsのZIP形式、WindowsAppを用いてインストールした場合は、別途ドライバを手動でインストールする必要あり。）

##2. Hello Arduino
###2-1. PCとArduinoの接続
下の図のようにUSBケーブルを使ってPCとArduinoをつなぎます。
つなぐとArduinoに電源が入ります。
![IMG_0065.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525753/10369c22-4503-b1eb-abf6-191cd30539a0.png)

###2-2 Arduino IDEの起動
先ほどインストールしたArduino IDEを起動します。起動すると下記のような画面が出てきます。ここでスケッチを書いたり、コンパイルしたり、Arduinoボードにスケッチを書き込んだりできます。
<img width="400" alt="スクリーンショット 2020-06-13 12.09.02.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525753/d5521bf7-2bff-1e2b-6a97-548947ac08a0.png">

###2-3. Arduinoボードの認識
Arduino IDEにPCと接続したArduinoを認識させます。
[ツール]-[シリアルポート]から接続に使用しているシリアルポート名を選択します。次に、[ツール]-[ボード]から接続しているArduinoボードを選択します。

###2-4. Hello Arduinoを実行
スケッチを書いていきます。Arduinoでは標準でスケッチの例が用意されています。スケッチの例を読み込み、ArduinoのLEDを点灯させてみます。

1. [ファイル]-[スケッチの例]-[01.Basics]-[Blink]をクリックします。

2. Blinkスケッチが開くので、検証ボタンを押して、コンパイルが正常に完了することを確認します。
<img width="400" alt="スクリーンショット 2020-06-13 12.31.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525753/9871ab4c-5de6-541c-9881-3541b38d9ff8.png">

3. マイコンボードに書き込みボタンを押して、ボードにスケッチをアップロードします。
<img width="400" alt="スクリーンショット 2020-06-13 12.33.28.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525753/77dd282c-d74c-7891-3c0a-baa33ea3e5af.png">

4. ArduinoボードのLED(ボード上のLの部分)が1秒ごとに点滅すれば、正常にArduinoが起動しています！
![IMG_0066.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/525753/aff456cc-aa32-1e75-1dc0-ca5c449eb3b0.png)

スケッチの例にあるBlinkのコードは下記の通りです。(必要な部分だけ抜粋）

```
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
```

loop関数の中にあるdelayで引数となっている1000は1000ミリ秒を表しています。
この値を変えることでLED点滅の間隔を変更することができます。


##3. 終わりに
ここまでArduinoの準備からLED点灯までの流れを書いてみました。
次回はArduinoにいろんなものを繋いでみて、簡単なIoTを実現してみたいと思います。