目次 #contents * 準備 [#q864ac9b] http://www.ev3dev.org/docs/getting-started/ を参考に。 ** OSのイメージをダウンロード [#sb77d4ec] https://github.com/ev3dev/ev3dev/releases/download/ev3dev-jessie-2015-12-30/ev3-ev3dev-jessie-2015-12-30.img.xz ** microSDまたはmicroSDHCにコピー(microSDXCは使えない)。microSDのデバイス名が /dev/sdb とすると、以下のようにddでイメージをメディアに書き込む [#zd1d1eb2] xzcat ~/Download/ev3dev-yyyy-mm-dd.img.xz | sudo dd bs=4M of=/dev/sdb デバイス名が不明な場合は cat /proc/partitions などのコマンドで調べる。 ** 起動 [#c943330c] microSDを本体のカードスロットにセットして電源ON(真ん中の四角いボタンを押す)。microSDが入っていれば、本体のOSではなくmicroSDのOS(ev3dev)が起動する ** ネットワークの接続 [#z38ad46a] wifiのドングルを使うのがおそらく最も簡単。 brickmanのメニューが表示されたら、 「Wireless and Networks」→「Wi-Fi」で無線ネットワークを選ぶ。 接続できたら、ディスプレイ上部に表示されている、DHCPで取得したアドレスを確認しておく。 ** sshでログイン [#ia48be56] IPアドレスが192.168.2.30の場合、パソコン側から ssh robot@192.168.2.30 でログインできる(デフォルトのUIDは「robot」、パスワードは「maker」)。 Windowsの場合はTeraTermなどを使えばよい。 localhost:~$ ssh robot@192.168.2.30 robot@192.168.2.37's password: _____ _ _____ _|___ / __| | _____ __ / _ \ \ / / |_ \ / _` |/ _ \ \ / / | __/\ V / ___) | (_| | __/\ V / \___| \_/ |____/ \__,_|\___| \_/ Debian jessie on LEGO MINDSTORMS EV3! The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed May 25 06:41:16 2016 from 192.168.2.21 robot@ev3dev:~$ * Python でインターラクティブに動かす [#s538f8e8] ** pythonの起動 [#id4e94b7] デフォルトではpython 2.7 が起動する。 robot@ev3dev:~$ python Python 2.7.9 (default, Mar 1 2015, 13:52:09) [GCC 4.9.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> ** モジュールのインポート [#gb5bbf8b] >>> import ev3dev.ev3 as ev3 ** モータのインスタンスを生成 [#u9916a64] モータの各ポート名は、'outA' 'outB' 'outC' 'outD'。 >>> m = ev3.LargeMotor('outA') 小さい方のモータの場合は、 >>> m = ev3.MediumMotor('outC') ** モーターのリセット [#g87607de] >>> m.reset() ** モータを回転させる [#s3b12bed] モータのリセット後は、duty_cycle_sp(デューティ・サイクルのセットポイント)が0になっている。 回転させるためには、0以外の-100から100までの値を指定する。 >>> m.run_forever(duty_cycle_sp=30) あるいは、以下でも同じ動作。 >>> m.duty_cycle_sp=30 >>> m.run_forever() ** モーターを止める [#p1e18470] >>> m.stop() モータの止め方は'coast' 'brake' 'hold'の3種類。デフォルトは'coast'。指定の方法は、 >>> m.stop(stop_command='brake') のように値を渡すか、 >>> m.stop_command='brake' >>> m.stop() のようにする。 ** モータを一定時間回す [#vc2bab9e] >>> m.run_timed(time_sp=3000, duty_cycle_sp=50, stop_command='brake') timeで指定する時間の単位は1/1000秒。 ** モータを一定時間回す(sleep関数を使う方法) [#h602c8c4] >>> import time >>> m.run_forever(duty_cycle=50) >>> time.sleep(3) >>> m.stop() sleepで指定する時間の単位は1秒。 ** モーターを特定の角度だけ回す [#mfa5974d] >>> m.run_to_rel_pos(position_sp=360, duty_cycle_sp=70, stop_command='hold') これは >>> m.reset() >>> m.run_to_abs_pos(position_sp=360, duty_cycle_sp=70, stop_command='hold') と同じ。 ** センサーの種類 [#i38f24e1] -TouchSensor タッチセンサ -ColorSensor カラーセンサ -UltrasonicSensor 超音波センサ -GyroSensor ジャイロセンサ -SoundSensor NXTのサウンドセンサ -LightSensor NXTのライトセンサ -InfraredSensor EV3の赤外線センサ(距離測定用)