フォト
無料ブログはココログ

Android

2012年9月23日 (日)

Android+microbridgeでネギ振り

Android + microbidge + arduino + hostShield でサーボが動いたのでネギを振ってみた
Negifuri

アプリはこんな感じz
Negi_app
gifを表示してBGMを流して、加速度センサーの出力を読んで45°~135°になるように変換してarduinoに送るだけ。
arduino側のF/Wはmicrobridgeに含まれるDemoが使える。

アプリを実行した LifeTouchNoteを振るとミクがネギを振る
Nefifuri_movie ←リンク先にAVI

昨日参加した勉強会でやったらウケた。v(^^

2012年9月18日 (火)

Android+microbridgeでI/O制御

HostShieldそっくりさんができたのでAndroidと繋いでみた。
スマホは使っていないので(裸眼で使えそうなスマホはラクラクホンしかない)LifeTouchNoteを使った。LTNはAndroid2.2でAOA( Android Open Accessory Protocol )をサポートしていないのでmicrobridgeでLTNと繋いだ。

 microbridgeは、ADBを利用して制御するハードに接続するのでUSBデバッグを許可するとどのバージョンのAndroidでも使える。USB-Host機能を持ったハードからADB経由で tcp:xxxxを実行し、Android上のアプリはlocalhost:xxxx経由でハードと通信を行う仕掛けだ。

 microbridgeのサイトからHostShieldのF/W(MicroBridge-Arduino.zip)とAndrodのアプリ(ServoControl.zip)をDLしてサーボを制御するデモを実行してみるとうまく動かないので、パッチを当てた。

  • HostShieldのRESET,GPXの配線が逆
    原因:
    DEV-09628
    の回路図を参考にしたのでRESETとGPXの配線が逆になっていた。DEV-09628のページにも説明がある。(DEV-09947はサンプルソースのとおりになっているようだ)
    対策:
    max3421e.hの#define PIN_MAX_GPX 8 #define PIN_MAX_RESET 7 を書き換えて逆にした。
  • HostShield初期化時に"Error: OSCOKIRQ failed to assert"が出力される
    原因:
    MAX3412Eは電源ONの際に、内部の48MHzPLL発振器が外部の12MHzX'tal発振器にロックすると割り込みを発生する。
    max3421e.cppの max3421e_reset()関数で、この割り込みを待っているのだが、タイムアウト用の変数を8bit(unit8_t tmp)で宣言しているため、PLLがロックする前にタイムアウトが発生している
    対策:
    uint16_t tmp にした。
  • LTNが認識されない(10回に9回は認識に失敗する)
    原因:
    Adb.cppのADB::isAdbDevice()関数でコンフィグデスクリプタの取得に失敗している(getConfigurationDescriptor()の戻り値が負)
    対策:
    getConfigurationDescriptor()の戻り値が負ならばもう一度実行するようにした。

 HostShieldのF/Wでadb logcatしておくとAndroidのログがHostShield経由でシリアルで送られてくる。
Logcat
AndroidはUSBでHostShieldと繋がるのでEclipseでデバッグできなくなるが、logcatしておくとログを確認することができるようになる。

 Android側のアプリ(ServoControl.apk)はこんな感じ
Servocontrol1
画面上の赤い四角をドラッグするとサーボが動く。(このデモはX,Y 2ch分の制御が可能なのだがサーボが1個しかなかった。)
画面左上の赤いバーはArduinoのアナログ入力値を表示している。(アナログ入力ピンには何も繋いでない。)

 microbridgeを使用するアプリはsocketを使用するのでManifestでINTERNETアクセスを許可しておかなければならない。
簡単に動くと思っていたらまったくアプリが起動せず、INTERNETアクセスの許可していないことに気付くまでちょっとハマってしまった。(ログを見て気がついた。)


sparkfunのDEV-9947のリンクが間違っていたので、そ~っと直した。(2012/9/18)

2012年9月14日 (金)

USB Host Shield

Arduino用ユニバーサル基板 UB-ARD03でUSB Host Shieldを作った
Hostshield2
MAX3412Eを使ったSparkfunのUSB Host Shield(DEV-09947 DEV-0926) そっくりさんである。
(2012/9/18:そっくりさんを作るなら、サンプルソースを変更しなくて良いので DEV-09947を参考にしたほうが良い。)
MAX3412EはDigikeyから\1,161で買った。DEV-09947はスイッチサイエンスで\2,495だから、そっくりさんを作ってもそんなにお得ではなかった。
MAX3412E
は32pin-TQFPなので素直にピッチ変換基板を使ったらユニバーサル部分がなくなってしまったので、ソケットを使って浮かしてピッチ変換基板の下に3端子レギュレータを実装している。

Hostshield

なんだか空母状態になっている。
一番下が秋月のATMega168/328基板を使ったArduinoそっくりさん、手前が秋月のAE-UM232Rそっくりさん、奥側がSparkfunのUSB HostShieldそっくりさん。
 オープンソースばんざい。

2012年1月29日 (日)

Android 勉強会

Android勉強会に参加した。

 勉強会はハードウェアからアプリまで興味がある分野に参加すればOKというとってもユルい勉強会なのだけど、若い人たちはノートを準備してやる気満々で、もっと楽にやれば~と思った。

 昔参加していたフォーラlムのオフ会に参加するときには、何かウケるネタを持っていこうと頑張っていた。

 オフ会に参加することで、自分とは異なる視点の意見を聞くことができる。
同じ職場の人間は同じ価値観を持っているので、同業他社、異業種の人の考え方はとても参考になったと思う。

 昔昔、コミュニティで知り合った見ず知らずの人から ”教えてもらったこと” を後輩達に伝えることができたらと思う。

###
 Androidとは全く関係ないけどAVR cp/mを披露したら、同じ年代のおじさんにウケた。
62k CP/M+RAM disk付きといっても若い人たちにはピンとこないからね。(^^

2012年1月16日 (月)

ぱんだのテスト

 PandaBoardのテストをしようとここ からValidation Environment をDLして動かしてみた。シリアルケーブルが無かったのだが、ディスプレイに何かしら表示されるだろうと電源ONしても何も表示されなかった。 のが先週まで。

 そして、シリアルケーブルを用意して再挑戦した。
ターミナルにブートメッセージが表示されて
Panda_validation_boot

最後にシェルが動いている。

starting pid 1404, tty '/dev/ttyO2': '/bin/sh'
/ # ls
bin         etc         linuxrc     mnt         sys         var
boot        home        lost+found  proc        tmp
dev         lib         media       sbin        usr
/ #

/binの下にテスト用のシェルがあって
Validation
こんな表示とか
Validation2 猫も興味があるらしい

ようやく第一歩を踏み出した。

2012年1月 7日 (土)

ぱんだ三兄弟

ぱんだの配送状況をUPSのサイトで確認していたら、成田を出たきり更新されないのでこの人 のようにMUNBAIまで送られたのではと心配になり始めていた。

 帰ってみたら、机の上にDigikeyの箱が置いてあった
Package_s
UPSの伝票をよく見たら
Img_2970
なんで横浜市なんだ!うちは千葉だぞ。 大丈夫か > UPS

 中身はこんな感じ。 パンダ三兄弟
Pandx3_s
知人のも一緒に購入したので、2台は週明けには貰われる運命だ。

 ボードは
Pandaboardes_s

OMAP4460(CPU)は、これらしい
Omap4460_s

ELPIDAが作ってるわけではなく、POPだそうでOMAPはELPIDAのDDR2の下にあって親亀・子亀状態になってるそうだ。Piggyback PackageのBGA版てところだ。

 CDジャック 5V センター(+)
Dc_jack_s

2012年1月 5日 (木)

ぱんだ

ついにPandaBoardを注文しようと決心した
 Digikeyから買うのは初めてなので、先ずは先達の知恵と経験を参考にしようとNetをさがしたらここ(コメを噛) が見つかった。
 利用目的を明確にする必要があって、不備があったり曖昧だと注文後Digi-Keyの日本担当から(日本語で)確認の電話やメールが来て詳細を尋ねられるらしい。
日本を経由して持ち出されてミサイルの部品になってはこまるのでしかたないだろう。
 でも、「民生用テレビ受像器に映像を表示するための機器の試作、国内利用限定」と記載したらOKだったらしい。
ここは、チャレンジするところではないので、先達の経験を踏襲して注文した。

 Webページから注文を完了すると間もなく日本語の「注文を承りました。」メールがきて、ホッとしていたら、英語の「Digi-Key URGENT SAL# 31846892」メールが来た。
 どうも利用目的が足りないらしく「ミサイルとか大量破壊兵器に使わないよね? 誰が使うの?」ということらしい。
 日本担当から日本語で問い合わせが来るんぢゃないのか!と思いながら
・Androidをポーティングします
・高速画像表示アプリを動かします
・日本国外に持ち出しません
ということをexcite先生に相談しながら書いて送った。

 熱意が通じたのか、返信すればOKだったのかは不明だが注文は無事受け付けられたようで、「Shipment from Digi-Key Corporation」メールが来た。「出荷したから、後はUPSで確認してね」だそうだ
 注文時には出荷は1/18表示されていたのでちょっとびっくりでした。

 USPのサイトで確認すると既に成田を出たようだ。
Digikeyの人たちは1/3から仕事をしているのね。

2012年1月 4日 (水)

Androidはじめました

Androidはじめました。
といっても10月に NECのLifeTouchNote の投げ売りを買っている。(携帯は未だガラケー)

 SmartQ5 が国内で販売され始めた時に買おうと思ったら品切れで入手できず、その後東映無線やあきばおーに並んでいる中華謎padを見る度に買おうかと思いながら手を出せずにいて、LTNが投げ売り状態になったので思わず買ってしまった。

 iphoneのアプリを作るのは大変そうだけど、Androidなら簡単そう+投資も少なくて済みそうなのでアプリを作ってみようと思い、とりあえず参考書を買ってきた。
Androids

 最近Android関係の書籍は多く、どれを買ってよいかわからない。 SDK4.0対応と書いてあったので買った。
 ついでに
Android_s

も買った。
PandaBoard を買おうとしているのだが、この本はBeagleBoard-xM + FroYoを対象に書かれているのでちょっと古い。でもAndroidのH/W関係では、この本しか見つからなかった。

 BeagleBoardが手に入るようになったときに、このスペックで20k以下だったら買うしかないと思いポチッとする寸前までいったのだが、もうすぐ発売されるRevCまで待った方が良いという話があり結局買わずじまいだった。
 久々にBeagleBoardのサイトに行ってみると、BeagleBoardと比べて大幅に機能アップしたPandaBoardが発売されていて、しかも円高のおかげで15k位で買えるとなると、もう買うしかない。