Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

C#/Java & Linux で始める ET ロボコン(leJOS編)

1,836 views

Published on

6/13(土)の OSC 2015 Hokkaido で行った ET ロボコンの紹介セミナーの中でleJOS説明に使ったスライド。

Published in: Software
  • Be the first to comment

C#/Java & Linux で始める ET ロボコン(leJOS編)

  1. 1. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 C♯/Java & Linuxで始める (leJOS編) ETロボコン 北海道地区実行委員会
  2. 2. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 leJOS EV3 2
  3. 3. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 leJOS EV3 3 LEGO Mindstormsシリーズ用に代々提供され てきたJava実行環境 http://www.lejos.org
  4. 4. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 leJOS EV3実行環境 4 EV3ハードウェア Ångström Linux leJOS 基本クラス leJOS アプリケーション EV3用デバイスドライバ Oracle JRE 標準ファームウェア のものを流用 標準ファームウェア のものを流用 microSDから起動 leJOS メニュー
  5. 5. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 leJOS EV3アプリケーション開発 5 ①JDKで開発 ・Windows ・OS X ・Linux … ②scpでjarを転送 ・USB (RNDIS) ・Bluetooth PAN ・Wi-Fi ③実行 ・leJOSのメニュー ・EV3 Control Center ・sshからリモートで
  6. 6. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 Eclipse + leJOS EV3プラグイン 6
  7. 7. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 センサ値の取得方法  次の5ステップ ①センサポートを指定して、センサオブジェクトの作成 ②サンプルプロバイダの取得 ③センサ値の数を取得&センサー値取得用配列の用意 ④センサの有効化 ⑤サンプルプロバイダを使ってセンサー値取得 7 // ①超音波センサ オブジェクト作成 EV3UltrasonicSensor sonar = new EV3UltrasonicSensor(SensorPort.S2); SampleProvider distanceMode = sonar.getDistanceMode(); // ②サンプルプロバイダ取得 float[] sampleDistance = new float[distanceMode.sampleSize()]; // ③センサ値取得用配列 sonar.enable(); // ④超音波センサを有効化 // ⑤等音波センサーから障害物までの距離を得る distanceMode.fetchSample(sampleDistance, 0); float distance = sampleDistance[0]; 超音波センサーの例
  8. 8. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 モータの制御(RPM)  次の3ステップ ①モータポートを指定してモータオブジェクトを作成 ②モータのスピード(RPM)を指定 ③前進か後進かを指定してモータを動かす 8 // ①モータオブジェクト作成 EV3LargeRegulatedMotor motor = new EV3LargeRegulatedMotor(MotorPort.B); // ②モータのスピード(RPM)を指定 motor.setSpeed(50); // ③前進か後進 motor.forward(); // 前進 motor.backward(); // 後進
  9. 9. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 モータの制御(PWM)  次の2ステップ ①PWM制御用のモータポートオブジェクトを取得 ②モータポートオブジェクトにPWMを指定してモータを動かす 9 // ①モータポートオブジェクトを取得 TachoMotorPort motorPort = MotorPort.B.open(TachoMotorPort.class); // ②モータのPWMを指定 motorPort.controlMotor(50, 1);
  10. 10. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 デモ  超音波センサの値にしたがった簡単なモータ制御  超音波センサから値を取得  デフォルトは前進  前方 30 cm 以内に障害物を検知したら後進  上記を繰り返す 10
  11. 11. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 デモプログラム(抜粋) 11 // モータ制御オブジェクト作成 EV3LargeRegulatedMotor motorL = new EV3LargeRegulatedMotor(MotorPort.C); // 左モータ EV3LargeRegulatedMotor motorR = new EV3LargeRegulatedMotor(MotorPort.B); // 右モータ // モータのスピード(RPM)を設定 motorL.setSpeed(50); motorR.setSpeed(50); // 超音波センサ オブジェクト作成 EV3UltrasonicSensor sonar = new EV3UltrasonicSensor(SensorPort.S2); SampleProvider distanceMode = sonar.getDistanceMode(); // 距離検出モード float[] sampleDistance = new float[distanceMode.sampleSize()]; sonar.enable(); // 超音波センサを有効化
  12. 12. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 デモプログラム(抜粋続き) 12 for (;;) { ... // 超音波センサーから障害物までの距離を得る distanceMode.fetchSample(sampleDistance, 0); float distance = sampleDistance[0]; if (distance > 0.3F) { // 障害物まで0.3m以内にになるまで前進 motorL.forward(); motorR.forward(); } else { // 障害物まで0.3m以内になったら後進 motorL.backward(); motorR.backward(); } Delay.msDelay(100); // 100msecスリープ }
  13. 13. OSC2015 Hokkaidoセミナー資料/ETロボコン北海道地区実行委員会 13

×