GR-SAKURA で ADK を動かす



写真は 赤川さんのブログ から。

GR-SAKURA には Renesas 製の32ビットCPU が搭載されています。

ADK ( Accessory Development Kit ) は Android Phone と電子機器を接続するための開発キットです。
Arduino 版や PIC 版が公開されています。
GR-SAKURA には、ADK勉強会の赤川さんが移植しています。

ソースコードは下記で入手できます。
Android ADK for GR-SAKURA

書いてあるとおりにやったら、すんなり動きました。


GR-SAKURA を動かす


GR-SAKURA は Gadget Renesas Sakura Board の略称です。
いわば 国産 Arduino という位置づけの製品です。
Renesas 製の32ビットCPU (R5F563NBDDFP) を搭載しています。
Arduino UNO 互換のシールドを搭載するための端子が付いています。

若松通商で購入できます。
GR-SAKURA-FULL 4940円。

開発環境はWEBコンパイラが用意されています。
GR-SAKURA は PC から見ると USB メモリになります。
この辺は mbed を意識している感じですね。

プログラム言語は Arduino と同じような Sketch C言語 です。
setup() と loop() の2つだけで、main() がない形式。

サンプルプログラムが用意されています。
おなじみのLEDチカチカです。
詳しい手順は、GR-SAKURA Poroject のサイトに掲載されています。

手順を読んで、サンプルプログラムをビルドして、
実機で動作させるまでに、10分くらいでした。


アプリを起動しているときに NFC タグを検出したら処理する – NFC アプリの基礎


NFC アプリに特有の処理として、下記の2つがある。
1. NFC タグを検出したら、特定のアプリを起動する
2. アプリを起動しているときに、NFC タグを検出したら、何か処理する

アプリを起動しているときに、NFCタグ を検出したら、何か処理するには、下記を使用する。
(1) PendingIntent#getActivity
 ある条件でアプリ (Activity, Intent) を起動するための準備。
 launchMode は SingleTop とする。

(2) Activity#onNewIntent
 すでにアプリが起動されているときに、再びアプリが呼ばれたときの処理。
 NFC タグを検出したあとの処理は、ここに記述する。

具体的なコードは 高度なNFC を参照ください。そのままで動作します。
launchMode による動作の違いは Android launchMode の違い を参照ください。

参考
Android 開発ガイド: 高度なNFC
Y.A.M の 雑記帳: Android launchMode の違い
reference: PendingIntent#getActivity
reference: Activity#onNewIntent

関連
NFC 神経衰弱ゲーム


NFC タグ を検出したら特定のアプリを起動する – NFC アプリの基礎


NFC アプリに特有の処理として、下記の2つがある。
(1) NFC タグ を検出したら、特定のアプリを起動する
(2) アプリを起動しているときに、NFC タグ を検出したら、何か処理する

NFCタグ を検出したら、特定のアプリを起動するには、下記を設定する。
(1) AndroidManifest.xml に uses-permission と intent-filter を設定する。
(2) res/xml/nfc_tech_filter.xml に tech-list を設定する。

uses-permission と intent-filter は、おなじみなので省略する。
tech-list には、検出したいNFCタグの種別を記述する。
tech-list の詳細は、NFCの基本 を参照のこと。
NFCタグの種別は、TagTechnology を参照のこと。

AndroidManifest.xml の例

<uses-permission android:name="android.permission.NFC" />
<activity 
	android:name=".MainActivity"
	android:label="@string/app_name" >
 <intent-filter>
  <action android:name="android.nfc.action.TECH_DISCOVERED" />
  <category android:name="android.intent.category.DEFAULT" />
 </intent-filter>
 <meta-data
  android:name="android.nfc.action.TECH_DISCOVERED"
  android:resource="@xml/nfc_tech_filter" />
</activity>

res/xml/nfc_tech_filter.xml の例
Type-A, Type-B, Type-F(Felica) に反応する。

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
 <tech-list>
  <tech>android.nfc.tech.NfcA</tech>
 </tech-list>
 <tech-list>
  <tech>android.nfc.tech.NfcB</tech>        
 </tech-list>
 <tech-list>
  <tech>android.nfc.tech.NfcF</tech>        
 </tech-list>
</resources>

注意
NFCの基本 には、下記が掲載されているが、これは動作しない。
tech-list は、全てを満たすNFCタグに反応する。この例では IsoDep, NfcA, NfcB, … の全てを満たすNFCタグとなり、これは存在しない。
上記のように tech-list を複数記述のが正しい。

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <tech-list>
        <tech>android.nfc.tech.IsoDep</tech>
        <tech>android.nfc.tech.NfcA</tech>
        <tech>android.nfc.tech.NfcB</tech>
   ...
    </tech-list>
</resources>

参考
Android 開発ガイド: NFC の基本
Android NFC アプリハンズオン by tomorrowkey
NexusSによるNFC調査: getTechList 編
reference: TagTechnology

関連
NFC 神経衰弱ゲーム
・NFC タグ を検出したら特定のアプリを起動する – NFC アプリの基礎
アプリを起動しているときに NFC タグを検出したら処理する – NFC アプリの基礎


