カテゴリ:ゴミプロ( 17 )
Android話3
先週、積み残した最後の宿題、Google playストアへの公開。

アイコン作成、パッケージ名の変更、署名付apkファイルの作成、デベロッパー登録を経て、ようやくアプリを登録&公開できた。

アプリ名は毎度のMiniris

公開先はコチラ。
Android2.3以降のスマホ&タブレットの方はインストールされたし。
https://play.google.com/store/search?q=miniris
#版権物故に削除されるかもしれないので公開先は日本限定に留めておいた。

以下、スクリーンショット。
c0065011_0391693.png

c0065011_052414.png

c0065011_0521255.png

アイコンは色々なサイズを準備する必要がある。
c0065011_0395743.png

c0065011_0402433.png

c0065011_0403567.png

c0065011_04138.png

c0065011_0404428.png

c0065011_0405419.png

c0065011_041505.png

そろそろ、Nexus7が欲しくなってきた。
by tomorou_takurou | 2013-12-22 23:34 | ゴミプロ
Android話
カミさんに無駄遣いを怒られたので家で大人しく生活。
で、久々にAndroidアプリ。

テトリスを作るべくやったことは...

SurfaceViewによる描画:
 Viewより高速描画向きということで鞍替え。

タッチイベント処理:
 画面上の特定エリアをタッチしてブロックを上下左右に移動できるように。

Handlerによる定時処理:
 定時イベントを発生させてブロックを自動落下できるように。
c0065011_1135577.jpg

こちらHandlerによる定時処理の結果をキャプチャ。
フィールドを突き抜けて500ms毎に落下を続ける赤ブロックの図。
いちおうブロックの上下左右操作も可。
c0065011_1144066.gif

ボタンやテキストボックスは使わないので簡易ロガーで憶えたウィジェットやレイアウトは用途なし。
反面、肝心のゲームロジック移植(c++ --> java)のほか、小さい課題(インスタンスの保存、画面サイズ・解像度対応、ダイアログ表示、アイコン作成、アクションバー操作、バージョン対応、Playストアへの公開手順、etc)をクリアしないといけない。
そもそもEclipse&ADTの操作方法とjavaの言語理解を後回しにしているせいで、妙に時間が掛かっている。

大きい矩形はタップ領域の識別用。
c0065011_1141581.gif

ジョルジュのボジョレーが叩き売られていた。
c0065011_1145165.jpg

ちなみにタッチ情報を取得するメソッドは何十種類もある。

 getAction() タッチイベントのアクション
 getX(),getY() タッチされてたX,Y座標
 getDownTime() 押されていた時間(ms単位)
 getEdgeFlags() スクリーン端判定
 getSize() タッチされている範囲、サイズ(推定)
 getEventTime() タッチされていた継続時間(ms単位)
 getPressure() タッチされた圧力
 etc

更にgetAction()メソッドで取得するアクションが何十種類もある。

 ACTION_DOWN タッチ押下
 ACTION_MOVE 指を持ち上げずにスライド
 ACTION_UP 指を持ち上げたとき
 ACTION_CANCEL UP+DOWNの同時発生のとき
 ACTION_OUTSIDE ターゲットとするUIの範囲外を押下
 etc

うち、使うのはgetAction()、getX()、getY()、ACTION_DOWNくらい。

イベントリスナーも様々なジェスチャを検出してくれるけど用途なし。

 onDown(); 押下時に呼ばれる
 onShowPress(); 押下時に呼ばれる(押してすぐに動かすと呼ばれない)
 onLongPress(); 長押し時に呼ばれる
 onFling(); フリック時に呼ばれる
 onScroll(); スクロール時に呼ばれる
 onSingleTapUp(); シングルタップ時に呼ばれる(ダブルタップ時も呼ばれる)
 onSingleTapConfirmed(); シングルタップ時に呼ばれる(ダブルタップ時は呼ばれない)
 onDoubleTap(); ダブルタップ時に呼ばれる
 onDoubleTapEvent(); ダブルタップイベント時に呼ばれる(押す・動かす・離す)

ふぅ。
by tomorou_takurou | 2013-12-08 01:29 | ゴミプロ
androidお試し5+
いい加減くどいので終わりにしたかったところ、疲労が胃にきて変化&進展なし。

