Transcript
Page 1: Java Day Tokyo 2013 Night Session

Sun SPOT を JavaFX で使えるようにしてみました!

@hiroskhttps://www.facebook.com/[email protected]

小出 洋 (こいで ひろし)

Page 2: Java Day Tokyo 2013 Night Session

Demonstration 1/3

JavaFX 2自作ブロック崩し

+Sun SPOT

Page 3: Java Day Tokyo 2013 Night Session
Page 4: Java Day Tokyo 2013 Night Session

Demonstration 2/3

JavaFX 2Brick Breaker

+Sun SPOT

Page 5: Java Day Tokyo 2013 Night Session
Page 6: Java Day Tokyo 2013 Night Session

Demonstration 3/3

JavaFX 8(JDK1.8.0-ea-b88 with JavaFX 8)

3D feature+

Sun SPOT

Page 7: Java Day Tokyo 2013 Night Session
Page 8: Java Day Tokyo 2013 Night Session

ところで

Sun SPOT って知っていますか?

Page 9: Java Day Tokyo 2013 Night Session

Project Sun SPOT

SmallProgrammableObjectTechnology

Sun

次世代の Java 技術に対して Sun( いまは Oracle )の技術を推進する方向を探求

サンルーフ

センサボード

プロセッサボード

バッテリ電源・リセットボタン

ステータスLED

USB ポート

3 次元加速度センサ光センサ温度センサ押ボタン ×2RGB24 ビット LED×8アナログ入力 ×6汎用 I/O ピン ×5大電流出力ピン ×4

180MHz 32 bit ARM920T core512K RAM/4M フラッシュメモリ802.15.4  無線ネットワークUSB インターフェース3.6V ・ 750mAh リチウムイオン電池36μA スリープコード"Java" テクノロジー

Page 10: Java Day Tokyo 2013 Night Session

Java TechnologyNetbeans プラグイン MIDP (Mobile Information Device Profile)

J2ME/CLDC プロファイル向けの Java 言語環境

MIDP アプリケーション( MIDlet ) javax.microedition.midlet.MIDlet を継承すべてのクラスは単一 JAR ファイル内に存在

以下のメソッドを実装void startApp()void pauseApp()void destroyApp(boolean c)

802.15.4 ネットワーク

シリアル通信センサー関係Squawk Java ME 関連ユーティリティバッテリ関連周辺 LSI 関連

さまざまなライブラリ protected void startApp() throws MIDletStateChangeException { ISwitch sw1 =        EDemoBoard.getInstance().getSwitches()

[EDemoBoard.SW1]; ITriColorLED [] leds = EDemoBoard.getInstance().getLEDs(); leds[0].setRGB(100,0,0); // set color to moderate red while (sw1.isOpen()) { // done when switch is pressed leds[0].setOn(); // Blink LED Utils.sleep(250); // wait 1/4 seconds leds[0].setOff(); Utils.sleep(1000); // wait 1 second } notifyDestroyed(); // cause the MIDlet to exit}

Page 11: Java Day Tokyo 2013 Night Session
Page 12: Java Day Tokyo 2013 Night Session

最近の問題点って…• 新品が手に入る?• まだ買えるようである

• 開発環境のインストールが難しくなった• でも頑張れば,何とかなるレベル

• host アプリケーションで Java FX が使えない• 今回これを何とかしようと思った

  Swing   JavaFX

10111101111010110

Page 13: Java Day Tokyo 2013 Night Session

なぜ SunSPOT で JavaFX が使えないのか?

• Sun SPOT SDK があまり更新されていない( JDK1.5 ベースだったり)

• ant 起動スクリプトでいろいろやっている– USB インターフェースの初期化– Base station の発見– Squawk Java VM の起動

• この辺りをちゃんとやってあげれば JavaFX でも動きそう

• でも本当はここで興味が尽きた!• 今回はもっと簡単な別の手段で試した

Page 14: Java Day Tokyo 2013 Night Session

JavaFX 8 or 2

Socket

SunSPOT host

Server Socket

BaseStation

今回の実装

当初やろうとした実装

SunSPOT

JavaFX 8 or 2

SunSPOT host

BaseStation SunSPOT