忍者ブログ

nyaruratoの製作記録

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

[PR]

×

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

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回]

PR

ロボットアームを作ってみる。ソフト編

まだロボットアームのソフトは完成していないのですが現時点でわかっていることをまとめておきます。


今回は
Kinect等の入力機器 → Unity → ラズベリーパイ → サーボ
といった感じにします。
Unity、ラズベリーパイ間はUDP通信を使います。
計算はできるだけUnity側で行い、角度、(もしくはパルス長)をラズパイ側に渡すこととします。


・ラズベリーパイ側

サーボの操作ですが、ハード編にてでてきたサーボドライバを使います。

このサーボドライバのチュートリアル(ラズベリーパイ用)とライブラリをサーボドライバの販売会社?が公開しています。
ラズベリーパイ用のライブラリはPythonです。
http://junkroom2cyberrobotics.blogspot.jp/2013/06/raspberry-pi-adafruit-i2c-16-channel.html
こちらをみるとArduinoのライブラリを使えばC++でも扱えるようです。

チュートリアルにそってサンプルプログラムを動かし動作確認をしていくのですが、画像の通りにやっていくと僕の場合うまく行かず焦りました。
画像では15番とサーボをつないでいるのですが、サンプルプログラムを見ると0番を動かすことになっています。
0番にサーボを繋いでサンプルプログラムを動かすとうまくいきました。


・そもそもサーボの信号ってどうなってるのか?と疑問
>PWM方式とは、パルスの周期を一定にしてパルス幅を変える事で目的に合った制御を行うものです。
>サーボモータでは、パルスの幅が回転角に対応するようになっており、パルス幅が狭ければ0°,中位なら90°,広ければ180°と言うような動作をします。


・周期はどうすればいいのだろう
調べてみると、どうやらラジコン用のサーボは60Hzが普通らしい。
ということは周期は16.7msということになる


・サーボの仕様はどうなってるの
http://www.gws.com.tw/english/product/servo/servo%20form.htm
http://www.gws.com.tw/english/product/servo/sat%20form.htm
GWSのホームページのサーボのところを探すと2つ見つけた。
今回どっちを使えばいいかは不明。

サーボの特性がいまいち分からないので一つ一つ少しずつパルス長を変えて動きを確認することにしました。


・Unity側

滑らかに動かすには逆運動学を知らなければならないらしい。
逆運動学とはinverse kinematicsつまりIK。
UnityにIKの機能があったはずなのでそれを利用すれば面倒な計算を使わなくてもできそう。
IKでKinectなどで取った手の位置だけ与えてその時の関節の角度を取り、それをサーボに入力しようと考えた。

IKってどうやってセットアップするのだろう?
ここで挫折中。

今回のロボットアームは3関節のものと見れるので調べれば逆運動学の解が載っている。
http://ameblo.jp/sichi-i/entry-11290091765.html
しかし思ったような動作をしない・・・。



現在ここで停止中。
ラズパイ側のプログラムはできており、後はUnity側の関節の角度を計算する部分が出来上がれば一応は完成となります。

拍手[2回]

ロボットアームを作ってみる。ハード編

NASAがこのような動画をあげています


OculusとKinectをつかってロボットアームを操作している動画です。
このロボットアーム、調べてみると$48,400(500万くらい)もしてひええ~となるわけですが・・・

この動画を見てて思ったのが自分も同じようなことをしてみたいなということでした。
しかし500万もお金があるはずない!他のロボットアーム買おうにも地味に高い!
自作しよう!!

こうしてロボットアーム製作が決定しました。

