Lego mindstorms with Java (leJOS)

2,965 views
2,695 views

Published on

This presentation explain the leJOS which run Java on LEGO Mindstorms.

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,965
On SlideShare
0
From Embeds
0
Number of Embeds
238
Actions
Shares
0
Downloads
21
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Lego mindstorms with Java (leJOS)

  1. 1. IoT の基礎 教育版レゴ・マインドストーム Yoshio Terada Java Evangelist Fusion Middleware Org Jul 24, 2014 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted
  2. 2. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むこと はできません。以下の事項は、マテリアルやコード、機能を提供することをコミ ットメント(確約)するものではないため、購買決定を行う際の判断材料になさ らないで下さい。オラクル製品に関して記載されている機能の開発、リリースお よび時期については、弊社の裁量により決定されます。 Oracleは、米国オラクルコーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。
  3. 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Program Agenda はじめに LEGO Mindstorms について 1 2 3 4 5 Oracle Confidential – Internal/Restricted/Highly Restricted 4
  4. 4. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 5 はじめに Internet Of Things
  5. 5. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 2020 年までに、 500 億のデバイスやモノが インターネットに接続され ると予測されています。 Oracle Confidential – Internal/Restricted/Highly Restricted 6 500億
  6. 6. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 全てが繋がる 時代へ !!
  7. 7. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 組み込み用のプログラミングを ちょっと試してみたい方 学生のお子様がいらっしゃる方 Oracle Confidential – Internal/Restricted/Highly Restricted 8
  8. 8. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | “LEGO Mindstorms” Oracle Confidential – Internal/Restricted/Highly Restricted 9
  9. 9. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 10 • 1998年に最初バージョンをリリース • MIT と LEGO 社による共同開発 • 全ての物がコンピュータと接続される時 代に向け、ブロックとセンサーを組み合 わせてプログラムができる LEGO ブロッ クを提供 LEGO Mindstorms とは
  10. 10. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 11 • プログラミング教育に適した LEGO Mindstorms のパッケージ • 玩具版に無いソフトウェア追加機能 • 玩具版と異なるパーツ類 • サポートも提供 • 専用教材、ドキュメント等 教育版 LEGO Mindstorms
  11. 11. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 12 EV 3 本体の入出力ポート × 4 入力:タッチ・センサー、超音波センサーなど ポート : 1, 2, 3, 4 出力:モータなど ポート:A, B, C, D
  12. 12. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 13 USB (Wifi) , SDカード、スピーカー
  13. 13. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 14 教育版 EV 3 に付属の入出力デバイス • 入力デバイス – 超音波センサー – タッチ・センサー – カラー・センサー – ジャイロ・センサー • 出力デバイス – 大モータ – 中モータ • その他 – LEGO パーツ – バッテリ、アダプタ等
  14. 14. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 15 • 標準ファームウェアの置き換え – Micro SD にインストール • LEGO のハードウェアを制御する Java APIを提供 Lego Java Operating System (leJOS) EV 3 ハードウェア EV 3 システムROM leJOS ファームウェア leJOS 基本クラス leJOS ユーザ・アプリケーション
  15. 15. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | http://tinyurl.com/javaseembedded8 http://tinyurl.com/java-lego Java SE Embedded 8 の入手先
  16. 16. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | ご参照:http://tinyurl.com/lejos-setup leJOS の環境設定 • デスクトップ(Mac,Win,Linux) – Java SE 8 – NetBeans 8.0 – Maven • LEGO Mindstorms – Micro SD Card (bootable FAT32 format) – leJOS (0.8.1-beta) – Java SE Embedded 8 • Wifi ルータ
  17. 17. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | leJOS アプリケーション開発環境 NetBeans 8 (JDK 7,8) LEGO Mindstorms Wifi ルータ scp, ssh
  18. 18. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | デスクトップ環境における準備事項 NetBeans 8 (JDK 7,8) LEGO Mindstorms Wifi ルータ scp, ssh
  19. 19. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 統合開発環境 & ビルド・ツールの選択
  20. 20. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 実行可能な jar ファイルを作成 MANIFEST.MF ファイルの記述 Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Built-By: Yoshio Terada Class-Path: /home/root/lejos/lib/ev3classes.jar /home/root/lejos/libjna/usr/share/java/jna.jar Created-By: Apache Maven 3.0.5 Build-Jdk: 1.8.0 Main-Class: com.yoshio3.legomind.EV3AppMain ※ Maven の場合 maven-jar-plugin を使用し pom.xml に設定 Class-Path: 行の実際の記述は空白で区切る(改行は禁止)
  21. 21. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 22 LCDに Hello World 表示するアプリの作成&ビルド public class EV3AppMain { public static void main(String... argv) { EV3AppMain main = new EV3AppMain(); LCD.drawString(“Hello World”, 0, 0); EV3 ev3 = (EV3) BrickFinder.getLocal(); Keys keys = ev3.getKeys(); keys.waitForAnyPress(); } }
  22. 22. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | jar ファイルのコピー NetBeans 8 (JDK 7,8) LEGO Mindstorms Wifi ルータ scp
  23. 23. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 24 ビルドし実行可能 jar ファイルを作成後 scp で LEGO Mindstorms へファイルをコピー > scp LEGOMind-1.0-SNAPSHOT.jar root@192.168.1.100:/home/lejos/programs ※ Maven では wagon-maven-plugin を利用しビルド時 に scp で LEGO Mindstorms にファイルをコピー http://maven.apache.org/wagon/ コマンド・ラインから実行する場合
  24. 24. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | leJOS で動作確認 NetBeans 8 (JDK 7,8) LEGO Mindstorms Wifi ルータ scp
  25. 25. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 26 LEGO Mindstorms 上でアプリケーションの実行 メニューよりプログラム・ディレクトリを選択 1.プログラム DIR の選択 2.ファイル の選択 3.ファイル の実行 4.実行結果
  26. 26. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 応用編 Oracle Confidential – Internal/Restricted/Highly Restricted 27
  27. 27. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 28 leJOS EV3 API ご参照:http://www.lejos.org/ev3/docs/ • 入力デバイス用の API – 超音波センサー – タッチ・センサー:EV3UltrasonicSensor – カラー・センサー:EV3ColorSensor – ジャイロ・センサー:EV3GyroSensor • 出力デバイス用の API – 大モータ: EV3LargeRegulatedMotor – 中モータ: EV3MediumRegulatedMotor
  28. 28. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 29 Button.LEDPattern(i); LCD.drawString("LED PATTERN : " + i, 0, 0); LED の点灯と点滅表示 1: 緑色表示 2: 赤色表示 3: 橙色表示 4: 緑色点滅 5: 赤色点滅 6: 橙色点滅
  29. 29. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 30 import lejos.hardware.motor.Motor; import lejos.robotics.RegulatedMotor; private static final EV3LargeRegulatedMotor leftMotor = Motor.B; void operateMotorSample(){ leftMotor.forward(); // stop() か flt() が呼び出されるまで前進 leftMotor.backward(); // stop() か flt() が呼び出されるまで後進 leftMotor.stop(); // 停止 leftMotor.rotate(360); //指定した角度まで回転 leftMotor.setSpeed(50); //回転速度の設定 } モーターの回転
  30. 30. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 31 private static final EV3UltrasonicSensor ursensor = new EV3UltrasonicSensor(SensorPort.S4); ExecutorService execSvc = …… //専用の監視スレッドで監視 execSvc.submit((Runnable) () -> { SensorMode sonic = ursensor.getMode(0); //0: Distance Mode(cmで取得) 1:Listen Mode float value[] = new float[sonic.sampleSize()]; while (true) { //超音波センサーの場合sonic.sampleSize()が必ず1を返すので value[0] にしか代入されない sonic.fetchSample(value, 0); int centimeter = (int) (value[0] * 100); //1mが1.000 (MIN:3cm MAX:250cm) if (Integer.MAX_VALUE != centimeter && centimeter <= 250) { LCD.clearDisplay(); LCD.drawString("Distance : " + centimeter, 0, 0); } Delay.msDelay(100);}}); センサー(超音波)から情報取得
  31. 31. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | IoT with WebSocket
  32. 32. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | LEGO(Java SE Embedded) & Java EE 7 WebSocket デモの構成 GlassFish v4.0.1 Java SE8/EE 7 Java SE8 Embedded LEGO MindStorms の操作命令を送信 LEGO MindStorms の状態情報を送信 WebSocket LEGO エンドポイント WebSocket サーバ エンドポイント WebSocket ブラウザ エンドポイント JSON JSON JSON JSON
  33. 33. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 試してみたい方 Oracle Confidential – Internal/Restricted/Highly Restricted 34
  34. 34. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 35 • キャンペーンコード 「EV3JavaTERA」 – EV3基本セット – EV3のMモーターをプレゼント 教育版 LEGO Mindstorms http://www.afrel.co.jp/
  35. 35. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 36
  36. 36. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 37

×