NFC 神経衰弱のアイデア


NFC 神経衰弱 は、誰でも思いつくアイデアだと思います。
似たようなものはないか探してみたところ。
ノキアでコンセプトビデオを作っていました。
絵合わせの素材に 国旗 を使っています。
ここに出てくるような NFC 内蔵のカードが市販される日も近いかな。

YouTube Preview Image

Renderscript MiscSamples – Android 4.0


Android 4.0 にて RenderScript が強化されました。
RenderScript – Android 4.0 APIs | 日本語訳

SDK にサンプルコード MiscSamples が同封されています。
/<sdk>/samples/android-14/RenderScript/MiscSamples

Renderscript API のさまざまな機能を使用する方デモです。

残念ながら、ビルド出来ません。
rsrenderstates.rs がコンパイル出来ないようです。

(1) RsList.java
メインの Activity です。
(2) RsListView.java
RSSurfaceView です。
(3) RsListRS.java
RenderScrip を実行します。

(4) RsRenderStates.java
もう一つのメインの Activity です。
(5) RsRenderStatesView.java
RSSurfaceView です。
(6) RsRenderStatesRS.java
RenderScrip を実行します。

(7) rslist.rs
RenderScrip です。
(8) rsrenderstates.rs
RenderScrip です。
(9) shader_def.rsh
構造体の定義です。


AKB 神経衰弱 in アキバ大好き祭り


8月18日(土) に アキバ大好き!祭り2012夏 に参加しました。
今回は「日本Androidの会 秋葉原支部 アクセサリ部」の一員として、
Android 端末と NFC タグを使用した 神経衰弱ゲーム を展示しました。

アキバらしく素材を AKB48 にしてみました。
アキバなら AKB に詳しい人が多いと思ったのですが。
実際は、メンバーの顔を分からない人が多くて、難しいという反応でした。

パネル

impress さんに取材して頂きました。
NFCタグが1枚100円で販売中、スマホ連携で様々に活用

関連
NFC 神経衰弱ゲーム


Renderscript HelloWorld – Android 4.0


23120819hello_world

Android 4.0 にて RenderScript が強化されました。
RenderScript – Android 4.0 APIs | 日本語訳

SDK にサンプルコード HelloWorld が同封されています。
/<sdk>/samples/android-14/RenderScript/HelloWorld

ユーザがタッチした場所に “Hello, World!” のテキストを描画します。
Renderscript のグラフィックスアプリケーションです。

(1) HelloWorld.java
メインの Activity です。
(2) HelloWorldView.java
RSSurfaceView です。
(3) HelloWorldRS.java
RenderScrip を実行します。
(4) helloworld.rs
RenderScrip です。


アキバ大好き祭り


2012年8月18日(土) に アキバ大好き!祭り2012夏 に参加しました。
会場は、ベルサール秋葉原 で、地下がライブステージ、1階が物販コーナー、2階がイベントコーナーとなっていました。

1階の物販コーナーでは 日本Androidの会 秋葉原支部 が、ロボットなどの展示とTシャツの販売をしていました
ここを手伝うつもりでいたのですが、机の上は展示品で一杯、ブース内も人で一杯でした。

2階のイベントコーナーでは 若松通商 さんが、NFCセミナーとハンダ付けセミナーを行っていました。
どちらのセミナーも人気が高く、実習が始めると、見物客が集まってきました。
セミナーとセミナーの間が1時間くらい空いているので、ここを間借りして、AKB 神経衰弱 をゲリラ的に展示させて頂きました。

アキバらしくアイドル達も。

ラジコン・ヘリコプターの曲芸飛行
YouTube Preview Image


NFC 神経衰弱ゲームの画像切替え


NFC 神経衰弱ゲーム には、動物の画像を添付していますが。
毎回、同じ画像だと飽きてきますね。
そこで、画像の切替えが出来るようになっています。

デフォルトでは、下記の場所にある画像を使用します。
/NfcCconcentration/default/

ここには、以下の画像と動画のファイルがあります。
image_start.jpg
image_1.jpg, image_2.jpg, …, image_10.jpg
video_complete.m4v

画像の切替えの手順です。
1. 画像を設置します
(1) PCとAndroid 端末をUSB接続します。
(2) 好きな名前のディレクトリ (例えば hoge) を作ります。
/NfcCconcentration/hoge/
(3) 上記の同じ名前のファイルを置きます。
画像サイズは、下記としてください。自動的にリサイズしません。
480px : image_start.jpg
240px : image_1.jpg, image_2.jpg, …, image_10.jpg
(4) 動画の代わりに、画像でもいいです。
その場合は、ファイル名を下記としてください。
image_complete.jpg

2. ディレクトリを指定します
(1) menu ボタンにて、setting 画面を呼び出します。
(2) 「Select Directory」をタッチします。
(3) ディレクトリ名が表示されます。

(4) 切替えしたディレクトリ名をタッチします。

関連
NFC 神経衰弱ゲーム
NFC 神経衰弱ゲーム の準備