文系エンジニアがIoTおもちゃを始める第一歩

Tech-Circle Hands on Advent Calendar 2016の20日目です。
19日目はgaricchiさんの[対話システムに使える(かもしれない)音声情報処理入門](http://qiita.com/garicchi/items/4871d4dc1e9724871f03)でした。

# IoTおもちゃから初めてみよう！

IoTという言葉が世間に溢れ出してかなりの月日が経ちました。
私も、何か作ってみたいと思いはじめたのはよいですが、
**何から始めればいいのか、、**ということに悩みました。

そんなわけで、IoTっぽいものをやってみたいけど、
何から始めればいいかわからない。という方が
楽しく学べる方法を、実体験をもとに書いてみます！

はじめて、をテーマにしているため、入門キットや扱いやすいアイテムを中心に紹介します。



# 想定読者

* IoTなるものをやってみたいけどなんか難しそう
* 何か作って動かしてみたいけど電子回路とかよくわからない

# Arduino UNO

![DSC_1290.jpg](https://qiita-image-store.s3.amazonaws.com/0/60109/44461c1d-a7f1-2df7-5e54-5232ec074ea6.jpeg)


簡単なプログラミングだけで、LEDを光らせたり、スイッチを押して音を鳴らしたり、センサーデータを画面表示したりできます。
導入部分の所要時間は、**3時間**ほど。
平日の夜、休みの日で、動くものを作れるお手軽さは入門に最適です。

## メリット

* 簡単すぐに、センサーやLEDなどを動作するものを作ることができる
* 安価な電子部品(100円前後）を扱いやすい

## デメリット
* BluetoothやWiFiなど通信を行おうとすると、敷居が高い

## 予算の目安

始めるにあたって揃えると捗るものを記載します。

* Arduinoをはじめようキット ￥ 4,320（スイッチサイエンス）

Arduino本体と、PCに接続するためのUSBケーブル、LED、照度センサー、スイッチ、ブレッドボードなど、入門に必要なキットが一通り揃っています。

* Arduinoをはじめよう 第3版 (Make:PROJECTS) 単行本（ソフトカバー） ￥2,160 （スイッチサイエンス）

照度センサーのデータを表示したり、スイッチを押すとLEDが光る仕組みなどを順序を追ってわかりやすく説明されている良書です。

スイッチを押すとLEDが光るおもちゃ。これは、上記の入門セットのサンプル通りに作るだけでできます。
![DSC_0476.jpg](https://qiita-image-store.s3.amazonaws.com/0/60109/28d0913c-cd39-d781-b7ce-33e391fa2310.jpeg)




## さらに楽しむために

* 圧電スピーカー ¥50～

スピーカーを接続し、Arduinoのtone関数をつかうことで、音を鳴らすこともできます。

ボタンを押すとドラクエのレベルアップ音が鳴るおもちゃ。奥の赤いボタンを押すと、レベルアップします。**作成時間の9割は、レベルアップ音をいかに再現するか**でした。
![DSC_0530.jpg](https://qiita-image-store.s3.amazonaws.com/0/60109/645cbdfa-7d5a-35c1-04c1-4659cf03d614.jpeg)


[参考）第19回 Arduinoでパーツやセンサーを使ってみよう～スピーカー編(その１)](http://deviceplus.jp/hobby/entry019/)


* 圧力センサー ￥400前後

利用方法は、「Arduinoをはじめよう」の照度センサーを圧力センサーに入れ替えるだけ。指で押した圧力が数値化されます。物が上にのったら反応するおもちゃが作れそうですね。

* [ESP-WROOM-02開発ボード ￥2,500](https://www.switch-science.com/catalog/2652/)

Wi-Fiに接続するならESP-WROOMが、qiitaにも情報が多く
おすすめです。


[参考）「Arduinoが無線で接続できたらいいのに…」と思っている方へ](http://qiita.com/AquaLamp/items/f127ca59574da4fca9d8)


## まとめ
センサーやLEDの制御をさっくり学ぶには、Arduinoは手ごろな値段でとても楽しめるアイテムです！後述するRaspberry PiのほうがIoTでは有名ですが、まずはArduinoから触ってみるのはいかがでしょうか？


# Raspberry Pi

![DSC_1041.jpg](https://qiita-image-store.s3.amazonaws.com/0/60109/44354810-990f-b7ab-035c-d73d0bfd1b2f.jpeg)


![DSC_1139.jpg](https://qiita-image-store.s3.amazonaws.com/0/60109/f26dd429-9ee0-68a2-a469-e04e526257db.jpeg)


Raspberry Piを三行で説明すると

* ざっくりした表現をするとLinuxサーバに電子回路制御機能を付けたもの
* だいたいのPC用品をそのまま使える（Wi-Fi、Bluetooth、USBキーボード、USBマウス、etc）
* **IoTに挫折した場合も、省電力な自宅サーバとして流用可能**

IoT機器としては、Raspberry Piが最も有名です。


## メリット
* Python、Ruby、Node.jsなど好きな言語で実装できる
* Bluetoothでデータを送信する機器も活用できる

## デメリット
* 電子回路の制御は直観的でなく、Arduinoと比べて難易度高め。
* 中身はLinuxなので、Linuxを触ったことのない人には敷居が高め

## 予算の目安

Raspberry Pi自体の値段は5000円ほどです。PCの機器がそのまま流用できるため、新規購入するものによって大きく値段が変わります。

* Raspberry Pi 3 Model B ￥5,000前後

使い始めるために必須となるものは以下です。

* USBキーボード
* USBマウス
* HDMIケーブル　＋　HDMI対応テレビorディスプレイ
* MicroSDカード(8GB以上推奨）
* microUSB電源ケーブル（Raspberry Pi3では2.5Aが推奨…）

Raspberry Pi 2を買った場合、以下が追加で必要になる場合があります
* （無線LAN子機）
* Bluetoothドングル

また、Raspberry Pi Zeroは、他モデルと端子が異なるため、購入時には注意してください。


## さらに楽しめるもの

Raspberry Piですが、アナログ入力がないため、すぐに利用できる電子部品は少ないです。そのかわり、Bluetoothを使ったセンサーなどが活用しやすいです。

### GPIOを使ったもの

* 人感センサー ￥500前後

人の体温の動きに反応して、信号を送る仕組みになっています。
Raspberry PiのGPIOから直接利用できます。

人感センサーで、人に反応して青色のLEDが光るおもちゃ
![DSC_0858.jpg](https://qiita-image-store.s3.amazonaws.com/0/60109/acf91901-291d-c810-5b81-eb51f7ff9cfb.jpeg)



* 超音波距離センサー ￥400前後

超音波を送信し、跳ね返って受信した時間から、距離を測定することができます。こちらも、Raspberry PiのGPIOから利用できますが、音速を元にした計算が必要です。

目の前のモノとの距離を測定するおもちゃ
![DSC_1020.jpg](https://qiita-image-store.s3.amazonaws.com/0/60109/bd9dcec7-945b-b5d0-535b-2887f1840eb7.jpeg)


### Bluetoothを使ったもの

* SimpleLink SensorTag　￥3,480
http://www.tij.co.jp/tool/jp/cc2650stk

![DSC_0758.jpg](https://qiita-image-store.s3.amazonaws.com/0/60109/3717d547-8744-36b1-d661-99d9ab188883.jpeg)


小さな機械の中に、10種類のセンサーが搭載されています。Raspberry PiとはBluetoothで接続します。クラウドに送付するためのサンプルコードも充実しています。また、スマホアプリから直接データを受信することも可能ですので、センサーデータ取得の入門には最適のアイテムです。


## まとめ

Raspberry PiをIoTとして利用するのは、最初はとっつきにくいかもしれません。しかし、ネットワーク通信がしやすく、各言語でGPIOという電子回路制御ができたり、Raspbian（Raspberry PiのOS）にはNode-REDなどのツールがインストールされているため、慣れると自由度は高いです。

Raspberry Piは、省電力サーバや子供向けPCのように、IoT以外の用途にも遊べます。以下、RaspberryPiについてまとめた資料です。合わせてご参照いただけると幸いです。

[いまさら聞けないRaspberry Pi~話題のRaspberry Piをはじめるために～](https://docs.com/user651726/6868/raspberry-pi-raspberry-pi)


---

Tech-Circle Hands on Advent Calendar 2016の21日目はenterprise1024さんの[The second step to become a Divine-Excelist](http://qiita.com/enterprise1024/items/a31bf877edd0f8e34848)です。