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

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


#ref(vine01.jpg,right,around,20%)
6秒動画アプリのVine。

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

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

~

完成品の動画。
#vine(iOHwrpnBuB7)

*きっかけ
#twitter(https://twitter.com/GOROman/status/686908037232078848)
#twitter(https://twitter.com/cubic9com/status/686917340970135552)
#twitter(https://twitter.com/GOROman/status/686917558176321540)
#twitter(https://twitter.com/GOROman/status/687640519552274432)

~

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

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

*実装方法検討
Vineの撮影を開始するにはスマホの画面をタップする必要がある。

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

~

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

~

**噛み締め検出方法の検討
#amazon(B003G8R94S)
思いついた奥歯の噛み締め検出の候補は3つ。
+マウスピースにタクトスイッチを埋め込み、物理的な噛み締めを検出する。
+奥歯を噛み締めるとこめかみの筋電位が上がる。それを筋電位センサーで取得し、しきい値を超えたら噛み締めていると検出する。
+奥歯をかみ締めるとこめかみが隆起する。それを圧力センサーで取得し、しきい値を超えたら噛み締めていると検出する。

~

1は感電が怖い。~
2は国内で手に入る[[SparkFunのマッスルセンサーV3>https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4RL6]]や[[Seeed StudioのGrove-EMG検出器>https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4JWS]]は結構高価なので見送り。~
3は感電の心配もなく、安価にできそうなのでこちらを採用することとした。

#clear

**センサー+マイコンからスマホに通信する方法の検討
#amazon(B00PI7MDK0)
有線と無線であれば当然無線の方が便利。

~

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

思いついたのは次の4つ。
+市販のBluetoothマウスのスイッチをArduinoから制御する。
+マウスに擬態したArduinoを[[Bit Trade OneのUSB HID Bluetooth変換アダプタキット(USB2BT)>http://www.amazon.co.jp/exec/obidos/ASIN/B00PI7MDK0/cubic9com-22]]
でBluetooth化する。
+Arduinoに[[USBホストシールド>http://www.amazon.co.jp/exec/obidos/ASIN/B007YNG6RW/cubic9com-22]]+[[Bluetoothドングル>http://www.amazon.co.jp/exec/obidos/ASIN/B0071TE1G2/cubic9com-22]]を接続する。
+[[ROBOBA005>http://www.amazon.co.jp/exec/obidos/ASIN/B005LSOUNE/cubic9com-22]]などのモジュールを接続する。


~

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

~

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



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


*必要なもの
**ハードウェア
#amazon(B019ME9LTU)
#amazon(B00I2HEOQE)
#amazon(B00AFY2S56)
#amazon(B003G8R94S)

|項目|説明|h
|[[浅草ギ研 感圧センサー AS-FS>http://www.amazon.co.jp/exec/obidos/ASIN/B003G8R94S/cubic9com-22]]|荷重を電圧値に変換する電圧変化型のセンサー。|
|[[Arduino Leonardo>http://www.amazon.co.jp/exec/obidos/ASIN/B008A36R2Y/cubic9com-22]]や[[Arduino Micro>http://www.amazon.co.jp/exec/obidos/ASIN/B00AFY2S56/cubic9com-22]]のようなATmega32U4搭載Arduino|今回は[[SparkFunのArduino互換ボードPro Micro 5V/16MHz>http://www.amazon.co.jp/exec/obidos/ASIN/B00RBEOOMI/cubic9com-22]]の[[中国製コピー品>http://www.aliexpress.com/item/Mini-Leonardo-Pro-Micro-ATmega32U4-5V-16MHz-Module-For-Arduino-Best-Quality/32284746884.html]]を使用。&br;HID((Human Interface Device))にするためArduino UnoなどのATmega328P搭載Arduinoでは不可なことに注意。|
|AndroidまでのOTGケーブル|なんでもよい。今回は[[ドロイド君型OTGアダプタ>http://www.amazon.co.jp/exec/obidos/ASIN/B00I2HEOQE/cubic9com-22]]と[[極小OTGアダプタ>http://www.amazon.co.jp/exec/obidos/ASIN/B019ME9LTU/cubic9com-22]]を組み合わせて使用。&br;[[SSA SU2-MCH10MR>http://www.amazon.co.jp/exec/obidos/ASIN/B00L8X1CAU/cubic9com-22]]などの方がスマートかも。|
|導線|なんでもよい。[[3芯のロボットケーブル>https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=5ACZ-MNKM#]]などを使うとスマートに仕上がる。|
|ヘッドバンド|なんでもよい。今回は[[Nikeのヘッドバンド>http://www.amazon.co.jp/exec/obidos/ASIN/B008C27YL/cubic9com-22]]を使用。|
|スマホ三脚|なんでもよい。今回は[[スマホフレキシブルホルダー>http://www.amazon.co.jp/exec/obidos/ASIN/B015QWA39E/cubic9com-22]]を使用。|
|スマホ三脚|なんでもよい。今回は[[クリップ式 フレキシブルアームホルダー>http://www.amazon.co.jp/exec/obidos/ASIN/B00KZH3K2S/cubic9com-22]]を使用。|

**ソフトウェア
適当に書きました。

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

~

#code(nonumber,shoot_vine_with_each_bite.ino)

~

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

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

~

完成! :)

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

~

完成品の動画。
#vine(iOHwrpnBuB7)

~

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

*Amazon
#amazon(B003G8R94S,left)
#amazon(B00AFY2S56,left)
#amazon(B00I2HEOQE,left)
#amazon(B019ME9LTU,left)
#amazon(B00KZH3K2S,left)
差分 一覧