2011/06/18

某キーパッドの対応表

K1 B A K2 D C K3 E K4 F
K1
B +=
A CE
K2 -= C
D 9 <->
C M+ M-
K3 × CM % RM
E 5 6 7
K4 ÷ . 0 8
F 1 2 3 4


※沖縄電子でジャンクで売ってたレトロなキーパッドの対応表
※キーストロークが凄くすき

2011/05/02

座間味島へいってきた

新人プログラマとして1年間やってきて、まだしかかりとか残り作業もあるけど、オツカレさま自分の意味で、座間味島にいってきた(後付けな理由だけど)。

出発の数時間前に沖縄梅雨入り宣言。天気予報見てたから予想はしていたけど、雨と曇り続きでしたよ。。

写真をいくつか


2011/02/05

beagleboardとの日々2

前回の続きで、今回は

2. b君(以後b)に関して深く知りたい編(インスコ前準備)

を綴っていければと思います。具体的には、bに関してまずは少し調べて、それからandroidポーティングの準備を行います。


まず、bに関してですが、スペックを少し

僕がさわっているbはRevC2で、CPUはOMAP3530 ES3.0というものらしく、シリーズとしてはARM Cortex-A8(780MHz)らしい。FlashROMは256MB、SDRAMは256MB@166MHzとのこと。

へぇ。他にも色々とSDカードスロットがあるとか、USBホストになれるとか、JTAG、Serialデバッグ可能ですとか。

まぁ写真を見た方がはやいですね。。データはbeagleboard公式からここから。



こんな感じです。で、プロセッサである、OMAP3530のデータシートはここ。

あと、簡単なシステムダイアグラム。



もはや高性能すぎて全部の機能について調べる気が...
とにかくいろいろできて、えらいやつなのだなぁと実感。

ただ一つ気になったのが、USB-OTGとUSB-HOSTってなにが違う訳?
マニュアルみてたけど、OTGの方はほぼ電源とるとこ用っぽいですね。HOSTの方が、USBホストとして動作可能ということ。

で、とにかくポーテイングしてみよう!という訳で、私のほろ苦いb生活が始まったわけです。

まずポーティングするために何が必要なのか、色々調べて、下記を用意しました。

・b君自身(RevC2)
・Mac Book Pro
・5V電源 (センタ+)
・DVI<->HDMI変換ケーブル
・DVI入力のあるモニタ
・USB mini(Bタイプ)<->USB(Aタイプ)変換ケーブル
・SDカード2Gくらい
・USB<->Serial変換モジュール(とジャンパ線)

で、大まかなポーティングの手順としては

  1. 前準備で各種必要なソフトをインスコ
  2. SDカードにパーティションをきって各種ファイルを書き込む
  3. SDカードをbにセットして、電源ON
  4. 起動

    (※別途、シリアルコンソールでubootの起動プロセスを設定することもできるらしい)


どういう手順でポーティングするかというと、下記のサイトを参考にしました。

前準備に関しては、下記のサイトを参考に、ubuntu9.10をvmwareにセット、java5やら、gitやら、repoやら必要なものを逐一ダウンロードして割とスムーズに完了

http://www.facebook.com/note.php?note_id=374748694361


次に、SDカードに〜ってことで下記を参考にしながら進める。

http://code.google.com/p/android-development-environment/wiki/FroyoOnBeagleBoard

この手順で、Froyo(Android 2.2)がポーティングできるとのこと。ということで進めていった訳ですが、、

第一のはまりどころがAndroidのmake....
一夜あけても、bはmakeできない。。朝makeうって、夜帰ってモニタをみてもまだ終わっていない..というかとまってんじゃね?

なぜだ!!ということで、目を皿にして上記手順をながめる...あれ? makeのパロメータが違う...

make -j2 じゃなくてmake -j8 じゃん...

てっかj2とかj8ってなに? CPUのコアすう設定とかどっかに書いてあったけど、どうやってしらべりゃいいの?
Makefileみても、それらしきことかいてないし。

だれかおせーて。

ま、makeとおったということで、次へ進む。

今回試すbのブートプロセスとしては、

電源ON -> SDカード読み出し -> MLO(xLoader) -> uboot -> kernel -> init(Android起動)

