sphinxの使い方
python関連のツールにsphinxというドキュメント作成ツールがある。
使い方についてメモ。まぁこのあたりを読めば大体書いているのだけども。
インストールはpythonのpipを使う。Windowsでしか試してないけど、LinuxやMacも変わらんはず。
sphinx-quickstartでプロジェクトを作成する。
sphinx-quickstartはpythonのインストールディレクトリのScript以下に置いてあるので、パスを通していない場合は、そこを参照。
先にプロジェクト格納用ディレクトリを作成しておき、そこでsphinx-quickstartを実行するのがよい。
実行すると、プロジェクトを置く場所root pathを聞かれるので、記述する。
そんな具合で、次々質問されるので、記述していく。
プロジェクト名とかVersionとか記述していく。大体デフォルトでいいはず。
conf.pyで概ね後からいじれるみたい。
出来上がると最低限のテンプレートとmakeが用意されている。
HTMLやらPDF、ePUB形式で出力できる。
ひとまずmake htmlを実行すると、rstファイルを元に、 _build\html\ にindex.htmlなどが作成される。
dockerでRedmine
Windows ノートPCを新調したので、いろいろ遊んでみている。
その一環として、新しい技術に消極的な弊社内でも最近dockerが使われだしているので、勉強がてら入れてみた。で、Redmineで今後のアレコレを管理したいなーと思っていたので、Redmineをいれてみた。そのあたりメモ。
解説サイトから見ていっていろいろ試したが、docker-compose.yml書いてこれを使うのが簡単そう。公式?でもそんな書かれ方してる。
で、やってみるとWindowsからのアクセスがうまくいかず。
うーん、うーんと悩んだけど、VirtualBoxでポートフォワーディング設定が必要でした。適当にポートふったらいけたよ。
やったね!・・・と思ったが大間違い。データの永続化が必要でした。これを怠ったために、入力した諸々がすべて消し飛ぶことに・・・。
データの永続化には一般的にはVolumeやらデータコンテナというものを使うみたい。Volumeは、Windowsのファイルシステム上をコンテナのデータの出力先にできるという便利機能なのだけど、直接Windowsのファイルシステム上を指定すると、postgresqlでinitdbでPermissionエラーが出る。
いろいろ調べてみると、rootかUID=1000で動作しないとエラーではじかれるようだ。postgresql,Redmineの中身とかdockerの動きを十分理解できていれば、立ち上げ時のオプションを追加して対策できそうだが、現時点ではよくわからんし、そこまでがんばってもなぁというところで、運用でカバーすることにした。
boot2dockerのファイルシステムが再起動で消えてしまうようなので、都度バックアップを取ることにした。ひとまずDB側のみ。
まずバックアップ。sshでログインして以下のコマンドを実行。
sudo tar -cf backup_YYYYMMDD.tar /srv/docker/redmine/postgresql
サーミスタとファームウェアと
引き続き、どうもサーミスタが意図通り動いてくれないところで止まってます。
とりあえず状況を確認するべく調査を開始。今までテスターすら持ってなかったので調達して来ました。
サーミスタに接続した端子で抵抗値確認すると、1Ω……0Ω…?分解能が1Ωなのでちょっと怪しいですが、オープンにした状態と表示が違うのでひとまず導通はしてる感じかな?
サーミスタ扱ったことがないのでよく知らないけど抵抗値はこんなもんなのかな
うーん、よくわからん、手詰まりか…と思ったその時、コントロール基盤のファームウェアが配布されてることに気付く。しかもソースコード付き。
これなら追っていけばなんとなくわかるかな?
temperature.cppとかまさにそれっぽいソースコードを発見。さらっと読んだ感じ、バリバリ組み込みの処理で作りはシンプル。
サーミスタの読み取り値と温度値の対応を見ていけばなんとなく状況はわかりそう。
動作確認NGです
PronterfaceなるソフトでPRN3Dの動作確認を実施する。
公式サイトだとWindows版での説明しかないけど、ソフト自体はMac版も提供されているね。手元にMacbookしかないので、Mac版をダウンロードする。
ダウンロードが終わったところで、恐る恐るPRN3Dの電源を入れてみる。
するとLEDが付き、FANが回り出す。当然といえば当然だが、ヒーターとかモーターはこの時点では動かないっぽい。
まずはリミッタースイッチの動作確認。これはX,Y,Zすべて問題なさそう。
そしてUSB接続し、Pronterfaceからconnectを行う。
以下のコマンドで、どのttyポートが追加されたか確認。
$ ls -l /dev/tty.*
追加されたポートを設定してconnect。速度は250000とのこと。
で、接続してみると、なにやら各種起動ログが出てくる。
その最後に、エラーを発見。
: Extruder switched off. MAXTEMP triggered ! Error:Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting) [ERROR] Error:Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)
なんだこれー
これが出るとモーターとかも動かせないっぽい。
ので、動作確認は先送り・・・。
位置制御の確認くらいはしたかったのになー。
操作パネルの右下(アプリの中央部分)に温度表示のグラフがあるっぽいので、これを見てみると、Ex0が750度近辺に張り付いとる・・・
コントローラから線を抜いて確認すると、今度はMINIMUMの方でエラーがでる。
挙動に差があるので、コントローラ側の問題ではなさそう。エクストルーダのサーミスタでトラブルだろうなー。よりによってめんどくさいところで・・・。
手元にテスターすらないので、ひとまずはテスター買ってきて導通確認かな。
このサーミスタ、型番がわからないので特性もよくわからないのだよね。
もし導通自体はいけてるようなら、サポート頼みかなぁ。
ようやく組み立て完成!
なかなか時間が取れず、気がつけば2ヶ月も空いてしまったが、ようやく組み立て完成した。
組み立てが甘いところが多かったせいか、結構位置の微調整が入ったが、まぁなんとかなったのでよし。
あとは動作確認。
Y軸はサクッと
今回はY軸の作成。
ここはあんまり情報がなくてうーむ、となったがやること自体が多くないので問題なし。ボルトの長さを確認しながらサクサク取り付けてく。
まずはLM6UUを位置合わせしつつ取り付け。
公式手順に記載されていたビニールは…取り付けしなかった。精度が落ちるか?
二つのLM6UUを押し込んでしまったため、偏りが出てしまった。これは悪影響の懸念がある。必要に応じて見直すつもり。
X軸同様プーリーを作成し、y-blockに取り付け。モーターも取り付け。それからLM6UUのホルダーも取り付け。片方はモーターまで一つのボルトで一直線に取り付ける。
6mmロッドをLM6UUに通したらエンドパーツにも取り付け。
長さを合わせたところでボルト止め。
ベルトはエンドパーツの隙間に挟んで取り付け。足りないと心配していたが特に問題はなさそう。
四隅にボルトを通してy軸完成かな。
本体フレームに組み込んだボルトが2個あるのに取り付け穴は一個だぞ…もう一個は何に使うんだろう。
次回はエクストルーダー。
ようやくX軸
案の定、仕事やらなんやらで間が空きました。
引き続きX軸を組み立て。
まずは左右のパーツ。
プーリーの軸を受けるナットを入れる部分は一旦ボルトを通し、カスを取っておくとつけやすい。
プーリーは公式通りの組み方で良いはず。
リニアブッシュLM8UUは二つずつ取り付けるが、中の球の位置を確認して合わせて取り付ける。あまり合わせずに取り付けてしまったので後ほど調整するかも。
モーターの取り付けはあまり詳しく書いてないが、画像と見比べながら、ちょうどいいサイズのボルトで組んでいく。
私はここでモーターまでつけてしまったが、組み付けを考えると後回しの方が良いのかもしれない。
そしてキャリッジ。
シャフトを通す穴を7mmのドリルで整形する。ドリルを挟んでボルトで軽く止め、この状態で電動ドリルをゆっくり回す、という方法でやってみた。あまり削れなかったが、LM6UUはかっつり取り付けられたので問題なしか。
取り付けが済んだので、シャフトを取り付けていく。
まずキャリッジだが、ここで一つミス。
シャフトをLM6UUに通す際に力を入れ過ぎたか、中からぽろぽろと小さい球が……。
動かしてみると目に見えて動きが悪い……。
これはまずいと思い、とりあえず球を空いてる部分に戻してみると、それなりに滑りが良くなった。全部は戻せなかったので不安は残る。
使ってみてダメならLM6UUは買い替えるか。
そして左右のパーツをシャフトに取り付ける。
モーターが付く方は末端位置が決まっているのでこちらから取り付けるのが良い。ボルトで止めるパーツは三個しかなく、一箇所はZ軸?のパーツを使う。
ベルトは82cm〜85cmで切断するとのこと。
少し余裕がありすぎるような…残りはY軸で使うとのことで足りるか少々心配。
一方を細いタイラップでベルトを挟み込んで固定。gt2 20tを忘れずモーターに取り付け、ベルトの反対側をパーツでボルト止め。
これでX軸完成かな
フレームのシャフトにはそのままでは取り付けられないっぽいので、ひとまずそのままで。
次はY軸〜。