JINS MEMEについての簡単なまとめ

[JINS MEME Advent Calendar 2015](http://qiita.com/advent-calendar/2015/jinsmeme)の記事です。

# JINS MEMEとは

箇条書きで簡単にまとめてみます。

 - 2015年11月5日に発売を開始した「内なる自分を知ることができるウェアラブルメガネ」というコンセプトのメガネ
 - JINS PCを販売するジェイアイエヌ社が、研究者とコラボし開発
 - スマートフォンアプリとbluetoothで連携し、様々な機能を提供
 - デベロッパにもSDKを解放

公式webページ：https://jins-meme.com/ja/

以下のプロダクトビデオ(2分10秒)を見ると、どんなものかイメージつきやすいと思います。

[![About JINS MEME](http://img.youtube.com/vi/HEOCn9go4E0/0.jpg)](https://www.youtube.com/watch?v=HEOCn9go4E0)
# JINS MEMEのラインナップ

JINS MEMEは、現在(2015年12月1日時点、以後同)、ES、MT2つのタイプが発売されています。
こちらのページで比較表を見ることができます。
https://jins-meme.com/ja/collection/compare/

## ES

![model_es.png](https://qiita-image-store.s3.amazonaws.com/0/46489/32700424-9b96-4a0b-9211-e35e478927de.png)
<font size="3">画像: [JINS MEME比較表ページ](https://jins-meme.com/ja/collection/compare/)より</font>

1番の特徴は、3点式眼電位センサーが搭載されていること。

### 3点式眼電位センサーとは
眼電位は、角膜側に流れる電荷（正）と網膜側に流れる電荷（負）の電位差のこと。眼球が動くことで発生した電位を、鼻あてとブリッジの部分に搭載されているセンサーで検出し、目線の移動量や瞬きを検出します。

### 3軸加速度センサー, 3軸ジャイロセンサー

MTと共通なので以下で説明します。

## MT

![model_mt.png](https://qiita-image-store.s3.amazonaws.com/0/46489/74e77954-ce32-058f-0570-4e3453a92e48.png)
<font size="3">画像: [JINS MEME比較表ページ](https://jins-meme.com/ja/collection/compare/)より</font>

これはサングラスになっていて度は入れられないようです。ということで野外やスポーツ用途な感じですね。機能的にはESから眼電位センサーを除いただけのようです。

### 3軸加速度センサー, 3軸ジャイロセンサー

加速度センサーは、単位時間当たりの速度変化や、重力加速度を検出する装置で、"動き"一般を検出する場合によく使われます。3軸ということなので、xyz軸について速度変化量を検出しています。

ジャイロセンサーは、単位時間当たりの回転量を検出する装置です。なので、例えば加速度がめっちゃ小さくてもこれを使えば頭がxyz軸のどこにどのくらい傾いているか検出することができます。

参考：
http://ednjapan.com/edn/articles/1406/09/news014.html
http://www.atmarkit.co.jp/fsmart/articles/ios_sensor02/01.html

# JIJS MEMEの公式アプリ

現在、3つのアプリがリリースされています。
<font size="2">※ 以下、[こちらのサイト](http://dotsnest.com/what_is_jinsmeme)より転用</font>

## JINS MEME
センサーで得たデータを独自のアルゴリズムで解析し、集中・活力・落ち着きの3つの指標でマインド（心）の状態を判定します。その他、瞬きや姿勢のトラッキングができるそうです。（[AppStore](https://itunes.apple.com/jp/app/jins-meme-jinzu-mimu-kokorotokaradawo/id1040409600?l=ja&ls=1&mt=8)）

※ ESタイプでのみ利用可

![JINSMEME_app.png](https://qiita-image-store.s3.amazonaws.com/0/46489/fdf9857e-0449-3c50-b3ad-d59ecd94b280.png)

## JINS MEME RUN
正しいランニングフォームで走れているかを測定する「JINS MEME RUN」。加速度センサー、ジャイロセンサーを使って測定しています。（[AppStore](https://itunes.apple.com/jp/app/jins-meme-run-jinzu-mimu-ran/id1040409212?l=ja&ls=1&mt=8)）
※ ES/MT両タイプで利用可

![RUN.png](https://qiita-image-store.s3.amazonaws.com/0/46489/8ffd3244-ca55-8f91-3f1b-618f4328e09a.png)

## JINS MEME DRIVE
安全運転をサポートするアプリ。3点式眼電位センサーで眼球の動きや瞬きを計測して、眠気を検出するそうです。眠くなると目線が下がったり、瞬きが多くなったりすることを利用しているのだと思います。長距離運転をするドライバーさんの居眠り運転帽子によさそうです。（[AppStpre](https://itunes.apple.com/jp/app/jins-meme-drive-jinzu-mimu/id1040409353?l=ja&ls=1&mt=8)）
※ ESタイプでのみ利用可

![DRIVE.png](https://qiita-image-store.s3.amazonaws.com/0/46489/2eb3aa56-df56-d0d8-f14b-1f02c4c99f76.png)

# デベロッパサポート

## ユーザサポート
これは一般のサポートページですが、FAQがかなり充実しています。ここを見ると解決することもあるかもしれません。
https://jins-meme.com/ja/support/user-support/ios/

## デベロッパサイト
以下のデベロッパページに色々と情報がまとまっています。
https://developers.jins.com/ja/

SDKについては、リソースから色々と情報収集できます。SDKのダウンロードもこちらからです。
https://developers.jins.com/ja/resource/docs/startup_guide/ios/
![developerResource.png](https://qiita-image-store.s3.amazonaws.com/0/46489/49c3d10a-667f-2545-92eb-18510d1030e0.png)

リソースの、**"JINS MEMEとアプリの関係"**って部分にしれっと重要なことが書いてあるような...隅々までチェックしておくことをおすすめします。

また、わからないことがあれば[フォーラム](https://developers.jins.com/ja/forums/)で開発者同士質問/回答しあうことができます。

## SDKについて

現在はiosのみSDKが提供されています(Androidも一瞬出ていたような...ただ2016年1月リリースの予定だそう)。

また、公式のJINS MEMEアプリではスタンダードモード使ってアプリを作っているようなのですが、SDKで提供しているのはリアルタイムモードのみになります。
cf.) https://developers.jins.com/ja/forums/sdk/topic/8519/

### リアルタイムモードで取得可能なデータ一覧

気になる、取得可能データはこちらになります。

|  **名前** | **説明** |
|  :------ | :------ |
|  eyeMoveUp | 視線が上に動いたかどうかを示す整数値<br/>0：なし<br/>1：移動検知ー小<br/>2：移動検知ー中<br/>3：逆移動検知ー大<br/>4：逆移動検知ー特大 |
|  eyeMoveDown | 視線が下に動いたかどうかを示す整数値<br/>0：なし<br/>1：移動検知ー小<br/>2：移動検知ー中<br/>3：逆移動検知ー大<br/>4：逆移動検知ー特大 |
|  eyeMoveLeft | 視線が左に動いたかどうかを示す整数値<br/>0：なし<br/>1：移動検知ー小<br/>2：移動検知ー中<br/>3：逆移動検知ー大<br/>4：逆移動検知ー特大 |
|  eyeMoveRight | 視線が右に動いたかどうかを示す整数値<br/>0：なし<br/>1：移動検知ー小<br/>2：移動検知ー中<br/>3：逆移動検知ー大<br/>4：逆移動検知ー特大 |
|  blinkSpeed | まばたきのスピード（Millisecond） |
|  blinkStrength | まばたきの強さ (一般的に、50～200の間におさまります。) |
|  walking | かかとを地面についたかどうか。それを検出するとtrueになる |
|  roll | 姿勢を表す角度のうちのロール要素を示す度 |
|  pitch | 姿勢を表す角度のうちのピッチ要素を示す度 |
|  yaw | 姿勢を表す角度のうちのヨー要素を示す度 |
|  accX | 加速度のX軸の値。-128 ~ 127 の1byteの整数値 |
|  accY | 加速度のY軸の値。-128 ~ 127 の1byteの整数値 |
|  accZ | 加速度のZ軸の値。-128 ~ 127 の1byteの整数値 |
|  fitError | JINS MEMEがきちんと装着されているかどうかを示す整数値。<br/>0：エラーなし<br/>1：左鼻パッドエラー<br/>2：右鼻パッドエラー<br/>3：ブリッジエラー |
|  powerLeft | 電池残量を表す整数値<br/>0：充電中<br/>1：低電圧<br/>2：Lv2<br/>3：Lv3 <br/>4：Lv4<br/>5：満充電 |

それほど多くはない印象です。これを駆使すれば、公式アプリのような凄いやつが作れるのか否か！それはこれからのお楽しみということで。

以下、気になった単語の補足です。

#### **roll, pitch, yaw**

いわゆるオイラー角のx,y,z軸の動きに相当していて、頭を中心にして、どこに何度傾いたかを検知できるようです。

![roll,pitch,yaw](http://theboredengineers.com/WordPress3/wp-content/uploads/2012/05/PitchRollYaw.png)
<font size="2">画像:[The quadcopter : control the orientation](http://theboredengineers.com/2012/05/the-quadcopter-basics/)より引用</font>

roll: x軸
pitch: y軸
yaw: z軸

また、オイラー角に関しては、こちらのサイトが参考になりそうです。
http://naochang.me/?p=53

この辺は実際に3Dモデル作って検証してみたいですね！

#### **逆移動検知**

とはなんぞや...と思ったら、[フォーラム](https://developers.jins.com/ja/forums/sdk/topic/8533/)に回答がありました。

>視線移動は、眼電位の変化分を見ておりまして、眼球運動の速度に比例した値から計測しております。
(速度が大きい、小さいというものを判定しております)
逆移動検知は、例えば、**「まず右を見てから、その後そのまま左を見る」などの眼球運動のケースを想定した検知**です。

とのこと。専門用語ではサッケード?というらしいですね。

サッケードについて参考になりそうなサイト: 
http://www.megane-isshindo.jp/EyeMovement/Eyemovement.html

## ということで
簡単なコピペ記事で大変恐縮ですが、とりあえずのイントロダクション的な記事でした。
2015年Advent Calendar2日目以降もこうご期待！