投稿者アーカイブ

JavaOne 2014 San Francisco につきまして

JavaOne 2014 ディスカウント・コードのご案内


本日は、日本 Java ユーザ・グループ (JJUG) に所属する方々へ、JavaOne 2014 San Francisco のディスカウント・コードをお知らせいたします。今月 (6 月) 中に JavaOne 2014 San Francisco への参加チケットをご購入頂ける場合、JJUG 会員の皆様には現在の早期割引価格に加えて、さらに追加で $200 OFF でチケットをご購入頂く事が可能です。これは、当日のオンサイト価格に対して $600 OFF の割引になりますので、この機会にどうぞご登録ください。

ディスカウント・コードをご利用されたい場合は、登録時に下記をご入力ください。
※ ディスカウント・コード: DJU4

今年の JavaOne は継続して Java 開発者が必要とする情報をお届けするイベントで、9トラック 400 以上のセッションが用意されております。また、下記ブログでも情報共有されましたが、今年は次期Java EE 8 に関する情報も提供される事と想定しています。
Java EE 8 のプランニング

JavaOne には皆様が欲しい情報が必ずあると思います。是非、今年の JavaOne への参加をご検討ください。

また、これに併せて、JavaOne 2014 San Francisco のオフィシャルツアーにつきましてご案内を差し上げます。

JavaOne 2014 オフィシャルツアーのご案内



【JavaOne 2014 San Francisco オフィシャルツアーお申し込みページ】

 
★ お申込締切:2014年 7月 31日(木) 17時 ★

ご旅行代金:198,000 円(2名様1室利用時*1の1名様あたり料金)
※ 1室1名様ご利用も可能です
(追加ご旅行代金 上記および135,000円、合計 333,000円)
上記旅行代金には日本から米国までの航空運賃は含まれておりません。
詳細は上記サイトをご覧ください。

本ツアーは、ホテル代金、空港送迎、JTB 特設デスク(日本人)ご利用等をご利用頂く事ができ、2名1室でもご利用頂ける、JavaOne 参加者向け特別パッケージでございます。宿泊先の The Westing St. Francis はJavaOne 会場である、ヒルトン・ホテル、ホテル・ニッコー等から目と鼻の先にある、安全で好立地な場所に存在します。

Expedia によると
本日時点で、JavaOne 開催期間中のユニオンスクエア周辺の9/27-10/3までのホテル代金の平均は1泊 ¥45,940 でございました。
3つ星ホテル:¥51,968
4つ星ホテル:¥67,360
5つ星ホテル:¥75,237

一方で、本パッケージをご利用頂いた場合2名1室の場合、¥39,600 一人の場合、¥66,600となります。(The Westing St. Francis:4つ星ホテル)

JavaOne の会場からとても近く好立地で、安全な場所に宿泊されたい場合、是非、本パッケージのご利用をご検討頂ければ幸いです。(空港送迎の他、現地で日本人によるサポートもございます。)本パッケージは会社の同僚、もしくは Java のコミュニティのメンバーと相部屋でご利用されたい場合など柔軟にご利用頂けます。どうぞご活用ください。
※ 本パッケージに関する詳しいお問い合わせは上記 JTB までお問い合わせください。より多くの皆様のご参加を心より楽しみに致しております。

PS.
本パッケージをご利用頂くか否かで、私には一切見入りはございませんのでどうぞご理解ください。参加者の皆様に、より「好立地で安全な場所」を提供できないかと、今年初めて JavaOne 参加者の皆様向けに企画した内容です。どなたからもご利用頂けなかった場合は来年はないかもしれませんが、フィードバック等に応じて検討させて頂きたいと思いますので、フィードバックも頂ければ幸いです。

2014年6月5日 at 5:04 PM 1件のコメント

Java Day Tokyo 2014 終了の御礼

2014年 5/22(木)に今年最大の Java イベント Java Day Tokyo 2014 が無事終了しました。当日は、日本全国から多くの Java 開発者の皆様にお越し頂き誠にありがとうございました。昨年を上回る来場者数を記録し、ご参加頂いた全ての皆様に心より御礼申し上げます。

今年の Java Day Tokyo のテーマは、日本オラクル発の「Java SE 8」ローンチ・イベントでした。このイベントに併せて、US から Lambda の開発者を始めとして、多くのエンジニアに来日してもらい、丸一日 Java SE 8 関連セッションで様々な情報を入手して頂いたのではないでしょうか。多くの Java 開発者の皆様にとって今年のイベントが Java SE 8 採用に向けた出発点になって頂ければ誠に幸いです。

また本イベントに併せて、まだ完全ではないながらも日本語版 Java SE 8 API ドキュメントを公開できました。残りの部分につきましては随時対応をしてまいりますので、どうぞご安心頂くと共にご活用ください。

● 日本語版:Java Platform Standard Edition 8 ドキュメント
● OTN の「Java SE API & ドキュメント」サイトから:

● アーカイブ(zip)版も下記から入手可能です。

その他、JDK 8 のリリースノート等も一部日本語化を行いました。
下記リンクも併せてご覧ください。

● JDK 8の新機能
● JDK 8の既知の問題
● JDK 8およびJRE 8でサポートされるロケール
● Oracle JDK 8およびJRE 8認定システムの構成
● Java Platform, Standard Edition 8の名前とバージョン
● Java Mission Control 5.3リリース・ノート
● JDK 8採用ガイド
● JDK 8の互換性ガイド(翻訳中)

最後に、
今年、ご参加頂いた皆様、本当にありがとうございました。来年また Java 開発者の皆様と Java のお祭りができる事を心より楽しみにしております。

私の発表資料「Java SE 8時代のJava EE 7アプリケーション開発」も下記に公開しております。どうぞご参照ください。

また、上記発表中でご覧頂いた WebSocket のデモはここに公開しています。GlassFish v4.0.1 b5 以上でご確認頂けます。また、ソースコードはコチラからご覧頂けます

PS.
今年の夕方のイベントはグダグダになってすいませんでした。来年の夕方のイベントは、今一度仕切り直して、また楽しい夜のイベントを企画し実施したいと思っております。

2014年5月27日 at 2:54 PM

Java Day Tech Night の詳細な内容につきまして


Java Day Tokyo 2014 は早いものでもうあと3日に迫りました。すでに何名かの講演者が来日しておりイベントの準備もいよいよ最終段階に入ってきています。

さて、今日は「Java Day Tech Night」の詳細についてご案内します。

今年の「Java Day Tech Night」は、本場サンフランシスコの JavaOne さながらの BoF として「Ask The Experts」を行いたいと思います。本場 JavaOne では 「Meet the Spec Lead」という BoF セッションがあり、参加者が会場で自ら直接講演者に対して質問を投げかける事ができます。

