Top/Devel/電子工作/Arduino/奥歯を噛んでいる間だけVineを撮影する装置

奥歯を噛んでいる間だけVineを撮影する装置はてなブックマーク

vine01.jpg

6秒動画アプリのVine。

とても便利なのだけれど、動画を撮るためには画面をタップする必要があり、片手が取られてしまう。

そこで、奥歯を噛んでいる間だけVineを撮影する装置を作ってみます。


完成品の動画。

きっかけ


撮り終わったらアップロードするなど本格的に作るのは大変そうだけど、簡易版なら作れそうだ! :)

さっそく実装方法を検討してみる。

実装方法検討

Vineの撮影を開始するにはスマホの画面をタップする必要がある。

一方でスマホにはOTGアダプタ経由でマウスを接続できる。


つまり、奥歯を噛み締めていることを検出して、マウスをクリックすればよさそう。


噛み締め検出方法の検討

思いついた奥歯の噛み締め検出の候補は3つ。

  1. マウスピースにタクトスイッチを埋め込み、物理的な噛み締めを検出する。
  2. 奥歯を噛み締めるとこめかみの筋電位が上がる。それを筋電位センサーで取得し、しきい値を超えたら噛み締めていると検出する。
  3. 奥歯をかみ締めるとこめかみが隆起する。それを圧力センサーで取得し、しきい値を超えたら噛み締めていると検出する。


1は感電が怖い。
2は国内で手に入るSparkFunのマッスルセンサーV3Seeed StudioのGrove-EMG検出器は結構高価なので見送り。
3は感電の心配もなく、安価にできそうなのでこちらを採用することとした。

センサー+マイコンからスマホに通信する方法の検討

有線と無線であれば当然無線の方が便利。


無線にするのであれば、Bluetoothマウスに擬態するのが良さそう。

思いついたのは次の4つ。

  1. 市販のBluetoothマウスのスイッチをArduinoから制御する。
  2. マウスに擬態したArduinoをBit Trade OneのUSB HID Bluetooth変換アダプタキット(USB2BT) でBluetooth化する。
  3. ArduinoにUSBホストシールド+Bluetoothドングルを接続する。
  4. ROBOBA005などのモジュールを接続する。


でも、いずれも結構高価になってしまう。


ということで、今回は有線にしました。

有線マウスに擬態したArduinoと感圧センサー付きヘッドバンドを使って、奥歯を噛んでいる間だけVineを撮影する装置を作ります。

必要なもの

ハードウェア

項目説明
浅草ギ研 感圧センサー AS-FS荷重を電圧値に変換する電圧変化型のセンサー。
Arduino LeonardoArduino MicroのようなATmega32U4搭載Arduino今回はSparkFunのArduino互換ボードPro Micro 5V/16MHz中国製コピー品を使用。
HID*1にするためArduino UnoなどのATmega328P搭載Arduinoでは不可なことに注意。
AndroidまでのOTGケーブルなんでもよい。今回はドロイド君型OTGアダプタ極小OTGアダプタを組み合わせて使用。
SSA SU2-MCH10MRなどの方がスマートかも。
導線なんでもよい。3芯のロボットケーブルなどを使うとスマートに仕上がる。
ヘッドバンドなんでもよい。今回はNikeのヘッドバンドを使用。
スマホ三脚なんでもよい。今回はスマホフレキシブルホルダーを使用。

ソフトウェア

適当に書きました。

このようにATmega32U4搭載Arduinoなら簡単にマウスに擬態できます。


fileshoot_vine_with_each_bite.ino
#include "Mouse.h"
 
#define THRESHOLD 15
 
int low;
int val;
 
void setup() {
  Mouse.begin();
  delay(1000);
  low = analogRead(A3);
}
 
void loop() {
  val = analogRead(A3);
  if (val < low) {
    low = val;
  }
  if (val > low + THRESHOLD) {
    Mouse.press(MOUSE_LEFT);
  } else {
    Mouse.release(MOUSE_LEFT);    
  }
  delay(200);
}


なお。最低値(low)を更新するようにしているのは、手元の感圧センサーでは、噛み締めていない状態の電圧が時間経過とともに徐々に降下していくためです。

手順

  1. Arduinoに上記スケッチを書き込む。
  2. 次のように接続する。
    感圧センサーのGNDArduinoのGND
    感圧センサーの電源+Arduinoの5V
    感圧センサーの信号線ArduinoのA3
  3. 感圧センサーをヘッドバンドに縫いつける。


完成! :)

使い方

vine07.jpg
head.png
  1. ヘッドバンドを装着する。このときこめかみ前方(奥歯を噛み締めると盛り上がる箇所)に感圧センサーが当たるようにする。
  2. ArduinoをOTGアダプタでスマホに接続する。
  3. Vineを起動し、録画モードにする。
  4. 録画したいタイミングで奥歯を噛み締める。


完成品の動画。


有線ではあるけれど、両手をフリーにするという目的は達することができたので、満足! :)

Amazon

*1 Human Interface Device
差分 一覧