Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

EV3ねた その25 ev3devのPython 続き

2020-06-11 | EV3ねた

前の記事はこちら EV3ねた その24 ev3devのPython

 

いやぁ、もう、昨今のコロナウイルス感染拡大の影響で、休日も平日も外に出られない(出られない訳では無いですが、なるべく出ないようにしている)ことで・・・暇つぶしに EV3 の研究を続けています。

(この歳になると、新しいことを始めるのが、非常に億劫になるのですが・・・)

さて、コマンドライン(SSH)でのPythonの実行はできたのですが、スクリプトを作るのにも nano を毎回使うのは疲れそうですよね。

ということで、その23で(訳が分からずに)インストールした Visual Studio Code を使用してみます。

 

まず、PCの適当な場所に作業用のディレクトリを作成します。(今回は、d:\pytestとします)

Visual Studio Code を起動します。

File ⇒ Open Folder で、d:\pytest を指定します。

左の Exploer の一番下にある EV3DEV DEVICE BROWSER  をクリックして、出てきた「check here connect to device」をクリック して、一覧から ev3dev EV3 を選択すると・・・

EV3DEV DEVICE BROWSER の下に ev3dev が表示され、緑色のランプが点灯します。(これで、EV3と接続したってこと)

次に PYTEST をクリックして、そこにある New File をクリックして、新しいファイルを作成します。(ファイル名は test.pyにしました)

そうしたら、右側に画面にスクリプト(プログラム)を入力します。

 

 

スクリプトの入力が終わったら、EV3DEV DEVICE BROWSER の右側にある Send Workspace to Device をクリックします。これで、スクリプトがEV3に転送されます。転送が終わると、画面右下に Download to ev3dev Complete が表示されます。

これで、転送ができたので、今度はスクリプトを実行します。

 

左側の緑ランプのある ev3dev をクリックすると、EV3に配置されたディレクトリやファイルの一覧が表示されます。

/home/robot の下に /pytest があり、その下に test.py があります。

test.py を右クリックして run を選択すると、スクリプト(test.py)が実行されます。

 

で・・・このサイクル(プログラム編集、転送、実行)を繰り返してソフト開発をすることになります。

これを簡略化するために・・・

pytestディレクトリに下に .vscode ディレクトリを作成し、その下に launch.json ファイルを作成します。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Download and Run Current File",
            "type": "ev3devBrowser",
            "request": "launch",
            "program": "/home/robot/${workspaceFolderBasename}/${relativeFile}"
        }
    ]
}
 
これで・・・test.py を編集後に F5 キーを押すだけで、転送&実行 が実施されるようになります。
 

ここまで、実験してきましたが・・・ここに至るまで大変な時間が掛かりました。

解決までに悩まされた(大きな)2つの例を書いておきます。

/usr/bin/env: 'python3\r': No such file or directory

実行すると、ファイルが無い・・・と怒られます。

何がどうダメなのか? 全く分かりませんでした。

で、これは・・・スクリプトファイルの行末のコードが正しくない・・・らしいです。

上の画面のハードコピーの一番下の青色の行で「・・・ UTF-8 CRLF Python ・・・」と並んでいる、 CRLF がダメなんだそうです。この CRLF をクリックして、 LF に変更します。 再度、転送&実行すると、エラーが解消されます。

 

もう一つ・・・

Starting program failed: Failed to execute child process "/home/robot/pytest/test.py" (Permission denied)
 

Permission denied って アクセス拒否ですよね。

test.py ファイルの権限が足りないとか・・・!?

何がどう足りないの!? と悩みましたが・・・

正解は・・・スクリプトの1行目に必要な

#!/usr/bin/env python3

これが無かったり、間違っている場合のエラーになります。

 

続きの記事はこちら EV3ねた その26 ev3devのPython 話す・・・

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« EV3ねた その24 ev3devのPython | トップ | 立体文字!? »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

EV3ねた」カテゴリの最新記事