今回は、その本場 JavaOne の「Meet the Spec Lead」を模して、今年来日した4名の講演者に対して、「Ask The Experts」セッションとして、会場にいらっしゃる皆様から直接ご質問やご意見をお伺いする場を設けたいと考えています。
※ 過去、お昼の時間帯に実施しておりましたが、人気セッションだったため、今年は規模と時間を拡大して、もっと多くの方に ご参加頂き、講演者と直接交流を持って頂ければと考えております。

また、本イベントの UStream 配信も正式に決定しました。関東近郊以外の皆様、もしくはお仕事でどうしてもお越し頂く事ができなかった皆様には、是非 UStream でご覧頂けないでしょうか。
※1: UStream を視聴頂くためには登録が必要です。登録用の URL は別途ご案内致します。
※2: 本 Stream 配信は録画はいたしません。リアルタイムでのみご視聴いただけます。

Twitter のハッシュタグ:#jdt2014_A5

Experts :
* Stuart Marks (Lambda 式の開発者)
* Simon Ritter (Java SE/SE Embedded/JavaFX のエバンジェリスト)
* Stephen Chin (JavaOne の Chair)
* Reza Rahman(Java EE のエバンジェリスト)

通訳:
David Buck

皆様から頂くご質問、ご意見のカテゴリとして下記を考えております。

* オラクルの Java 活動に関する質問、ご意見
 例:世界のコミュニティ活動について教えて欲しい
   日本のコミュニティについてもっと連携して欲しい
   日本のコミュニティに対してヘルプして欲しい。
   Adopt-A-JSR はどうしたら参加できるの?
   世界の何カ国にどの位の頻度で巡っているの?
  提案:
   もっと、海外のエンジニアに日本にきて欲しい。
   ***の部分をもっと改善して欲しい。

* Lambda 式について
 スペックを含む技術的なご質問、ご意見など
 セッション中で疑問に思った事。

* JavaSE/JavaFX/Java Embedded に関連する内容(Lambda 式以外)
 Lambda に関する以外の全てのご質問
 スペックを含む技術的なご質問、ご意見など

* Java EE に関して
 スペックを含む技術的なご質問、ご意見など
 次の Java EE 8 はこのような機能を入れて欲しい。
 
などなど。

皆様がお持ちの疑問や課題、ご意見等を是非我々に直接お届けください。
皆様の貴重なご意見、ご質問が「次の Java をさらに良くするため」の、きっかけになるかも知れません。多くの皆様のご参加とご意見・ご質問を心よりお待ち致しております。

ご意見・質問頂ける方へのご案内:
当日開場の両サイドに、ご質問者用のマイクを2本用意しています。ご質問を頂ける方は、直接マイクが置いてある場所までお越し頂けないでしょうか。またセッションが始まるとすぐに、1番目のカテゴリ「オラクルの Java 活動に関する質問、ご意見」に入りたいと思います。本プログラムが正式に始まる前から両サイドのマイクにお並び頂ければ誠に幸いです。

開場のマイクの置き場所について

2014年5月19日 at 6:32 PM

Java Day Tokyo で「教育版 LEGO Mindstorms EV 3」の限定3台販売決定

先日、leJOS + NetBeans 8.0 (Maven) + Java SE Embedded (7 or 8) で LEGO Mindstorms EV3のアプリケーション開発 のエントリで LEGO Mindstorms を Java で制御するためのエントリを記述しましたが、このエントリの中で 「教育版レゴ マインドストームEV3」 をお借し頂いた、(株)アフレルさんが Java Day Tokyo 2014 で協賛する事が正式に決まりました。そこで、Java Day Tokyo の当日、アフレルさんの展示ブースで生の「教育版レゴ マインドストームEV3」をご覧頂く事ができます。皆様、どうぞ楽しみにしてください。


また、これを記念してアフレルさんの展示ブースで、「会場販売特典付き」の『教育版EV3 Javaプログラミングセット』を限定3台販売する事も決まりました。

『教育版EV3 Javaプログラミングセット』+Java Day Tokyo 2014 会場販売特典
  価格:51,600円(55,728円)

 ◆教育版EV3 Javaプログラミングセット:51,600円
  教育版レゴマインドストームEV3
  DCアダプター
  無線LANドングル
  USB延長ケーブル
  EV3 Javaプログラミングガイド

 ◆JavaDayTokyo2014会場特典
  EV3インタラクティブサーボモーターM:3,200円相当
  非売品レゴセット×2種:プライスレス

ここでしか手に入らない、非売品レゴセット(内容は当日のお楽しみ)を含む、追加モータも頂けるので、まさに Java Day Tokyo だけのオリジナル特別限定販売になります。
また、現時点では Java で LEGO Mindstorms を制御するための日本語情報が少ないため、最初から英語で情報収集するのはちょっとという方には、付属の「Javaプログラミングセット」の日本語資料は、絵付きで丁寧に説明されているのでとても有用かと思います。

ご購入頂いた商品は、当日お持ち帰りいただく事も可能ですので、Java Day Tokyo の余韻がさめない内から LEGO Mindstorms をお楽しみ頂く事も可能です。また、大きい商品ですので、会場から郵送でお送りいただく事も可能です。(特典のレゴだけお持ち帰りいただく事も可能です!)
ここでしかご購入頂けない、限定 3 セットの『教育版EV3 Javaプログラミングセット』をご購入されたい方は、是非アフレルさんの展示ブースへお早めに御立ちよりください。

※ 当日、Java Store では、Java Day Tokyo 2014 オリジナル・ケース付き “Raspberry PI” を、こちらも限定 20 セットの販売を予定(¥7,500位)していますが、Raspberry PI と LEGO Mindstorms の販売場所は異なりますので、どうぞご注意ください。

2014年5月9日 at 4:20 PM

Java SE 8 & IoT ハンズオンのご紹介

今日は私、寺田が企画する Java ハンズオンセミナーを2つご紹介します。このハンズオンは、Java Day Tokyo 2014 に併せて来日するエンジニアと共に実施します。
実施内容は、午前 : Java SE 8 Lambda と午後: IoT に分けて2回実施し、各回とも先着 50 名で募集します。Lambda の開発者自らがお送りする Lambda 式のハンズオンの他、Raspberry Pi のハンズオンは、2人1組に Raspberry Pi を貸し出し、これを使った創作物を作って頂きます。とても面白い内容になると思いますので、ご興味のある方はどうぞお早めにご登録の程宜しくお願いします。

日時: 2014 年 5 月 23 日 (金)
場所:オラクル青山センター

Java SE 8 Lambda ハンズオンの参加ご登録
実施時間:AM 10:00 – 12:00

Internet-of-Things ハッカー・スペース !!の参加ご登録
実施時間:14:00 – 16:00

当日は、逐次通訳を行いフォローします。
皆様のご参加を心より楽しみに致しております。

2014年5月7日 at 12:00 PM

【若い方向け】Java Fan Meeting 2014 のご案内


