AdSense

2015年4月24日金曜日

windows環境でAndroid 4.03(ICS)のソースを解析したい

あわよくばビルドもしたい。はたして出来るのか。

1.ICSをのソースを取得する準備(git使えるようにする)
 windowsでgitが使えるようになるツール「msysgit」をインストール

  http://greety.sakura.ne.jp/redo/2012/02/windowsandroid.html
  Windowsでgit使ってICSのソースをとってくる

  http://www.atmarkit.co.jp/fjava/rensai4/devtool26/devtool26_1.html
  gitliteというGitのツール。他にもいろいろある模様。

2.ICSのソースを入手する
 git init
 git clone https://github.com/OESF/OHA-Android-4.0.3_r1.0.git

3.構造解析のためのツールインストール
 EA
 eclipse

今日はここまで。

2015年3月7日土曜日

ミクさんが歌って踊るWAVE FILEを作ってAndroidで動かす


背景

ミクさんのライブを臨場感たっぷりで見たい
   ↓
 Cardboardを使えば簡単に見れるのではないか
   ↓
 GooglePlayを探したけど、あんまりない
   ↓
 これは、自作するしかない

環境

Windows7

費用

0円

参考にさせて頂いたとこ

http://mypace-engine.blogspot.jp/2014/07/mmdunitydive-mmd4mecanim.html
 http://teshi04.hatenablog.com/entry/2014/10/29/040202
  https://akira-watson.com/unity/unity-android-release.html
 http://mypace-engine.blogspot.jp/2014/07/float-ypfloat0.html
 http://tsubakit1.hateblo.jp/entry/2014/09/14/170753

手順

1.Unityをインストール

http://japan.unity3d.com/unity/download/

2.MMD4MecanimをUnityにImport

http://stereoarts.jp/
MMD4Mecanim_Beta_20150214.zip

3.Dive SDKから下記をUnityにImporrt

https://www.durovis.com/sdk.html
Dive Unity Plugin Package 2.0 for Android/ iOS.

4.MMD4Mecanim チュートリアル(基本編) に従い、ミクさんのモデルを入手

http://stereoarts.jp/MMD4Mecanim%20%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%EF%BC%88%E5%9F%BA%E6%9C%AC%E7%B7%A8%EF%BC%89.pdf
 ※Piaproにアカウント登録必要(無料)。Twitterアカウント必要。
モデル
 よ式初音ミクv1.2.1 / よっさん
 http://piapro.jp/t/QcRy
 [MMDモデル]巡音ルカ V4X[マシシ]/マシシさん
 https://bowlroll.net/file/64929
モーション
 WAVEFILE fullver. モーション / hinoさん
 http://bowlroll.net/up/dl5983

5.MMD4Mecanim チュートリアル(基本編) に従い、Unityでの設定

Unityの基礎がないので、操作に結構手間どう。

Audio設定する際の設定項目は、以下
Hierarchy - Yo_Miku_Ver1.2.1(モデル選択)
 右下に「MMD4Mecanim Model(Script)」の設定がでるので、そこで「Anim」タブを押す。

6.Androidのapk作成


ただしこんなエラーで止まる。
Error building Player: UnityException: Bundle Identifier has not been set up correctly
Please set the Bundle Identifier in the Player Settings. The value must follow the convention 'com.YourCompanyName.YourProductName' and can contain alphanumeric characters and underscore.
Each segment must not start with a numeric character or underscore.


対策:
playersettingのandroidsettingのBundle identifierを適当に変えること。
あと、ビルド成功したっぽいのに、apkが指定したとこに生成されてない。
で、よく探したら、
  プロジェクトフォルダ - Temp\StagingArea
に「Package_unaligned.apk」という名前で生成されてた。

7.無事Androidで動いた




8.背景の設定

ステージファイルを入れる
 http://seiga.nicovideo.jp/seiga/im3738792

 音源も設定しておく
 http://stereoarts.jp/MMD4Mecanim%20%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA%E5%90%8C%E6%9C%9F.pdf

9.Cardboard用のカメラ設定

Main_Cameraを無効にしてDive_Cameraを有効にする。

 Cardboard用の変更
 http://mypace-engine.blogspot.jp/2014/07/float-ypfloat0.html





2014年8月24日日曜日

Arudino Procesing Funnel環境構築

