株式会社八角研究所 > 【連載】ETロボコン参戦記 - 第4回 YamazakiがJavaでHelloWorld

エンジニア募集中!

独立心旺盛で、新しい技術で新しいWebサービスを作りたいと思っているけれど、ひとりでやることに限界を感じているフリーのエンジニアの方。あなたの期待にこたえられる仲間と環境を、八角研究所なら提供できると思います。社員としてではない関わり方も、あるかもしれません。

2009年05月28日 23:26

ETロボコン参戦記
第4回 YamazakiがJavaでHelloWorld * * * *

by sugimaru

Tags: ETロボコン Lego Mindstorms レゴ マインドストーム

Javaで参戦することにした。よって、Javaの開発環境を整える。 ・・・といっても、古いバージョンで既に設定してあったのを、新しいバージョンで設定しなおしたのでまとめただけである。今回インストールしたバージョンでは、インストーラーが用意されていてかなり設定が簡単だった。前はもっと手間がかかったのに。

JavaでYamazakiを動かすには、インテリジェントブロックNXTに、Javaの実行環境を設定する必要がある。そこで、leJOSの登場だ。leJOSは、レゴマインドストームのRCXとNXTロボットにJavaのプログラミング環境を提供してくれる。 参考にしたのは、LeJOS, Java for Lego Mindstormsというサイト。ここからleJOSをダウンロードしたり、設定方法を確認したりした。参考にしたのは、同サイトのGetting Started on Microsoft Windowsというページだ。

■leJOSを入れる前の準備

1.LEGO Mindstorms softwareのインストール(USBドライバのインストール)

Mindstormsに付属のLEGO Mindstorms softwareのUSBドライバをleJOSでも使用しているため、このソフトをインストールする。付属のソフトを使わない場合は、同ページでドライバ入手先を紹介しているのでそこを参照すると良いかも。

2.leJOSのダウンロード

参考サイトのダウンロードページからleJOSをダウンロードしておく。ダウンロードしたファイルは、leJOS_NXJ_0.7-Setup.exe だ。前回はzipバージョンで設定してたので、今回はインストーラーを使ってみる。

3.Java SDKのインストール

今回利用するleJOSのバージョンは、JDK1.5又は1.6で動作確認済みとのこと。今回は、マシンに既にインストールされていた jdk1.6.0_03 を使用。

4.leJOSのインストール

ダウンロードしたインストーラー(leJOS_NXJ_0.7-Setup.exe)を実行する。実行手順は同ページを参照。インストール中の画像もたくさん貼ってあるしわかりやすい。 ▼インストーラーを使った場合のデフォルト設定は以下の通り。

Install Directory C:\Program Files\leJOS NXJ
Projects Directory < %Home%>\leJOSNXJProjects

※長いパスが嫌だったので、今回はProjects Directoryだけ変更した。 インストールが終了すると、続けてNXTのファーウェアを書き換える画面がでてくる。いつインストールが完了したのかがわかりづらいので、念のため、インストール終了画面の画像をペタリと貼ってみる。続くファームウェアの書き換えについては次を参照。

 

インストール終了画面

インストール終了画面

5.ファーウェアを書き換え

4.の続きだが、インストール終了画面の「Finish」ボタンを押すと、以下のようなファームウェアを書き換える画面が出てくる。

 

ファームウェアの書き換え画面

ファームウェアの書き換え画面 ここでファームウェアの書き換えをするには、NXTを初期化モードにしてPCとつなげておくとよい。NXTを初期化モードにする手順は以下の通り。 ▼NXTの初期化モード ①インテリジェントブロックNXTを裏返しにする。 ②左上の穴の中にリセットボタンがあるのでこれを長めに押す。

 

リセットボタンを押す

リセットボタンを押す 初期化モードにできたら、ファームウェア書き換え画面の「Start program」ボタンを押す。(中途半端に日本語化されたメッセージがでてくるのは、わしのマシンだけか・・・?)画面については以下を参照。

 

この画面は「了解」を押した

この画面は「了解」を押した

 

これは「はい」を押した

これは「はい」を押した

 

これは「いいえ」を押した

これは「いいえ」を押した ファームウェアの書き換えが終われば、NXTからチャララランって音がして、leJOSが起動するのが確認できる。leJOSの起動画面はこんなかんじ。

 

leJOSの起動画面

leJOSの起動画面 これで設定は終わりだ。インストーラーを使った場合は、環境変数の設定が自動的に行われている。 ▼追加されている環境変数(ユーザー環境変数)は以下の通り。

変数名 NXJ_HOME
C:\Program Files\leJOS NXJ (※これはleJOSのInstall Directory)

■実行方法(Eclipse)

エディタを使ってコードを書き、コマンドプロンプトでコンパイルしていたのだが、巷ではEclipseが人気らしい。ということで、外部ツールを使う機能をEclipseに設定した。Eclipseを使う人であればなんのことはない設定だが、覚書的に書いておく。

1.コマンドの紹介

leJOSのInstall Directory(以下、%NXJ_HOME%で表示)の下にあるbinディレクトリにはコンパイラや実行(NXTへの転送含む)用のバッチがある。 ▼よく使うものは以下の通り

