2016年11月15日火曜日

第6回:GOPIGOでPYTHONのプログラムを動かす


さて、前回までにGOPIGOの組み立てとチェックを終わり、順調に各機能が動いている事まで確認した。大変うれしい限りである。
今回は、いよいよPythonのプログラムを動かしてみよう。

<Python プログラムをGOPIGOに転送する>
SSHでの接続は順調で、難なく動作チェックを終えたが、SSHで動かすのはfwdなどの1コマンドだけなので、連続動作はできない。そこで、簡単なプログラムをGOPIGOに入れて動かしてみたい。
コンピュータとしてキーボード、ディスプレイを接続すれば簡単にできることなのだが、今後の事を考えると、これも私のMACで入力したプログラムをリモートでGOPIGOに転送できたほうが余程効率が良い。いちいちキーボードやディスプレイ(私の場合はテレビを使っているので、テレビをいちいち占有するのは家族に気が引ける)をつながなくても良いのが何よりだ。
SSHは、残念ながらファイル転送機能は持っていない。FTP(File Transfer Protocol)機能が必要になる。Dexter Industriesのビデオでは、Windows SCPというアプリを使っているらしい。でもこれはWindows用であって、MACでは使えない。ネットで調べると、いろいろなアプリが世の中に有るようであるが、まあ、今のところ立派な有料アプリまたは怪しい無料アプリに手を出す必要は無く、ファイルが転送できれば良いだけである。
世の中には親切な方が居て、これもブログを参考にした。LINUXとMACにもともと備わる機能を使うだけなので、今はこれで十分。もっと高級な機能が欲しくなったらアプリを考えよう。
ブログを参照戴ければ、全くその通り行なえば良い。少々説明を加えると、
まず、SSHでGOPIGOに入り込んでから、ftpサーバー機能であるvsftpdをインストールしてCONFIGファイルで「書き込み許可」に書き換える。vsftpdをスタートさせておく。
という順序で淡々と行なえば良い。慣れた人には簡単なことだが、編集にviを使う必要があって、これに手こずった。viは、そう言えば大昔使ったことがある。リモート接続では原始的ではあるが有効な手段だ。と納得したが、viの操作は忘れている。

Vsftpdインストールのインストールは、
$ sudo apt-get update
$ sudo apt-get install vsftpd
の2行を打ち込むだけで、勝手にインストールしてくれた。便利なものだ。インストールされたサーバーをスタートしておけばFTP機能がGOPIGOで動き始める。
でも、これだけでは、ファイル転送は実は拒否されてしまう。インストールされたままでは、書き込み不可状態だからである。
そこで、vsftpd.conf を編集する作業が必要になる。ここで、viを使う羽目になる。

$ sudo service vsftpd stop
$ sudo cp /etc/vsftpd.conf /etc/vsftpd.conf-ORG
$ sudo vi /etc/vsftpd.conf
実際は、変更箇所は、
write_enable=YES #書き込み許可
だけだ。ポイントだけ書いておく。viを起動すると、ずらずらと文字列が表示される。この段階ではコマンド入力状態になっていることを覚えておく。キーボードのカーソルキーを下に押せば、次々と表示が出て来て、
#write_enable=YES #書き込み許可
という行が見つかるはずだ。この最初の#のところにカーソルが来ている事を確認してキーボードの x キーを押すと、# が削除されるはず。このまま編集を終了すればよく、
:wq
とキーボードを押下しエンターキーを押せば良い。
ちょっと面倒だが、これだけでFTP機能が使えることになる。一回きりなので、がんばりましょう。このブログの提供者には、感謝もうしあげます。

<簡単なPythonプログラムを動かす>
さて、準備は整ったので、FTP機能を実際に使ってみよう。
①プログラム例の作成
MACのユーザディレクトリにGOPIGOのプログラム例をMACのテキストエディタで作成しgopigoexample1.pyと名付けて置いた。以下の様に、単に2秒間前向きに進み、その後2秒間後ろ向きに進み、止まるだけの簡単なプログラムだ。

import gopigo
print(gopigo.__file__)
from gopigo import *
import time
fwd()
time.sleep(2)
bwd()
time.sleep(2)
stop()
②FTPサーバーをスタートさせる。
 SSHでGOPIGOに入り込み、
 $ sudo service vsftpd start
 $ exit
③MACからSSHではなく、FTP接続でGOPIGOに入り込む
 ftp pi@xxx.xxx.xxx.xxx (SSHと同じIPアドレス)
 するとパスワードを聞かれるので、これもSSHと同様のパスワードを入れる
 今回の場合は、MAC側はユーザディレクトリそのものに居て、GOPIGO側は、home/piに居る様だ。
④プログラムファイルを転送する
 ftp> put gopigoexample1.py
これだけで転送できた。
 ftp> quit
 FTPを終了する。 SSHの終了はexitで、FTPの終了はquitなのだ。
⑤プログラムを実行する
 再びSSHでGOPIGOに入り込み
$ python gopigoexample1.py
と入力するだけで、プログラム通りにモーターが動いて止まった。ちょっと2秒よりは長かった様には思うが、まあ良いだろう。

以上で、python プログラムの実行環境が整った。
次は、距離センサーを使った、プログラムによる自律走行に挑戦してまた報告する。

0 件のコメント:

コメントを投稿