コマンドポート:サーバの起動中…
コマンドポート:サーバが起動しました:9000
I/Oモジュールと接続中です…
java.lang.UnsatisfiedLinkError: C:\Users\xxx\Documents\Processing\libraries\funnel\library\rxtxSerial.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform thrown while loading gnu.io.RXTXCommDriver
Exception in thread "Animation Thread" java.lang.UnsatisfiedLinkError: C:\Users\xxx\Documents\Processing\libraries\funnel\library\rxtxSerial.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1732)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at gnu.io.CommPortIdentifier.(CommPortIdentifier.java:83)
at funnel.FirmataIO.begin(FirmataIO.java:513)
at funnel.ArduinoIO.(ArduinoIO.java:36)
at funnel.FunnelServer.connect(FunnelServer.java:354)
at funnel.FunnelServer.connect(FunnelServer.java:325)
at funnel.FunnelServer.(FunnelServer.java:226)
at processing.funnel.IOSystem.waitingServer(IOSystem.java:159)
at processing.funnel.Arduino.startingServer(Arduino.java:107)
at processing.funnel.IOSystem.(IOSystem.java:80)
at processing.funnel.Firmata.(Firmata.java:22)
at processing.funnel.Arduino.(Arduino.java:46)
at processing.funnel.Arduino.(Arduino.java:69)
at Blink.setup(Blink.java:36)
at processing.core.PApplet.handleDraw(PApplet.java:2117)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:193)
at processing.core.PApplet.run(PApplet.java:2020)
at java.lang.Thread.run(Thread.java:662)

こんなエラーになってProceesingメイクできない。
で、64bit環境のドライバになってないぽいので、64bit環境のをとってきて入れてみる

http://www.cloudhopper.com/opensource/rxtx/
ここから64bitのやつダウンロード

ch-rxtx-2.2-20081207-win-x64.zip


で、「rxtxSerial.dll」をエラーが出てた「C:\Users\xxx\Documents\Processing\libraries\funnel\library」
にいれる。元あったやつは名前変えておく。

で実行すると、無事成功!

========


コマンドポート:サーバの起動中…
コマンドポート:サーバが起動しました:9000
I/Oモジュールと接続中です…
Stable Library
=========================================
Native lib Version = RXTX-2.2-20081207 Cloudhopper Build rxtx.cloudhopper.net
Java lib Version = RXTX-2.1-7
WARNING: RXTX Version mismatch
Jar version = RXTX-2.1-7
native lib Version = RXTX-2.2-20081207 Cloudhopper Build rxtx.cloudhopper.net
Firmata Protocol Version: 2.3
I/Oモジュールと接続が完了しました://./COM28, 57600
Pin 0:
Pin 1:
Pin 2: Input, Output, Servo
Pin 3: Input, Output, PWM, Servo
Pin 4: Input, Output, Servo
Pin 5: Input, Output, PWM, Servo
Pin 6: Input, Output, PWM, Servo
Pin 7: Input, Output, Servo
Pin 8: Input, Output, Servo
Pin 9: Input, Output, PWM, Servo
Pin 10: Input, Output, PWM, Servo
Pin 11: Input, Output, PWM, Servo
Pin 12: Input, Output, Servo
Pin 13: Input, Output, Servo
Pin 14: Input, Output, Analog
Pin 15: Input, Output, Analog
Pin 16: Input, Output, Analog
Pin 17: Input, Output, Analog
Pin 18: Input, Output, Analog, I2C
Pin 19: Input, Output, Analog, I2C
Total configurable pins: 20
opened host address 127.0.0.1
コマンドポート:127.0.0.1がサーバに接続しました
I/Oモジュールを再起動中です…
I/Oモジュールは正常に再起動しました
Firmata Protocol Version: 2.3
reboot OK
configureation OK
addModule() Arduino -> 0
funnelServiceThread start
notify thread start
OscServiceThread start

pandaboard ESでUbuntuサーバ立ててツイートさせてみる

Linuxでサーバの勉強をしてみたい。
手元にLinuxPCが無いので、AndroidやFirefoxOS以来ほったらかしてたPanadaboardいUbuntu入れて動かしてみよう。

0.環境準備
 SDカード買ってくる。CLASS10のKingston 690円
 キーボードとマウス。合わせて1000円くらい。

1.Pandaboard用のUbuntuを入手
http://cdimage.ubuntu.com/releases/12.04/release/
ubuntu-12.04-preinstalled-desktop-armhf+omap4.img.gz

