2012年12月20日木曜日

EclipseでAndroidADT(ネットワーク)設定できないとき

EclipseでAndroidアプリの開発環境を整備している時です。
AndroidADTがインストールできない症状がしばしばあります。
ほとんどは、proxyを越えられない障害です。

eclipse.iniを変更することでうまくいきました。
ちなみに、Eclipse内のネットワーク設定は、nativeにしています。


-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient
-Dhttp.proxyPort=8080
-Dhttp.proxyHost=プロキシサーバのホストアドレス
-Dhttp.nonProxyHosts=localhost|127.0.0.1

2012年9月19日水曜日

apkのバックアップ2

apkのバック方法に新しい方法

次の手順です。

tablet側
1.ESファイルエクスプローラを使用する。
2.インストールしているアプリを表示する。
3.バックアップする。

PC側
1.android-sdkのtoolsにあるbbmsを使用する。
2.起動し、エクスプローラを表示する。
3.バックアップフォルダを認識する。
4.apkファイルをメニュのpullを選択する。

ADB接続のまんまを利用するので、勉強になりました。

2012年9月13日木曜日

apkのバックアップ

apkはバックアップを取る必要があります
googleもアカウントでは、履歴が残ってないです。
ここよかったです。

2012年9月12日水曜日

BeagleBoardのタッチパネル2

BeagleBoardのタッチパネルで次のことを調べないといけません。

前回、示したコードと教えてもらっているコード、両方で動くことが分かりました。

異なる点は、解像度です。
座標が反転していそうな場合は、画面表示解像度はデフォルトで、LCD上にAUTOでフィッティングしている場合です。1240×1024ぐらいの解像度になっています。
この場合は、コードの変更が必要でした。

画面解像度を、下げると今度はコードの変更は必要なくなりました。

さらに、変更したコードでも動いています。

2012年9月5日水曜日

HM-TL10Tのタッチパネル

BeagleBoard-xM のandroid GengerbreadでHM-TL10Tのタッチパネルの制御に成功しました。
有名な先駆者のおかげです。
ただ、タッチの座標ががx座標もy座標もまるっきり逆方向に入れ替わっている結果になりました。
入力座標が時計回りに180度回転しています。

試しに、初期値の座標を入れ替えましたが、全く反応しなくなりました。
座標の初期値は、正しいことが分かりました。

そこで、入力座標から移動量を計算する関数を変更することにしました。


#ifdef CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH
static int general_touch_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
{
//dev->x = (pkt[2] << 8) | pkt[1];
//dev->y = (pkt[4] << 8) | pkt[3];
//dev->press = pkt[5] & 0xff;
//dev->touch = pkt[0] & 0x01;

dev->x = 0x0f92-(pkt[5] << 8) | pkt[4];    //これに変更しました。
dev->y = (pkt[3] << 8) | pkt[2];                //これに変更しました。

//dev->x = ((pkt[5] & 0x0F) << 8) | (pkt[4] & 0xFF);
//dev->y = ((pkt[3] & 0x0F) << 8) | (pkt[2] & 0xFF);
//dev->y = 2 * 0x07c8 - dev->y;
dev->touch = pkt[1] & 0x01;

return 1;
}
#endif

入力座標と画面が同じになり、正しく動作するようになりました。
タッチパネル入力のandroidマシンとなれました。
非常にうれしいです。

2012年8月30日木曜日

PIC18FでのCCP2でPWMが使えない

PIC18FでのCCP1とCCP2でPWMを2つ制御したい。
コンフィグレーションビット CCP2MX=PORTC が分かった。

しかし、出力しない。

結論、CCP1とCCP2を両方使うときは、PORTCとPORTBを使えってことかな。
でも、CCP1を使わなくてもCCP2からの出力はできなかった。

コンフィグレーションビット #prgma config CCP2MX=PORTBE

でRB3から出力を確認した。

PIC18Fでのシリアル通信で文字表記がおかしい C18で作ってます

PIC18f4620を使用し、シリアル通信でPCへ文字を送信しています。
文字列は、配列を使用しています。ポインタでは、エラーが出ます。

データを格納する文字配列の送信で、次の文字が2回表示されたり、文字化けがでます。

文字列にヌルを指示する方法に迷いました。
ポインタで指示しようとしましたが、コンパイラがはじきます。

//4桁を格納
char data[4]="0";
char data[4]={'0','0','0','0'};
char data[4]={"0000"};
char data[4]={0,0,0,0};

対策として配列を増やして、

char data[5]={0,0,0,0,0};


としました。
文字化けなど消えました。

’0’と0と¥0どちらが正しいかな?

2012年8月20日月曜日

BeagleBoard-xM USBotg 接続できなかった

ADB接続で、BeagleBoard-xMに接続を試みた。
オリジナルのOSを使用しました。
しかし、ベンダーID登録後の adb devicesで何も表示しません。

あきらめて、prebuildを使用しました。

あっさり接続。

もう一度、オリジナルを接続。

認識しました。

理由が分からない。
でもうまく行ってよかった。

やりたいことは、processingでArduinoアプリをAndroidアプリで実行させたい。
processing.serialでうまく行かない。

2012年5月8日火曜日

AVDでエミュレータが起動しない(Androidアプリ)

Androidアプリを作ろうとしています。Windowsのドメインユーザ環境で、AVDのエミュレータが起動しないので悩みました。
cann'tなたらpanicなたらとメッセージが出ました。
シンボリックリンクということでネット上では解説してありました。
mklinkコマンドを使用します。

方法
アドミニストレータで起動する。
使用したいユーザのプロファイル上に移動する。
mklinkコマンドを使用する。このとき/Jはいらなかった。

