アプリケーションの開発 ====================== 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