ジャイロセンサーを使ってみる

Arduinoを使用して ジャイロセンサーから加速度を取得します．

## 環境
* Arduino　　　　　 >>　Arduino Nano
* ジャイロセンサー　 >>　MPU-6050

※今回はArduino IDEを使用します．



## 作業手順
#### 1. Arduino IDE セットアップ
Arduino 公式サイト ( https://iot.keicode.com/arduino/arduino-ide.php ) から IDE をダウンロードする．

「Download the Arduino IDE」のOSに合ったものをクリック
Windows 10のため「Windows app Requires Win 8.1 or 10」
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/15b24ee3-7223-25a4-696a-d75f76baf562.png" width=50%>

ダウンロードは売り上げを寄付する有料版と、無料版から選べます
今回はお試ししたいだけなので無料版(JUST DOWNLOAD)をクリック
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/f7da701b-70b6-daff-7dea-6264dbba3db2.png" width=50%>

アプリダウンロードページに飛ばされるので、「入手」をクリックしてダウンロード
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/eedb3388-5583-fdc5-a665-89dcf3b01a79.png" width=50%>

arduino-X.X.X-windows.exe のようなインストーラーがダウンロードされるため、実行してPCにArduino IDEをインストールする

.

#### 2. サンプルコードの入手
サンプルコードを Arduino drone V2.0 - Full angle + filter ( https://www.electronoobs.com/eng_robotica_tut9_code5.php ) から入手し、IDEで開く．
また、デバイスとライブラリの設定も行う．

「DOWNLOAD」をクリックするとzipファイルがダウンロードされるので、解凍してください
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/c7253dd6-9003-cd87-3f9a-608ebb7e8df6.png" width=50%>

IDEを開いて、ウィンドウ上部にある「ファイル」→「開く...」をクリックします
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/a2dd4981-4d9e-cde7-ba99-7bb8fcd5a493.png" width=50%>

ダウンロードしたサンプルコードを選択し、「開く」をクリック
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/0f0154ee-b236-1a87-251e-4775b6c5fbe3.png" width=50%>

サンプルコードがIDEに出ます
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/f9653fa9-c748-1b01-c500-7e89caf896c6.png" width=50%>

IDEに接続するデバイス(Arduino)の設定をします
ウィンドウ上部の「ツール」→「ボード」、「プロセッサ」の設定をします
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/2b583775-2227-51d3-9e95-1c7865e31117.png" width=50%>

Arduinoでセンサを扱うためのライブラリ(I2Cdevlib)の設定をします
※"I2Cdev.h", "MPU6050.h", "Wire.h"をすでに読み込み(インクルード)済みの人はスキップ
https://github.com/jrowberg/i2cdevlib からzipファイルとしてライブラリをダウンロードし、zipファイルを解凍しておきます
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/fd368108-d7e5-f7cf-b704-a604456c63d0.png" width=50%>

IDEのウィンドウ上部「スケッチ」→「ライブラリをインクルード」→「zipファイル形式のライブラリをインストール」をクリック
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/38af172e-016f-8b2d-54d2-76cd93ae98cb.png" width=50%>

先ほど解凍したフォルダの中にある「I2Cdev」を選択し、「開く」をクリックすると"I2Cdev.h"がインストールされます
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/65fa1ac2-1a80-8d40-8f09-53d7e6f7de04.png" width=50%>

「I2Cdev」と同じ手順で「MPU6050」を開くと、"MPU6050.h"がインストールされる
※私の環境では「C:\Users\user\Downloads\i2cdevlib-master\i2cdevlib-master\Arduino」の下に「I2Cdev」と「MPU6050」がありました

"Wire.h"は「スケッチ」→「ライブラリをインクルード」→「Wire」をクリックするとインストールされます
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/5596feb6-6c41-6eb4-7474-4563d595ca27.png" width=50%>


．

#### 3. 実行
Arduino と ジャイロセンサーから加速度を取得し、結果をシリアルモニタに表示する

Arduino と ジャイロセンサーを下図のように接続する
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/8f9b589e-9948-286b-58f7-cf2069989e82.png" width=60%>
配線メモ
( Arduino側のピン → ジャイロセンサー側のピン )
* 3.3v → VCC
* A4   → SDA
* A5   → SCL
* GND  → GND

ArduinoとPCを接続し、IDEのシリアルポートを設定する
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/d5b53d5e-40f9-f722-32d5-3b16c922feaa.png" width=50%>

IDEのウィンドウ上部にある「→」をクリックし、コードをArduino に書き込む
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/00aba56b-d279-3bd1-a38d-20f0c3f2cea9.png" width=50%>

ウィンドウ上部にある「ツール」→「シリアルモニタ」からシリアルモニタを開く
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/63398be4-5918-d184-75ac-ef4559d2d88e.png" width=50%>

シリアルモニタのbpsをウィンドウ下部で「9600bps」に設定すると実行結果が表示される
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/1beefa99-c153-8513-e7e7-61032acc566e.png" width=50%>

ジャイロセンサーを傾けると表示される値が変わります
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208438/7b6aa90e-c6cc-5370-feff-9d79562b6f47.png" width=50%>


．


## 参考
* [Arduino Software (IDE) のインストールと設定](https://iot.keicode.com/arduino/arduino-ide.php)
* [Arduino IDEインストール方法 – Windows編](https://poche.xsrv.jp/iot-gym/2019/03/01/001/)
* [Arduino drone V2.0 - Full angle + filter](https://www.electronoobs.com/eng_robotica_tut9_code5.php)
* [【MultiWii】その4：I2Cdevlibでセンサーの生データをとる（I2Cdevlibの導入）【Arduino】](https://www.daitai-daidai.com/entry/2018/05/03/155115)
* [GitHub-i2cdevlib](https://github.com/jrowberg/i2cdevlib)