今日は、若い方(20-30歳)向けの Java イベントのご案内を差し上げます。

5月22日(木)に「Java Day Tokyo 2014」を開催しますが、これに先駆けて、「Java Fan Meeting 2014」を5月16日(金)に開催します。

「Java Fan Meeting 2014」の登録サイト
https://fansfans.jp/campaigns/detail/1332

※ 本イベントへの参加は抽選による受付となります。
 また、本イベントは「ブログ」「Twitter」「Facebook」のうち
 1つ以上をお持ちの方が対象になります。
 応募時のアンケートに必ずご記入ください。

本イベントの趣旨は、若い Java エンジニアの方々と交流を持つ事ですので、若い方を優先とさせて頂きたいと思います。20 – 30代(学生、社会人何れも可)の若手の方の中で、Java に関する情報発信を行っている方、これから情報発信を行いたいと考えている方は是非、お気軽にご登録頂けないでしょうか。

また、JJUG 会員の皆様(ベテランの皆様)の身近にいらっしゃる新人や若手のエンジニアで、これから Java に関する情報発信をしたいと考えている方、新人 Javaエンジニアをご存知な方は是非、本情報をご案内頂けないでしょうか。

参加者には「Java Day Tokyo 2014」の見どころをいち早く紹介します。また、プログラミングロボット教材「教育版レゴ®マインドストー ム」や、子供向け Java教育のためのゲーム開発ツール「Greenfoot」を使った小中学生向けJava教育の取り組みについてもご紹介します。

イベントの最後には軽食と飲物をご用意しておりますので、どうぞお楽しみください。是非奮ってのご応募、お待ちしております!

————————————————
【イベント概要】
■タイトル:「Java Fan Meeting 2014」
■日時:2014年5月16日(金)19:00開場 19:30開始~21:00終了を予定
■会場:日本オラクル株式会社 本社
■住所:東京都港区北青山2-5-8 オラクル青山センター (13階の受付にお越しください)
■地図(URL):http://www.oracle.com/jp/corporate/branch/aoyama-078891-ja.html

■交通案内:地下鉄銀座線 外苑前駅 4B出口より接続 
      地下鉄銀座線・半蔵門線・大江戸線 青山一丁目駅より 徒歩9分
      地下鉄銀座線・半蔵門線・千代田線 表参道駅より 徒歩10分

■参加費用:無料(ソーシャルメディアアカウントをお持ちの方が応募対象になります。)
■募集定員:20名

■参加条件:
※ブログをお持ちの方はイベント内容についての率直なご感想を【2週間程度】で
 ご自身のブログに1記事以上書いていただける方、また当日の様子をTwitterやFacebookで
 投稿してくれる方を募集しています。

 ・ブログ記事について:
  【日本オラクル】のイベントに参加したということが読者にわかるように記載してください。
  (表記の仕方は自由)
  (例)【日本オラクル】のイベントに参加しました。

■注意事項:
※当落にかかわらず、5月9日(金)までにメールにてご連絡いたします。
※当日はお飲み物と軽食をご用意しております。
※当日は、メディア用の撮影が入る場合がございます。予めご了承ください。

※本イベントの注意事項については、Fans:Fansキャンペーンポリシーページをご参照ください。
 http://fansfans.jp/policy/

【主催】 日本オラクル株式会社

2014年4月30日 at 6:45 PM

leJOS + NetBeans 8.0 (Maven) + Java SE Embedded (7 or 8) で LEGO Mindstorms EV3のアプリケーション開発

今日は Java の開発者の皆様に、LEGO Mindstorms EV3 の制御を Java で行うために、環境構築から NetBeans を使用した Java のアプリケーションの開発方法までをご紹介します。LEGO 社は、幅広い年代の子供達に向けて LEGO ブロックを提供しています。最近では私の2歳になる子供も LEGO duplo という幼児向けのレゴで遊んでいます。

今日、ご紹介する「教育版レゴ マインドストームEV3」 は、LEGO Mindstorms を教育目的で使うために開発された製品で、これを使用するとブロックでロボットを作成した後、Java でそのロボットを制御する事もできるようになります。今回、Java でロボット制御を試すために、「教育版レゴ マインドストームEV3 / LEGO Mindstorms Eduation EV3 」の日本の正規代理店である(株)アフレル様のご協力を得て、LEGO Mindstorm を1台お借りし、実際に教育版レゴ マインドストームEV3 用の Java アプリケーションを書いてみました。

● アプリケーションの動作イメージ:

今回、作成した LEGO Mindstorms EV3 のサンプル・アプリケーションのソースコードは GitHub にアップしていますので、ご興味のある方はどうぞご覧ください。
https://github.com/yoshioterada/Java-Sample-app-for-LEGO-Mindstorms

本エントリでは、上記のサンプル・アプリケーションの実装に対する詳細の説明ではなく、Java でプログラムを書く事ができるように環境構築から最初のプログラム作成の部分までをご紹介します。

事前準備:

(1) レゴマインドストーム EV3 の入手

LEGO Mindstorms は 教育版と玩具版があり含まれる内容が異なります。
参考:教育版と玩具版の比較 (アフレル)

教育版
「教育版レゴ マインドストームEV3」の入手 (本エントリではこちらを使用)
販売先情報 :アフレル(株)


玩具版: Amazon 等から
レゴ マインドストーム EV3 31313(¥51,000)
レゴ マインドストーム EV3 31313 LEGO Mindstorms EV3 並行輸入品(¥ 44,320)
LEGO Mindstorms EV3 31313($349.95)

玩具版の レゴも Amazon で $350 〜 ¥51,000と少々高価な商品ですが、対象年齢は 10 歳以上のれっきとした LEGO です。機能的にこれは本当に子供向けなのか?!と思う程、自分でロボットを組み立てたり、そのロボットを制御するプログラムを書けたりと、子供よりも大人が熱中しそうな商品です。今回のエントリは玩具版でもご参考いただけるかと思います。

(2) USB WiFi アダプタの入手

USB の WiFi アダプタは EV3 に標準で付属していませんがあった方がとても便利です。開発時、開発環境から EV3 へネットワークを通じてアプリケーションをデプロイしたり、リモートから EV3 を制御したい場合、WiFi アダプタが必要です。今回、(株)アフレル様のご好意で「Roland Wireless USB Adapter WNA1100-RL」も借りる事ができたため、私はこの WiFi アダプタを使用します。Amazon から WNA1100-RL を購入していただく事も可能です。

その他、EV3 では下記の WiFi の USB アダプタが動作確認されています。特に EDIMAX EW-7811Un は EV3 からあまり突出しないのでオススメです。
動作確認済みの WiFi アダプタ

(3) leJOS 0.8.1 beta の入手


