ev3をJavaで動かすための準備について書いていきます。
#目次
0 . leJOSとは
1 . 必要なもの
2 . 参考記事
3 . microSDの準備
4 . bluetooth接続
5 . SSH接続
6 . Eclipseの準備とプログラムの実行
最後に
#0.leJOSとは
レゴマインドストームのロボットにJavaのプログラミング環境を提供するシステムのことです。
今回は、Mac OSXでbluetoothを使ってev3を動かします。
また、Javaの統合開発環境であるEclipseを使ってプログラムをつくり、処理を実行します。
#1.必要なもの
◯ ev3(タンク)
◯ パソコン(Eclipse)
◯ bluetooth
◯ microSD
◯ leJOS-API
#2.参考記事
こちらの記事を見て進めるのが一番いいと思います。
【leJOS】mindstorm-EV3をJavaでプログラミングしよう【環境構築前編】
【leJOS】mindstorm-EV3をJavaでプログラミングしよう【環境構築後編】
#3.microSDの準備
1 . sourceforge/lejos ev3から最新のものをダウンロードします。
2 . ダウンロードしたものを解凍→sd500.zipを解凍します。
3 . Ethcherを使ってsd500.imgをsdカードに書き込みます。
4 . lejosimage.zipを解凍→中にあるファイルを全てSDカードに書き込みます。
(ドラッグ&ドロップでファイルをSDカードのルートディレクトリ(最上位階層の空間)に移動します。)
※SDカードに書き込めないというエラーがあった場合
→SDカードが読み出しのみ
5 . lejos用のJavaをOracle JREからダウンロードします。
※ファイル(ejdk-8-fcs-b132-linux-arm-sflt-03_mar_2014.tar.gz)は、使用不可
6 . ダウンロードしたファイルをそのままSDカードのルートディレクトリ(最上位階層の空間)に移動します。
7 . SDカードをev3に差込み、起動します。
#4.bluetooth接続をする
1 . PANを選択
2 . BT Clientを選択
3 . 繋げたいパソコンを選択
4 . IPアドレスが表示されたら接続成功
#5.SSH接続
◯一般的なプログラムの実行には必要ありません。必要になった時に適宜実行してください。
@ターミナル
1 . root @192.~.~.~
と入力
※@の後ろはev3に表示されているIPアドレスを入力する
2 . enterキーを押す
※パスワードを聞かれるが入力の必要はない
3 . 確認
成功したら↓のようになる
root@EV3:~#
##うまくいかない場合
configファイルをviエディタで編集します。
@ターミナル
1 . cd /etc
と入力
2 . configファイルがあるかどうか確かめる
open ssh
と入力
※configファイルがない場合
.ssh/configの作成
3 . configファイルにアクセス
cd ssh
sudo vi ssh_config
パソコンのパスワードを入力
4 .viエディタで編集
iキーを押す(INSERT = 文字を入力するためのコマンド)
一番下に以下のコードを追記
Host 10.0.1.1 192.~.~.~ KexAlgorithms +diffie-hellman-group1-sha1 Ciphers aes128-cbc
※192.~.~.~の部分はEV3のIPアドレス
escキーを押す
:
キーを押す
wq
と入力(保存して終了するためのコマンド)
enterキーを押す
5 .接続を確認
ssh root@192.~.~.~
※パスワードを聞かれるが入力の必要はない
成功したら↓のようになる
root@EV3:~#
[参考記事]
Lego EV3 Tutorial with leJOS on macOS
viコマンドの使い方
#6.Eclipseの準備とプログラムの実行
とてもわかりやすいので、こちらを参考にしてください。
【leJOS】mindstorm-EV3をJavaでプログラミングしよう【環境構築後編】
◯サンプルコードの例
//必要なコードをimportする
import lejos.hardware.*;
//クラスをつくる
public class HelloWorld
{
//staticメソッドをつくる
public static void main(String[] args)
{
//Hello World!!とev3の画面に出力する
System.out.println("Hello World!!");
//どれかのボタンが押されるまで待機する
Button.waitForAnyPress();
}
}
#最後に
読んでいただきありがとうございました。
次回は単一モータの制御について書いていきたいと思います。
間違っている場所や改善点などがありましたらご指摘のほどよろしくお願いいたします。