~~作業前に書いたメモから引用~~
金属加工できたらできたらいいなぁ
できたらいいなぁと言うぐらいならやろう
精度は仕方ない。やることが大切なのでは?
サーボブラケットがいいらしい
どうやら組み合わせるだけでロボットアームが完成しちゃうかも?
アルミの金属加工が必要
厚さは? 1mmでいいのでは
流れは? 設計、紙に印刷、スプレーのりで接着、穴あけ、切断、折り曲げ
切断はどうする? 1mmならカッターでも出来るっぽい。
折り曲げは? 折り曲げ機は自作できるみたい。
穴あけは? ドリルがある。
ネジきりは? するならタップを買わなきゃいけない。
設計は? 一応cadあるしなんとかなるのでは
サーボは何使う?
小さくて軽くて高トルク
しかし高い
考えて要所要所に必要なものを置かなきゃいけない
肩に当たる部分には高トルク(一番負荷かかる
手首はそこまでいらない

~~作業前に書いたメモから引用終わり~~

頭の中のことをそのまま文字に起こしているので自問自答な文章ですが、作る前に考えたのはこんな感じです。

長期間にわたっダラダラと作業するのはモチベーションが保てず自分には向かないので短期間で終わらせるのを目標としました。

・注文
まず最初にサーボを注文しました。
秋月電子で注文。
ネットを見ているとGWSのS03Tの情報が多かったのでS03Tを中心にして作ろうと考えました。
今回使ったのは
S125-1T/2BB 1個(全体の回転用)
S03T/2BBMG 2個(肩、肘用)
S03N/2BBMG 1個(手首用)
MICRO/2BBMG 1個(手の開閉用)



S03Nですが元々持っていたものなので、もし持っていなかったらS03Tを3つ購入にしていたかもしれません。(S03Nよりちょっと長くなっただけでそれなりにトルクがでるから)

サーボの制御ですが、いつも使っているラズベリーパイで行うこととしました。
スイッチサイエンスのサーボドライバを購入。
http://www.switch-science.com/catalog/961/
I2C接続なのでラズベリーパイでも簡単に扱えます。

・設計
設計に入る前にサーボブラケットを作るにしてもサーボの動く軸の反対側(反対軸?逆軸?)はどうしようかという問題があります。さすがに片側だけで支持するというわけにはいきません。
ホームセンターにいっていいものはないかと見ていると組みネジというものを見つけました。

これを軸として使うことにしました。





頭の中の3Dモデルをぐるぐる動かしていてもどうしようもないので3D CADでモデルを作って設計図を作ります。
CADはInventorを使いました。
学生なら無料で使えます。
http://www.autodesk.com/education/student-software

ノギスでサーボのサイズを測りながらサーボの3Dモデルを作っていきます。
後から知りましたがS03TとMicroに関しては浅草ギ研さんが寸法図を公開してます。
http://www.robotsfx.com/robot/RCServo.html

こんな感じで。かなり簡略化したモデルでいろいろと省略して作ってます。

そしてこれに合うようにサーボブラケットとアームを作っていきます。

こんな感じ。
サーボブラケットとアームですが、新規作成の時にシートメタルを選択しています。


とりあえず簡単に組み合わせてみる。
本来はここでボルトやねじなどを差し込んで干渉しないかなどチェックするのですが、今回は大丈夫だろうと飛ばしました・・・。そのため後から実際に組み立てた時にネジ同士の干渉を起こしてしまいました。


手の部分、ものをつかむ機構の部分ですがかなり悩みました。
リンク機構を使ってマジックハンドのようなものを作るのもいいなと思ったのですが、サイズが大きくなりそうということで不採用。
ギアが作れるとかなり選択肢が広がるのですが、作る技術がないため今回はhttp://robozak.jugem.jp/?eid=1053846 こちらの画像のような片側固定の手にすることにしました。


こんな感じで使うサーボのブラケットとアームのモデルを作っていきました。(S125-1Tは土台に固定するつもりだったのでブラケットは設計していない)

アームの完成予想図。(曲がっていますが・・・)

モデルを作ったのでそれを2Dの設計図にします。
ブラケットとアームはシートメタルで作ったので、フラットパターン(折りたたむ前の段階)にできてかなり楽です。


こうなります。製図のルールを無視したものになってしまいましたが、印刷して貼るのが目的なので気にしません。
シートメタルの設定が厚さ0.5mmとなっていたため深さ0.5の穴になってしまっていますが実際は貫通です。
印刷する用紙のサイズに合わせシートのサイズを変更し、尺度を1:1で印刷すれば実際のサイズで出てきます。


・準備
サーボブラケットを作る前にアルミの折曲げ器をつくります。
なくても曲げることは可能ですが、あるときれいに折れるような気がします

http://minkara.carview.co.jp/userid/424653/car/337248/649180/note.aspx
このページを参考に作りました。ほぼパクリです。

用意したのは厚さ2.0mm、長さ1mのアルミアングル。

とりあえず半分に切って蝶番をつけて


持ち手を付けて完成。


精度は微妙ですが2000かかったかどうかくらいで出来たので良かったです。
1mmのアルミなら余裕で曲げられましたが、2mmはきついかもしれません。
また押さえる部分や曲げる部分が短い場合、これでは曲げることが出来ませんでした。(アルミアングルと全く干渉しない。短い部分を木の板とクランプで挟んで曲げました)

アルミ曲げ器を作りましたが木の板の間にアルミを挟んでクランプで締めて曲げても大して変わらなかったのではないかと思います。


・製作

実際に作っていきます。まずサーボブラケットを印刷した紙を切ってアルミ板に貼っていきます。紙をアルミに貼るのにはスプレーのりを使いました。




1番最初にやって失敗したことなのですが下のように1枚のアルミに何枚も貼るのはすごく作業がしにくかったです。(何度も曲げることで金属を切断する方法を取ったため。
余裕をもって紙が貼れるようなサイズに切っておき紙を貼るのがいいと思いました。


切断ですが、http://making.ti-da.net/e2405903.html ここに載ってるようにカッターで切り込みを入れて何回も曲げることで金属疲労で折るという方法を取りました。


切り込みを入れて、(穴を開ける位置と曲げる部分が分かればいいのでぼろぼろなのは気にしない)


板と板の間に挟んでクランプで締めて、余った部分をプライヤーで掴みグニャグニャする


亀裂が成長し切断完了!
後は切断面にヤスリをかけたりして終わりです。


次は穴あけですが、穴を開ける前にポンチを打ちます。ポンチを打たないと穴がきれいに空かないと思います。
ポンチがズレて結果、穴がズレることが結構ありました。ポンチを打つ位置がわかりやすくなるように印刷する図面の穴部分は十字中心線を入れておくのが重要だなと思いました。



その次は曲げです。
折り曲げ器を作ったのでそれを使います。
曲げたい線アルミアングルの角が合うようにセットし固定して曲げます。


結果こんな感じになります


曲げる部分をすべて曲げるとこうなります。(写真はブレブレですが・・・

CADで作ったモデルとほぼ同じ。

この後アルミに張り付いている紙はもう使わないのでシール剥がしなどで剥がしました。

試しにサーボと組み合わせてみました。


(撮影後、別のサーボ用(S03NなのにS03T)のアームを取り付けていたことが判明。10mmも長く出来上がってしまっておかしいなと思いつつ取った写真です。なので実際はもうちょっと短いアームです。この時はわざわざ10mm長い組ネジを買いに行きました・・・)


サーボのケーブルは短くこのままだとサーボドライバまで届かなかったりするので延長ケーブルを作りました。

線とソケットを何セットか買ってきてハンダ付けしました。この線はサーボのフタバ配列と同じ色だったので作った後もわかりやすかったです。
http://kenkitami.tonosama.jp/others/connector.html
このページを参考に作りました。コネクタのメスを作るときにはんだを載せ過ぎたりケーブルを入れすぎたりしたために挿しづらいコネクタとなってしまいました。
このページではサーボ用コネクタオスメスセットっとなっていますが、マルツでは2.54mmピッチコネクター 3ピンとしておいてありました。





このようなアルミ加工をするにあたってかなり参考にしたページ。
http://www.geocities.jp/mimiin/tips/kakou/kakou.html
http://0n0.fc2web.com/kakou/bracket/bracket_02.htm

・組み立て
出来たサーボとサーボブラケット、アームを組み合わせアーム状にしていきます。


こんなかんじで組み合わせていきます。

一番下は木の板と棒を組み合わせて作った土台に穴を空け、360度回転可能なS125-1Tを入れています。

この組立て段階でいくつか問題がありました。
ほとんどがネジが締まらない!という問題です。
ブラケット曲がってる部分に干渉して締り切らない(サーボとブラケットを固定する部分)、ボルトに干渉し入らない(アームとブラケットの接続部分)、穴がずれててネジが通らない

問題にぶつかってCAD上で実際にネジを差し込んで確認するべきだったと思いました。

現状としては締り切らない部分は締められるとこまで締め、干渉し入らない部分はいれるのを諦め大きいボルト一個だけで支持しています。(強度上は全く問題ないのですが、自由度を制限?してないためブラケットが回転可能になってしまっている。結束バンドのようなものでアームとブラケットを固定することで解消可能なはず。)
穴がずれててネジが通らなかった部分に関しては穴を少し大きくすれば通ったので大丈夫でした。



最終的にこうなりました。

適当に何枚か写真取ったので上げます。


アームとブラケットのネジが干渉してしまう部分。


ハード編はとりあえず以上です。

ソフト編

拍手[13回]

三脚にkinect載せた

ブログにまとめる程のことではないですが一応参考程度にまとめておきます。

先日、Kinectを買ったのですが置く場所がなかなか見つからないということで三脚にKinectを載せることにしました。


Kinectを三脚に載せる台座は市販されていないようですが、Kinectのフロアスタンドを買えばその台座が三脚でも使えるそうです。



買うのはもったいないし、金欠気味なので自作することに。


・買ったもの
木の板とW1/4のナット、11.5mmのドリルビットです。
木の板はホームセンターにあった端材で数十円だったので合計で千円以下でした。

最初は木の板に鬼目ナットや、つめ付きナットで固定するつもりだったのですが、ホームセンターにはW1/4のものは置いておらず・・・。
インチねじですし仕方ないですね。



・やったこと

板に11.5mmの穴をあけました。貫通はさせていません。深さはだいたいこれぐらいだろうな感じです。



サイズはぴったり収まります。深さも綺麗に収まる深さでした。
なぜ11.5mmなのかというとW1/4のナットの一番長いところが11.5mmだからです。


次に穴にグルーガンでグルーを流しました。


冷えて固まる前に三脚にナットを付けてナットを穴に入れます。


少し待って三脚を外すとこんな感じ。
強度的にはあまり良くないとは思いますが激しい使い方するつもり無いし大丈夫でしょと妥協。


手頃なサイズに切断。


三脚につけてみると浮いてる・・・。もうちょっと穴を深くするかグルーの量を減らせばよかったなーと思いました。

むしろ、ナットを付けず、6.5mmか7mmくらいの穴をあけて差しこむだけでもよかったかも?



最終的にこうなりました。
輪ゴムで固定。

以上です。
時間があるなら通販とかで爪付きナットや鬼目ナットなどで買うのも一つの手ですね。
爪付きナットだと少し浮きそうですが・・・


拍手[0回]

撮影ブース改

以前、撮影ブースを自作しましたがフィギュアや大きめのプラモを撮影するには狭かったため作り直しました。

と言っても大したことはしていません。
ダンボールを大きくし、ダンボールの上部を切り取りトレーシングペーパーを貼りました。




このような感じです。
背景の紙ですが、撮影ブースを作っている時には手元に手頃な紙がなかったため、A3用紙を二枚繋げるという事をしています。
ジムの記事の写真を見てもらえばわかると思いますが繋ぎ目が写っています。

しかし、先日画材屋にて撮影用の紙を購入してきましたのでこれからはバッチリです(^^)

今持っているコンデジだと近づいて写真を取るのが難しいのでカメラを買い換えようかなぁ・・・とか考えています。

拍手[0回]

カレンダー

12 2025/01 02
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 31

リンク

最新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]