タッチセンサ（Grove）をArduinoで使ってみる（ついでにちょっと【Looking Glass】で遊ぶ）

千石通商でタッチセンサを購入しました。
Arduino UNOで使用してみたので記事にしてみます。
ついでに【Looking Glass】というやつを購入したので、タッチセンサつけて遊んでみました。
・GROVEのタッチセンサ
https://www.seeedstudio.com/Grove-Touch-Sensor-p-747.html
<img width=40% src=https://qiita-image-store.s3.amazonaws.com/0/184089/3711b64c-65f5-5cf8-475c-8238d9e628a6.jpeg>
#目次
１．タッチセンサについて
２．回路の作成
３．Arduinoへの書き込み
４．おまけ（Looking Glassとか）

#１．タッチセンサ
静電容量式のタッチセンサになります。
モジュールに【TTP223】なるICを搭載しており、基板にタッチするとHIGHが出力されます。静電容量の検出回路や閾値の設定が不要になっています、便利ですね。
ちなみに基板は表裏両面ともタッチの検出が可能になっているようです。
<img width=50% src=https://qiita-image-store.s3.amazonaws.com/0/184089/d7dc951e-9bf3-bb96-ba0f-6340568fc57a.jpeg>

#２．回路の作成
回路の作成です。
コネクタをつなぎます。ケーブルは黒がGND、赤がVcc、黄色が出力です。白は空きなのでしょうか、つなぐ必要はなさそうです。
GND⇒Arduino UNO_GND Pin
Vcc⇒Arduino UNO_5V Pin
出力⇒Arduino UNO_2 Pin
に接続しました。
<img width=40% src=https://qiita-image-store.s3.amazonaws.com/0/184089/0d0c1337-dc45-e3ba-8396-b142d98121f2.jpeg>

#３．Arduinoへの書き込み
以下のようにArduinoのスケッチに書き込んでみました。

```arduino:TouchTest.ino
#define TouchPin 2
#define LedPin 13

void setup() {
    pinMode(TouchPin, INPUT);
    pinMode(LedPin,OUTPUT);
}

void loop() {
	delay(10);
    int sensorRValue = digitalRead(TouchPin);
    if(sensorRValue==1)
    {
        digitalWrite(LedPin,HIGH);
    }
    else
    {
        digitalWrite(LedPin,LOW);
    }
}
```
実際にタッチしてみます。タッチするとLEDが光るので検出できているのがわかります。
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">groveのタッチセンサをarduinoで。左下のタッチセンサを指で触るとledが光る。 <a href="https://t.co/dfC4AzeuOa">pic.twitter.com/dfC4AzeuOa</a></p>&mdash; いっちー (@get_itchy_feet) <a href="https://twitter.com/get_itchy_feet/status/1084698939222253570?ref_src=twsrc%5Etfw">2019年1月14日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#４．おまけ（Looking Glassとか）
【Looking Glass】を購入しましたので、タッチセンサで遊んでみました。
<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">Looking Glassとセンサを組み合わせてみる、側面にタッチセンサ。<br>側面たたくとおっぱいが揺れるみたいなコンテンツしか思い浮かばなかったが…（モデルはImagine Girlsのお借りして）<br>重いことや箱になっていること画面を遮られないことを考えると側面しか空いてないのかな? <a href="https://t.co/IzJqtWsze3">pic.twitter.com/IzJqtWsze3</a></p>&mdash; いっちー (@get_itchy_feet) <a href="https://twitter.com/get_itchy_feet/status/1084799437765980160?ref_src=twsrc%5Etfw">2019年1月14日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

作ったアプリです。【Looking Glass】の側面をたたくと箱の中のおっぱいが揺れるというものです。
すこしエロいコンテンツになってしまいましたが、やる気を出すためなのであまりお気になさらず。
<font color="DeepSkyBlue">ⅰ．【Looking Glass】とは</font>
裸眼でも立体画像が見れるという優れものです。
<img width=40% src=https://qiita-image-store.s3.amazonaws.com/0/184089/73bddde4-1962-29e3-e409-bcdc56e2aadf.png>
https://lookingglassfactory.com/

<font color="DeepSkyBlue">ⅱ．ちょっと作り方</font>
タッチセンサは側面につけてみます。両方の側面につけてます。
タッチできる部分が小さいのでアルミテープで拡張してます。
アルミ片側をタッチセンサの検出部に張り付けることでアルミテープ全体をタッチの検出範囲とできます。
<img width=30% src=https://qiita-image-store.s3.amazonaws.com/0/184089/28f17b9c-8737-8455-a20b-570545e449e0.jpeg>
【Unity】でアプリを作ります。Arduinoと通信することでタッチセンサと連動できます。
<img width=40% src=https://qiita-image-store.s3.amazonaws.com/0/184089/18201455-013f-71fc-ed48-73b4ad8ad8f4.png>
ちなみに【Unity】は趣味でやる分には無料です。
【Looking Glass】でのUnityの使い方はここのサイトが詳しいので参考にしました。
http://tks-yoshinaga.hatenablog.com/entry/looking-glass
UnityとArduinoのつなぎ方はここを参考にしてみました。
http://tips.hecomi.com/entry/2014/07/28/023525

<font color="DeepSkyBlue">ⅲ．ちょっと考察</font>
ちょっと思ったところをだらだらメモします。
【Looking Glass】とセンサと連携して何かできないかと考えてみるため、タッチセンサをつけてみました。
さらにこれでセンサを配置するのに適した場所を考察できるのではないかと考えました。
結果ですがセンサの配置には側面が良いと感じました。
上面や前面は入力時に視界の妨げになるかも、下面はスペースが狭く、タッチしにくいです。
実際に側面につけてみましたが、タッチしやすかったのです。まずはこの辺りがジェスチャとかを検出するセンサを設置するのにちょうどよいのではないかと思いました。

【Looking Glass】は【Leap Motion】を使って空間でのジェスチャ入力ができますが、【Leap Motion】は複雑なジェスチャ操作を検出できてしまう分どのようなジェスチャ操作が良いのか考えるのは難しくなりそうな気がします。
タッチ操作もジェスチャ操作の一種であり、かつ一種類しか操作がない分考察は楽になります。

以上がタッチセンサをつけた結果です。
ただ、【Looking Glass】は重いし周囲が箱で囲まれているのでセンサ類（カメラ除く）とは相性が悪そうです。さらに立体視を生かせるコンテンツの工夫も必要です。
そうすると顔を動かすようなコンテンツが良いような・・・。
うーん結局考えがまとまりそうにないなぁ。