Dr.nabeee3と日々のめも

詰まったところの解決策とか興味のあることを書いていくよてい

openFrameworks 0.8.4 iOS + Xcode6でエラー

iPhoneでofのプログラムを動かしたいと思って導入してみたんですが、エラーが出ました。が、解決しました。ので一連の流れを備忘録として残しておきます。

 

まず openFramworks_v.0.8.4_ios内のemptyExampleを実行してみたところ、

ld: -pie can only be used when targeting iOS 4.2 or later
clang: error: linker command failed with exit code 1 (use -v to see invocation)

というエラーが出ました。これはDeployment Targetを4.2以降にすれば良いみたいです。
xcode - openFrameworks for iOS become Apple mach-O Linker Error - Stack Overflow

次にこの設定で実行したところ、

ld: warning: ignoring file ../../../libs/FreeImage/lib/ios/freeimage.a, missing required architecture i386 in file ../../../libs/FreeImage/lib/ios/freeimage.a (2 slices)
ld: warning: ignoring file ../../../libs/glu/lib/ios/glu-ios.a, missing required architecture i386 in file ../../../libs/glu/lib/ios/glu-ios.a (2 slices)
Undefined symbols for architecture i386:
  "_fwrite$UNIX2003", referenced from:
      _WriteProc(void*, unsigned int, unsigned int, void*) in freeimage.a(FreeImageIO.o-i386)
      LibRaw::dcraw_thumb_writer(char const*) in freeimage.a(libraw_cxx.o-i386)
      _opj_image_create in freeimage.a(image.o-i386)
      _png_default_write_data in freeimage.a(pngwio.o-i386)
      LibRaw::ppm_thumb() in freeimage.a(dcraw_common.o-i386)
      LibRaw::jpeg_thumb_writer(__sFILE*, char*, int) in freeimage.a(dcraw_common.o-i386)
      LibRaw::write_ppm_tiff() in freeimage.a(dcraw_common.o-i386)
      ...
  "_mktime$UNIX2003", referenced from:
      LibRaw::get_timestamp(int) in freeimage.a(dcraw_common.o-i386)
      LibRaw::parse_rollei() in freeimage.a(dcraw_common.o-i386)
      LibRaw::parse_riff() in freeimage.a(dcraw_common.o-i386)
  "_strerror$UNIX2003", referenced from:
      Iex::throwErrnoExc(std::string const&, int) in freeimage.a(IexThrowErrnoExc.o-i386)
  "_strtod$UNIX2003", referenced from:
      _png_handle_sCAL in freeimage.a(pngrutil.o-i386)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

というエラーが出ました。
これは、
openFrameworks 0.8.4 iOS + Xcode6でビルド出来ない - Shut the fuck up and write some code
こちらのページにあるように、main.mmに下記のコードを追加すればいいようです。

extern "C"{
    size_t fwrite$UNIX2003( const void *a, size_t b, size_t c, FILE *d )
    {
        return fwrite(a, b, c, d);
    }
    char* strerror$UNIX2003( int errnum )
    {
        return strerror(errnum);
    }
    time_t mktime$UNIX2003(struct tm * a)
    {
        return mktime(a);
    }
    double strtod$UNIX2003(const char * a, char ** b) {
        return strtod(a, b);
    }
}

 
実は少し前にエラーでなえて放置してたので、解決して嬉しい!

気になる2014/10/18~2014/10/22

見よ、この編隊飛行する超小型クワッドコプターたちを - TechCrunch

ドローンが踊る「シルク・ドゥ・ソレイユ」の短編動画はどう撮影されたか(動画あり) « WIRED.jp

ドローンが最近来てます。まるでドローンが生きているかのような錯覚さえ覚えます。こんな魔法のようなことを実現していくのがテクノロジーの使いどころというか面白いところだと思います。

 

ディスプレイ内の映像世界を光で拡張する「Antumbra」 : ギズモード・ジャパン

ディスプレイに表示されている色に合わせたバックライトでディスプレイの背後を照らすという商品だそうです。オープンソースということなので何かできたら面白いけど。

 

「Google Glass依存症」が発生:米男性が治療施設へ « WIRED.jp