<試したこと>
・移動距離を、原始的に経度1秒25m、緯度1秒30m換算の三平方の定理で求めていたところLocation.distanceBetweenメソッドに変更。
・標高は最小二乗法(多項式)のサンプルコードがmatrixパッケージが無いだのコンパイルエラー止まりのため
 ひとまず「補正値 = 0.95 * 前回までの補正値 + 0.05 * GPSが返す標高」で丸めた。
 GPSが返す標高(ギザギザ)に対して紫の補正値は立ち上がりを無視すればなだらか。青は最小二乗法(多項式)のグラフ
・経度緯度を60進数表記で表示するようにした。
・GPSの2D精度(Accuracy)が100m以上のときはreturnでスルー。
c0065011_23364954.gif

で、ハンディGPSと勝負。
強風に煽られながらディープリムホイールでゴギコギ。
クリスピークリームドーナッツを目標にして片道8km。

高度7kmから観た図。
左:黄色がXperia acro&インチキロガー、右:青色がGarmin社etrex30のログ。違いは見られず。
c0065011_23371587.jpg

高度700mから観た図。
上:黄色がXperia acro&インチキロガー、下:青色がGarmin社etrex30のログ。角が丸まっているような...。
c0065011_23373628.jpg

高度200mから観た図。
上:黄色がXperia acro&インチキロガー、下:青色がGarmin社etrex30のログ。全然違う。酔っぱらい運転してるような。
c0065011_23375215.jpg

建売街で再挑戦。iPhone4s&GPSkitというiアプリと勝負。
上:黄色がXperia acro&インチキロガー、下:赤色がiPhone4s&GPSkitのログ。少し負けている。ま、2D座標はイジってないのでこんなもんか。
c0065011_23381539.jpg

参考までに、位置情報をくれるロケーションマネージャの位置精度(criteria.setAccuracy)と
消費電力(criteria.setPowerRequirement)は、どの組み合わせがよいのか不明なんで設定していない(設定しなくてもイケる)。
c0065011_23383520.jpg

智郎が誕生プレゼントにGoProが欲しいとかなんとか。
高いから無理!と断った3日後に何故か持っているという...!?
c0065011_2340791.jpg

去年と今年の合わせ業とか言ってカミさんが許したそうで。チィッ。
仕方がないので自分もWi-Fiリモコンアプリをケータイにインストールしてみる。
ヲヲヲッ!これは面白い!暖かくなったら荒川CRで有効活用してあげるべし。
c0065011_23402095.jpg

最近の漫画。写っている分は全て女性漫画家。
「俺物語」は、このマンガ1位。電車で笑える。100%ドラマ化されるだろうけどスルーだね。
「海月姫」、「主に泣いています」の東村アキコはギャグ漫画なら今一番かと。
いずれも漫画喫茶で読んで面白かったため、ご家庭用に。
by tomorou_takurou | 2013-02-24 23:48 | ゴミプロ
androidお試し4
湯川センムーから再び白ロムのXPERIAを奪い返した。
古い機種なのに室内でもGPSの位置情報をすぐにキャッチしてくれる。
どちらも3G契約は切れているのでA-GPSではないと思うのだが...謎。

で、今週はGPSの位置情報を5秒間隔でSDカードに記録できるようにした。
左画面下に記録開始&停止ボタンを追加。
c0065011_2321620.jpg

XPERIA片手にチャリで近所をぐるっとコギコギ。
記録したログをエクセルでGPX形式のxmlに加工(最初からGPX形式で出力すべきか...)。
#正しい海抜を求めるにはジオイド高(ウチの辺りはだいたい40m位)を差し引く必要があるんだそうで。
c0065011_23231411.gif

感覚的に100W前後くらいで流したのだが、仕事率はこのとおりグラフがぶっ飛んでおり
リアルタイム表示ではまったく使い物にならない(高度情報の精度が低いため)。
ネットによるとカルマン・フィルタやローパス・フィルタでノイズを取り除き
最小二乗法で丸めるとよいそうで、都合の良いコードが落ちてないか探しているところ(誰かJavaのメソッドUpしてくれ)。
赤い線は最小二乗法のグラフでこれくらい安定してくれるとリアルタイムなパワーメーターとして使えそうな気がする。
c0065011_23234334.gif

2D座標については、この通りフィルタを掛けなくてもそこそこ安定しているので簡易ロガーとしては十分かと。
c0065011_23255128.jpg

拡大すると初代etrexよりイケてないことが分かる。ロードバイク&記録間隔5秒なんでこんなもんか。
3G契約でA-GPSを有効にするとハンディGPS並みになることであろう。
それにしても、お試しレベルで簡単にGPSロガーが作れて
今のところ出費は¥5kだから、大人のおもちゃとしては最高ではないか。
c0065011_2326660.jpg

