強化学習/LEGO MINDSTORMS EV3でPythonを使う
をテンプレートにして作成
開始行:
*はじめに [#m1f47301]
LEGO MINDSTORMS EV3で強化学習をするため、Pythonを使います。
EV3本体は、Micro SDカードが挿入されている状態で電源を入れ...
そこで、Micro SDカードにev3devというLinuxのイメージファイ...
無線LANでネットワークに接続し、パソコンからEV3上で動いて...
次の環境で確認しました。
-macOS Sierra 10.12.5
-ev3dev 2017-09-14
*準備したもの [#h865ed9b]
-無線LAN子機 Buffalo WLI-UC-GNM2S
-Micro SDカード 8GB
*ダウンロード [#q51ca082]
次のページから、LEGO MINDSTORMS EV3用のファイルをダウンロ...
-http://www.ev3dev.org/downloads/
*Micro SDカードへのインストール [#ab805758]
ダウンロードしたZipファイルを展開します。
すると、イメージ・ファイル (*.img) が作成されます。
MacにMicro SDカードを(差し込んだSDカード・アダプターを)...
diskutilコマンドで、Micro SDカードのデバイス名を確認しま...
#geshi(sh){{
$ diskutil list
...
/dev/disk5 (internal, physical):
#: TYPE NAME ...
0: FDisk_partition_scheme *...
1: DOS_FAT_32 NO NAME ...
...
}}
NO NAMEがボリューム名です。
diskutilコマンドで、SDカードをアンマウントします。
#geshi(sh){{
$ diskutil unmountDisk /dev/disk5
}}
ddコマンドで、イメージ・ファイルをMicro SDカードに書き込...
#geshi(sh){{
$ sudo dd if=ev3dev-jessie-ev3-generic-2017-09-14.img of=...
}}
ここで、if= の後はイメージ・ファイルの名前、of= の後はデ...
管理者でないと実行できないので、sudo で実行し、パスワード...
うまくできると、次のような感じで出力されます。
#geshi(sh){{
1800+0 records in
1800+0 records out
1887436800 bytes transferred in 62.141452 secs (30373233 ...
}}
ddコマンドでの書き込みが成功すると、自動的にマウントされ...
*起動 [#a9d82e8c]
Micro SDカードと無線LAN子機をEV3本体に挿入し、電源を入れ...
*Wi-Fiの設定 [#t3affa48]
起動したら、メニューから ''Wireless and Networks >'' を選...
''Wi-Fi >'' を選択します。
''Powered'' を選択し、チェックを入れます。
すると、電源が入り、無線LAN子機のLEDが点滅を始めます。
しばらく待っているか、''Start Scan'' を選択すると、無線LA...
利用するSSIDを選択し、''Connect'' を選択します。
パスワードを入力します。
すると、無線LANに接続できます。
接続できると、EV3の画面左上にIPアドレスが表示されます。
*Bluetoothの設定 [#u7bbb14f]
最初はWi-Fiでうまく接続できていたのですが、''Not Availabl...
そこで、Bluetoothでも接続できるようにしました。
メニューから ''Wireless and Networks >'' を選択します。
''Bluetooth >'' を選択します。
''Powered'' を選択し、チェックを入れます。
すると、画面にBluetoothのマークが表示されます。
''Start Scan'' を選択すると、近くのBluetoothデバイスのリ...
macOSのコントロールパネルの「''共有''」で「''インターネッ...
EV3の ''Connect'' を選択し、接続します。
接続できると、EV3の画面左上にIPアドレスが表示されます。
**Bluetooth接続の問題点 [#y7120b81]
Macがネットワークに接続していないと、MacからEV3にsshで接...
ペアリングが成功した直後はMacからEV3にsshで接続できますが...
そこで、毎回ペアリングをやり直しています。
*リモート・ログイン [#qe63b59b]
sshコマンドで、EV3上のLinuxにリモート・ログインします。
#geshi(sh){{
$ ssh robot@192.168.0.2
}}
robotはユーザー名、@ 以下は確認したIPアドレスです。
初めて接続したときは、今まで接続したことがないサーバーだ...
Yesと答えると、パスワードを聞かれますので、 ''maker'' と...
ログインに成功すると、次のようなメッセージが出力されます。
#geshi(sh){{
_____ _
_____ _|___ / __| | _____ __
/ _ \ \ / / |_ \ / _` |/ _ \ \ / /
| __/\ V / ___) | (_| | __/\ V /
\___| \_/ |____/ \__,_|\___| \_/
Debian jessie on LEGO MINDSTORMS EV3!
The programs included with the Debian GNU/Linux system ar...
the exact distribution terms for each program are describ...
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to th...
permitted by applicable law.
robot@ev3dev:~$
}}
*動作確認 [#q5540811]
Python3を起動します。
#geshi(sh){{
robot@ev3dev:~$ python3
}}
EV3用のライブラリーをインポートします。
#geshi(python){{
>>> import ev3dev.ev3 as ev3
}}
モーターを用意します。
#geshi(python){{
>>> m = ev3.LargeMotor('outB')
}}
今回は、''outB'' 端子に接続された左型のモーターだけを回し...
モーターを回します。
#geshi(python){{
>>> m.run_forever(speed_sp=100)
}}
すると、モーターが回りはじめ、右側のタイヤを中心にしてゆ...
モーターを止めます。
#geshi(python){{
>>> m.stop()
}}
python3を終了します。
#geshi(python){{
>>> quit()
}}
*Pythonプログラムの作成と実行 [#s1007fc1]
Pythonプログラムを作成し、sftpでEV3に転送します。
EV3から実行できるように、Pythonプログラムの1行目には次の...
#geshi(python){{
#!/usr/bin/python3
}}
Pythonプログラムを転送したら、ファイルに実行権限を付与し...
#geshi(sh){{
robot@ev3dev:~$ chmod +x example.py
}}
EV3の ''File Browser >'' からファイルを選択すると、Python...
EV3のキャンセル・ボタン(左上のボタン)を押し続けると、Py...
終了行:
*はじめに [#m1f47301]
LEGO MINDSTORMS EV3で強化学習をするため、Pythonを使います。
EV3本体は、Micro SDカードが挿入されている状態で電源を入れ...
そこで、Micro SDカードにev3devというLinuxのイメージファイ...
無線LANでネットワークに接続し、パソコンからEV3上で動いて...
次の環境で確認しました。
-macOS Sierra 10.12.5
-ev3dev 2017-09-14
*準備したもの [#h865ed9b]
-無線LAN子機 Buffalo WLI-UC-GNM2S
-Micro SDカード 8GB
*ダウンロード [#q51ca082]
次のページから、LEGO MINDSTORMS EV3用のファイルをダウンロ...
-http://www.ev3dev.org/downloads/
*Micro SDカードへのインストール [#ab805758]
ダウンロードしたZipファイルを展開します。
すると、イメージ・ファイル (*.img) が作成されます。
MacにMicro SDカードを(差し込んだSDカード・アダプターを)...
diskutilコマンドで、Micro SDカードのデバイス名を確認しま...
#geshi(sh){{
$ diskutil list
...
/dev/disk5 (internal, physical):
#: TYPE NAME ...
0: FDisk_partition_scheme *...
1: DOS_FAT_32 NO NAME ...
...
}}
NO NAMEがボリューム名です。
diskutilコマンドで、SDカードをアンマウントします。
#geshi(sh){{
$ diskutil unmountDisk /dev/disk5
}}
ddコマンドで、イメージ・ファイルをMicro SDカードに書き込...
#geshi(sh){{
$ sudo dd if=ev3dev-jessie-ev3-generic-2017-09-14.img of=...
}}
ここで、if= の後はイメージ・ファイルの名前、of= の後はデ...
管理者でないと実行できないので、sudo で実行し、パスワード...
うまくできると、次のような感じで出力されます。
#geshi(sh){{
1800+0 records in
1800+0 records out
1887436800 bytes transferred in 62.141452 secs (30373233 ...
}}
ddコマンドでの書き込みが成功すると、自動的にマウントされ...
*起動 [#a9d82e8c]
Micro SDカードと無線LAN子機をEV3本体に挿入し、電源を入れ...
*Wi-Fiの設定 [#t3affa48]
起動したら、メニューから ''Wireless and Networks >'' を選...
''Wi-Fi >'' を選択します。
''Powered'' を選択し、チェックを入れます。
すると、電源が入り、無線LAN子機のLEDが点滅を始めます。
しばらく待っているか、''Start Scan'' を選択すると、無線LA...
利用するSSIDを選択し、''Connect'' を選択します。
パスワードを入力します。
すると、無線LANに接続できます。
接続できると、EV3の画面左上にIPアドレスが表示されます。
*Bluetoothの設定 [#u7bbb14f]
最初はWi-Fiでうまく接続できていたのですが、''Not Availabl...
そこで、Bluetoothでも接続できるようにしました。
メニューから ''Wireless and Networks >'' を選択します。
''Bluetooth >'' を選択します。
''Powered'' を選択し、チェックを入れます。
すると、画面にBluetoothのマークが表示されます。
''Start Scan'' を選択すると、近くのBluetoothデバイスのリ...
macOSのコントロールパネルの「''共有''」で「''インターネッ...
EV3の ''Connect'' を選択し、接続します。
接続できると、EV3の画面左上にIPアドレスが表示されます。
**Bluetooth接続の問題点 [#y7120b81]
Macがネットワークに接続していないと、MacからEV3にsshで接...
ペアリングが成功した直後はMacからEV3にsshで接続できますが...
そこで、毎回ペアリングをやり直しています。
*リモート・ログイン [#qe63b59b]
sshコマンドで、EV3上のLinuxにリモート・ログインします。
#geshi(sh){{
$ ssh robot@192.168.0.2
}}
robotはユーザー名、@ 以下は確認したIPアドレスです。
初めて接続したときは、今まで接続したことがないサーバーだ...
Yesと答えると、パスワードを聞かれますので、 ''maker'' と...
ログインに成功すると、次のようなメッセージが出力されます。
#geshi(sh){{
_____ _
_____ _|___ / __| | _____ __
/ _ \ \ / / |_ \ / _` |/ _ \ \ / /
| __/\ V / ___) | (_| | __/\ V /
\___| \_/ |____/ \__,_|\___| \_/
Debian jessie on LEGO MINDSTORMS EV3!
The programs included with the Debian GNU/Linux system ar...
the exact distribution terms for each program are describ...
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to th...
permitted by applicable law.
robot@ev3dev:~$
}}
*動作確認 [#q5540811]
Python3を起動します。
#geshi(sh){{
robot@ev3dev:~$ python3
}}
EV3用のライブラリーをインポートします。
#geshi(python){{
>>> import ev3dev.ev3 as ev3
}}
モーターを用意します。
#geshi(python){{
>>> m = ev3.LargeMotor('outB')
}}
今回は、''outB'' 端子に接続された左型のモーターだけを回し...
モーターを回します。
#geshi(python){{
>>> m.run_forever(speed_sp=100)
}}
すると、モーターが回りはじめ、右側のタイヤを中心にしてゆ...
モーターを止めます。
#geshi(python){{
>>> m.stop()
}}
python3を終了します。
#geshi(python){{
>>> quit()
}}
*Pythonプログラムの作成と実行 [#s1007fc1]
Pythonプログラムを作成し、sftpでEV3に転送します。
EV3から実行できるように、Pythonプログラムの1行目には次の...
#geshi(python){{
#!/usr/bin/python3
}}
Pythonプログラムを転送したら、ファイルに実行権限を付与し...
#geshi(sh){{
robot@ev3dev:~$ chmod +x example.py
}}
EV3の ''File Browser >'' からファイルを選択すると、Python...
EV3のキャンセル・ボタン(左上のボタン)を押し続けると、Py...
ページ名: