Pythonを始める|ゆっくり進める
7つの手順で、スマートトレイン本体を走らせて止めるところまで進めます。
変更
手順 6 / 7
3秒走らせて、止める
走行用のプログラムを保存し、実物の動きと表示を確かめます。
1.走る場所を用意する
走らせるたび本体が走っても、落ちたり物にぶつかったりしない場所で試します。
やること
床などに線路を組み、本体を置きます。最初は動きを変えるスナップを外します。本体へ手が届く位置で試します。
これから約3秒走ります。すぐ止めたいときは、本体のボタンを短く押します。通信が切れた場合は、画面から止められないことがあります。
ここまでできたら本体を線路に置き、走る場所と本体のボタンを確認した。
2.走行用のプログラムを保存する
初回だけ接続確認とは別に、走って止まる手順を保存します。
やること
この.venvから開いたIDLEで「File」→「New File」を選びます。>>>のない白紙の編集画面へ、下のコードを丸ごと貼り付けます。
「File」→「Save As…」で、手順5と同じmatrain-pythonを保存先に選びます。今回は名前をfirst_train.pyにして保存します。.venvへは入りません。check_train.pyを上書きせず残します。
>>>のない編集画面に貼り付ける
from time import sleep
from intelino.trainlib import TrainScanner
with TrainScanner(timeout=10.0) as train:
print("connected:", train.name)
try:
train.drive_at_speed(30)
sleep(3)
finally:
train.stop_driving()
print("stopped")
print("finished")ここまでできたら編集画面の上にfirst_train.pyと出た。
どの画面へ貼ればよいか分からない
File → New Fileで開いた、最初は白紙だった画面を使います。>>>のあるIDLE Shellは結果を見る画面です。
保存する場所が分からない
手順5の「check_train.pyという名前で保存する」と同じ保存先を選びます。今回はファイル名だけfirst_train.pyにします。
3.走らせて、止まるところまで見る
動かすたび保存した手順を実行し、実物も止まったことを確かめます。
やること
first_train.pyの編集画面で「Run」→「Run Module」を選びます。実物の本体を見ます。
本体が走り、約3秒後に止まります。結果の画面には、connected: 本体名、stopped、finishedと出ます。
実行すると、結果は次のShellへ表示されます。
ここまでできたら実物が止まり、stoppedとfinishedが出た。両方を確かめます。
本体が止まらない
本体のボタンを短く押し、実物を止めます。止まったことを確認してから、編集画面のコード全体をこのページのコードで置き換え、保存します。通信が切れていると、プログラムから停止を伝えられないことがあります。
何も動かない・赤い文字が出た
開いたファイルがfirst_train.pyか確認します。check_train.pyは接続だけを試すプログラムです。
TrainNotFoundErrorなら手順5の本体の検索へ、No module named intelinoなら手順4のreadyの確認へ戻ります。SyntaxErrorやIndentationErrorなら、編集画面のコードを丸ごと貼り付け直して保存します。
stoppedは出たが、実物が止まったか分からない
stoppedは、止まる指示を送ったあとの表示です。実物も止まったか見て確認します。走り続けていたら、本体のボタンで止めます。
4.走る時間を1か所だけ変えてみる
時間を変えて試したいとき数字を変えると、実物の動きがどう変わるか確かめます。
やること
編集画面でsleep(3)をsleep(2)に変えます。「File」→「Save」で保存します。
もう一度「Run」→「Run Module」を選びます。走る時間が約2秒に短くなるか見ます。止める部分はそのまま残します。
ここまでできたら約2秒で止まった。次回も、この保存した内容を使えます。
ほかの数字や英語は何を表しているのか知りたい
drive_at_speed(30)の30は速さで、単位はcm/秒です。sleepは、その秒数だけ次の処理を待つ意味です。停止を伝えるのはstop_driving()です。
今回の数字や処理の詳しい意味は、この後の「コマンドの詳しい説明」で確認できます。
この手順の完了の目印
本体が約3秒走って止まり、stoppedとfinishedが出た。
