忍者ブログ

nyaruratoの製作記録

フィギュアやプラモデルについてもそもそと語っていきます。 最近は電子工作・ゲーム製作に興味アリ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ブログ移ります

プログラミングすることが増えてきて、こっちだとソースコード貼っつけたりするの面倒臭かったり見難かったりするのではてなブログの方に移ります。

新しいブログはこっち。
http://nyarurato.hatenablog.com/

拍手[0回]

PR

necomimiをUnityで使う

追記:<注意>内部でどういう処理がされてるか分からない以上、出てくるデータが脳波とは言いきれません。2014.7.18

動いたのでとりあえずのまとめ。

http://developer.neurosky.com/docs/doku.php?id=using_thinkgear_with_unity
ここのUnity3D Package, available hereと書いてあるところからダウンロード。
どうやらIntroductionから下は古いっぽいので読まなくてもいいと思います。
unity3d packageをプロジェクトに突っ込んでその中にあるreadmeを読んだほうがいいと思います。

前提条件としてThinkGear Conectorが必要です。起動もしておいてください。

使い方ですが
1.NeuroSkyAssets>NeuroSkyTGCController
の中にあるNeuroSkyTGCControllerのprefabをHierarchyにつっこむ。
2.NeuroSkyAssets>NeuroSkyScripts
の中にあるDisplayDataをカメラにあてる。

このままだとDisplayDataのスクリプトのテクスチャがないとかでエラーがでると思うので、DisplayDataをあてたカメラのInspectorビューのDisplaydataのところのSignal IconsをSizeを5、Elementを上から緑、赤、黄1、黄2、黄3とします。


この状態で再生して数値とかが出ていればokです。
対象のコンピューターによって拒否されたため、接続できませんでした。と出たらThinkGear  Conectorのつけ忘れだと思います。

最初の状態ではPoorSignal,Attention,Meditation,Deltaしか表示されていないです。
変更や増やしたい場合、例えばLowgammaの値を取りたい場合は、


public class DisplayData : MonoBehaviour
{
   .
   .
   .

  private float lowgamma;
  void Start(){
   .
   .
   .
 controller.UpdateLowGammaEvent += OnUpdateLowGamma;
  }

   .
   .
   .

  void OnUpdateLowGamma(float value){
   lowgamma = value;
  }
void OnGUI()
{
.
.
.
GUILayout.Label("LowGamma:" + lowgamma);


}
}




としてやれば表示されると思います。(とりあえず追加箇所だけ)

ただ、僕の場合遅くなったり(2,3fps)することがよくありました。
多くの場合がnecomimiがThinkGear Conectorと繋がっていないことによって起きていたような気がするのですが、繋がっている時も遅かったような気がするのでよくわかりません。
あとJsonExceptionがよく出てきて全然数値が取れませんでした。

いろいろと試していてどうやらTGConnectionController.csのParseData()が原因っぽいなと分かりました。

別のスレッドで処理すれば遅くなるのを回避できるのではと思ったのでやってみたらできました。
JsonExceptionもなぜか減りました(無くなってはない)


.
.
.
using System.Threading;

public class TGCConnectionController : MonoBehaviour {
.
.
.
private Thread th;

void Start () {
th = new Thread(parse_call);
Connect();
}

public void Disconnect(){
//if(IsInvoking("ParseData")){
//CancelInvoke("ParseData");
th.Abort();
stream.Close();
//}
}

public void Connect(){
//if(!IsInvoking("ParseData")){
.
.
.
//InvokeRepeating("ParseData",0.1f,0.02f);
//StartCoroutine(parse());
th.Start();

//}
}

void parse_call(){
while(true){
ParseData();
}
}
.
.
.
}




Threadを使うのは初めてでむちゃくちゃな使い方かもですが一応動いたのでその報告。
もっと良いやり方あったら教えて下さい。

拍手[0回]

necomimiを改造して脳波データを取り出した

追記:<注意>内部でどういう処理がされてるか分からない以上、出てくるデータが脳波とは言いきれません。2014.7.18

脳波を取るデバイスは高い・・・
こんなのとか・・・



普通に1万しちゃうので半額、半額以下で買えるnecomimiをつかって脳波を取りたいと思います。
内部で使われている基板は上のデバイスと一緒だと思います。たぶん





・とりあえずnecomimiからデータを取るまでにあったことをまとめてみました。


最初、ヤフオクで耳が欠けてる中古のnecomimiを買いました。
1200円。安い。


使ってみるとずっと同じ動きしかしない・・・・
大丈夫か・・・?と思いつつ分解。


フタのシールを剥がす。
かなり強力でシールはがしスプレーを使って剥がしました。


はがすとネジ穴が出てくるので分解。


基板。
上に載ってる基板が脳波を取ってる基板らしい。
http://www.switch-science.com/catalog/978/
この基板。5000円・・・。
ちなみに下の基板は3.3Vを作ってる基板らしい。


http://doc.switch-science.com/datasheets/TGAM1_pin.pdf
ここを参考に信号を引っ張りだす。
Txから信号が出てるのでTxの部分にハンダ付け。(Tx:送信機、Rx:受信機の意味)


TxやRxのあるところからGNDをとってもいいのですが僕は電池のところからGNDをとりました。
電池の-のところにハンダ付け。


ケーブルを外に出すために耳の電極のケーブルが通る穴をヤスリで拡張。

necomimiの信号が出てる線をarduinoのTxに、necomimiのGNDの線をarduinoのGNDにつなぎます。
arduinoから脳波データを読むには
https://github.com/kitschpatrol/Brain
このライブラリをお借りしました。
インストールはINSTALLATIONに書いてある通りzipをダウンロードして、スケッチ --> ライブラリをインストール...をしたような気がします。

インストールしたら、ファイル-->スケッチブック-->libraries-->Brain-->BrainSerialTestを選びます。setup()の中に書いてあるSerial.begin(9600);をSerial.begin(57600);に書き換え実行し、ツールのシリアルモニタで57600に合わせて見てやればどんな値が出ているか見れると思います。

どんな値が出ていたかメモもスクショもしておらず覚えてないのですが、たしか信号の質を示すpoor signalが0になっていなかったと思います。

poor signalが0になっていないと集中と瞑想状態を示すAttentionとMeditationが出てきません。
原因はPCの電源のノイズにあるようです。こちらの動画ではフォトカプラを用いてpoor signalを0にしているようです。

僕もいくつかフォトカプラを買って試してみたのですがイマイチうまくいかない・・・。
安いフォトカプラだとこのような57600bpsの信号には使えないっぽい。かといって高いフォトカプラの回路が単純なフォトカプラの回路と違ってどう繋いでやればいいかわからない。



~ここで数ヶ月積む。~



のびっこさん(@nobikko)の登場によりnecomimi改造再開。
http://nobikko-nobinobi.hatenablog.com/entry/2014/06/18/044104
http://nobikko-nobinobi.hatenablog.com/entry/2014/06/20/233438
こちらのページを参考にしまくりました。

とりあえずフォトカプラを使う方法は諦め、Bluetooth化することにしました。

秋月でBluetoothモジュールを注文。
http://akizukidenshi.com/catalog/g/gK-07378/
2400円。

のびっこさんのブログと秋月のデータシートを参考にBluetoothモジュールの設定をしました。

Bluetoothモジュールに3.3Vの電源を供給したいのでnecomimiのTxやRxがあるところのVのところにケーブルをはんだづけして引張り出しておきます。

Bluetoothモジュールと引っ張りだしたケーブルとを繋ぎます。
繋ぎ方はこんなかんじで。
 

この状態でnecomimiの電源を入れるとBluetoothモジュールのLEDも光ります。
この時に、necomimi本体の電源を入れてサーボがすこしだけ動いて電源が切れるといったことがありましたが電池を新しいものに変えたら直りました。

このあとPCにBluetoothドングルをさして、ペアリングして、シリアルポートのインストールをしました。(PCによって違う?)

arduinoとつないでいた時のライブラリはもう使えないので
http://d.hatena.ne.jp/nishiohirokazu/20130819/1376891440
こちらを参考に色々と環境を揃えます。
Pythonはもう入っていたのでeasy_install、pip、pyserialをインストールしました。
上記のページのPythonのコードをそのままお借りしました。
ポートの表記をwindows用に変えなきゃいけないとのことだったので変えました(PORT = '\\\\.\\COM5')
どうやらシリアルポートの表記は\\\.\\COMxらしい(いい参考が見つからなかったhttp://support.microsoft.com/kb/115831/ja

とりあえずこれで実行してみると----------------------完--------------------------


とはならず。次は新品買いました。
もうケーブルを切るヘマはしないためにカバーを開けて基板のネジを外すことなくそのままハンダ付け。
http://www.kako.com/neta/2013-019/2013-019.html
こちらの方がされているような感じでハンダ付け。

これでどや。(´;ω;`)
でも付けて位置を色々とずらしたりしてぼーっとしているとおっ?
最初は安定しなかったものの、途中からは安定するようになりました。

でも安定したり、しなかったりは結構バラバラ。

とりあえず0が連続して出るようになったのでこれで完成。



次にビジュアライザーのアプリを動かしました。
http://store.neurosky.com/products/visualizer-2-0%20
からダウンロードしてインストール。
ThinkGear Connectorもたぶん一緒にインストールされる?ので、ThinkGear Connectorを立ち上げ設定からStarting portを自分の使ってるポートにしてビジュアライザーを起動してやるとこんな感じでできました。



*おまけ

猫耳部分のサーボを取り出します。

サーボの土台?部分はまた強力なシールでネジ穴が隠されているのでシールを剥がします。
ノリ部分が残るのでシール剥がしスプレーで除去。


ネジを外すとこんな感じ。
中央のネジを外すとサーボは外れます。
ケーブルは繋がったままです。豪快にちょん切ってもいいのですが、丁寧に外すことにしました。

まず基板からサーボのコネクタを外します。


ネジを外します。


こんな感じで外れます。ケーブルは細長い部分の溝を通ってるのでそのまま外してやればオッケーです。


取りだしたサーボ。
GWSのMIcroみたいなちっこいサーボでした。

おしまい。


参考:
http://junkroom2cyberrobotics.blogspot.jp/2013/06/necomimi.html
http://ch.nicovideo.jp/wolf64m/blomaga/ar409633
http://hizwarp.net/archives/386

拍手[3回]

Androidゲー量産計画2本目

できました。

ふるふるコーラ

https://play.google.com/store/apps/details?id=net.nyarurato.huruhurucola

数十年前のミニゲームかな???

スマホをふりふりしてその回数に応じた力がキャップに働きます。
まじめにやると腕が痛くなります。
筋トレにでもどうぞ

拍手[0回]

ユニっちの素材

ドット絵に初挑戦。

ユニティちゃんブログの4コマ漫画UNITY4!
http://unity-chan.com/blog/?p=677
のキャラクターをドット絵で描いてみました。


マンガを再現したのがこれ。

最初は本当に育成ゲームを作ろうとしたのですが積みプロジェクトになりそうだったので素材だけ公開。
使う人がいるかわかりませんが好きに使ってください。(もちろんユニティちゃんライセンス内で、ですが)


 

ユニティちゃんライセンス

このコンテンツは、『ユニティちゃんライセンス』で提供されています


拍手[0回]

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

リンク

最新CM

[07/16 listener]
[07/15 nyarurato]
[07/12 listener]
[12/19 satotaku]

最新TB

プロフィール

HN:
にゃるらと
性別:
男性
自己紹介:
こんにちは。
プラモやフィギュアなどについて書いていくつもりのブログです。
Twitter
https://twitter.com/sakura_metal

バーコード

ブログ内検索

Copyright © nyaruratoの製作記録 : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]