投稿

7月, 2012の投稿を表示しています

VS Codeでvenvがうまく動作しなくなった話

結論 venvをあきらめて、Pipenvを導入すればなぜか解決した。 経緯 Pythonの開発環境にVS Codeを使っていましたが、ある日突然、venvで作った環境が見えなくなりました。 PowerShellからは切り替えができるので、venv自体は正しく動いているようでした。 PythonとVS Codeをクリーンインストールしても状況は変わりませんでした[1]。 Pipenvの使い方 最近はPipenvというものがあるらしいので、それを導入することとしました[2][3]。 pip install pipenv 以下のように環境変数を設定することで、プロジェクトのフォルダ直下に仮想環境を構築してくれます。 PIPENV_VENV_IN_PROJECT=true VS Code上にフォルダを作成し、その直下で仮想環境を作成します。 コマンドはVS Code上のPowerShellで行いました。 例えば以下のようになります。パスやPythonのバージョンはご自身の環境に合わせてください。 *pythonの後に半角スペースがあるのでうっかり詰めないでください。 *venvファイルが作成されるという情報もありますが、私の場合はPipfileのみ作られました。 PS PS C:\Users\User Name\Documents\CODE\Python\Test> pipenv install --python 3.8 VS Code上でF1キーを押して、「reload」を検索して実行します。 これで左下のPythonのバージョンセレクトから環境選択できるはずです。 仮想環境から抜けるときは以下のコマンドを使います。 deactivate 参考文献 [1] sota0726 「VScodeを完全にアンインストールする方法(windows10)「拡張機能のホストが予期せずに終了しました。」を改善するために」閲覧日:2020/09/13 https://www.atmarkit.co.jp/ait/articles/1810/12/news026.html [2] KRiver1 「pyenv、pyenv-virtualenv、venv、Anaconda、Pipenv。私はPipenvを使う。」閲覧日:2020/09/13 h

苺サーボでヒューマノイドをつくる その1

イメージ
 久しぶりにヒューマノイドロボットを仲間と作ることにしました。 ヒューマノイドは2人でチームを組んで作っていたのですが、今回は新たに後輩に参加してもらいました。 電気回路に強いM1と、オールラウンドになんでもこなす優秀なB3の二人です。 まずは準備として、今まで使っていた苺サーボ(PRS-S40M)の特性を測定しなおしました。 調べる項目は、以下の3つです。  ・トルク  ・消費電流  ・消費電力 今まで電気系統が貧弱だったので、今回は安定した電気系統にするために消費電力などを知る必要があります。 実験内容は動画にしてYoutubeにUPしたので以下の動画で御覧ください。 実験結果として、およその値ですが以下のようになりました。 実験結果 印加電圧 8.4 [V] 消費電流 2.9 [A] 消費電力 24 [W] トルク 23 [kg・cm] *この値はこちらの実験環境による結果なので参考程度に留めてください。 他の会社のサーボモータなどでも比較のために試してみたくなりました。 ストール時の消費電流は結構大きく、予想を上回っています。 全部のサーボが一度にストールするとは考えられませんが、電気系統の設計を後輩には頑張ってもらわないといけないことがわかりました。 それでは今回はここまでです。

pyMCUで遊んで見る その2

イメージ
 こんにちは。 今日はこのまえ紹介した pyMCU についてです。 前回はLEDがチカチカするだけでしたが、今回は7セグメントLEDを使用します。 参考にする例題はこちらです http://www.pymcu.com/SevenSegmentLED.html 準備する部品一覧です。 高輝度ブルー7セグメントLED表示器(カソードコモン)C-551UB カーボン抵抗(炭素皮膜抵抗) 1/4W220Ω 7本 例題で使用している7セグメントLEDはアノードコモンで、私が用意したのはカソードコモンとなっています。 単に在庫があったので使用しているのでどちらでも構いません。 ただし、当たり前ですがアノードコモンとカソードコモンで回路とプログラムが異なるので注意して下さい。 アノードコモンの回路とプログラムは例題を見てもらうとして、この記事ではカソードコモン用の回路とプログラムを記述します。 使用する7セグメントLEDと回路は以下のようになります。 抵抗値は好みに合わせて決めて下さい。 実際にブレッドボードに実装したのが以下の図です。 それでは次に環境設定です。 前回 import sysのsys.pathにpymcuなどのフォルダを追加しましたが、その方法では一時的にしか追加されないとうい事がその後わかりました。 Windows上において自分のフォルダを追加するには、環境変数に記述する必要があります。 以下の変数を新規で作成します。 追記2012/07/19:Linux上においてもsys.pathには一時的にしか追加できず、PYTHONPATHに記述する必要があるようです。 変数名:PYTHONPATH 変数値:C:\Python26\Lib\site-packages\pymcu-1.0.8;C:\Python26\Lib\site-packages\pyserial-2.6 PYTHONPATHという変数名は決まった変数名で、この変数をPythonが自動的に参照してくれるようです。 この環境変数はsiteにもsysにも関係ないので、sys.pathにもこの変数の値は反映されないようです。 これで永続的に自分が用意したフォルダを参照出来るようになりました。 最後にプログラムを入力し、7セグメ ントLEDを点灯させます。 >>> import pymcu &

pyMCUで遊んで見る その1

イメージ
 こんばんは。 今日は友人から借りているマイコン”pyMCU”について書きます。 公式ページ:http://www.pymcu.com/index.html このマイコンはまだマニアック過ぎて日本では公式ホームページからしか買えないようですが、そのうち流行ると思います。 "pyMCU”の特徴はなんと言ってもPythonでプログラム可能な点です。 Pythonなのでコンパイルもいらず、対話型シェルから気軽に動かせます。 テストが簡単にできたり、開発環境の準備が非常に簡単などメリット満載です。 今回は開発環境を用意します。 ちなみに私の環境は以下のとおりです。基本的な説明はWindows基準で行います。 Windows7 64bit Python2.6.6 pymcu1.0.8 pyserial2.6 1.Pythonのダウンロード http://www.python.jp/Zope/download/pythoncore ここから好きなPythonをダウンロードします。 ちなみに、私はPython2.6.6を使用していたので、2.6.6を使用していますが、2.7系列が推奨のようです。 このあとの作業を考えると2.7系列が良いでしょう。 2.Pythonのインストール インストーラを起動して、順次したがっていきます。 インストール先はCドライブ直下にあるとしてこの先は説明します。 3.pymcuのダウンロード 以下のサイトからpymcuをDLします。 http://pypi.python.org/pypi/pymcu/1.0.8 4.pyserialのダウンロード *この作業はPython2.7の人は最初から入っていると思われるので多分いりません。 以下のサイトからpyserialをDLします。 http://pypi.python.org/pypi/pyserial/2.6 5.pymcuとpyserialモジュールのパス設定 ダウンロードしたpymcuとpyserialを展開し、以下のフォルダ上に配置します。 C:\Python26\Lib\site-packages *バージョンが違う人は適せん読み替えsite-packages下に配置して下さい。 ここにフォルダごと移しましょう。 次にPythonを立ち上げ、対話シェルで以下のようなコマンドを入力します