Arduinoで電子工作を始めてみる

雨の休日ってやることなくて暇やな、という事で。電子工作でも始めてみようかなと思った次第。
とはいえ何の手掛かりもなく基板から作るような知識は無いので、入りやすいマイコンボードから手を着けようかと。
同じような事を考えてる人の参考になれば。

選択肢としては、有名どころの **Raspberry Pi** と **Arduino** の2つ。
特徴を雑に書くと下記のような感じ。詳細は各自調べてください。

##### Raspberry Pi
- CPUや入出力インターフェースがあり、OSをインストールして使う
- ちっさいパソコン的な。
- OS上でプログラムを走らせるので言語とか開発環境は任意で選べる

##### Arduino
- 回路の制御用のマイクロコントローラー
- 専用の開発環境と言語がある

より電子工作っぽい事やるなら**Arduino**でしょう、てことでArduinoを選択。

## Arduinoのキットを購入
買ったのはこちら。ELEGOOのArduino互換スターターキット。
色々入ってるので良さそう。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/f2ac75be-69c3-0f8a-de74-20d894b4ba5f.jpeg" width=40% vertical-align="middle"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/3ea5acf5-277e-7cbe-764b-ccf266540956.jpeg" width="40%" vertical-align="middle">

なんかDVDでドキュメントとか入ってたけどドライブ無いからスルー。どうせwebで見れるでしょ。

ELEGOOっていうブランドのキットやけどArduino純正の開発環境が当然のように使えるので、そちらで環境を作りましょう。

## 環境をつくる
とりあえずキットの方は置いておいて。開発環境を作りましょう。
言うほどやる事は無いですが。

開発環境としては、選択肢は2つ。

- Arduino IDEをスタンドアロンでインストールするか
- WebEditor というクラウド上のIDEを使用するか

オフライン環境でも使えるのでIDEもインストールしておいて良いと思いますが、
最初はWebEditorを使うのが良いと思います。理由は後述。

#### というわけで環境を作ります。
いうても大してやる事は無いんですが。

1. ブラウザで [Arduino Editor](https://create.arduino.cc/) にアクセスします。<br>ブラウザはChromeが推奨されてるので、それで。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/16cde3d8-4f02-4bea-151d-ea6f2785bf40.png" width="70%">

1. 左上の**Web Editor**を開きます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/3af8218a-77ab-935e-8894-94bbf0b5d0cd.png" width="70%">
黄色い枠で何かプラグイン入れろって言ってますね。入れましょう。<br>WebEditorからUSB経由で基板に転送するために必要なやつです。<br>インストールの詳細は省きます。

1. プラグインのインストールが完了すると、USBで接続しているボードがエディタに認識されます。<br>とりあえずこれで準備完了。簡単ですね。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/5cf19cd4-338d-8225-d5bb-f1fc037a6f7a.png" width="70%">

## サンプルを動かしてみる。その１
さっそく試してみましょう。

1. 左のExampleリストから**Blink**をクリックします
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/2b5175ab-f63a-7111-ffc1-b843dcddcddd.png" width="70%">
1. サンプルプログラムが読み込まれました
![edit3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/e089e8eb-3336-467a-8332-1b97e486e6e4.png)

1. ボードに転送してみましょう
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/1bcbd361-5b3b-9b3e-e72e-2c3ca393fbc0.png"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/206827ed-cd0e-2c9e-9f32-bc216d0a73a1.png">

1. ボードを見るとLEDが点滅しています。このLEDをBlink(点滅)させるプログラムでした。
![IMG_9498.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/ddfc4de3-e518-2dd0-f423-7dbe230454cf.gif)

## サンプルを動かしてみる。その２
さすがにこれじゃ面白くない、次だ。

1. 次は**Fade**を読み込んでみましょう。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/f0d9e365-25c6-27b3-48cb-a6e80a882b0e.png" width="70%">

1. タブが4つに増えてますね。<br>これが回路図と配線レイアウト図になってます。<br>WebEditorを勧める理由がこれで、スタンドアロンIDEだと見れないんですよね。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/949ba3a3-f835-cdac-66c0-9a0c8e2241e6.png" width="48%"> <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/7e715b3c-1190-72c7-5161-ac3f3e4d7ebe.png" width="48%">

1. というわけで配線してみましょう
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/3c9a96da-73e8-4302-a229-f0663ef6ae90.jpeg" width="80%">

1. これをボードに転送すると・・・<br>LEDが**Fade**してますね
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/590344/0e43573b-0645-aed1-c0f7-a67ae97f3ab4.gif">

## まとめ
こんな感じで電子回路の工作を制御プログラミングが試せます。
キットにはモーターとかジョイスティック、簡単なディスプレイなんかも付属してるので色々やっていこうと思います。

配線レイアウトに不要な線が描いてあったりするし、
LEDとかのダイオードには向きがあるとかブレッドボードの使い方とかのごく基本的な知識は別で身に着ける必要はありますが、
ソフトウェアの開発しかしたこと無い人がハードウェア制御とか回路設計方面の勉強する入口に良いと思います。