投稿

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

Python:グローバル変数 -Global Variables-

Tell the readers who do not read Japanese Important thing is translated in English that is colored green . I'm not good at English,so I apologize you if you struggle to read my page. Summary: This page is written about global value on Python. You have to declare a 'global' to use global variables in Python. I show some example ,and in last describe how to use global variables in class.  こんばんは。 ここしばらくロボットではなくPythonの話ばかりですね。 でもブログとかに書いておかないと忘れちゃうのでご勘弁を。 では今日はPythonでのglobal変数の扱いです。 C言語のようにアクセスするとハマるので確実に一回は検索することでしょう。 そして、検索しても見つからなかったクラス内のグローバル変数の使い方について書きます。 ��たぶんちょっと考えればわかるからあえて書いてないのかもしれませんが・・・) それでは早速一番基本的な使い方を示します。 関数内でglobal宣言することで、グローバル変数を使用できます。 I show how to use simple global variables. You can use a global variables by declaring a 'global' in the function >>> def gl_test1():         global g1         print g1 >>> gl_test1() 0 次に、グローバル変数の値を変更してみます。 値が保存され、呼び出しのたびに加算されているのがわかります。 Next I  try to change the value of a global variables

Python:ビット演算

 こんばんは。今回もPythonです。 最近は、苺サーボ(PRS-40M)をPythonから制御しています。 昔はマイコンから制御して実験していたのですが、Pythonだと効率良く開発が進みます。 その時にハマった、C言語辺りからPythonに入った人が陥りやすい罠ついて書きます。 コマンド式サーボモータはコマンド生成や、データを読み込む時によくビット演算を用います。 負の値として苺サーボは二の補数表現を用いています。 これは1の負数である-1を表現するなら以下のようにな流れになります。 ① ビット反転する ② 反転した数字から1を足す これを実際にPythonで実行します。 >>> ~1 + 1 -1 正しそうな値が出てきました。 次に、苺サーボの現在位置を複合してみます。(苺サーボは現在位置を16bitのデータとして送ってくる。) 複合の手順は逆にたどり最後にマイナスを掛けます。 ① 値から1引く ② ビットを反転する ③ 値に-1を掛ける(複合した値は正の数のため) それでは実際に負の限界値である-3600(二の補数表現で61936)を複合します。 >>> ~(61936 - 1) -61936 ①と②を実行しただけでもうすでにおかしいです。 負の値になっています。何が問題なのでしょうか。 疑問としては桁数が不明なPythonでどのよにビット反転をしているのでしょうか? 二の補数表現は一番上位のビットを1にする決まりですが、一番上位とは変数のサイズが決まらないPythonでは表現できません。 そこでPythonではビット反転演算を以下のように定義しいるそうです。 -(値 + 1) これなら納得です。最初の値が合って、現在位置の複合がうまく行かない理由がわかります。 実際には何が悪いのかわからずかなり戸惑いました。 C言語上がりの私には、こんな罠があるとは思いもしませんでした。 そこでビット反転はXORを使ってやることにします。 >>> -((61936 - 1) ^ 0xFFFF) -3600 現在位置は16bitとわかっているので、0xFFFFでビット反転することが出来ます。 1111 0001 1111 0000 :-3600の二の補数表現 1111 0001 1110 1111 :-1した値 1111

Python:PILをWindows7 64bit環境で使う

こんにちは。もう9月だというのにまだまだ暑いですね。  今回はPythonを使用していてハマったエラーの対処法を載せておきます。 Pythonにおいて画像を処理しよとするとよく用いられるのが、PIL(Python Imaging Library )です。 [参考] Python Imaging Library (PIL) : http://www.pythonware.com/products/pil/ このライブラリを使うと簡単に画像処理ができます。 具体的にはPNG画像を表示するためにPILを使用したいと考えました。 しかし、ライブラリをインストール後以下の様なエラーメッセージが表示され、正常に動作しません。 ImportError: The _imaging C module is not installed モジュールをインストールしたはずなのに見つからないようです。 *インストールはインストーラではなく手動で行いました このエラーメッセージを頼りに検索していくと、Windowsの64bit環境において起きるということがわかりました。 [参考] 流れ着いたら。。 。:http://www.flotsam-fareast.com/2011/02/64bit-windows-python-image-library-20110212.html そこで、以下のサイトから64bit用のPILのインストーラをダウンロードしてインストールしました。 Unofficial Windows Binaries for Python Extension Packages :http://www.lfd.uci.edu/~gohlke/pythonlibs/ しかし、インストラーを起動すると以下の様なメッセージが表示され、それ以上進めなくなりました。 Python version 2.* is required, which was not found in the registry PILを手動でインストールしなければその時点で発生したエラーだと思います。 そこで対処法を調べると、レジストリを読み間違えているということがわかりました。 [参考] Yamada Program :http://yamada-program.blogspot.jp/2011/05/pythonset

Python:super()の謎エラー

こんばんは。最近健康面に不安を感じ、大学近くのジムに通い始めました。 大学に入る前より15キロ太ったので、なんとかそのときの体重に戻したいです。  さて、最近Pythonにはまっております。 [参考] 日本Pythonユーザ会 :http://www.python.jp/Zope Pythonは非常に開発がやりやすいうえ、WindowsだろうがLinuxだろうが同じコードで動いてくれるのが研究でも趣味でも役に立ちます。 特にお気に入りなのは、対話型シェルを使用して一行ずつプログラムを書ける点です。 これを使えば、使い方の分からないメソッドをその場でテストしたり、自作関数の動作テストも容易に出来ます。  また豊富な機能を実現するモジュールが数多く存在するのが素晴らしいです。 例としてTkinterというGUI製作用のモジュールが存在します。 [参考] Tkinter 8.4 reference: a GUI for Python :http://infohost.nmt.edu/tcc/help/pubs/tkinter/ PythonをWindowsにインストールしたときに標準でついてくるIDLEは、Tkinterで製作されているようです。 Tkinterの使い方は日本語のサイトはいつかあるようですが、紫藤さんのWebページを参考にさせていただきました。 [参考] 紫藤のページ :http://www.shido.info/py/index.html  今回はそのときに真っ先にハマった内容を備忘録を兼ねて書きます。 参考にしたサンプル の内容としてはWidgetを配置する簡単なものです。 その際の初期化を再現すると以下の様になります。 class Son(Parent):     def __init__(self):         Parent.Frame.__init__(self) 直接、親クラスの初期化メソッドを呼んでいました。 しかし、Python(2.x系列)では、 super(クラス名, self).メソッド(…) と書けば親クラスのメソッドを呼べるのに、なぜそうしないのか気になりました。 そこで、実際にsuperを使用して記述しなおしました。 class Son(Parent):     def __init__(self):        

苺サーボでヒューマノイドを作る その2

イメージ
こんばんは。 そろそろ世間は夏休みでしょうか? 電車で親子連れや子供をよく見ます。 前回の実験 にサーボモータを7つ追加して再実験しました。 今回も以下の項目を調べます。  ・トルク  ・消費電流  ・消費電力 実験に使用したサーボは以下の8つです。すべてシリアル(コマンド)サーボとなっています。 選定基準は手元に合ったものや、借りられたものです。 ・Pirkus PRS-DE07MS PRS-S40M ・Futaba RS301CR-H3b RS405CB ・KONDO KRS-6003HV ICS KRS-4033HV ICS KRS-4034HV ICS KRS-2552RHV ICS 実験の詳細や様子は以下の動画を御覧ください。 実験結果として、およその値ですが以下のようになりました。 *この値はこちらの実験環境による結果なので参考程度に留めてください。  実験結果を眺めるとRS-DE07MS以外は、公称値のトルクより低く出ました。 どのように公証トルクを算出しているのかわからないのでなんとも言えませんが、実験機材の都合として3 [kg]までしか計測できないので200 [mm]という長いアームのせいでうまくトルクが伝達していないのかもしれません。 しかし、実際にはロボットに組み込むので損失は絶対に発生します。 そいう意味ではそのへんも考慮しながら結果を眺めるといいかもしれません。  消費電流はKRS-4034HVが出力トルクを考えると群を抜いて低いです。すごくエコみたいです。 また、本実験の動画にない注意としてサーボモータが全て新品というわけではありません。 RS301CR、KRS-6003HV、KRS-4033HV、KRS-4034HVだけが新品となっています。 なので、古いサーボほどへたっている可能があります。 それと、動画を見ればわかるのですが、サーボ出力が安定せず採用した値が妥当かどうかはわからないので、動画からご自分で考えていただけると助かります。   ロボメカ の後輩がすでにPWMサーボで同様の実験を行なっていますので、そちらの動画も楽しみにしたいです。 それでは今回はここまでです。 最後に、今回の実験に協力してくれた皆様ありがとうございました。