leJOS は LEGO Mindstorms EV3 のファームウェアを変更した OS で、この環境上で Java SE 7 Embedded 7 が稼働し、Java のアプリケーションを動かす事ができるようになります。
leJOS EV3 0.8.1 beta release より leJOS_EV3_0.8.1-beta.tar.gz を入手してください。

(4) Oracle Java SE Embedded の入手

Java for LEGO® Mindstorms® EV3 のサイト(オリジナルJRE入手先)から、Oracle Java SE Embedded を入手してください。
Java SE Embedded 7 の場合:
● ejre-7u55-fcs-b13-linux-arm-sflt-headless-17_mar_2014.tar.gz

Java SE Embedded 8 のインストール方法は、本エントリの最後に記載しています。

(5) 開発環境用 (Mac/Linux/Windows環境) に統合開発環境、Java SE をインストール

デスクトップの開発環境に NetBeans 8 と Java SE 7 をインストールしてください。(今回は各インストール方法の詳細は割愛)

NetBeans の入手はこちらから
Java SE 7 の入手はこちらから

leJOS 環境構築から開発までの手順

LEGO Mindstorms EV3 で Java アプリケーションを動作させるためには、下記の手順に従って行います。


  1. ブート可能なマイクロ SD カードへ leJOS のインストール
  2. ブート可能なマイクロ SD カードから起動
  3. leJOS で WiFi 設定
  4. ローカル Maven レポジトリに必要ライブラリをインストール
  5. Maven プロジェクトの作成
  6. アプリケーションの開発
  7. アプリケーションのビルド/デプロイ
  8. アプリケーションの実行

(0)ブート可能なマイクロ SD カードを作成

ブート可能で FAT 32 でフォーマットしたマイクロ SD カードを作成してください。Mac OS/X の場合、「アプリケーション」→「ユーティリティ」→「ディスクユーティリティ」を実行して作成できます。「パーティションのレイアウト」から「1パーティション」を選択し、「パーティション情報」に「名前」を記入してください。

次に「オプション…」ボタンを押下してください、すると下記のウィンドウが表示されます。ここで、「マスター・ブート・レコード」にチェックされている事を確認し「OK」ボタンを押下してください。

最後に「適用」ボタンを押下してください、押下すると下記の画面が表示されます。ここで「パーティション」ボタンを押下してください。

(1) SD カードへファイルのコピーと展開 (Mac/Linux/Windows 環境で実施)

事前準備の (3) でダウンロードした leJOS_EV3_0.8.1-beta.tar.gz を展開してください。

> tar xvf leJOS_EV3_0.8.1-beta.tar.gz
> ls

COPYING README.md bin lejosimage.zip lib samples.zip sd500.zip

展開すると lejosimage.zip が存在しますので、このファイルと JRE7 を SD にコピーしてください。ファイルをコピーした後、SD カード内で lejosimage.zip を展開してください (※ JRE の展開は不要です)。

> cp ejre-7u55-fcs-b13-linux-arm-sflt-headless-17_mar_2014.tar.gz lejosimage.zip /Volumes/LEGO-PART/
> cd /Volumes/LEGO-PART/
> unzip lejosimage.zip

Archive: lejosimage.zip
creating: lejos/
creating: lejos/bin/
inflating: lejos/bin/partition.sh
inflating: lejos/bin/partfuncs.sh
inflating: lejos/bin/install.sh
inflating: lejos/bin/funcs.sh
inflating: lejos/bin/spinner.sh
inflating: lejos/bin/check.sh
creating: lejos/images/
inflating: lejos/images/lejoslogo.ev3i
inflating: lejosimage.bz2
inflating: uImage
inflating: uImageStandard
extracting: version

# 展開した後の SD カードのディレクトリ構成
# ls -F
ejre-7u55-fcs-b13-linux-arm-sflt-headless-17_mar_2014.tar.gz*
lejos/
lejosimage.bz2*
lejosimage.zip*
uImage*
uImageStandard*
version*

以上で準備は完了です。マイクロ SD カードをアンマウントして、システムから取り出してください。

取り出した後、EV3 にマイクロ SD カードを挿入してください。またその際、WiFi の USB アダプタも USB ポートに挿入してください。

(2)ブート可能なマイクロ SD カードから起動(EV3 で実施)

LEGO MindStorm に SD カードが挿入されている事を確認し、EV3 のボタンを押して起動してください。すると自動的に Linux 環境の構築(ファイルシステム構築等も含む)やJava 環境の構築を実施します。 (作業終了まで:約 8 分)

内部的には下記の処理等が行われています。
1. Resize FAT32 fs
2. Resize Complete
3. Create Linux fs
4. Expand Image
5. Prepare Install
6. Deleting old files
7. Expand Image
8. Start Install
9. Installing rootfs
10. Installing modules
11. Installing leJOS
12. Configure network
13. Install links
14. Install lib jna
15. Copy config files
16. Install jre
17. Extracting jre
18. Optimize java
19. Remove temp files
20. Installing kernel
21. Sync disks
22. Unmount disks
23. Rebooting

EV 3 はインストールや設定が完了すると自動的に再起動します。正常に起動が完了すると大きなブザー音が鳴った後、leJOS のメニュー画面が表示されます。


(3) leJOS で WiFi 設定(EV3 で実施)

WiFi の設定は、WiFi の設定マークを選択して行います。選択すると接続可能なアクセス・ポイントの一覧が表示されます。

自身の適切なアクセス・ポイントを選択してください。選択すると下記の画面が出てきます。

ここで、アクセス・ポイントに接続するため WEP のパスワードを入力します。基本的にはキーボード配列と同様にローマ字が並んでいますので、適切なパスワード文字を入力してください。ここで画面の一番最下行に特別な命令用の文字 (U,l,x,D) が記載されています、それぞれの意味は下記の通りです。大文字のローマ字を入力したい場合は、U を押す等してパスワードを正しく入力してください。

U : 大文字に変換 (Upper)
l : 小文字に変換 (lower)
x : 1文字消去
D : 設定終了 (Done)

パスワードを正しく入力した後、D を押下すると WiFi での接続ができるようになります。EV3 のメニュー画面で、IP アドレス: 10.0.1.1 と記載された行の下側に、割り当てられた IP アドレス(ここでは 192.168.1.100)が記載されていますので、この IP アドレスで EV 3 に接続できるようになります。EV3 に接続できるようになっているかどうかを確認するために、TELNET でログインをして確認してください。

> telnet 192.168.1.100
Trying 192.168.1.100…
Connected to 192.168.1.100.
Escape character is ‘^]’.

_____ _ _ ___
| _ |_ _ _| |___| | __|
| _| | | . | . | | _|
|__|__|___|___|___|_|_|

Rudolf 2011.01 EV3

login: root
root@EV3:~#

正常に、WiFi の設定ができている場合、上記のようなログイン・プロンプトが表示されます。ここで login: 名に root を、パスワードは未入力(ノンパスワード)でエンター・キーを押下してください。すると EV3 にログインができるようになります。

(4) ローカル Maven レポジトリに必要ライブラリをインストール (Mac/Linux/Windows 環境で実施)

今回、統合開発環境には NetBeans を使用し、Maven プロジェクトとしてアプリケーション開発を行います。EV3 を制御する Java アプリケーション開発を行うためには、ev3classes.jar と dbusjava.jar が必要ですが、現在 leJOS 用の Maven レポジトリが存在していないようです。そこで、これら2つのファイルをローカルの Maven レポジトリにインストールしてください。2つのファイルは leJOS_EV3_0.8.1-beta.tar.gz を展開したディレクトリ内に含まれています。

> cd leJOS_EV3_0.8.1-beta/lib/ev3
> ls

dbusjava-src.zip dbusjava.jar ev3classes-src.zip ev3classes.jar

次に、2つのファイルを mvn コマンドでローカル・レポジトリにインストールします。下記の 2 つのコマンドを実行してください。仮に mvn コマンドが自身の実行パス内に見つからない場合は、NetBeans 付属のmvn コマンドをご利用ください。

例:Mac OS/X (Linux) の場合 mvn はデフォルトで下記に存在します。
“/Applications/NetBeans/NetBeans 8.0.app/Contents/Resources/NetBeans/java/maven/bin/mvn”

> mvn install:install-file -Dfile=ev3classes.jar -DgroupId=ev3.classes -DartifactId=ev3classes -Dversion=0.8.1 -Dpackaging=jar
[INFO] Scanning for projects…
[INFO]
[INFO] ————————————————————————
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ————————————————————————
[INFO]
[INFO] — maven-install-plugin:2.3.1:install-file (default-cli) @ standalone-pom —
[INFO] Installing /Users/USER_NAME/Downloads/leJOS_EV3_0.8.1-beta/lib/ev3/ev3classes.jar to /Users/USER_NAME/.m2/repository/ev3/classes/ev3classes/0.8.1/ev3classes-0.8.1.jar
[INFO] Installing /var/folders/5x/qqvk50_50xl7jvfhyf9_tdd40000gn/T/mvninstall6910985062740456417.pom to /Users/USER_NAME/.m2/repository/ev3/classes/ev3classes/0.8.1/ev3classes-0.8.1.pom
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 0.623s
[INFO] Finished at: Tue Apr 22 20:22:57 WIT 2014
[INFO] Final Memory: 5M/245M
[INFO] ————————————————————————

> mvn install:install-file -Dfile=dbusjava.jar -DgroupId=ev3.dbus -DartifactId=dbusjava -Dversion=0.8.1 -Dpackaging=jar
[INFO] Scanning for projects…
[INFO]
[INFO] ————————————————————————
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ————————————————————————
[INFO]
[INFO] — maven-install-plugin:2.3.1:install-file (default-cli) @ standalone-pom —
[INFO] Installing /Users/USER_NAME/Downloads/leJOS_EV3_0.8.1-beta/lib/ev3/dbusjava.jar to /Users/USER_NAME/.m2/repository/ev3/dbus/dbusjava/0.8.1/dbusjava-0.8.1.jar
[INFO] Installing /var/folders/5x/qqvk50_50xl7jvfhyf9_tdd40000gn/T/mvninstall6420442918254641308.pom to /Users/USER_NAME/.m2/repository/ev3/dbus/dbusjava/0.8.1/dbusjava-0.8.1.pom
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 0.597s
[INFO] Finished at: Tue Apr 22 20:25:04 WIT 2014
[INFO] Final Memory: 6M/310M
[INFO] ————————————————————————

例:Windows の場合 mvn はデフォルトで下記に存在します。
 C:\Program Files\NetBeans 8.0\java\maven\bin

Windows で mvn コマンドをターミナルから実行するために、下記2つの環境変数の設定を行ってください。
● JAVA_HOME を新規追加 : JDK をインストールした場所
● PATH へ追加 : maven コマンドへのパスの追加

上記、環境変数の設定を行った後、lib\ev3 ディレクトリに移動し下記のコマンドを実行してください。※ 大文字、小文字の打ち間違いにご注意ください。

C:\Users\USER_NAME\Desktop\leJOS_EV3_0.8.1-beta_win32\lib\ev3 > mvn install:install-file -Dfile=dbusjava.jar -DgroupId=ev3.dbus -DartifactId=dbusjava -Dversion=0.8.1 -Dpackaging=jar
[INFO] Scanning for projects…
[INFO]
[INFO] ————————————————————————
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ————————————————————————
[INFO]
[INFO] — maven-install-plugin:2.3.1:install-file (default-cli) @ standalone-po
m —
[INFO] Installing C:\Users\USER_NAME\Desktop\leJOS_EV3_0.8.1-beta_win32\lib\ev3\db
usjava.jar to C:\Users\USER_NAME\.m2\repository\ev3\dbus\dbusjava.8.1\dbusjava-0
.8.1.jar
[INFO] Installing C:\Users\USER_NAME\AppData\Local\Temp\mvninstall1908329777283214
622.pom to C:\Users\USER_NAME\.m2\repository\ev3\dbus\dbusjava.8.1\dbusjava-0.8.
1.pom
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 0.760s
[INFO] Finished at: Thu Apr 24 19:29:44 JST 2014
[INFO] Final Memory: 5M/155M
[INFO] ————————————————————————
C:\Users\USER_NAME\Desktop\leJOS_EV3_0.8.1-beta_win32\lib\ev3> mvn install:install-
file -Dfile=ev3classes.jar -DgroupId=ev3.classes -DartifactId=ev3classes -Dversion=0.8.1 -Dpackaging=jar

[INFO] Scanning for projects…
[INFO]
[INFO] ————————————————————————
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ————————————————————————
[INFO]
[INFO] — maven-install-plugin:2.3.1:install-file (default-cli) @ standalone-po
m —
[INFO] Installing C:\Users\USER_NAME\Desktop\leJOS_EV3_0.8.1-beta_win32\lib\ev3\ev
3classes.jar to C:\Users\USER_NAME\.m2\repository\ev3\classes\ev3classes.8.1\ev3
classes-0.8.1.jar
[INFO] Installing C:\Users\USER_NAME\AppData\Local\Temp\mvninstall2687157046215461
183.pom to C:\Users\USER_NAME\.m2\repository\ev3\classes\ev3classes.8.1\ev3class
es-0.8.1.pom
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 0.712s
[INFO] Finished at: Thu Apr 24 19:31:49 JST 2014
[INFO] Final Memory: 5M/158M
[INFO] ————————————————————————

(5) Maven プロジェクトの作成 (Mac/Linux/Windows 環境で実施)

NetBeans のメニューからプロジェクトを作成してください。まず、「ファイル(F)」→「新規プロジェクト(W)…」を選択してください。

