May 04, 2012Xperia Active ST17i を買ったよ!
[Computer]
最近のマイブームはAndroidのアプリを作ることなのですが、それのデバッグ用に端末を一台購入しました。Sony EricssonのXperia Active (ST17i) という国内未発売のモデルです。いわゆるSIMフリー端末というヤツですね。電波関係のことはこれ以上書くと(ウワナニヲスルヤメロ)なので、使用感を書いておこうと思います。
一番気に入っているのがその小ささです。別に一台所有しているG-shockスマホ(Casio IS11CA)ですと、画面の幅が結構あるので、掴んでいる側と反対側をタップするときに結構親指を伸ばさなければいけなかったり、あるいは別の手で入力、ということで少々大変でした。ST17iでは上記の写真にあるとおり、片手で余裕で操作できる大きさで、そこがとても気に入っています。 防水仕様なのもいいですね。手が多少ぬれていてもタップに対して反応してくれます。IS11CAよりも感度がよいと思いました。 カメラ用のシャッターボタンも気に入っています。普通のカメラと同じ構造で、半押しでフォーカス/AEロック、全押しでシャッターという2段階ボタンなので、構図をいじりやすいです。 使用感はこんなところでしょうか。後はどっちかというとこっちの方が本題だったりするのですが、自分メモとして何をやったか記録を残しておこうと思います。
バリバリ使っていく予定です。 May 11, 2012DMAとFIFOの難しい関係オートパイロットシステム TinyFeatherのなかなか再現しないバグが最近ようやく解消したので、どういう問題であったのかということを、自分への備忘録として残しておきたいと思います。なかなか気づきにくい種類のバグでしたが、理屈がわかってしまえばとても納得のいく問題でしたので、スッキリしたついので勢いで記事を書いています。 バグを抱えていたのはDSPのUARTの受信部分でした。DSPのUARTは受信用のハードウェアバッファ(FIFO)を持っており、FIFOに一定量のデータがたまるとDMAが動作するようになっています。本体の計算能力を奪わないためにも、また、FIFOの容量より大きなデータを受信できるようにするためにも、DMAを活用してFIFOの内容をメインメモリに転送することにしました。メインメモリ上にはリングバッファが形成されており、その他のポーリングルーチンなどから任意のタイミングで受信データを読み出せるようにしてあります。図示すると以下のようになっています。 正常に動作している場合は、流れるようにFIFOへの受信、FIFOからメインメモリ上リングバッファへのDMA転送、リングバッファからの読み出しが行えています。 しかし偶発的に計算負荷があがり、リングバッファからの読み出しをサボる事態が発生すると、リングバッファに空きがなくなります。さらにDMAもリングバッファ上の空きがないことを知って、休眠状態に入ってしまいます。ここからいかに回復するか、というところにバグが含まれていました。状態と解決方法を整理した図を以下に示します。 リングバッファに新たに空きができても、DMAが動作しないことが問題でした。上から4番目の図に青字でしめしたとおり、DMAを手動で起こしに行く必要があります。今回のDSP(TMS320C6745)の場合、DMAを起こすためには、FIFOを一旦空にして、DMAトリガーが再びかかるようにする必要がありました。 繰り返しになりますが、気づいてしまえばなんということはない問題です。FIFO、DMA、リングバッファと登場人物が多かったのが、解決への道のりを長くしていたのだと思います。 May 18, 2012Super Sylphide 進捗状況(51) -- しまなみ海道 with TinyFeather先日のゴールデンウィークの前半で、ツイッター仲間で尾道今治間を結ぶしまなみ海道を自転車で漕いできました。とってもいい道ですね! 景色よかったし、温泉や食べ物屋さんなど、周辺観光もとっても充実していました。自転車の旅行記を書きたいところでもあるのですが、僕の残念な文章力と写真では魅力を損なってしまうかもしれない(笑)ので、今回の自転車旅行にお供につれていったオートパイロットシステム TinyFeatherの話を書こうと思います。ええ、またいつもの話です、すいません。 TinyFeatherは航法装置として動作するので、自転車で移動している様子がログできます。ログにはいくつか種類があって、(1): 内蔵しているGPS(u-blox LEA-6T)のデータ、(2): (1)に加速度計やジャイロを足すことでその場で複合演算をしたオンライン版INS/GPSデータ、(3): (2)と同じデータを後処理の複合演算をして得られたオフライン版INS/GPSデータ、の3つをとることができます。よくあるGPSロガーのデータは(1)に相当するものです。(2),(3)にもなると、傾きなどをとることができ、どこで転んだかがわかります(笑)。 動作不良(先日のDMAの話)があったため、一部ログを失ってしまっているのが後からわかったのですが、取れている範囲でログをざっくりと紹介したいと思います。一回激しく自転車からこけたのですが、その部分のログもなくなっていました。はからずも体を張ってしまったのにデータを欠損していてとてもショックです。 では気をとりなおして(1)のGPSデータ。緯度経度を示してみます。 u-bloxのGPSデータは、同社が配布しているu-centerというツールを使うことによって、Google Earthのデータ形式であるKMLに変換できます。上記の画像もGoogle Earth上に表示させたのをとってきました。 そして(3)のデータ。(2)と(3)はほぼ同じものが得られるので、より精度がよいであろう(3)のデータを示してみます。こちらも緯度経度。上のGPSデータのうち、北側に相当する部分です。 (1)のGPSデータと形がよく一致しています。が、一部を拡大してみると違いがあります。順に(1)GPSデータ、(3)オフラインデータ。 GPSが途切れてしまっている中央のところ(上画像で赤点の発生している部分)もINS/GPSだと滑らかにつながっています。(3)のINS/GPSでは補間がちゃんと効いています。このように加速度計やジャイロを搭載してうまく処理をすることでより妥当な結果が得られます。 (2),(3)でとれた姿勢データもあるのですが、これを面白く表示する方法が思いつかないので、今回はパスとさせてください。転んだところのデータが残っていれば…、とっても惜しいです。またのこける機会があるはずなので、そのときにでも… TinyFeatherの自転車への搭載ですが、料理用の容器に本体とバッテリーを詰め込んで、雨対策をしました。GPSアンテナだけを外部に露出する方法で、雨程度の防水でしたらこれで十分に機能しました。 ケースには『タケヤ化学 ツイストパック3 TX-18B 270ml』を、バッテリーにはエネループ QE-PL101を使っています。黒いのはホームセンターで買ったウレタンフォーム材で、隙間を埋めるのに使っています。 今回はこの防水状態で本体をサドルバックの中に詰め込み、GPSアンテナをバッグの外に張っておきました。GPSの受信も良好でした。姿勢データを検証するためには本当はもっとしっかりとした固定をしなければいけないので、今後の課題としたいと思います。今のところ、ドリンクホルダーをうまく使えないか検討中です。 ※Google Earth上でログデータを見れるようにしました。 May 25, 2012Super Sylphide 進捗状況(52) -- TinyFeather のログを Google Earthで見るオートパイロットシステム TinyFeatherですが、地道なデバック活動を続けています。今では無人航空機のみならず、自転車(僕自身が被験者)、人力飛行機(僕のお友達に協力をお願いしています)など、ターゲットを増やしつつ動作チェックをしています。 こんな感じです。 データは@HirakuTOIDA くんにTinyFeatherで取得してもらった社会人チーム Team-Fのテストフライトの様子です。機体のモデルは実はTeam-Fさんのではなく、東工大チーム Meisterの大沢さんよりお借りしたものを加工しています。みなさんのPCでも表示できるようGoogle Earthの形式であるKMLファイルを置いておきます。高度について問題が発生しています(後述)が、機体の姿勢はよく見えると思います。 最後に備忘録として、この表示ができるようになるまでに苦労したことを残しておこうと思います。
データの可視化ってとっても面白いです。 ※TinyFeatherの次の企画を練ってみました。 |
かれんだ~
スポンサード リンク
|