1日18時間着けていたら、Google Glassがないと落ち着かなくなったそうです。この人の症例だけで決めつけるのはどうかと思いますが、グラス型デバイスにはこういう懸念もありそうです。まあスマートフォンにしたって依存症みたいになっている人はたくさんいると思いますが。

 

リアルタイムで次の行動を導く「未来予測アプリ」:東大の研究チームが開発 « WIRED.jp

従来のライフログは記録したデータを見せるだけですが、この研究ではユーザの行動記録から、今後のユーザの行動を予測することができるそうです。

 

LEDウェアを身にまとい滑走するスキーインスタレーション「Lightsuit Segment」 | DesignWorks

タイトルのままです。きれいです。身近にいる人たちに関係がありそうだったので、気になりました。暗闇の雪山を滑走するって危なくないんだろうか。

気になる2014/10/10~2014/10/16

「触覚を持つ机」を埼玉大学が開発。机に触れてPCを操作、家電への応用も - Engadget Japanese

机の脚に力覚センサを取り付けて机上での動作を認識できるみたいです。僕の後輩も机関係のことをやってるので、かなり近いですね。しかもちょうど最近力覚センサを試そうとしていたところ。。

 

ついにRingが一般販売開始、269ドルの「魔法の指輪」で何ができる? - TechCrunch

話題のRingが販売されるようです。デモビデオを見ると、かなり未来感あふれる感じでワクワクしますが、ワンジェスチャで決済とか怖いですね。。認識率とかどうなんでしょう。誰か実物を買って触らしてほしい。

 

走り続けるスポーツ選手向けに開発されたスマートメガネ「JET」 : ギズモード・ジャパン

グラス型デバイスは日常で用いるのにはまだまだ抵抗がありそうですが、スポーツとか両手がふさがっている現場だとかの条件下だと有効なデバイスとして使えそうです。デザインもスタイリッシュな感じ。

 

「見えない傘」 Air Umbrella が出資募集中。空気で雨を吹き飛ばし、濡れない空間を生成 - Engadget Japanese

空気圧で水滴を弾き飛ばして濡れないようにするというもの。見えない傘は理想ですよね。ただこの手法だと周囲に水滴をまき散らすことになるので、もう一歩先に進んだ方法があればいいのですが。

気になる2014/10/06~2014/10/08

耳が聞こえなくても大丈夫。会話に字幕が出るグーグル・グラス対応アプリ登場 : ギズモード・ジャパン

グーグルグラスとペアリングしたスマートフォンに向かって話すと、リアルタイムに音声認識して、字幕をグラスに表示してくれるアプリをジョージア工科大学のアプリ「Captioning on Glass」です。外国語の翻訳としても応用できそうです。

 

分子ひとつをマイクにする方法が編み出される : ギズモード・ジャパン

音の高さに応じた蛍光を発する分子があるそうで、この分子の蛍光の変化をトラッキングすることで音の周波数が分かる、つまりマイクとして用いることができるそうです。ただ、ものすごい低温環境が必要らしく、日常生活で用いることはできないらしいです。

これが日常生活で使えれば、超小型マイクロフォンとしていろんなところに埋め込めて、自分の研究的にも面白くなりそうだったので残念。。

 

タブレットの入力革命への一歩―MicrosoftのFlexSenseは透明なフィルム状センサー - TechCrunch

MicrosoftResearchの開発しているFlexSenseは、シートの曲げ情報を入力できるセンサ。タブレットと組み合わせると「2.5D入力」が可能になるそうです。詳しくはリンク先のムービーを見るとわかりますが、実世界の質感のある入力がアプリケーションに利用できるということでIllustratorのレイヤーを変更するのに使えたり、eブックのページ送りに使えたりするようです。

 

ゲーム感覚でエクササイズ。ロードレースゲーム風サービス「Zwift」 : ギズモード・ジャパン

自転車をコントローラーとして用いるゲームです。オンライン上で世界中のプレイヤーとレースができるそうです。ありそうでなかった感じですかね。

気になる2014/10/03

ブログがなかなか習慣づかないので、気になったニュースとかをまとめていくスタイルを織り交ぜていこうかと思います。

 

Seatylockは自転車ロックに変身するサドルだ - TechCrunch