訪問電話でau光にするとスマホ1台につき月額¥1.4k値引くと言われたところなんで
au&XPERIAに乗り換えるべきか悩みどころ。

今日のお勉強。経度緯度の10-->60進法表記の変換。
Longitude = 139.759774167;
Deg = (int)Longitude;
Longitude = (Longitude - (double)Deg) * 60;
Min = (int)Longitude;
Longitude = (Longitude - (double)Min) * 60;
Sec = (int)Longitude;
Longitude = (Longitude - (double)Sec) * 1000;
Msec = (int)Longitude;
//Math.floor()を整数型へのキャストで代用。resultは139d45m35.187s
by tomorou_takurou | 2013-02-17 23:33 | ゴミプロ
androidお試し3
実機確認用に借りたXperiaのOSがVer.2.1と少し古かったので
結局、Ver.2.3.4のXperia acroをget。
au版のSIM無し(3G契約無し)のせいか¥5kなり。中華Padより安い。
(なのでnexus7はTegra4&セルラー版が出るまでおあずけ)

ところがアプリを実機確認するところまで出来るものの、
(智郎やカミさんの)SIMカードを入れないとGPSの受信が始まらない。
やっちまった??

結局、1週間程ほど経ってから遮蔽物が無ければSIM無しでも受信できることに気づいた。
こちらPlayストアにあったアプリで受信状況を確認。衛星沢山。
c0065011_143080.png

引き続きパワー君でアプリの練習。
今週はタブを導入した。
SDカードへのファイル書き込みもできるようになったので来週はデータロガー化する予定。
c0065011_0183497.jpg

連休3日目は休日出勤。
駅に向かいながら数値の変化を眺める。
やはりGPSの高度情報が安定しないせいで使い物にならない感じ。
うっ経度緯度が小数点表記のままになっているので直さねば。
c0065011_1533848.jpg

横方向の精度は割りと安定している感じ。
c0065011_142192.jpg

電車の中だと100km/hちかく出ているせいか、すごい数値。
by tomorou_takurou | 2013-02-11 23:34 | ゴミプロ
C#
寒いのと腰痛で外出が億劫な感じ。
職場でVBAツールを手直していたら久々に火がついて
VisualStudio2010Expressを入れてみた。

トレンドのスマホアプリといきたいところだがまたいずれ。
その代わりVS2005Expで作った版権モノ"miniris"のC++ネイティブ版とC++/CLI版の流れでC#版minirisを作ることにした。

ちなみにC#はWindows-Phoneアプリの開発言語でもある。
けどこれでアプリが簡単に作れるのかいうと無理。
Win-phoneはバージョン違いのVS2010Exp for WindowsPhoneで作るのだそうで。
仮に作ってみたところでWin-Phoneは持ってないので試せない。
iPhone(Objective-C)はMacが要るので無理。
最有力はAndroid(Java)への機種変更かな。

ともかく、出来たのがコチラ。
c0065011_16493821.jpg

http://www.hi-ho.ne.jp/tomorou/gomipro.htm
またこれなの?という声が。
確かにC++/CLI版と見た目も何も変わらない。
.NETアプリは開発言語がVBでもC++でもC#でもコンパイルすると
配布用の共通中間言語(CIL)は同じものが出来るので使う側には違いは出ないという...。
c0065011_16512427.gif

代りにコチラ。minirisH。昔ながらのWin32アプリ。末長く楽しめる。
urlのページへGoだ。
c0065011_17104655.gif

DL件数。minirisで検索する人はいないので伸び悩んでいる。
by tomorou_takurou | 2011-12-29 16:54 | ゴミプロ
パワート・レーニング話+
エクセルシートのpowerkunの続き。

GPS(etrex)で取得したトラック(経緯度、高度、時刻)を
貼り付けてバッチ計算できるシートを追加した。下り坂にも対応。
c0065011_15233871.jpg

最近は近似曲線にハマっている(白石峠ヒルクライム-->顔振峠の仕事率&多項式近似曲線)。
c0065011_9394042.gif

しかしSportsTracksというランニング、チャリ諸々の管理ツールに
GPS2PowerTrackというサードパーティのプラグインを入れると
同様に平均出力を計算してくれる(しかもgアースやグラフ付き)。

ということで結果をpowerkunと比較してみる。
c0065011_15235097.jpg

§白石峠のヒルクライム
powerkun
 -->NET=178W、GROSS=181W


SportsTracks+GPS2PowerTrack
 -->189W