苺サーボでヒューマノイドをつくる その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を立ち上げ、対話シェルで以下のようなコマンドを入力します

友人の就職を祝う

イメージ
お久しぶりです。 友人の誕生日を祝う で祝った友達がめでたく就職しましたので、プレゼントを作りました。 その友人はイタリア料理屋で真面目にバイトしてたので、イタリア料理が上手です。 というわけで、プレゼントついでに料理を作ってもらえるように、料理道具をプレゼントしました。 料理道具としてまな板を選定し、”まぁまな板にレーザー彫刻でもしてプレゼントすることにするか”と仲間と話し合い決めました。 そして、レーザー彫刻するなら、 これ のオープニングに出てくるアレ風にするしかありません。 何を隠そうネットで話題になる前からMOCO'Sキッチンの大ファンだった私は、これがやりたくして仕方ありませんでした。 作り方としては、 1.友人の顔写真を入手する 2.余計な背景を消す 3.8bitくらいのグレースケールに変換 4.変換後顔の影などが気になれば、変換を取りやめ、影などを消したり、潰したりする 5.気に入ったグレースケールができたら、適当に似ているフォントを選び文字を入れる 6.適当な木のまな板を買ってきて、レーザー彫刻を行う 7.彫刻後サンドペーパーなどで表面を仕上げる という具合です。 実際には西友で買ってきたまな板の出来が酷かったので、切ったり削ったりしてます。 また、友人の名前がたまたま元ネタ(MOCO'S)に近かったので良かったですが、遠い場合はなんとかもじって寄せてください。 出来たまな板が以下のモノです。 実用に耐えうるよう表面の強度もろもろを考えて、彫刻の深さは薄めにしました。 あと時間がなく同じフォントを探したり、作ったりすることができなかったので、そのへんは時間を作ってやればよかったと反省してます。 これがプレゼントしたときの友人です。 プライバシーを尊重してメガネをぼかしてます。 しかしこの写真からでもうれしそうな笑顔が伝わります♪ その後友人にイタリア料理を作ってもらい、楽しい飲み会となりました。 この仲間達とは大学出たあとも付き合って行きたいです。 プレゼント制作班の人お疲れ様でした。 MOKU'Oくん就職おめでとう。 それでは、今回は終わりです。

audio-technica ATH-EQ300Mのプラグ交換

イメージ
 こんにちは、またまた1ヶ月あいてしまいました。 別に活動していないわけではないのですが、研究関連のモノづくりが多く、論文発表より先にブログに書けないという状態です。  今日はまたまた雑談扱いの、audio-technica ATH-EQ300Mの修理兼プラグ交換です。 今回はイヤホンプラグの付近で断線したらしく、モノラルのスピーカーになってしまっているので修理しました。 このスピーカーは主にXperia acroに繋いで音楽を聞くのに使っています。 ATH-EQ300Mのプラグはストレートになっていて、本体横にジャックがあるXperiaをポケットに入れて使用していたため、プラグ付近でストレスが掛かって断線したようです。 買った自分が悪いのですが、本体の横なんてジャマな場所にイヤホンジャックを配置したのか謎です。 ストレートではあまりにジャマなので、修理のついでにプラグをL字のものに交換します。 交換するプラグは手持ちが無かったので、100均で適当なスピーカーを購入してそこからもらいました。 ご覧のように非常にチープでプラグも金メッキではありませんが、おそらく私の耳基準で問題はないと思います。 まずはプラグから少し離れた位置でケーブルをカットします。 こういうケーブルの中身は皮膜線が通っていると思ったのですが、エナメル線が中に入っているんですね。 ATH-EQ300Mは赤と銅、緑と銅の組み合わせで、100均のイヤホンは赤と銅色、青と銅の組みわせでした。 銅はおそらくGNDで、規格があるのか知りませんが赤と赤が繋がるのではないかと思いました。 一応念の為に、テスターでチェックすると銅はGNDで赤と赤、緑と青という予想通りのものでした。 早速、線をハンダ付けしてプラグを交換します。 色つきの線は熱収縮チューブではハンダ後に覆い、GNDはむき出しのままにし、全体をまた熱収縮チューブで覆いました。 本当はGNDも熱収縮チューブで覆ったほうがいいかとも思いましたが、100均のケーブルがヒートガンの熱にすら耐えられないくらいのヘタレだったので、めんどくさくなってしましました。 修理したのがこちらです。 修理後実際に使用して確かめましたがちゃんと直っていました。 音の変化は私にはわからなかったのでよしとします。  今回はATH-EQ300Mのプラグの交換について書きました。 次回