選択すると下記の「新規プロジェクト」作成用のウィンドウが表示されます。ここで、「カテゴリ (C) :」から「Maven」を選択し、「プロジェクト (P) :」から「Javaアプリケーション」を選択し「次へ」ボタンを押下してください。

ボタンを押下すると下記の「新規 Java アプリケーション」ウィンドウが表示されます。ここで「プロジェクト名 (N) :」、「プロジェクトの場所 (L) :」、「グループ ID (G) :」、「バージョン (V) :」、「パッケージ (P) :」に適切な値を入力した後、最後に「終了 (F)」ボタンを押下してください。

プロジェクトが正常に作成されるとプロジェクト・タブに下記のようなプロジェクトが作成されます。

プロジェクトを作成した後、pom.xml ファイルに下記を記載してください。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.yoshio3</groupId>
    <artifactId>LEGOMind</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>

    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ssh</artifactId>
                <version>1.0</version>
            </extension>
        </extensions>
        <plugins>
            <!--- MANIFEST ファイルを作成するプラグイン -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.yoshio3.legomind.EV3AppMain</mainClass>
                        </manifest>
                        <manifestEntries>
                            <Class-Path>/home/root/lejos/lib/ev3classes.jar /home/root/lejos/libjna/usr/share/java/jna.jar</Class-Path>
                        </manifestEntries> 
                    </archive>
                </configuration>
            </plugin>
            <!--- デスクトップからネット経由で jar ファイルをコピーするためのプラグイン -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>wagon-maven-plugin</artifactId>
                <version>1.0-beta-5</version>
                <executions>
                    <execution>
                        <id>upload-jar</id>
                        <phase>package</phase>
                        <goals>
                            <goal>upload</goal>
                        </goals>
                        <configuration>
                            <!-- ~/.m2/settings.xml ファイルに記述したログインID、パスワードの参照 --> 
                            <serverId>ev3-root</serverId>
                            <!-- EV3 に割り当てられている IP アドレス --> 
                            <url>scp://192.168.1.100/</url>  
                            <fromDir>${project.basedir}/target</fromDir>  
                            <includes>*.jar</includes>  
                            <excludes>*-sources.jar</excludes>
                            <!-- EV3 のコピー先ディレクトリ --> 
                            <toDir>/home/lejos/programs</toDir>  
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>    

    <!-- ローカル・レポジトリにインストールしたファイルへの参照
    mvn install:install-file 
        -Dfile=ev3classes.jar 
        -DgroupId=ev3.classes 
        -DartifactId=ev3classes 
        -Dversion=0.8.1 -Dpackaging=jar
    -->
    <dependencies>
        <dependency>
            <groupId>ev3.classes</groupId>
            <artifactId>ev3classes</artifactId>
            <version>0.8.1</version>
        </dependency>
        
    <!-- ローカル・レポジトリにインストールしたファイルへの参照
    mvn install:install-file 
        -Dfile=dbusjava.jar 
        -DgroupId=ev3.dbus 
        -DartifactId=dbusjava 
        -Dversion=0.8.1
        -Dpackaging=jar
    -->
        <dependency>
            <groupId>ev3.dbus</groupId>
            <artifactId>dbusjava</artifactId>
            <version>0.8.1</version>
        </dependency>
    </dependencies>
</project>

また、Maven の設定ファイル ( ~/.m2/settings.xml (Windows では C:\Users\USER_NAME\.m2)) に下記を記載してください。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                     http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>  
            <id>ev3-root</id>  
            <!---- EV3 の root ログイン ID -->
            <username>root</username>  
            <!---- EV3 の root ログイン パスワード -->
            <password>password</password>
        </server>
    </servers>
</settings>

※ ご注意
pom.xml ファイルを設定、保存後に wagon のライブラリが存在しないため、下記のようにプロジェクトが「ロード不可能」と表示されます。

この場合、プロジェクトを右クリックし、「プロジェクトの問題を解決…」を選択してください(Maven のセントラルレポジトリよりライブラリを入手)。

選択すると下記のウィンドウが表示されます。ここで「解決 (R) …」ボタンを押下してください。

(6) アプリケーションの開発(Mac/Linux/Windows 環境で実施)

Maven プロジェクトを作成したので実際にプログラムを初めてみましょう。今回は上記 pom.xml の MANIFEST ファイルの定義 <manifest> の <mainClass> タグ内でメイン・クラスとしてcom.yoshio3.legomind.EV3AppMain を定義しましたので、このクラスを作成します。また、初めての LEGO Mindstorms のアプリケーション開発ということで、やはり Hello World から初めてみましょう。プロジェクトの中に含まれる「com.yoshio3.legomind」パッケージを右クリックし「新規」→「Java クラス …」を選択してください。

選択すると下記のウィンドウが表示されます。ここで「クラス名 (N) :」に「EV3AppMain」と入力し「終了 (F)」ボタンを押下してください。

クラスを作成すると下記の画面が表示されます。

ここで、「EV3AppMain」クラスに対して、EV 3 のパネルに文字列を表示させ、3 秒程緑色の LED を点滅させるプログラムを下記のように記載します。

package com.yoshio3.legomind;

import lejos.hardware.Button;
import lejos.hardware.lcd.LCD;
import lejos.utility.Delay;

/**
 *
 * @author Yoshio Terada
 */
public class EV3AppMain {

    public static void main(String... argv) {
        //パネルに文字列を表示
        LCD.drawString("Hello World", 0, 0);
        //緑の点滅ボタンを3秒間光らせる(有効値: 0 - 9)
        Button.LEDPattern(4);
        Delay.msDelay(3000);
    }
}

(7) アプリケーションのビルド/デプロイ(Mac/Linux/Windows 環境で実施)

コードを実装した後、プロジェクトをビルドしてください。プロジェクト・タブから「LEGOMind-Sample」プロジェクトを右クリックし「ビルド」を選択してください。

ビルドを行うと下記のメッセージが表示され、org.codehaus.mojo の wagon-maven-plugin を通じて、WiFi のネットワーク経由で自動的に /home/lejos/programs ディレクトリ配下に LEGOMind-1.0-SNAPSHOT.jar ファイルが配備されます。