登り坂オンリーなのであまり差が無い。
GPS2PowerTrackは微妙に数値多め。
あっちのソフトだが同梱されるGPS2Weatherというプラグインで
走行日当日の埼玉における正確な天候を使っているらしい。
なので風速や空気密度(空気抵抗)は正確かと。
あとは転がり抵抗、CdA、重力加速度、伝動損失などで使っている係数の
違いによるものなんじゃないかと。
c0065011_1524482.jpg

続いて白石峠をヒルクライムした後、そのままグリーンラインを顔振峠まで進んだときのトラック。
アップダウンを繰り返しながら峠を幾つも通過する。

§白石峠のヒルクライム-->顔振峠
powerkun
-->NET=113W、GROSS=115W


SportsTracks+GPS2PowerTrack
-->134W


こちらもGPS2PowerTrackは数値多め。
powerkunは下り坂ではチェーンを回さないので伝動損失ゼロ、登坂抵抗をマイナス出力にしただけ。
そもそも数秒毎の平均出力の更に平均なので怪しい。
休憩時間も考慮してないので時間当りの平均出力は相対的に低めになってしまう。
そもそもフリーソフトがあるなら最初からpowerkunは用済みであった。

ま、大切なのはFTP値やLT値を求めたら、目的に合った運動強度を求めて継続的にそれを実践すること。
でもパワーメーター持ってないし。GARMIN edge500だけでもいいから欲しい。
c0065011_15241873.jpg

ところでGPS2Weatherが参照している気象サイト。
www.wunderground.com
世界中のある場所のある日のある時間の気圧や湿度などが取得できる。
アメリカ物ってカッコイイ。

なお、SportsTracks、GPS2PowerTrack、PowerCalcはフリーソフト。
ついでにVisualStudioもフリー。office(excel)やVB6も単体でお金は掛けていない。
不景気なこの冬はお金を掛けずに過ごしている。
by tomorou_takurou | 2010-01-16 15:31 | ゴミプロ
パワー・トレーニング話
口を開けばいつも面白くない拓郎とポタリング。
走り納め。

ブリジストン自転車の本社へ。
ロードバイクの「アンカー」ブランドで頑張ってる。
当然、閉まっていた。

帰りに地元の団子屋へ。
ミタラシ団子が今どき40円とか60円で売っている。
小学生の女の子がエプロンして店番していた。カワイイ。
c0065011_0501786.jpg

ところでチャリオヤジの間ではパワーベースのトレーニング、パワー・トレーニングが話題になっている。

体力を数値化して科学的根拠に基づいてトレーニングを効率化しましょ、ということ。
普及しているハートレート・ベースのトレーニングはマーカー誤差が出やすいといわれている一方、
パワーベースはチャリをこぐときのトルクとケイデンス(回転数)を掛けたワット数を
基準にしているため誤差が少なく、より正確で効率的なトレーニングが出来るんだとか。

で、ワット数をリアルタイムで求めるには結構出費が掛かる(例えばPowerTap一式は何十マンエン)。
オフラインになるが多少の誤差はあるのものの一定距離&時間のTT(タイムトライアル)で平均出力というか仕事率を求めることもできる。
ヒマだったので、海外のサイトをパクってエクセルにしてみた。
マクロ無しのスプレッド関数のみ。
コチラ--> http://www.hi-ho.ne.jp/tomorou/gomipro.htm
c0065011_10302998.gif

で、この程度の計算式であればということで.NETマネージアプリ版も作ってみた。
コチラ--> http://www.hi-ho.ne.jp/tomorou/gomipro.htm
c0065011_2144790.gif

.NETアプリは.NET Frameworkが必要デツ(Vista,7は初期状態で入っている)。
--> http://msdn.microsoft.com/ja-jp/netframework/aa569263.aspx

ちなみにアプリの初期値は白石峠における私の走行結果を入れている。
36分という値の意味は体験すれば分かると思うが、それはもう話にならないくらい遅い。
言い訳をさせてもらえばアルミチャリ&ノーマルクランク(39T)なんで仕方ないのではないか。
カーボン&コンパクト(34T)なら30分切りどころが20分切れるんじゃないかと勝手に想像している(あくまで妄想)。

ちなみに自己申告制の白石峠TT板はコチラ-->白石峠TT
20分ソコソコの化け物がホントに居るとは。
にしても奥武蔵一帯はホント、チャリのメッカなんだなぁと今更気付いたりして。