最近自転車系のニュースはよく見ます。これはサドル自体がカギになるので、自転車本体は無事だけどサドルだけが盗られた!っていうことがなくなるという商品です。サドルだけ盗る人ってサドルで何するんですかね。

 

 ・日本発、社会問題を変革する杖。未来のスマートデバイス「NS_CANE」 : ギズモード・ジャパン

カインドウェアが次世代ステッキの開発と製品化にチャレンジするようです。現在はカラーセンサで道路上の点字ブロック(黄色)を読み取り、ユーザにバイブとLEDで知らせてくれる機能だけですが、将来的にはRFIDを埋め込んでユーザ認識を実現したり、グリップ部に圧力センサを埋め込んでユーザの握り方から疲労や異常を感知したりと考えているようです。

社会的にも高齢化しているといわれますし、介護や医療サービスをテクノロジーで改善することは非常に需要のある部分なのではないかと思います。

マイコン

最近マイコンを使っていたので,調査したことなどをまとめときます.

やりたかったことは超音波(18~22kHZくらい)を取得して,そこからフーリエ変換をかけて目的の周波数の音を取ってきて,それを用いていろいろやりたい.ということです.

 

まず,手元にあった(先輩が余ってるからくれた)Arch Proというマイコンで試してみました.これはmbedという開発環境で開発するもので,ブラウザ上にコンパイラがあります.コンパイルすると.bin拡張子のファイルが生成されます.Arch ProをPCに接続するとUSBメモリのようにストレージ的に表示されるので,ここに生成した.binファイルを入れると,マイコンへの書き込み完了です.簡単!

Development Platform for Devices | mbed

またArduinoと比較すると全般的に性能が高く,今回の目的周波数も軽く取得できそうでした.さらにライブラリも充実しており,かなり快適な開発環境だと思います.

が,ファイル入出力のサンプルコードを書き込んだところ,次からのファイルが書き込めなくなりました..

ウェブ上で検索したいくつかの解決策も試してみたのですが,解決せず.

mbedのTips - ガイガーカウンター Mark2 マニュアル

FAQ (Japanese) | mbed

壊れたmbedを直したので記事書いてみる|徒然っと

分からん.

 

ということで,いつものArduinoに戻ってきました.

手元にあるArduino Unoを使います.Arduinoでもアナログ取得を高速化する手法があるようで,ライブラリ化してくださっている方がいるのでありがたく使わせていただきました.

Arduino Utilityライブラリ | なんでも独り言

取得したい周波数は22kHz,ということはサンプリング周波数は44kHzほど必要.ということは一回のサンプルを約22usで取得しなければいけないのですが,このライブラリとTimerOneのタイマ割り込みを併用することで,実現できました.

次は取得した波形データをフーリエ変換したいのですが,こちらもFFTのライブラリを使用します.初めはこちらのライブラリ(Modified 8bit FFT in c - Arduino Forum)を使用したのですが,なんか出力が小さいなーということで他のも試してみました.FFTよりもさらに処理が速いFHTというのがあるということで,今度はこちら(http://wiki.openmusiclabs.com/wiki/ArduinoFHT)を試してみました.出力もさっきよりはいい感じ.な気がします.実際に試してみた動画がこちら


19kHz Test - YouTube

動画では,スマートフォンから19kHZの超音波を出してて,それをマイコン側で認識するとLEDが光るようにしてます.

 

オペアンプで増幅してもマイクが取得できる音量がまだ小さいのですが,これはハードウェア側で何とかできるのかもしれませんし,マイクの限界かもしれません.もうちょっと調査していく予定です.

これを使って何かできないかなーといろいろ企んでいます.

 

以上,最近のまとめでした.

3Dモデリング3

ちょくちょく3Dモデリングをやっていましたが,その目的はこいつを作ることでした.

f:id:nabeee3:20140706180908j:plain

このキャラは所属する研究室のマスコットキャラであるつかぼーくんです.

研究室内のデモ発表コンテストの優勝賞品として作成しました.なかなか再現度が高く好評でした.

このフィギュア作成を通して(どこで使うのか分からないけど),3Dモデリングの仕方を学ぶことができました!