アプリケーションの開発
======================
Maven プロジェクトの作成 (Mac/Linux/Windows 環境で実施)
-------------------------------------------------------
| NetBeans のメニューからプロジェクトを作成してください。
| まず、「ファイル(F)」→「新規プロジェクト(W)…」を選択してください。
| 選択すると下記の「新規プロジェクト」作成用のウィンドウが表示されます。
| ここで、「カテゴリ (C) :」から「Maven」を選択し、「プロジェクト (P)
:」から「Javaアプリケーション」を選択し「次へ」ボタンを押してください。
.. figure:: ./images/section07/MavenProject.png
:alt: MavenProject.png
MavenProject
| ボタンを押すと下記の「新規 Java
アプリケーション」ウィンドウが表示されます。
| 「プロジェクト名 (N) :」、「プロジェクトの場所 (L) :」、「グループ ID
(G) :」、「バージョン (V) :」、「パッケージ (P)
:」に以下の内容を入力した後、最後に「終了
(F)」ボタンを押してください。
+-------------------------+------------------------+
| 項目 | 入力内容 |
+=========================+========================+
| プロジェクト名(N) | HelloDuke |
+-------------------------+------------------------+
| プロジェクトの場所(L) | 任意のディレクトリ |
+-------------------------+------------------------+
| グループID(A) | jp.etrobo.ev3.sample |
+-------------------------+------------------------+
| バージョン(V) | 1.0 |
+-------------------------+------------------------+
| パッケージ(P) | jp.etrobo.ev3.sample |
+-------------------------+------------------------+
.. figure:: ./images/section07/NewJavaClassNameLocation.png
:alt: NewJavaClassNameLocation.png
NewJavaClassNameLocation.png
プロジェクトが正常に作成されるとプロジェクト・タブに下記のようなプロジェクトが作成されます。
.. figure:: ./images/section07/ProjectTreeBase.png
:alt: ProjectTreeBase.png
ProjectTreeBase
プロジェクトを作成した後、プロジェクト・ファイル内の
pom.xmlをクリックして開き,下記の内容を書き込んで(コピペで貼り付けて)ください。
.. figure:: ./images/section07/ProjectTreePomXml.png
:alt: ProjectTreePomXml.png
ProjectTreePomXml.png
以下は、実行されるファイル名です。
::
jp.etrobo.ev3.sample.HelloDuke
ただし、以下の **EV3 に割り当てられている IP アドレス**
は、お使いの環境に合わせて、書き換えてください。
::
scp://10.0.1.1/
pom.xml
--------------
::
4.0.0
jp.etrobo.ev3.sample
HelloDuke
1.0
jar
UTF-8
1.7
1.7
org.apache.maven.wagon
wagon-ssh
1.0
org.apache.maven.plugins
maven-jar-plugin
2.4
jp.etrobo.ev3.sample.HelloDuke
/home/root/lejos/lib/ev3classes.jar /home/root/lejos/libjna/usr/share/java/jna.jar
org.codehaus.mojo
wagon-maven-plugin
1.0-beta-5
upload-jar
package
upload
ev3-root
scp://10.0.1.1/
${project.basedir}/target
*.jar
*-sources.jar
/home/lejos/programs
ev3.classes
ev3classes
0.9.1
ev3.dbus
dbusjava
0.9.1
| また、Maven の設定ファイル
(C:\\Users\\USER_NAME\\.m2)
に下記の内容を記載してください。
| linuxやMacでは、 ~/.m2/settings.xml
| なお、ログイン ID と ログイン パスワード
は、お使いのEV3の設定に合わせて入力して下さい。
| EV3 のデフォルト設定は、以下のようになっています。
+--------------+--------+
| ID | root |
+==============+========+
| パスワード | なし |
+--------------+--------+
::
ev3-root
root
password
このpom.xml ファイルを設定、保存後に wagon
のライブラリが存在しないため、下記のようにHelloDukeプロジェクトは「ロード不可能」と表示されます。
.. figure:: ./images/section07/HelloDukeCannotLoad.png
:alt: HelloDukeCannotLoad.png
HelloDukeCannotLoad
.. figure:: ./images/section07/HelloDukeCannotLoadHint.png
:alt: HelloDukeCannotLoadHint.png
HelloDukeCannotLoadHint
この場合、プロジェクトを右クリックし、「プロジェクトの問題を解決…」を選択してください(Maven
のセントラルレポジトリよりライブラリを入手)。
.. figure:: ./images/section07/Troubleshooting.png
:alt: Troubleshooting.png
Troubleshooting
| 選択すると下記のウィンドウが表示されます。
| ここで「解決 (R) …」ボタンを押してください。
.. figure:: ./images/section07/Resolution.png
:alt: Resolution.png
Resolution
以下のようなエラーが表示されるので、[閉じる]を押してください。
.. figure:: ./images/section07/ResolutionError.png
:alt: ResolutionError.png
ResolutionError
.. raw:: html
依存性の修正
~~~~~~~~~~~~
| プロジェクトメニューの依存性を開き、警告のマークが表示されているファイルを探し、以下の手順で、依存性を解決してください。
| まず、ev3classes-0.9.1
を例に、依存性を解決の手順を解説します。その他のファイルについても、同様の手順で依存性を解決してください。
.. figure:: ./images/section07/DependenciesError_ev3classes.png
:alt: DependenciesError_ev3classes.png
DependenciesError\_ev3classes
これを解消するために、ev3classes-0.9.1.jarを右クリックして、アーティファクトを手動インストールしてください。
.. figure:: ./images/section07/Dependencies_ev3classes_Artifact_Install.png
:alt: Dependencies_ev3classes_Artifact_Install.png
Dependencies\_ev3classes\_Artifact\_Install
入力画面が表示されるので、以下のファイル名を入力して、[ローカルにインストール]をクリックしてください。
::
C:\Program Files\leJOS EV3\lib\ev3\ev3classes.jar
.. figure:: ./images/section07/Dependencies_ev3classes_Artifact_Install_file.png
:alt: Dependencies_ev3classes_Artifact_Install_file.png
Dependencies\_ev3classes\_Artifact\_Install\_file
実行用プログラムの作成
----------------------
1. プロジェクトのソース・パッケージ *jp.etrobo.ev3.sample*
を選択して右ボタンをクリックし、「新規-Javaクラス」を選んでください。
.. figure:: ./images/section07/NewJavaClassHelloDuke.png
:alt: NewJavaClassHelloDuke.png
NewJavaClassHelloDuke
2. 新規Java
アプリケーションのウィンドウが開くので、以下の内容を入力し、[終了(F)]を押してください。
+---------------------+--------------------------------+
| 項目 | 入力内容 |
+=====================+================================+
| クラス名(N) | HelloDuke |
+---------------------+--------------------------------+
| パッケージ(P) | jp.etrobo.ev3.sample |
+---------------------+--------------------------------+
.. figure:: ./images/section07/NewJavaClass_jp_etrobo_ev3_sample_HelloDuke.png
:alt: NewJavaClass_jp_etrobo_ev3_sample_HelloDuke.png
NewJavaClass\_jp\_etrobo\_ev3\_sample\_HelloDuke
3. 以下のコードをjp.etrobo.ev3.sample.HelloDuke
に書き込んで(コピペで貼り付けて)ください。
::
package jp.etrobo.ev3.sample;
import lejos.hardware.Battery;
import lejos.hardware.Button;
import lejos.hardware.lcd.LCD;
import lejos.hardware.Sound;
import lejos.utility.Delay;
public class HelloDuke {
public static void main(String[] args) {
int v = Battery.getVoltageMilliVolt(); // 電源電圧の取得し、液晶に表示
LCD.drawString("Voltage:" + v + " mV", 0, 2);
LCD.drawString("Hello duke!", 0, 4); // "Hello duke!"を液晶に表示
Button.LEDPattern(5); // 赤色LEDを点滅させる。
Sound.playTone(440, 100); // 440Hzの音を 900ms再生
Delay.msDelay(900); // 900m秒待つ
Sound.playTone(440, 100); // 440Hzの音を 900ms再生
Delay.msDelay(900); // 900m秒待つ
Sound.playTone(440, 100); // 440Hzの音を 900ms再生
Delay.msDelay(900); // 900m秒待つ
Sound.playTone(880, 3000); // 880Hzの音を3000ms再生
Button.LEDPattern(0); // 赤色LEDの点滅を停止する。
}
}
.. figure:: ./images/section07/HelloDuke_java_src.png
:alt: HelloDuke_java_src.png
HelloDuke\_java\_src
4. コードのビルド
メニューから「実行(R)-プロジェクト(HelloDuke)をビルド
F11」を選び、ビルドを開始してください。
.. figure:: ./images/section07/Menu_Run_Build_HelloDuke.png
:alt: Menu_Run_Build_HelloDuke.png
Menu\_Run\_Build\_HelloDuke
ビルドの途中に、Netbeans右下のコンソールに以下のようなEV3との接続の許可を求めるメッセージが表示されるので、yesを入力しEnterで次に進んで下さい。
.. figure:: ./images/section07/Output_build_HelloDuke.png
:alt: Output_build_HelloDuke.png
Output\_build\_HelloDuke
5. Netbeans右下のコンソールに「BUILD
SUCCESS」のメッセージが表示されれば、ビルドは完了です。
+--------------------------------------------------------------------------------------+
| BUILD SUCCESS |
+======================================================================================+
| Total time: 0.905s Finished at: Fri Jan 23 12:10:07 JST 2015 Final |
| Memory: 5M/15M |
+--------------------------------------------------------------------------------------+
この時点で、実行プログラムは、EV3
の/home/lejos/programsディレクトリにアップロードされています。
--------------
本章は、著者の了解を得て、以下の資料を元に作成しました。
LEGO Mindstorms with Java leJOS ハンズオン・ラボ Version 1.0
http://www.slideshare.net/OracleMiddleJP/lego-mindstormslejos-hands-on-lab
@author Yoshio Terada, Java Evangelist http://yoshio3.com