*CdA、Aerodinamic Drag Area、Crr、Coefficient of rolling resistance、FTP、Functional Threshold Power、LTパワー値、ソリア、メディオ、SFR、パワーメーター、LT値、AT値、VO2max、HRmax、平均出力計算式、仕事率、最大酸素摂取量、最大心拍数、主観的運動強度、SST、L3.Tempo、L4.Threshold、gravity、Air Density、ヒルクライム計算、ロードバイク、空気密度...
by tomorou_takurou | 2009-12-30 23:55 | ゴミプロ
独りなんちゃってトライアスロン
運動不足なんで午前は市民プール。
遅ーい平泳ぎオンリーで1kmチョイ。
c0065011_187225.jpg

午後は川越へ。久々のポタリング。
天気が良かったせいか「トレーナー&厚手フリース&CW-X&デニム&皮手袋」で
軽く汗を掻く感じ。ポッケに入れた耳あては結局使わなかった。
これなら真冬でもチャリはいけそうな感じ。
荒川CRはいまだにチャリオヤジが結構走っていたし。

あとはランニングすれば3種目が成立するのだが
お茶菓子(喜多院前、紋蔵庵の川越ポテト)のせいで落ち着いてしまった。
走るか...風呂に入ってビール(麦とホップ)か...。
c0065011_1871065.jpg

メールスロットによる通信話。
VB6のコードをエクセルVBAに修正してクリックしたところLAN経由で2台のPC間で送受信が出来た。
こんなに簡単にチャットの原型が、しかもエクセルで出来るとは思わなんだ。
これ、ftpクライアントと同様にアクセスやワードでも当然出来る。--->高級レンズキャップの巻き
つまりいつもの画面でボスに見つからずにチャットに専念できると。

コチラ-->msgkun.xls
c0065011_14443742.gif

ただ残念ながら標準のエクセルにはタイマーコントロールが無いので
(ActiveXのOCXを別途用意しないとタイマーイベントが発生させられないので)
コマメにクリックして受信有無を確認する必要がある。
例えるならメールの着信を教えてくれるケータイとダンマリiphoneの違いに似ている感じ。
あと送受信する両者がエクセルVBAを起動して口を開けてメールスロットを
オープンさせておかないと送信失敗したり。
も少し勉強。急がば回れ、Win32版クソゲーへの反映はも少し先か。

#結局、家の周りを3kmだけ走った。
by tomorou_takurou | 2009-12-23 18:13 | ゴミプロ
眼痛派生への道++
>[2]P1でラインが揃ったら減少させると同時にP2のラインを増加させる処理を入れる。逆も同じ。

の作業が完了した。平日の一晩で済んだので修正自体はショボかった。
対戦型なのでタイトルをminirisVSにしてみた。
c0065011_9442859.gif

職場でもウィンドウが目立たないのでボスに気付かれないキラーソフトか。
なお、スコアはゲームの勝敗と関係ない。あくまで参考。

コチラ。test013.exe(60KB)。
http://www.hi-ho.ne.jp/tomorou/gomipro.htm

操作キーは残念ながら少し煩雑で以下のとおり。

<左プレーヤー>
D(右)、A(左)、W(回転)、S(下)キー

<右プレーヤー>
L(右)、J(左)、I(回転)、K(下)キー


早速、智郎と勝負。圧勝。
若いな。グラフィックの脆弱な拡大鏡などを使っていては勝てないのだよ(シャア)。
智郎のお友達が大勢泊まりに来るそうなんで売りつけるか。
[バイリニアで200%に拡大]
c0065011_9444211.gif

Win32版の改良が思ったより短時間で済んだので早速.NET版に取り掛かった。のだが、
VisualStudio2005は既存のソリューション&プロジェクトファイル一式を一括コピー&リネームしても
(ビルドは出来ても)実行時にエラーになってしまうという...。
フォームのプロパティをイチから設定し直したりソースをイチイチコピペするの面倒ちぃ。
急速に萎えてきた。

ところで通信対戦型への夢であるがシステムフォルダに入っているwsock32.dllを使うと難しいこと隠蔽しつつ
TCPやUDPプロトコルのチャットプログラムが出来るという。気が付くの遅杉?
対戦型といってもせいぜい揃ったライン数(最大4)とゲームオーバー(オン/オフ)になったかどうかを交信できれば事足りる。
DLLは.NET以前のVBでも呼び出せるしVBと同様にAPIの宣言をすればVBA(EXCEL)でもメッセンジャー機能が出来てしまう...。
以前、EXCELのVBAで作ったFTPはwininet.dllを使ってるので似たようなもんでないの。
ビルド&コンパイル不要なVBAで実験しつつWin32版にも取り込めたらいいかも。
by tomorou_takurou | 2009-12-19 09:53 | ゴミプロ