cd /Users/USER_NAME/NetBeansProjects/LEGOMind; JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home "/Applications/NetBeans/NetBeans 8.0.app/Contents/Resources/NetBeans/java/maven/bin/mvn" install
Scanning for projects...
------------------------------------------------------------------------
Building LEGOMind 1.0-SNAPSHOT
------------------------------------------------------------------------
--- maven-resources-plugin:2.5:resources (default-resources) @ LEGOMind ---
[debug] execute contextualize
Using 'UTF-8' encoding to copy filtered resources.
skip non existing resourceDirectory /Users/USER_NAME/NetBeansProjects/LEGOMind/src/main/resources
--- maven-compiler-plugin:2.3.2:compile (default-compile) @ LEGOMind ---
Nothing to compile - all classes are up to date
--- maven-resources-plugin:2.5:testResources (default-testResources) @ LEGOMind ---
[debug] execute contextualize
Using 'UTF-8' encoding to copy filtered resources.
skip non existing resourceDirectory /Users/USER_NAME/NetBeansProjects/LEGOMind/src/test/resources
--- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ LEGOMind ---
No sources to compile
--- maven-surefire-plugin:2.10:test (default-test) @ LEGOMind ---
Surefire report directory: /Users/USER_NAME/NetBeansProjects/LEGOMind/target/surefire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
--- maven-jar-plugin:2.4:jar (default-jar) @ LEGOMind ---
Building jar: /Users/USER_NAME/NetBeansProjects/LEGOMind/target/LEGOMind-1.0-SNAPSHOT.jar
--- wagon-maven-plugin:1.0-beta-5:upload (upload-jar) @ LEGOMind ---
Uploading /Users/USER_NAME/NetBeansProjects/LEGOMind/target/LEGOMind-1.0-SNAPSHOT.jar to scp://192.168.1.100///home/lejos/programs/LEGOMind-1.0-SNAPSHOT.jar ...
--- maven-install-plugin:2.3.1:install (default-install) @ LEGOMind ---
Installing /Users/USER_NAME/NetBeansProjects/LEGOMind/target/LEGOMind-1.0-SNAPSHOT.jar to /Users/USER_NAME/.m2/repository/com/yoshio3/LEGOMind/1.0-SNAPSHOT/LEGOMind-1.0-SNAPSHOT.jar
Installing /Users/USER_NAME/NetBeansProjects/LEGOMind/pom.xml to /Users/USER_NAME/.m2/repository/com/yoshio3/LEGOMind/1.0-SNAPSHOT/LEGOMind-1.0-SNAPSHOT.pom
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 4.837s
Finished at: Tue Apr 22 21:09:27 WIT 2014
Final Memory: 11M/312M
------------------------------------------------------------------------

8. アプリケーションの実行(EV3 で実施)

leJOS のメニュー画面より Programs (/home/lejos/programs ディレクトリ)を選択してください。

選択するとデプロイされているファイル一覧が表示されますので、LEGOMind-1.0-SNAPSHOT.jar を選択してください。

選択すると下記の画面が表示されます。そのままエンター・キー(真ん中のボタン)を押下してください。


押下すると下記の Duke が手を振っている画面 (しばらくお待ちください) が表示されます。アプリケーションをロードするまで数秒かかりますのでそのままお待ちください。

アプリケーションがロードされると下記のように実行され、メニューに「Hello World」が表示され、ボタンの LED が緑色に点滅する事を確認できます。

9. LEGO を組み立てて、超音波センサー、タッチ・センサー、モータ(車輪)を取り付けます。

上記で、Java を使って LEGO Mindstorms を制御できる事がわかりました。後は EV3 に LEGO のパーツを組み立てて、超音波センサーやタッチ・センサー、モータ(車輪)などを取り付けて自分オリジナルのロボットを組み立ててみてください。

その後で、下記 GitHub にアップロードしているコード例をご参照いただき実装すると、センサーから受け取った情報を元に EV3 を制御できるようになります。

GitHub にアップしたサンプルは、タッチセンサーに何かがぶつかると車輪が逆方向に回転し、超音波センサーに物を近づけると車輪の回転スピードが遅くなります。最後に EV3 の何らかのボタンを押すとアプリケーションを終了します。
https://github.com/yoshioterada/Java-Sample-app-for-LEGO-Mindstorms

今回私の上記実装では、車輪毎にリスナーを登録しセンサーからの情報に応じて車輪を制御する方法で実装しましたが、leJOS で提供されているサンプルを確認すると、様々な方法で実装ができるようです。是非色々お試しください。

また、調べていてちょっとおもしろかったのが、上記のようにデプロイしなくても、デスクトップの Java アプリケーションからWiFi 経由 (RMI) でリモートのEV3 を制御する事ができるので、これと JavaFX や WebSocket と組み合わせて応用すればスマートフォンや他のデバイスからリアルタイムに EV3 を制御できるようになるのではないかと想定します。

package com.yoshio3.legomind;

import java.net.MalformedURLException;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.logging.Level;
import java.util.logging.Logger;
import lejos.remote.ev3.RMIRegulatedMotor;
import lejos.remote.ev3.RMISampleProvider;
import lejos.remote.ev3.RemoteEV3;
import lejos.robotics.RegulatedMotor;
import lejos.robotics.RegulatedMotorListener;

/**
 *
 * @author Yoshio Terada
 */
public class RemoteOperation {