nxjc.bat コンパイラ(.javaファイルから.classファイルが生成される)
nxj.bat 実行ファイルの生成と転送(.nxjが生成され、NXTへ転送される)
nxjflash.bat ファームウェアの書き換え(インストール時にファームウェアを書き換えていればすぐ使うことはないかも)

2.Eclipseの設定~実行まで

今回使用したのは3.3.1.1のバージョン。これまた、もともとマシンにはいっていたものを使う。日本語化しないで使っているので、以下の説明にある項目の日本語訳はちょっとインチキかもしれない。(一応、古いバージョンのものを参考にはしている)

  1. Javaのプロジェクトを作成する
  2. 作成したプロジェクトのプロパティで、ビルドパスを設定する
    • 作成したプロジェクトのプロパティを開く
    • 「Javaのビルド・パス」を選択し、「ライブラリー」タブを開く
    • 「外部JARの追加」ボタンを押して、%NXT_HOME%\libのjarファイルを追加する
  3. プログラム(HelloWorld)を書いて保存する。ソースコードは後述。
  4. コンパイルする為の外部ツールの設定をする
    • メニューバーの「実行」から「外部ツール」を選択し、さらに出てきたメニューの「外部ツール」を選択する
    • 左メニューの「プログラム」をWクリックし、でてきた新規構成画面で名前をつける(名前は任意。この例ではnxjcとつける)
    • 同画面のメインタブの「ロケーション」欄で「ファイルシステムの参照」ボタンを押し、%NXT_HOME%\lib\nxjc.bat を選択して設定する
    • 同画面、同タブの「作業ディレクトリ」欄で「ワークスペースの参照」ボタンを押し、作業ディレクトリを選択して設定する
    • 同画面、同タブで「引数」欄で「変数」ボタンを押し、 java_type_name を選択して「OK」ボタンを押す。引数欄に ${java_type_name} と表示されるので、編集して ${java_type_name}.java にする。
    • 以上の設定が終わったら「適用」ボタンを押して画面を閉じる
  5. 外部ツールの設定をお気に入りに入れておく
    • メニューバーの「実行」から「外部ツール」を選択し、さらに出てきたメニューの「お気に入りの編成」を選択する
    • でてきた画面で「追加」ボタンを押し、追加した外部ツール設定を選択して「OK」ボタンを押す
    • 上記の設定ができたら、お気に入りの編成画面も「OK」ボタンで閉じる
  6. 設定した外部ツールでソースコードをコンパイルする
    • 正常にコンパイルされれば、コンソールには何も表示されない
    • コンパイルできたか心配な人は、.classファイルが生成されているか確認するのもよし
  7. 実行ファイルをNXJへ転送する為の外部ツールの設定をする
    • メニューバーの「実行」から「外部ツール」を選択し、さらに出てきたメニューの「外部ツール」を選択する
    • 左メニューの「プログラム」をWクリックし、でてきた新規構成画面で名前をつける(名前は任意。この例ではnxjとつける)
    • 同画面のメインタブの「ロケーション」欄で「ファイルシステムの参照」ボタンを押し、%NXT_HOME%\lib\nxj.bat を選択して設定する
    • 同画面、同タブの「作業ディレクトリ」欄で「ワークスペースの参照」ボタンを押し、作業ディレクトリを選択して設定する
    • 同画面、同タブで「引数」欄で「変数」ボタンを押し、 java_type_name を選択して「OK」ボタンを押す。引数欄に ${java_type_name} と表示される。これはそのままでOK。
    • 以上の設定が終わったら「適用」ボタンを押して画面を閉じる
    • お気に入りに追加しておくと便利
  8. 設定した外部ツールで実行ファイルをNXJへ転送する
    • 転送する前に、NXTを起動して、PCとNXTをUSBでつないでおく
    • 転送が無事に完了すれば、チャララランと音がするのでわかる
  9. NXJで実行すると「Hello World」と表示される

▼ソースコード(HelloWorld.java) ※コードは参考ページのしたーのほうに掲載されているものを使用

import lejos.nxt.*;

public class HelloWorld {
    public static void main (String[] args) {
        System.out.println("Hello World");
        Button.waitForPress();
    }
}

■HelloWorldの先

こうしてYamazakiは新しい環境で挨拶をしてくれたわけだが、まだまだYamazakiがゆらゆらと立ち上がってくれるのは先のようだ。 紹介はまだだが、一応Yamazakiは無事にトランスフォームした。(ちょっと内蔵が飛びだしているような配線なので、写真はまた今度。)それに、現在ツナ缶が倒立振子制御APIのJava化をしている最中だ。メンバであるトマトもYamazkaiプログラムのデビューをしたし、これからである

■参考リンク

この記事の執筆者

22時のシンデレラ sugimaru 1歳 入社3年目

すぎまるです。22時のシンデレラです。

この人の会社をみる この人関連のイベントをさがす この人と一緒にはたらく

この日記にコメントする

(メールアドレスは公開されません。メールで返答が欲しい場合などに入力してください)

このエントリへのトラックバックURL

コメント

コメントはありません

トラックバック

トラックバックはありません

メンバー紹介

sugimaru

sugimaru

すぎまるです。22時のシンデレラです。

boy

boy

少年です。 18歳以下(嘘)でも立派に社員です。 よろしくおねがいします。

はち子さん

はち子

広報を担当している、はち子です。本当は広報じゃなくて事務デスが、広報って言うほうがかっこいいし! 社内でゆいいつ、...