問題
.androidのパスが問題となった。
簡略したドライブレターではなく、フルパスを使用することで構築できた。
mklink .android フルパス.android

今ではばっちり。

2012年1月25日水曜日

HDTV出力設定

BeagleBoardのFAQサイトに記載があった。
この辺がストレス無く読めるようになるとなんでもできるようになれそう。

By recent OMAP git kernel and additional patch, the resolutions in this patch are supported.
You must set the boot arguments for your kernel to use these resolution settings. The argument would be in the format "video=omapfb:mode:", such as:
video=omapfb:mode:1920x1080@24
video=omapfb:mode:1920x1080@25
video=omapfb:mode:640x480@60
video=omapfb:mode:800x600@60
video=omapfb:mode:1024x768@60
video=omapfb:mode:1280x720@50
video=omapfb:mode:1280x720@60
video=omapfb:mode:480p60
video=omapfb:mode:576p50
video=omapfb:mode:720p50
video=omapfb:mode:720p60 (this one is probably the best choice for a HDMI TV)
video=omapfb:mode:1080p24
video=omapfb:mode:1080p25
video=omapfb:mode:1080p3

DSS2に対応させると以下の記述

Example:
omapfb.mode=dvi:1024x768MR-16@60
omapfb.mode=dvi:1280x720MR-16@60 (for 720p HDTV with 1:1 pixel mapping)
omapfb.mode=dvi:1280x1024MR-16@60 (tested on revB7, actual output is 57MHZ and may not work on some devices)
omapfb.mode=dvi:1360x768MR-16@60 (works nice on 720p HDMI TV which crops edges due to overscan)

DDSのマニュアルには以下に書いてある。
omapdss.def_disp=
Name of default display, to which all overlays will be connected.
Common examples are "lcd" or "tv".

Pandoraボードでは以下のようである。
omapdss.def_disp=hdmi consoleblank=0"

BeagleBoardでディスプレイの出力

BeagleBoard-xMからAitendoの4U@2011に出力できました。
PSPの画像出力も考えていますが、液晶キットのHDMI入力で、画像出力しました。
いろいろレポートがありましたが、u-bootのbootスクリプトに画面出力設定がありました。
boot.scrを書き換えます。
omapfb.mode=dvi:hd720-24MR@60に変更しました。
DVI-D出力-HDMIケーブル-HDMI入力 認識
内容は理解できてませんが、こうすることでHDMIで出力可能になりました。
画面の明るさ調整がコントロールできてないです。
HM-TL7Tにも出力できました。このモニタはHDMI入力端子で、DVI-DとHDMIを自動認識で切り分けています。
omapfb.mode=dvi:1024x600MR-24@60 に変更しました。
DVI-D出力-HDMIケーブル-DVI-D入力 認識 となりました。
解像度を変更することで可能です。
利用とういうか電子工作の幅が広がりました。
次はタッチパネルを報告します。

2012年1月19日木曜日

BeagleBoard-xM起動しない

久しぶりにBeagleBoardを触ってみました。
今回は、新しくBeagleBoard-xMです。
円高で安くなりましたね。PandoraBoardも買えますね。
さて、BeagleBoardの環境のままで、xMを初期SDで起動としたところ。
あれ、起動しません。シリアルでモニタしても何の反応もありません。
もちろんHDMIのモニタには何も写りません。

なぜだ!

電源でした。BeagleBoardでは、6Vのアダプタを使ってました。AKIH8-3069に付属していたものです。
ちゃんと起動するのにと思っていましたが、
xMの電源付近のLEDが赤色だけ点灯してました。
5Vに付け替えたところ、LEDは黄色が点灯し、無事、起動しました。
在庫を色々持ってないとお手上げでした。

2012年1月7日土曜日

Androidアプリ環境

AndroidOSの構築は前回色々試してみました。
今回は、アプリケーションを試してみました。
前回より半年経っているので環境設定から試してみました。
まずは、64bit ubuntu11.04で試しましたが、オペレーションも変わっているので、即10.04に変更しました。
環境構築には、日経linux2011夏号あたりを参考にしました。
まず壁に当たったのが、JDKの構築です。レポロジの書き換えがポイントでした。hardyへ変更してうまくいきました。
同時に、オラクルのサイトからバイナリをダウンロードして環境を作ってみようと試みましたが、何度やってもjavaが読み込めませんでした。bashrcで変更しても、ローカルなら認識してますが、eclipseからは全然認してしてないので諦めました。ubuntuのアップデートサイトもいつか消えるので、バイナリから構築できる方法を身に付けたいと思っています。
それから、java5とjava6の切り替えですが、galternativeも操作性がよかったのでオススメです。
次に苦労したのが、eclipseがADBを受け付けないことでした。やっとわかったのが、アプリケーション開発における推奨は、32bit環境であることがわかりました。OS構築とは、別の環境を作る必要があると思いました。これらは、ia32-libsの32bit用のライブラリを導入すると良いようです。
いやいや時間が掛かりました。android-sdk、eclipseへのプラグインの導入には、かなりダウンロードしますので、環境にもよりますが、じっくり2時間ほど見ておいたほうが余裕があると思います。
それから、atomでも環境を作ってみました。eee-pc1000かな。
コンパイラ作業もエミュレータ表示も上手くいきました。エミュレータ表示にやっぱり時間は掛かります。
一度、ADVを立ち上げたら、消さない方がいいかもしれません。コンパイルの度に閉じていると、本体自身を再起動しないとエミュレータが表示してこなくなりました。
エミュレータの操作性は、良かったです。