KitMill RD300を使ってみる -運用準備編その1

イメージ
 こんばんは。結局前回から1ヶ月開いてしまいました。 この1ヶ月中間発表など色々あり、なかなかまとまった時間が取れませんでした。 新入生も入ってきたので、これからはもっと頑張らないといけませんね。  それでは運用準備編です。 前回で組み上げましたが、このままでは使いづらいので使いやすくしていきます。 今回改善する点は2つです。 1)シャンク系が固定されているので、様々な刃物を使いにくい。 2)加工テーブルが高価でドリリングなどを行いにくい。 それでは順に解決していきます。 1)シャンクはスピンドルシャフトのユニットで決まってしまうため、基本的に変更はできません。 シャンク径6 [mm]のユニットを使っていますが、ストレートドリルΦ6しかつかめず、エンドミルの種類も限られます。 そこで、下図に示すように、シャンクを変換するパーツを製作します。 赤いパーツが制作する、シャンク変換器です。 HAKUの頃 から毎回製作しています。 今回制作したのは以下の5種類です。  Φ4とΦ3はエンドミルによく使う径なので、負荷に負けないようステンレスで制作し位置決め用のフランジも立てています。  ドリル用にはΦ1.6、Φ2、Φ2.5を用意しました。材料にアルミを用いて、フランジも省略しています。 穴の径は、私がロボット製作時によく使うドリル径となっています。 ��Φ1.6は2 [mm]、Φ2.5は3 [mm]のタップ下穴用。また3 [mm]を超えた穴はエンドミルにて加工します。) これらのシャンク変換器は卓上旋盤と、卓上汎用フライス盤を用いて加工しています。 真円になるように旋盤加工の際は、精度に気をつけています。 これで様々なドリルやエンドミルをつけることができます。 製作方法ですが、適当な金属棒をシャンク径まで削り込み、止めねじ用にΦ3.2の穴を開ければ完成です。 フランジはあってもなくても若干装着しにくいだけで、実用上は大して変わらないと思います。 2)次は加工テーブルです。 板の切り抜き加工をするときには、Z軸方向に板厚+α [mm]加工を行い切り抜きます。 これはテーブルの傾きや、加工時の負荷による材料の逃げなどを考慮しているからです。 さらにドリリングの際には、少し深めに開けないと錐状の形状であるため、穴が開ききりません。 つまり加工テーブルには常に傷がつくということになり

KitMill RD300を使ってみる -組み立て編その3

イメージ
んばんは。もう春だというのにやたら寒い気がします。受験生の人はカゼをひかないよう気をつけて下さい。  今回は、KitMillの基板について書きます。 この基板はTRA100と、TRA150の二種類あるようです。 違いは以下のようになっています。 ・TRA100 電源:100 [W] ステッピングモーター出力:1.5 [A]以下 ・TRA150 電源:150 [W] ステッピングモーター出力:3.0 [A]以下  では制御基板の構成を見ていきましょう。 ・通信ポート 右下に見えるUSB端子はPCとの通信用です。 以前はパラレルポートだったので、これは非常にありがたいです。 これで、レガシーポートがついてるマザボを探す必要がなくなりました。 ・ステッピングモーター接続端子&原点センサー接続端子 下辺のあたりに並んでいるのが、ステッピングモーター周りの端子です。 今回は3軸の制御しかできないようです。 この辺は初期のHAKUからグレードダウンしていますが、多くの人が3軸しか必要としないので問題無いでしょう。 一つ気になるのが、電源OFF状態で手動でテーブルを動かすと、ステッピングモーターから発電される電力によって、電源LEDが光るのが気になります。 ダイオードが入っていないのでしょうか。これは大丈夫なのでしょうか。 ドライバーが死んでしまわないか心配です。 ・スピンドルモーター接続端子 ステッピングモーターと減点センサの接続端子の間に挟まれているのが、スピンドルモーターの接続端子です。 スピンドルモーターとの配線は利便性を考えて、平型端子でコネクタ化しました。   配線は基板から来ている線と、モーターに付いている線の径がやたらと違うので、間に太い線を挟んで平型コネクタを付け、足した線と基板側の細い線を熱収縮チューブを何回か巻いてかさましして半田付けしています。 コネクタ化は無理にしなくていいかもしれませんが、DCモーターはヘタる可能性大なので、交換するときに手早く対処できます。 ・モータードライバ 中央付近にあるピカピカの金属の下に、モータードライバがあります。 金属はモータードライバのヒートシンクで、ケースとネジで接続されます。 これでケース全体を使って放熱することができるので、