2.WindwsでSDに書き込むツールを入手。書き込み。
http://www.si-linux.co.jp/techinfo/index.php?DDforWindows
DDWin_Ver0998.zip
 ※管理者で実行すること

3.電源入れて起動
 起動には5分くらい時間がかかる

4.パフォーマンスの向上・安定?(lightdmとgdmの切り替え) →破棄
http://ankyo.blog.so-net.ne.jp/2011-06-17
 →再起動でUbuntuロゴから進まなくなる。
  下記と思われる。
  https://forums.ubuntulinux.jp/viewtopic.php?id=11345
  IPがわからないので、2からやりなおし。

5.SSHを有効にする
 http://d.hatena.ne.jp/Fiore/20080228/1204174833

6.好みのエディタ(SublimeText2)を入れる
 http://qiita.com/kanpou_/items/bc739c1215fc222f17c8
 →何故かインストール中に失敗。断念

7.LAMP環境構築(Apache、PHP、MySQLをインストール)
 http://tackysroom.com/myserver/Desktop/myserver_d01.htm


さらにWeb経由でArduino動かしたいのでArduinoの環境もつくる

8.Arduinoつなげる準備
 JDKインストール
 http://enthusiastickcoding.blogspot.jp/2013/05/arduinoubuntuide.html
 http://makers-with-myson.blog.so-net.ne.jp/2013-10-27
 
 これらを参考にオフィシャルからArduinoをとってきて動かすが
 librxtxSerial.soが(Possible cause; can't load IA 32-bit .so on a ARM-bit platform)とか言われて動かない。

 sudo apt-get install arduinoでいれてみる。→動いた!
 sudo arduinoまたは、$sudo chmod a+rw /dev/ttyACM0 にするのを忘れずに。

9.Twitterにつぶやけるように環境つくる
 Rubyのtwitterがいいぽいので、まずはRuby入れる
 http://hitoriblog.com/?p=9835
 sudo apt-get install rubygems

  twitterがinstallできない
 http://www.amulet.co.jp/shop-blog/?p=5157
  # apt-get install ruby-dev
  まだできない。
 Permission denied とか言われるからsudoで実行
 # sudo gem install twitter
 最初に時間がかかったけど出来たぽい

10.Twitterのアカウントを得る
  http://el.jibun.atmarkit.co.jp/haya/2010/09/twitter-bot-0e0.html
    Twitterアカウント作成
  Twitter DeveloperAPI登録。 key, API secret , Access token, Access token secret

11.自動Tweetするスクリプトを書く
  http://lance104.hatenablog.jp/entry/2014/03/10/234257
  RubyGems 5.0.0以上ではconfigureの使い方変わってるから注意

  「Your credentials do not allow access to this resource」というエラーがでる。
  key設定が上手く言ってない。yamlの使い方が合ってないみたい。Keyを直接いれたら成功。


参考にさせていただいたサイト
http://suen-study.blogspot.jp/2013/02/pandaboard-esubuntu-12042.html
http://jazz-love.ddo.jp/main/node/873
http://mylog.cswiki.jp/index.php?PandaBoard%2FUbuntu%E3%82%92%E5%8B%95%E3%81%8B%E3%81%99
http://magazine.wizapply.com/2012/06/28/pandaboardes-makegame/


Arduino
http://yamada468.blogspot.jp/2012/06/arduino-ide.html
http://enthusiastickcoding.blogspot.jp/2013/05/arduinoubuntuide.html
http://makers-with-myson.blog.so-net.ne.jp/2013-10-27

Arduinoと赤外線センサー&LEDでSharpのテレビを制御できた

赤外線コード
http://akizukidenshi.com/download/k4174_manual.pdf

赤外線リモコン受信モジュール
SparkFun SEN-08554
http://www.switch-science.com/catalog/129/

赤外線LED
長い方が+です

AQUOSのTVはパナソニックの赤外線プロトコルと同じでした。

Decoded PANASONIC - Address: 555A Value: F148688B (48 bits)
Raw (100): 14092 3500 -1500 600 -250 550 -1100 600 -250 550 -1100 600 -250 550 -1100 600 -250 550 -1100 550 -300 550 -1100 550 -300 550 -1100 550 -1100 600 -250 550 -1100 550 -300 550 -1100 550 -1100 550 -1100 600 -1050 600 -250 600 -250 550 -300 550 -1100 550 -300 550 -1100 550 -250 600 -250 600 -1050 600 -250 600 -250 550 -300 550 -300 550 -1100 550 -1100 600 -250 550 -1100 550 -300 550 -250 600 -250 600 -1050 600 -250 600 -250 550 -300 550 -1100 550 -300

2013年6月25日火曜日

Arduinoと赤外線LEDでPanasonicのテレビをリモコン操作できた

Arduinoと赤外線LEDでPanasonicのテレビをリモコン操作できた。
シリアルで任意のコマンド送信。
btn1Zとか(Zはコマンド末尾の意)

------------------------------------------------
#include <HashMap.h>
#include <IRremote.h>

IRsend irsend;
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;

#define PanasonicAddress 0x4004   // Panasonic address (Pre data)

const byte HASH_SIZE = 30;
HashType<String,long> hashRawArray[HASH_SIZE];
HashMap<String,long> hashMap = HashMap<String,long>( hashRawArray , HASH_SIZE );

void setup() {
    sethashMap();
    Serial.begin(9600);  // 9600bpsでシリアルポートを開く
    irrecv.enableIRIn();  // Start the receiver
}
char a;

void loop() {
    char str[20]; // 数字(文字列)の受信用配列
    String s;

    recvStr(str);
    s = str;
    long a = atol(str);
    Serial.println(s);
 
    for (int i = 0; i < 3; i++) {
      //irsend.sendPanasonic(0x4004, 0x1008485);
      irsend.sendPanasonic(PanasonicAddress, hashMap.getValueOf(s));

      delay(40);
    }
    irrecv.enableIRIn(); // Start the receiver
 
    if (irrecv.decode(&results)) {
      Serial.println(results.value, HEX);
      irrecv.resume(); // Receive the next value
    }
}

void recvStr(char *buf)
{
  int i = 0;
  char c;

  while (1) {
    if (Serial.available()) {
      c = Serial.read();
      buf[i] = c;
      if (c == 'Z') {
        buf[i] = '\0';
        break; // 文字列の終わりはZで判断
      }
      i++;
    }
  }
}

void sethashMap(){
hashMap[0]("btn1" ,0x1900697);
hashMap[1]("btn2" ,0x1908617);
hashMap[2]("btn3" ,0x19046D7);
hashMap[3]("btn4" ,0x190C657);
hashMap[4]("btn5" ,0x19026B7);
hashMap[5]("btn6" ,0x190A637);
hashMap[6]("btn7" ,0x19066F7);
hashMap[7]("btn8" ,0x190E677);
hashMap[8]("btn9" ,0x1901687);
hashMap[9]("btn10" ,0x1909607);
hashMap[10]("btn11" ,0x19056C7);
hashMap[11]("btn12" ,0x190D647);
hashMap[12]("chaUp" ,0x1002C2D);
hashMap[13]("chaDown" ,0x100ACAD);
hashMap[14]("volUp" ,0x1000405);
hashMap[15]("volDown" ,0x1008485);
hashMap[16]("power" ,0x100BCBD);
hashMap[17]("degital" ,0x1402E6F);
hashMap[18]("BS" ,0x1400E4F);
hashMap[19]("CS" ,0x140AEEF);
hashMap[20]("keyUp" ,0x1005253);
hashMap[21]("keyRig" ,0x100F2F3);
hashMap[22]("keydown" ,0x100D2D3);
hashMap[23]("keyLef" ,0x1007273);
hashMap[24]("Set" ,0x1009293);
hashMap[25]("back" ,0x1002B2A);
hashMap[26]("blue" ,0x100CECF);
hashMap[27]("red" ,0x1000E0F);
hashMap[28]("yellow" ,0x1008E8F);
hashMap[29]("green" ,0x1004E4F);
}


2013年1月27日日曜日

Android 4.2.1 JerryBeans on PandaBoard ES


Android 4.2.1 JerryBeans on PandaBoard ESを実施。

http://blog.sola-dolphin-1.net/archives/4334161.html


上記手順に従いUbuntu11 64bitでビルドするもビルドエラーになる。

環境をUbuntu12 64bitに変更して実施することで問題無くビルドOK

動作確認結果
・Wifi
・BT
・音
・HDMI出力

などなど、問題なし。