という順でブートさせればいいとのこと。

上記リンクの手順にはMLOとubootのインスコ手順は書いていない。。ということでまた別で用意した。
下記リンクからダウンロード。

http://code.google.com/p/beagleboard/downloads/list

よっしゃ、全てそろった!ということで後はSDに

第1パーティション: MLO -> uboot -> uImage(kernel)
第2パーティション: Android起動イメージ

を書き込めばいいはずっ!!

ということでSDカードへの書き込みを終了し、各パーティションをumount。

そ
し
て

つ
い
に、

SDカードヲbニヨミコマセルトキガ..ヒャッホーーーーー!2828という感じで、接続作業を進めたわけです。

bのHDMI出力からDVI変換でモニタにつないで、usb<->serialモジュールをPCと接続(秋月のFTDIのモジュールを使ったので別途ドライバをゲトしてから)、SDをセットして、シリアルコンソールを開く(ubuntuを開いているくせに何故かmacのscreen上で)。

$ls /dev/tty.* (これで希望のモジュールを発見し)
$screen /dev/tty.usbserial-A7004CuM 115200 (これで開く)


8bit長、パリティなし、ストップビット1、フロー制御なしの baudrate 115200で開くはず..

そして、5V電源を、、、つなぐっ。


おおーーーーーーー!b犬!!いったかー!


あれ、止まる。


コンソールはこんな感じでばけばけ。




接続はこんな感じ。

こっから、ネトーリとしたbとの日々が始まる。

何が原因なのだろうか。。。はて。

とりあえず色々試しました。

何でシリアルからの文字がばけばけなの?
・usb<->シリアルモジュールは正常動作しているか?
->別の新品モジュールでも試して、同様の動作なので、動作しているポイ(まぁ正確を期すためには、目的のbaudrateでループバックとかしてみろってはなしだけれど何故かやってないorz..)

・結線(tx, rx, gnd)は間違ってないか
->マニュアル見てヘッダ位置、必要な結線箇所確認したので間違っていないハズ
->テスタで通電も確認した

・PC側の問題でないか?
->vmware上のWindows上のteratermでも同様だったのでおそらく文字コードやらPC側ソフトの問題ではない
->vmwareのWindowsのBIOS設定もシリアル接続enableにしてある


何でHDMIからの出力画面がいつも同じところで止まるの?てか、正しい画面なの?
・bの起動プロセスは間違っていないか?
->起動プロセス確認しようにも、どうやって確認すれば?

・SDカードちゃんと読み込まれてる?
->ジツハSDカード挿しても挿さなくても同じ画面なんですけどーーー