KitMill RD300を使ってみる -組み立て編その2

イメージ
 こんばんは。 ちょっと前の記事から間が開いてしまいました。 今回は気になったパーツや作りを見ていきます。 それから、ちょっと組み立て時に手こずった部分を書きます。 ・ベーステーブル Y軸と加工テーブルになります。これは非常に重いです。 一部二人で支え、ひっくり返しながら作業をする場面があります。 一人でやる場合は、配線用の接着式ダイマントを接着し、Y軸のリミットセンサの配線を先に済ませると、ひっくり返す工程がなくなるはずです。  鋳物を部分的に削り出した非常に頑丈で重い部品です。 HAKU、BLACKⅡでは鉄の板金だったので、強度、精度共に信頼性が向上したのではないでしょうか。 これて、加工時の振動なども減少するものと思われます。 各軸のベースも同じことが言えます。 テーブル、サイドフレームなども鉄の削り出しです。 ・スピンドルユニット プーリーが多段式になっているため、今までのように複数個買う必要はありません。 このユニットの取付には、位置決めピンを用いますが、これを正確につけるのは難しいです。 ひたすらにフレームとスピンドルユニットが平行になるように調整しました。 ・リードナット リードナット本体はアルミ製のようです。 記憶違いがあったら申し訳ないが、HAKUは真鍮でBLACKⅡは樹脂製だったと思います。 ネジ穴には、リコイルインサートが挿入されているので、安心して締められます(締め付け過ぎには注意)。 リードスクリューとの接触部はアルミになります。 リードナットはバックラッシを調整する必要があります。 この調整をどこまで頑張るかで、加工精度に大きく関わるので頑張って調整します。 ここの調整が甘いと、削った真円が楕円になったりします。 説明書にも詳しく書いてありましたが、どのように調整したか書きます。  片方のリードナットを固定したあと、緩めたもう片方のリードナットを指定された方向に抑え付けながら締めます。 ここで締め終わったら、ハンドルを片側に回します、そして反対に回したときにハンドルの回転とテーブルの移動が追従するかを確認します(うまくいいってない場合は、ハンドルを反対に回してもテーブルが動きません。空転が起きます。)。 ダイアルゲージがある場合はそれを使えばいいのですが、あいにく持ち合わせが無かったので、指でテーブルを押しながら確認しました。 目での確認

KitMill RD300を使ってみる -組み立て編その1

イメージ
 こんばんは。 KitMillの組み立てを行ったので、組み立て編を書きます。 ちなみに組み立て時間は、片付けなども入れて7時間です(休憩時間を抜く)。 長くなったので数回に分けました。 今回は主に、組み立てに使用する工具や、準備しておくと便利なものの紹介です。 それではさっそく組み立て編です。 まずは使用した工具の説明になります。 ・ピンセット  セットピースを挿入するときに使用します。あったほうが便利でしょう。 ・ナットドライバー  グリースニップルをリニアガイドにつけるときに使用します。 おすすめはしませんが、プライヤー系工具で代用できます。 ・ボールレンチ  メインで使用されるキャップボルトやセットスクリューで使用します。ただのレンチでもいいですが、ボールのほうが便利でしょう。 ・マイナスドライバー  太いものはアルミハンドルのつまみを付けるときに使います。アルミハンドルを持っていない人は必要ありません。 細いものは、スピンドルモーターのケーブルを基板に取り付けるときに使います。 ・プラスドライバー  プラスドライバーはバインドスクリューなどで使います。 ・はさみ  袋の開封や、タイラップの切断に使います。 ・半田ごて&はんだ  写真にはありませんが、半田ごてとはんだがスピンドルモーターの取り付けに必要になります。 以上のような工具があれば組み立てが可能です。 工具は正しく良いものを用意しましょう。 特にドライバーやレンチなどは何かで代用したり、無理やり回すとねじを破損して、面倒なことになるかもしれないので注意しましょう。  それと、これは私の用意したものですが、以下のようなものがあると便利です。 ・トレー  100均の植木鉢用の受け皿を使いました。ここに必要なネジやセットピースなどを入れます。 間違いや、紛失を防止します。 ・平型端子  100均で買ってきた、雄雌セットの平型端子です。スピンドルモーターはコネクタ化されていないので、これを使用してコネクタ化します。コネクタ化することで、将来の保守などを行いやすくします。 別に平型端子でなくても、ラジコン用の端子などお好みのものを使用してください(定格に注意)。 ・ウエス(いらないTシャツや布の切れ端)  多くの金属部品はさび止めのためにグリスが塗られています。 またリードスクリューなどにグリスを塗ります。 そ