    public static void main(String... argv) {
        RemoteEV3 ev3;
        try {
            ev3 = new RemoteEV3("192.168.1.100");
            RMISampleProvider sampleProv = ev3.createSampleProvider("S1", "lejos.hardware.sensor.EV3TouchSensor", "sensor");

            // 車輪の制御 
            RMIRegulatedMotor right = ev3.createRegulatedMotor("B", 'L');
            RMIRegulatedMotor left = ev3.createRegulatedMotor("C", 'L');
            right.resetTachoCount();
            left.resetTachoCount();

            ExecutorService execSvc = Executors.newFixedThreadPool(3);
            execSvc.submit(new RunMotor(right));
            execSvc.submit(new RunMotor(left));

            Future<Float> res = execSvc.submit(new MonitoringTouch(sampleProv));
            if (res.get() == 1.0f) {
                right.stop(true);
                left.stop(true);
            }
        } catch (RemoteException | MalformedURLException | NotBoundException | InterruptedException | ExecutionException ex) {
            Logger.getLogger(RemoteOperation.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

class RunMotor implements Runnable {

    RMIRegulatedMotor motor;

    RunMotor(RMIRegulatedMotor motor) {
        this.motor = motor;
    }

    @Override
    public void run() {
        try {
            motor.setSpeed(400);
            motor.rotate(360 * 20);
            motor.close();
        } catch (RemoteException ex) {
            Logger.getLogger(RunMotor.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
...

最後に

leJOS のオリジナルのサイトでは Eclipse でプラグインをインストールし ant を用いて開発する方法が紹介されていました。Eclipse ユーザの方はオリジナル・サイトをご参照いただければ幸いです。一応、私も Eclipse で試しましたが、上記オリジナルサイトの記載内容に従い設定を行う事で Eclipse で開発からデプロイまで行う事ができる所までは確認しました。

普段、私は NetBeans を使用しているため、今回 NetBeans で同様に開発ができないか?!と考え、上記環境設定を行いました。一旦、上記 1 〜 4 までの設定を行うと、以降の開発は 5 〜 8 までを繰り返し行うだけで NetBeans でも簡単に開発ができるようになります。また Eclipse と同様に、ビルドを行った時点で自動的に WiFi 経由でデプロイができるようになるためとても便利です。

どうぞ、Java で LEGO Mindstorms をお楽しみください。

PS.
Java SE 8 のローンチ・イベントで発表された Java SE Embedded で LEGO Mindstorms の説明資料も参考として紹介します。

また、Java Champion の Adam Bien もRun Java 7u40 Embedded on Lego Mindstormsのエントリで leJOS を使用した LEGO Mindstorms の制御のデモも公開していますので併せてご紹介します。

追記メモ2.
Java SE Embedded 8 を使う場合の手順。

1. Oracle Java SE Embedded version 8 の DownLoad

Oracle Java SE Embedded version 8のダウンロード

上記のページ内に下記の記述があります。
Java SE Embedded 8 enables developers to create customized JREs using the JRECreate tool. Starting with Java SE Embedded 8, individual JRE downloads for embedded platforms are no longer provided. To get started, download the bundle below and follow instructions to create a JRE that suits your application’s needs.

これは、Java SE Embedded 8 以降では、Java SE 7 のように個別の JRE を提供しないため、自分専用の JRE を、JRECreate ツールを使って作成する必要がある事が書かれています。

2. Create a Custom JRE with jrecreate

jrecreate コマンドを使用してカスタムの JRE を作成してください。

※ jrecreate コマンドの引数の詳細は下記をご参照ください。
jrecreate Options

上記、説明内容に従って、カスタムの JRE を作成してください。

> tar xvfz ejdk-8-fcs-b132-linux-arm-sflt-03_mar_2014.tar.gz
> cd ejdk1.8.0/
> ls
bin lib linux_arm_sflt
> cd bin
> ./jrecreate.sh -vm all -d /tmp/ejre1.8.0
Options {
ejdk-home: /Users/USER_NAME/Downloads/ejdk1.8.0
dest: /tmp/ejre1.8.0
target: linux_arm_sflt
vm: all
runtime: jre
debug: false
keep-debug-info: false
no-compression: false
dry-run: false
verbose: false
extension: []
}
を使用してJREを作成しています

ターゲットJREサイズは45,523 KBです(ディスクの使用量はこれより多いことがあります)。
埋込みJREが正常に作成されました
> cd /tmp/
> ls
ejre1.8.0
> tar cvf ejre1.8.0.tar ejre1.8.0
a ejre1.8.0
a ejre1.8.0/bin
a ejre1.8.0/bom
a ejre1.8.0/lib
a ejre1.8.0/release
a ejre1.8.0/lib/arm
a ejre1.8.0/lib/calendars.properties
a ejre1.8.0/lib/classlist
a ejre1.8.0/lib/content-types.properties
a ejre1.8.0/lib/currency.data
a ejre1.8.0/lib/ext
a ejre1.8.0/lib/hijrah-config-umalqura.properties
a ejre1.8.0/lib/jce.jar
a ejre1.8.0/lib/jsse.jar
a ejre1.8.0/lib/logging.properties
a ejre1.8.0/lib/meta-index
a ejre1.8.0/lib/net.properties
a ejre1.8.0/lib/resources.jar
a ejre1.8.0/lib/rt.jar
a ejre1.8.0/lib/security
a ejre1.8.0/lib/tzdb.dat
a ejre1.8.0/lib/security/blacklist
a ejre1.8.0/lib/security/cacerts
a ejre1.8.0/lib/security/java.policy
a ejre1.8.0/lib/security/java.security
a ejre1.8.0/lib/security/local_policy.jar
a ejre1.8.0/lib/security/trusted.libraries
a ejre1.8.0/lib/security/US_export_policy.jar
a ejre1.8.0/lib/ext/meta-index
a ejre1.8.0/lib/ext/sunjce_provider.jar
a ejre1.8.0/lib/arm/client
a ejre1.8.0/lib/arm/jli
a ejre1.8.0/lib/arm/jvm.cfg
a ejre1.8.0/lib/arm/libjava.so
a ejre1.8.0/lib/arm/libjsig.so
a ejre1.8.0/lib/arm/libnet.so
a ejre1.8.0/lib/arm/libnio.so
a ejre1.8.0/lib/arm/libverify.so
a ejre1.8.0/lib/arm/libzip.so
a ejre1.8.0/lib/arm/minimal
a ejre1.8.0/lib/arm/minimal/libjsig.so
a ejre1.8.0/lib/arm/minimal/libjvm.so
a ejre1.8.0/lib/arm/minimal/Xusage.txt
a ejre1.8.0/lib/arm/jli/libjli.so
a ejre1.8.0/lib/arm/client/libjsig.so
a ejre1.8.0/lib/arm/client/libjvm.so
a ejre1.8.0/lib/arm/client/Xusage.txt
a ejre1.8.0/bin/java
a ejre1.8.0/bin/keytool
a ejre1.8.0/bin/rmid
a ejre1.8.0/bin/rmiregistry
> gzip -c ejre1.8.0.tar > ejre1.8.0.tar.gz
> cp ejre1.8.0.tar.gz /Volumes/LEGO-PART/
> cp lejosimage.zip /Volumes/LEGO-PART/
> cd /Volumes/LEGO-PART/
> unzip lejosimage.zip
Archive: lejosimage.zip
creating: lejos/
creating: lejos/bin/
inflating: lejos/bin/partition.sh
inflating: lejos/bin/partfuncs.sh
inflating: lejos/bin/install.sh
inflating: lejos/bin/funcs.sh
inflating: lejos/bin/spinner.sh
inflating: lejos/bin/check.sh
creating: lejos/images/
inflating: lejos/images/lejoslogo.ev3i
inflating: lejosimage.bz2
inflating: uImage
inflating: uImageStandard
extracting: version

SD カードにファイルをコピーして展開した後、SD ディスクをアンマウントしてください。後は、上記 (2)ブート可能なマイクロ SD カードから起動(EV3 で実施)と同様に、作成した SD から EV3 を起動して(2)以降の処理を行ってください。
上記で、Java SE Embedded 8 で制御できるようになります。

Java SE 8 Embedded のコードを実装するためには、Maven の pom.xml の下記の行 (コンパイラのソース、ターゲット) をそれぞれ 1.7 → 1.8 に修正して実装してください。

  
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

備考:本来であれば、LEGO Mindstorms は Java SE Embedded 8 の “Compact Profile 2” で動作するようなのですが、現在 Compact Profile 2 で JRE を作成した場合は現時点で動作しません。本件は、leJOS のチームと Oracle の Embedded チームが現在調査中です。
上記は現時点(2014年4月28日時点)でのワークアラウンドとしてご利用ください。

2014年4月23日 at 6:05 PM 13件のコメント

過去の投稿 新しい投稿


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2019年11月
« 7月    
 123
45678910
11121314151617
18192021222324
252627282930  

カテゴリー

Twitter

clustermap

ブログ統計情報

  • 1,163,150 hits

RSSフィード