うーーーーーん。。bと私の間に深い溝ができ(ru..

最終的に、私のbへの理解が足りていない、、デバッグ力が足りていないーーーという事で、次の1手をどう打てばいいのか、、、誰かヘルプミー

#なんとなくSDがうまく書き込めていないor読み込めていない気もするけど...
#てか、SDも、microSDアダプタを使っている訳ですがそれもまずかったりするのか..

2011/01/24

beagleboardとの日々1

今回から数回に渡って、私がbeagleboard(以後b君)と過ごした、格闘の日々をご紹介します。某HAGOな勉強会用途に、本エントリーを活用できればなと。

お品書き的には、

  1. そもそも何でb君? 出会い編
  2. b君に関して深く知りたい編(インスコ前準備)
  3. b君をてなずける編(インスコ完了)
  4. b君にOpenCVを乗っけて、hogeる編

まで行ければなぁと思っています。但し、希望観測につき、変更の可能性ありありス。

じゃあとりあえず、1. そもそも何でb君? 出会い編からいきます。

b君に出会ったは、第12か13回のOJAG勉強会(おそらく10~11月頃)にてadonishiさんが、使ってないから、、といって持ってきてくれた事に端を発します。

じゃあなんでそんな話になった訳?って訳ですが、それは、おそらく@yamanetoshiさんと私が、勉強会後の懇親会や、勉強会の後、LTの時間とかでgdgdと欲しい~~、弄りたい~って話をしていたからだと思いますww

で、実際にadonishiさんから、OJAGに対して提供という形で、OJAGに渡ってきて、誰も使わない(イヤ私の気持ちを察してか)ので、私がいつも持ってもいいということに。

まぁ、OJAGでそうなるということは、b君に関して皆に、何をどうしたのか、説明する義務(のようなもの)があるわけですが。。私はお仕事が〜とかのたまって、今の今まで怠っていた訳です。皆様この場を借りてスミマセンorz

んで、b君との生活が始まる訳ですが、まだ、前置きは続きます。

そもそもなんで、b君が欲しかったか、率直にいうと、月並みですが"かわいかった"からです。面食いな訳です。基盤蕩れな訳です。不純な動機です。しかし何時の時代も出会いとはそう言うものではないでしょうか。

b君に出会うまでは、PICシリーズの乗った雑然としていて、無駄なスペースがある皆同じ色した基盤や、学習用途基盤、AVRマイコンの乗ったちっちゃなセンサI/OとしてのArduino、はたまた、トランジスタ技術(通称トラ技)付録の基盤などしか触ったことが無かったのです。

そこに、赤い**の***のようにあらわれた、beagleboard、呼称b君。約8cm四方という手に収まるコンパクトな体に、1G近いクロック数を誇る高性能ARMマイコンを積み、hdmi出力やusb、sdカードリーダ、audioインタフェース等、最大限まで機能を詰め込んだ、悩ましい集積美を描くプリント基盤。

それでいて、価格は1万ちょい。ヤバい。

確か2009年の夏頃、某大学の研究室でみてから、ずっといいなぁと淡い思いを持っていた訳です。

まぁ他に欲しかった理由としては、そろそろ上のスタックも勉強したいなと思ったからという事もあります。


出会いについてお話するとすれば、こんなところでしょうか。

今までは大層ududとつまらないですね、、。

では次回は 2. b君に関して深く知りたい編(インスコ前準備)ではもう少し、b君に関して深くお話できればと思います。

<画像/schematic here>

2010/10/03

iOS4.0 マルチタスク機能解除フラグ

久々の投稿... で単なるtips。

iOS4.0以降では、3.0対応アプリは何も対処をしないと、iPhone上のホームボタンを押してアプリを終了した気になっても、バックグラウンドで生きています。単に画面から見えなくなっているだけです。

それをバックグラウンドで走らないように(アプリを終了してメモリを解放)するには、info.plistに下記のフラグを追加し、YES(BOOL)を設定します。

UIApplicationExitsOnSuspend

下記、公式ドキュメントにその記述があります。
http://bit.ly/c0j9N3

※plistでvalue値をBOOLにするには、該当するValue値のテキストフィールドで右クリックし、型を指定します。

2010/05/05

仮面サイダー!!

いやはや時が経つのははやい!会社勤めになってはや2ヶ月がたちます。で、最近は全くUPしないのでなんでも良いからUPしてみようということで。ネタはなんのことはない、仮面サイダー缶集めてます。。。


もいちまい。横一列。


ついできごころで、うちの下の自販機で売っていたので、ついつい集めてしまっています。家が広いからって贅沢に散らかしています。が、決して片付けられない男ではございません。どうやら隠れキャラが居るようなので、それが出るまでは買い続けたいと思います。

ではでは、最近カラオケで仮面ライダーソング(せまるショッカーの方)を熱唱したmitoでした。

2010/02/21

CoreData NSArrayController 複数nib間での共有

今回は、Cocoaユーザ御用達のInterface builderでのTipsです。

サンプルを作ってみたので、参考までに。

(Xcode3.1.4で作成、OSX10.5SDK使用、動作は保証できないし、正しいコードかどうかは不明ですので、ご了承くだされ)

2010/02/17

CoreData one to many relationshipにて。。

to-many relationShipで、上位のentityを消したら、下位のentityも同時に消えるようにするには、cascadeのオプションを設定するよう注意してください!さらに、下位のentityでは,nullifyにしておきます。すると、上位を消したら、下位も同時に消え、下位を消しても、上位は残ったままらしいです。はまりました。くそっ。下のCoredata本のさいしょのへんに書いてあった。。てかこの本かなり良い。


2010/01/25

久々バグったー

左上に太陽が...幼稚園児の画か。

2010/01/21

Imterface Builder インスペクタ deferredとOne Shot メモ

Interface Builderでウィンドウ(NSWindowとかそのサブクラス)のインスタンスの属性を決めるオプションで、DeferredとOne Shotってのがあるはず。それのメモ。

deferredについて:
http://www.mosa.gr.jp/?p=97
ウィンドウの描画に関わる命令の実行を、実際にウィンドウがスクリーンに持って来られるまで延期するどうかを指定するもの。→これによって、アプリの起動が速くなる。

One shotについて:
http://www.mosa.gr.jp/?p=1228
ヒントの直訳:
「レシーバー(これはNSWindowのインスタンスのこと)が管理するウィンドウ・デバイスに対し、そいつがスクリーン・リストから除外されたときに解放される(そして次に戻って来る時には新しく生成される)かどうか、を設定します」。

これは、NSWindowインスタンスそのものでは無く、インスタンスが管理するウィンドウデバイス(実際のウィンドウ部分)が解放される(そして必要になると、再度スクリーンリストに追加されて描画される)。→メモリの節約になる。

ちなみに、Release When ClosedはwindowにorderOutが送られた時にNSWindowインスタンスが解放されてしまう。

Backing Store Typeについて:
アップルリファレンスの説明
これは、とりあえずBuffered(NSBackingStoreBuffered)にしておくといい。

2009/12/17

IKImageBrowserViewでのコンテキストメニュー

激久しぶりにこんなピンポイントなトピックであれですが。。

右クリックでメニューを出したいって時に、普通は

HMDT コンテキストメニューを表示する

の通りにやれば速いんだけど、なぜかIKImageBrowserViewでそれをやると、control + クリック
ではコンテキストメニュー表示できるんだけど、ダブルフィンガー + クリックの時は表示ができない。

しかし、IKImageBrowserViewのdelegateプロトコルを使えば、表示できた。

- (void) imageBrowser:(IKImageBrowserView *) aBrowser cellWasRightClickedAtIndex:(NSUInteger) index withEvent:(NSEvent *) event
{
[NSMenu popUpContextMenu:_cMenu withEvent:event forView:_imageBrowser];
}
event はマウスイベント情報が入ってる。ビュー上の場所を含めて。
_cMenuはInterFaceBuilder上で作ったNSMenuインスタンスを指す。
_imageBrowserは表示したいIKImageBrowserViewインスタンスを指す。

でも、この方法だと根本理解/解決にはなっていない(と思う)から、誰か知ってたら教えてほしい。

2009/09/04

yahoo オークションぬ

金欠のため、大量にオークションに自己の分身たちを出品したお。みてみて〜。

2009/09/02

パーティクル勉強

今後、自活していくためにこつこつとグラフィック系とかflash系の勉強をしていこうと思っている。色々勉強してきたのを組み合わせてけばなんとかなるんじゃないかと思ったり。まぁやってることはBTくんらには遠く及ばないけど。オリジナルなものを作ってければと思う。がんばろう。

てなわけで、初心者はprocessingからということで、spring、perticleのサンプルを少しいじっただけのソース。もこもこしたのが作ってみたいので、とりあえず。どんどん綺麗にしてくでー。

2009/08/08

MITのBocode

ARタグの発展系Bocode。発想がすげー。カメラに一体化させちゃった。動画がMITのページで見られます。

仕組みとしては、カメラ内部に、3mm(?)角のちーちゃいタグを敷き詰めた一辺が100pixel(つってたっけな?)のパネルみたいのをレンズにかませて、被写体のピントをぼやかすと、タグパネルが大きくなって顕われて、それをタグとして使用するというもの。タグ自体がちっちゃくて物体の細かい部分にタグをつけられるから、AR上の物体もかなりの精度で貼付けられる(はず)。

細かいところはよくわかんないけど、とても実用的でPTAMよりもこっちの方が近い将来普及しそう。特に動画最後の部分で、googleStreetViewみたいに、画像をとりまくっていければ、かなり近い将来には実現しそう。しかしgoogleだけにはとられたくない技術です。なんとなく。

2009/07/25

一段落

とりあえず願書はだした。久しぶりにゆっくり寝たー。結局いろいろあがいて研究計画書かいたけど、最終的に、いいのは書けず。。悔やまれるところです。あとは、英語やって数学やって過去問やって。。色々。

2009/07/19

大学院かね

やばい。研究計画書の筆がすすまなすぎる。どーしーましょ。AR空間で音響生成とおもったけど、コードの量とできる事で天秤かけたら割り合わなそう。だし、クオリティーをだす自身が無い今のところ。んー何が良いかなぁ。あと3日、悩みます。

2009/07/18

class-dump

使えたー!使い方勘違いしてた。何チャラ.hファイルをターゲットに実行すればいいと思ってたら、バイナリファイルがターゲットだった。コマンドラインとかちゃんと使えるようになっとかないと。実行した手順を一応かいとこ。

1.ダウンロードしてきたclass-dumpをDesktopにおいといて、ターミナルでcdでDesktopまで移動。

$ cd Desktop
(
一応修正。これ、ホームからスタートするとしたら、正確には $cd ./Desktop/Class-Dump となるはず。)


2.バイナリファイルへのパスを指定して、class-dumpを実行

$ class-dump class-dump

(上記はclass-dumpの実行ファイルを自身を覗いている)

そんだらずらーっとリストアップされる

ターミナル上だと何かと面倒だからファイルに書き出して閲覧するには、

$ class-dump class-dump > ~/Desktop/class-dump.h

とかにしておけばおk

ただそんだけ。あー。

2009/07/04

cocoaおすすめリソース

大学院のポートフォリオ的なもののためにもcocoaでちょっとソフトつくろうとがんばってるのです。連日IKImageBrowserをいじってたので、色々調べてたらこたつつきみかんさんがドンピシャな内容とめっちゃ良いサイトを教えてくれました。cocoaセミナーのムービーです。徹夜で見ました。講師は木下誠さんです。さすがに噛み砕いてくれているので、分かりやすかったです。この人、家庭教師してくんないかな。

てか、先のムービーのリンクんとこのリソースめっちゃおすすめです。特にムービーのバインディングとコアデータは革命的でした。先日までのいちいちデータソースつくっていちいちファイル読み出して、いちいち書き出して、とかいうメソッド実装が無に帰した気がした。。。

今までずっとデベロッパセンターの英語サイトとobjective-Cの固い日本語ドキュメントでがんばってきたのがなんかむなしい。まぁセンス無いながらもがんばっていきまっしょい!

2009/06/29

cocoaの使い勝手

微妙。modal windowを出すのに今日半日つぶした。。ばからしい。はずかしい。情けない。しにそう。引っかかった部分をメモっとく。
大体はHMDTさんのページのサンプル通りにやればいいんだけど、Interface Builderでの設定変更がマスト。具体的には、新しく追加したモーダルウィンドウ用パネルのattribute Inspectorで

Appearance のshadow, show tool bar button,
MemoryのDeffered, One shot

だけを選択している状態にする(ようはサンプルの設定と同じにするだけなんだけど)。

これしないと最初っからずっとパネルが開いてることになる。モーダルのはずなのに。で、成功すれば、モーダルウィンドウはメインウィンドウのボタンかなんかを押したら(アクションに設定してれば)出てくるはず。で、ちゃんとモーダル側で閉じるボタンを設定してないと、強制終了するはめになるので、要注意。これも、HDMTさんのページに書いてある。ふー勉強になったなぁ。

<追記>
というかBehaviorのVisible at Lounchのチェックを外せばいいだけなんだね。ということでインタフェースビルダーでの設定項目は優先度高レベルのチェック箇所として記憶しました。ハイ。

2009/06/10

gcd

自然数のgcd(最大公約数)をもとめる再帰関数を、goto文で置き換える。

[再帰バージョン]

int gcd(int x, int y){

 if(!y)
  return x;
 else
  return gcd(y, x%y);

}

[gotoバージョン]

int gcd(int x, int y){

 int z=1; //1が最小公倍数

 loop:

 if(!z)
 return x;
  else
   z=x%y;
   x=y;
   y=z;
   goto loop;
}

About Me

自分の写真
目指せネイチャアプログラマ!Objective-C/Cocoa、web系スキルも絶賛習得中。Nature Interfaceに興味ありあり。
Powered By Blogger

Mitolog © 2008. Template by Dicas Blogger.

TOPへ