KitMill RD300を使ってみる -組み立て準備編

イメージ
 こんばんは。 KitMill RD300 を研究室で買ってもらったので、レビューがてら実際に何か削るところまでやってみようと思います。  また、別途 オプション として原点センサーとアルミハンドルとスピンドルユニットφ6を購入しています。 HAKU の経験から原点センサーとアルミハンドルは絶対に買うべきだと思います。  スピンドルユニットφ6はいつもの、 シャンク径変換器 を作るので購入しました。 しかし、ユニットごとの販売なのでお値段がHAKUの時よりも高いのが気になります。 Makeのときにお話を聞きましたが、スピンドル周りは精度が向上しているらしいので、価格UPは仕方ありませんね。 しかし、ここまでの値段なら最初からφ3で固定するのではなく、購入時に選択できるようにしてほしいですね。 アルミ製加工テーブルも気になりましたが、これは自分の使いやすいものを後程自作しようかと思います。  今回はパーツ確認と、コントローラーの周りをちらっと眺めた感想です。 まずは、パーツを出してすべての部品がそろっているか確認します。 本体の説明書は61Pあるのですが、24Pは部品の確認です。 箱の中に入ったままではどこに何があるのかわからず、確認できないので一度すべて並べてみるしかありません。 テーブルに広げるとこんな感じになります。こんなアングルじゃないと全部写真に入りきりませんでした。 正直、研究室じゃなくて自宅の自室6畳だったら、どうやって確認しようか迷ってしまいます。 マニュアルにどの箱のどこに何があるか書いてあれば、ピンポイントで部品を確認できるので広げる必要もないのですが。 ここらへんは改善してほしいですね。 数時間パーツ単位で眺めながらニヤニヤしたり、研究室の先生や同僚に自慢してちっとも作業が進みませんでしたw この瞬間が最高に楽しい時間だったりします。 確実にHAKUやBLACKⅡのフィードバックがかかっていて、すごくいい感じです。 筐体については次回として、まずはコントローラーについてざっと思ったことを書きます。 コントローラーのパーツだけ広げるとこうなります。 余談ですが、パーツに104のセラコンがあるのは笑いましたww まぁいつもモーターにノイズ除去として自分でつけていたので、最初からついているのはとても親切です。 コントロールユニットはこのように非常におし

Androidの開発をやってみる -環境・エラー集

イメージ
 こんばんは。 今回はAndroidの開発環境と、出会ったEclipse謎のエラーについてです。 開発環境は、 OS:Windows 7 Ultimate 64bit Java:1.7 Eclipse:Indigo (3.7.1) IDE for Java Developers で開発してます。 Eclipseは使いやすいのですが、ちょいちょいVisualStudioと比べると使いづらいところがあります。 もっさりした操作感と、謎のエラーが頻発して、何もできなくなることがあるのが困りものです。 以下に私が出会ったエラーと、その対処法が書いたサイトを載せておきます。 参考にさせていただいたサイトの方々に、この場をお借りしてお礼を申し上げます。 ・@Overrideがいつまでも間違いがある状態になる(赤線が引がれたままでコンパイルが通らない) エラーコード:Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties. 原因:Java Compiler Compliance Levelが間違っている。 対処:ProjectのProperties->Java Compiler->JDK Compliance->Compiler compliance Level:1.6 という風に変更する。 参考: http://stackoverflow.com/questions/7637144/android-requires-compiler-compliance-level-5-0-or-6-0-found-1-7-instead-plea ・エミュレーターに一切入力ができなくなる。 エラーコード:emulator error: ##KBD: Full queue, lose event 原因:不明(バグや64bitに見られる問題との説あり) 対処:エミュレーターを削除して、新しいエミュレーターを作成する(コマンドプロンプトから再起動やリフレッシュをしても効果なし) 参考:http://groups.google.com/group/android-nd

Androidの開発をやってみる -端末編

イメージ
 こんばんは。 今晩は、横浜は雪が降ってます。すごく寒いです。 会社説明会から直帰して正解でした。  今日はAndroidの開発についてです。 新しいPCに環境設定をしのたのと、開発用の端末を購入しました。 今回は開発用端末について書きます。 私は普段使いとして Xperia Acro を持っていますが、それで開発はしたくありませんでした。 というのも間違えて文鎮にするのは嫌だったからです。 あとは、将来的にはロボットに搭載する予定なので、安くて比較的どうなってもいい端末が必要でした。 そこで IS05 を選定しました。 これは秋葉原やネットで1万円いかないくらいで売っています。 また、端末の性能もよくサイズも小さく、今回のテーマにもってこいでした。 そして、 メジャーアップデート でAndroidが2.3まで公式で上がるのも魅力でした。(2.3だとセンサ系が非常に使いやすい。) というわけでさっそくアキバで買ってきました! フィルムは 【ノングレアフィルム】 au IS05専用 指紋が目立たないフィルム を使用してます。 さっそく買ってきて、いろいろ遊んだあと、いざアップデートをすると最新版ですと言われてアップデートできませんでした。 調べるとケータイアップデートをして、最新状態にしないとメジャーアップデートできないことが判明しました。 それじゃ、とケータイアップデートを施すと、auICカードがないといわれます。 嫌な予感がしながらいろいろ調べると、IS05はパソコンやWifi経由ではアップデートできないようです・・・ 泣きそうになりました。私はドコモユーザーなんです。 ��SIMロックを外してauICカードを友人から借りる場合は、SIMロックを外しても一度auICカードを挿すとそのカードでロックされることに注意してください。またアップデートは通信料がかかりませんが、挿している間にどのアプリがどんな通信をするかは不明なので、スマホで使用しているICカードを使わないと料金がすごいことになるかも知れないので注意してください。) せっかく買ってきた、かわいいIS05をその場でたたき割ってやろうかと思いました。 ちゃんと調べなくてドコモユーザーの私が悪いですが、それでも納得はいかないわけです。 しばらくダークサイドに堕ちたあとに、しょうがないからNexus S買おう!とい

5年くらい頑張ってほしいメインPCをつくる

イメージ
こんばんは。 今回はメインで使用するPCを組みました。 構成はありきたりです。 というかありきたりになるようにしました。 というのも以前にPCが故障した際に、ネットで情報が得られるかどうかが非常に重要だと感じたからです。 以下が構成になります。 ・ケース Silencio 550 RC-550-KKN1-JP [ブラック] ・CPU Core i7 2700K BOX ・メモリ KHX1600C9D3K4/16GX [DDR3 PC3-12800 4GB 4枚組] 一個一個にヒートシンク?がついていてかっこいい。 ・マザーボード P8Z68-V PRO/GEN3 すべて青のアルマイトで、見えなくなってしまうのが惜しい。 ・ビデオカード N560GTX-Ti Hawk [PCIExp 1GB] カバーがかっこいい。Mini-HDMIの端子で接続するが、HDMIを接続できる変換器が付属。 ・SSD Crucial m4 CT128M4SSD2 電源は前のものを使いまわしています。 モニタは少し前に買った、 BRAVIA KDL-32CX400 [32インチ] を使用しています。 前回はMini-ITXのケースだったので、今回は配線も組み立ても非常に簡単でした。 またケースも配線を裏に通せるように工夫されていて、エアフローもばっちりです。 ちなみにCPUファンは前回余ってしまったファンを流用しました。 静音ケースと合わせて騒音は気になりません。 SSD用のマウンターも付属しており、値段の割に非常にお買い得なのではないでしょうか。 できたPCはストレスを感じさせないサクサク動作です。 このPCを無駄スペックと言われないよう、ちゃんと開発に使いたいと思います。

audio-technica ATH-EQ300Mの修理

イメージ
今日は雑談です。 すごいくだらない話ですが、耳掛けヘッドフォンをちょっと修理したのでとりあえず書きます。 audio-technicaの ATH-EQ300M を9月くらいに購入しました。 EQ300Mは今はあまり流行っていない耳掛けのヘッドフォンです。 値段も安く購入時点で800円でした。(今は Amazon で750円で売っているようです。) Amazonのレビューにもありましたが、今回紹介する破損部以外にも、耳掛けの透明な樹脂が根元から折れるという問題もあります。 私が今回修理したのは、イヤーパッドのスポンジが外れたのを直したのですが、耳掛けが折れると修理は困難です。 購入して1日で耳掛けが折れてしまったので、購入店(Nojima)で交換してもらいました。 それ以降は折れていないので個体差があるのかもしれませんが、基部に強く負荷がかかる設計なので遅かれ早かれ壊れると思います。 買う人は、耳掛けが壊れたら諦めるくらいで考えておいたほうがいいと思います。 今回はイヤーパッドのスポンジが、写真のようにめくれてしまう破損の修理を行いました。(写真ではすでにイヤーパッドを本体から取り外しています) 最初はスポンジの端をマイナスドライバーで押し込んで治そうとしたのですが、うまくいきませんでした。 そこでイヤーパッドと本体を爪を挿し込みながら外しました。 中身はこのようになっています。 大体予測がついていたのでやりませんでしたが、マイナスドライバーなどでこじ開けると、思ったよりも深く挿入してスピーカーのワイヤーを傷つける恐れがあるのでやめたほうが無難だと思います。 爪は円周上に3つ有るので、適当に縁にそってグッグッと回しながら開けると簡単に開くと思います。 問題のスポンジは爪付近に接着剤で付けてあります。 接着剤の塗布がいい加減なので剥がれてしまったようです。 また接着面もたいして大きくない上に、材料が材料なのでほとんど強度はないでしょう。 そこでスポンジが傷つくのを覚悟で、爪にスポンジをかぶせて、スポンジがかぶったまま蓋を閉じました。 これでスポンジがちぎれるまではイヤーパッドにくっついていてくれるでしょう(爪と穴ではさんでいるので本来の強度より確実に落ちます) 最後に音を流して確認したところ無事に治ったようです。 ただし私は音にうるさくないので、聞く人が聞いたら影響が出

ストレスは食欲で散らせばいいじゃない

イメージ
 明けましておめでとうございます。 今年一発目なので少し豊富でも。 ・Androidの開発を行う ・STM32マイコンを使えるようになる ・PIC使えるようになりたい ・研究頑張る このあたりでしょうか。 年末まで学会や輪講などでぜんぜん趣味に費やせなかったので、もう少し趣味に力を入れたいですね。 卒業するまでに趣味で何か開発していける力を付けたいわけです。 趣味=ほぼ研究という状態なので、趣味を頑張っても研究が進むわけで一挙両得です。 さて写真が一個もないと寂しいということで今日は食い物でも載せます。 ・まずはお気に入りのラーメン屋「 がっつん 」。 写真はらーめん大盛りです。ここは見た目通りの二郎系です。 トッピングはにんにくしかありません。またスープの味がよくぶれるのも特徴ですww 調布にあって結構行列ができますが、店主の手際が悪いのも起因してます。 味は二郎インスパイアのなかでは個人的には好きです。 ここで大盛りを食べると死にそうになりますが、1ヶ月に一回着たくなるから不思議です。 ・次に何かと話題の月島もんじゃのお店「 蔵 」 写真はどう見てもアレですが美味しかったです。 色々なもんじゃをみんなでワイワイ言いながら食べました。 焼き方なども丁寧に教えてくれてお店の感じも非常に良かったです。 場所は芝浦大学豊洲キャンパスから歩いて20分かからないくらいです。 芝浦によったついでに食べに行きました。 本当はランキングごまかした店に行きたかったのですが、どの店かわからず断念。 ・最後は秋原葉で気になってたラーメン屋「 麺処 マゼル 」。 写真はまぜそば塩大盛り、野菜にんにくです。 秋葉原の岩本町に近いゴーゴーカレー付近にあるお店です。 まぜそばは初挑戦だったのですがうまかったです。 特にチャーシューが肉厚で肉増しにすればよかったと思うくらいです。 トッピングは他にもチーズというのがあり気になりました。 醤油と塩味があり他の人は塩が結構多かったような気がします。 それとカウンターしかなく10人入れないお店なので行くときは時間と人数に注意したほうがいいです。 カラメにしとかないと、野菜増しにした場合野菜の水分で最後の方は味がぼけるかもしれません。 テーブルにタレっぽいのがあるので、それでなんとかなるかもしれませんが醤油ぽかったです。 次回はカラメにします。 それでは