2015年11月2日月曜日

2016年手帳の話

ちょっと毛色は変わりますが,今日は手帳の話をしてみようと思います.
こんな方法があるという皆様からのフィードバックを期待しつつ.

毎年この季節になると来年の手帳をどうしようか悩み,手帳を変えると仕事の効率が上がるはずなどと,新しいことを取り組んでみたくなるシーズンです.結局,手帳で効率が変わるのではなく,効率の良い管理に適切な手帳があるだけなので,普段のワークフローを変えないことには改善しないのですが....



ここ1年ちょっとは普段の仕事や,趣味のプロジェクト記録のためにMoleskinのフォリオ プロフェッショナル XLを使っています.
ノートのデジタル化にも挑戦しましたが,紙に手で書き込んでいる感じが一番しっくりくるので紙ノートになりました.(ここら辺の話は気が向いたら別に書くとしておいておきます)
もともと毎日のタスク管理ログをほぼ日手帳に残していたのですが,ノートを手書きに戻すタイミングでロギングはモレスキン側で全部やってしまうことにしました.ほぼ日は色々書き込むには良い手帳ですが,ロギングを予定だけで埋め尽くせるほど私は外向きの仕事をしていないので手帳をシンプルなものに変更することにしました.

モレスキンは2〜3ヶ月に1冊使い切るので,モレスキンのスケジュール帳も適当ではないため,初めはコピー用紙で手帳を作ってみました.使っているうちにボロボロになるのと,そもそもチープな紙切れは使う気になりませんでした: (


そこで市販品で表紙はそこそこ硬いけど,メモページはなく,マンスリーでとにかく薄いという手帳を探し回り, 無印手帳のメモをむしり取って試行錯誤したのち, 2014年冬に私が見つけた最も薄い手帳はtrystrams Linkletの2015年版でした.
これが結構良くて来年も使おうと2016年版を買いましたというのが今日の趣旨です.

この手帳は見開きのマンスリー24ページの他は2016, 2017年間カレンダー 2ページ見開きの2016年カレンダー2ページ,メモ見開き2ページ,連絡先1ページ, 表紙1ページの32ページで
厚さ2mmです.この厚さならモレスキンのポケットに突っ込んでいても違和感のない厚さです.

ただ,2016年版では幾つか変更になっています.
まず私にとって最も大きいのはサイズ変更です.
2015年版では幅99mm, 縦168mmだったのですが, 2016年版では幅91mm, 160mmと小さくなっています. 野帳サイズに合わせたのだと思いますが, 私が求めるのは薄さなので,2015年版から2016年版になってサイズが小さくなったのは残念です.
寸法変更に伴い,1日の書き込みスペースが2015年版は横2.5mm, 縦2.25mmだったのですが,横2.3, 縦2.1mmになってしまいました. 1日にせいぜい3, 4本の会議スケジュールが書ければ良いので良いのですが,やっぱり2.5mm四角ぐらいあるとありがたい.


マンスリーの他の変更点は, デザインが余白は罫線から方眼に変更になっている. 細かいことですが,年に平成が追加されているなどがあります. 
細かいことですが,見開きの年間スケジュールは縦書きから,横書きに変更なりました.個人的には使わないのでここも必要なかったりします.




年間カレンダー
見開きの年間カレンダー
後ろにあるのは2015年版 縦書きが横書きに変更になっている

月カレンダー

2015年版左と2016年版の比較. 
サイズ縮小が悲しい


というわけで,個人的には少し微妙な変更をされてしまったのですが, モレスキンとの組み合わせとしてはなかなか良い手帳だと思うので来年もこの組み合わせで行ってみようと思っています.

欲をいえばA5版でページ数は26ページ(見開きマンスリーのみでOK)で厚さ2mmの手帳があれば即買いなのですが.どこかにあったら教えてください.



2015年9月2日水曜日

3Dプリンタ da Vinci 1.0A 使いこなしのいろいろ

年の初めにxyz printing が発売している3Dプリンタ da Vinci 1.0A (ダヴィンチ)を購入しいろいろと使っています.
半年強使ってみて,とても便利ですがいろいろなれとコツが必要な気がします.
ここではこれまで使ってみた使いこなしを書いておきます.

印刷物にごげた部分がはいる

    印刷物に焦げた部分が混入することがあります.
    da Vinciは印刷の準備でエクストルーダを加熱するときにフィラメントがにょろにょろとでてきます.これが印刷中に印刷物にくっ付いてはがれたり,焦げを作ってしまうことが多々あります.
    コツとしては印刷の指示を送って加熱を始めたら印刷開始前までにノズルから出たフィラメントを掃除用のブラシで切ってやると良いです.

    ヘッドがステージにあたる

    印刷をする際に1〜2層目ステージに当たって「ガッ,ガッ」と音がすることがあります.一度引き取って調整してもらったことがありますが,ステージの平行出しや,調整がずれていることが,原因の一つのようです.
     また,ステージの調整をすると起こる場合があります.電気的接触で高さ調整をする際,端子が汚れていると少し押し込まれた状態でコンタクトしたと認識することが原因のようです.
     次に動画をアップしておきますが,一つ目がOK, 二つ目がNGの場合です.(わかりにくいです.OKの場合は当たるか当たらないかで離れていきます.NGの場合は当たってからちょっと押し込みます)




    四角くでかい高密度のオブジェクトが焦げ付く

    これが一番クリティカルなのですが,調子にのって立方体の中身が詰まったものを印刷すると,ステージにくっついて剥がれなくなってしまいました.剥がれない原因は樹脂が焦げ付いてしまっているのです.結局剥がせないので送り返しました.いろいろとサポートに相談しましたが,現状解決方法はないということですので,とにかく高密度の立方体は印刷しないということに注意する必要があります.


    オブジェクトが剥がせなくなる.

    オブジェクトが硬い場合,全く剥がせなくなることがあります.
    この場合,加熱と冷却を繰り返し,無理やり剥がすしかありません.このときにガラステーブルをがっつりきづつけると印刷するオブジェクトの底部が出っ張っていろいろと面倒なことなります.さらにきづつけたことでより剥がれにくくなるという負の連鎖につながります.私も実際にやらかして,修理しようかと問い合わせましたが,サポート期間が過ぎていて18000円程度かかるということでしたのでとりあえずペンディングにしています.

     この焦げ付いたり,剥がせなくなる恐怖に打ち勝つために以下の対策を取っています.これでオブジェクトが剥がれなくなることはほとんどなくなりましたし,いざという時にはなんとかなります.
    1.ステージにカプトンテープを貼る
     サポートの方にアドバイスされたので貼ってみました.焦げ付きを抑えるためと言われていましたが,熱を防ぐ効果はないので,いざという時にはがしてオブジェクトを剥がすのに役に立ちます.
     細いテープを購入しても良いですが,剥がし直す際に手間なのでamazonで大型のポリイミドテープを買いました.

    テープにはKoptanとなかなか楽しげなブランド名が書かれています.

    ちょっと粘着力が強くて剥がすのが大変ですが幅の短いテープをたくさん貼らなくていいので楽です.多少気泡が入っても針で潰してやれば問題ないです.

    通常は毎回剥がす必要はありません.ABSの食いつきは良くなるのですが,Macのドライバが底辺をサポートしていなかったのでその際はノリをつけて印刷していました.「底辺」オプションを使えばノリなしでもきちんとくっついてくれるので綺麗に印刷できます.

    くっついて剥がせなくなった場合はキャリブレーションを実施してステージの温度が上がったところでキャンセルするを繰り返してやればテープの粘着力が下がるのでスクレイパーを差し込めば剥がせます.


    2.15mm×15mm×1mmのオブジェクトくっつける
     剥がすきっかけをつくるために15mm×15mm×1mmをくっつけます. この端っこに5mm×5mm×5mmの立方体を剥がすきっかけになるようにつけておくとはがしやすくなります.

    3.  底辺をつける
     印刷のオプションで底辺をつけます.(Mac版は最近用作サポートされました.バグがあるようですが)前述しましたが,カプトンテープを貼っているとこれでノリの塗布なしでも印刷中剥がれず,印刷後には簡単にはがれます.さらに2番のきっかけを作っていれば確実に剥がせます.

     これでもうっかり密度90%のでかいオブジェクトを印刷すると剥がれなくなりました.このときには,キャリブレーションを実施してステージの温度が上がったところでキャンセルし,テープの粘着力が落ちたところで,オブジェクトの角をスクレイパーで破壊して,そこにスクレイパーを差し込んでやってなんとかはがぜました.元から角に隙間を作っておけばはがせるような気がしますが,怖くてなかなか挑戦できません.


     開けたその日からなんでも作れるというわけではないですが,それなりにいろいろと作れるので入門としてはいいのではないでしょうか.サポートも保証期間の間は部品交換なども無料で対応してくれます.ただ,当たり外れはあるようですので,買ったらすぐ使い倒してバグ出ししましょう.

     と今のところはこんな感じです.

    2015年8月12日水曜日

    浮上式リニアモーターカー

    Maker Faire Tokyo 2015に出展させてもらった自作の磁気浮上式リニアモーターカーのおもちゃですが,とりあえず修理は終わったので, 動く様子をアップロードしておこうと思います.


    一応横から見た写真も載せておきます. 浮いているのがご覧いただけるかと思います.

    制御方法がいまいちなので浮上した車体が振動してしまい(上下と左右と)カタカタいってしまいますが,  初日に破損した加速回路がある場合こんな感じで動きますと言うことがお伝えできれば幸いです.

    関係する技術に関する更新ページへのリンクはこちらにまとめていますので,興味がある方はご覧ください

    これからもぼちぼち改善をしていこうかなと思います.


    2015年8月10日月曜日

    外注基板作成 その2

    ユニクラフトさんのキャンペーンを利用して,外注基板作成を行いましたのでまとめておきます.
    ユニクラフト URL

    基板作成をするにあたり,

    1.  基板CADデータ作成
    2. ガーバーデータの出力
    3. ガーバーデータの確認
    4. データの送付と発注

    が必要になります.

    1. 基板CADデータ作成


    まず, CADデータを作成します.
    私はEagle Mac版をフリーで使っています. 部品登録に慣れが必要ですが, トラ技ライブラリ(2013年5月号付録)を入れておけばだいたい事足りると思います.
    以下ではEagle で作成したデータを使ってユニクラフトへ発注を行うまでの流れを書いておきます.

    基板パタンを作成したらデザインルールをチェックします.
    デザインルールは
    http://unicraft-jp.com/pcb/spec/pcb_spec.shtml
    にまとめられているので, 確認しておきましょう.
    特にランドと配線が近づきすぎることがあるので注意しましょう.

    次回発注する際にDRCデータを作ってみようかなと思います.

    2. ガーバーデータの出力


    作成した基板パタンからガーバーデータを作成します
    外注業者にデータを渡すためにガーバーデータという形式のデータに出力して送付します.
    この形式の互換性やら,作成方法がいろいろと分からず悩みました. 特に仕様のページに
    "ドリルファイルはエキセロン形式でも可能です。(ただし、ドリルの穴径情報が座標ファイルに埋め込まれている必要があります。)"
    と書かれていてFAQにも
    "エキセロンでなくRS-274Xであれば問題ありません"
    と書かれていたのでガーバーで出すための不毛な努力を試してしまいました.
    Eagle Ver. 7で出力されるエキセロン形式のドリルファイルはドリル穴の情報がきちんと埋め込まれているのでエキセロン形式で問題ありません.逆にガーバーで書き出すと,ドリル穴が記号で出力されるため受け付けてもらえません.

    というわけで, 結局悩む必要はありません. 

    以下に示す方法で実行すればOKです.

    2.1 CAM設定の読み込み

    [Control Panel]の[CAM Jobs]の中にあるgerb274x.camを読み込みます. 

    2.2 Boardデータの読み込み

    [File]からガーバーデータを作成したいBoardファイルを開きます.

    2.3 CAMデータの修正

    CAMデータのタブを修正していきます.

    ptn_top.grb:部品面(第1層)銅箔パターン
        レイヤー  1, 17, 18
    ptn_btm.grb:半田面銅箔パターン
        レイヤー  16, 17, 18
    res_top.grb:部品面レジスト
     レイヤー 29
    res_btm.grb:半田面レジスト
     レイヤー 30
    slk_top.grb:部品面シルク印刷
     レイヤー 21,25
     slk_btm.grb:半田面シルク印刷
      レイヤー - 省略
    outline.grb:プリント基板 外形
     レイヤー 30
    を記入していきます.
    外形のタブはないので追加します

    入力が面倒臭いと言う方のために両面基板用にCAMツールの設定ファイルを作ってみたので, 試してみてください.
    この設定ファイルをダウンロードしてControl Panelの[File]-[CAM Job...]を選んでファイルを読み込んでから手順2.2を実行すればOKなはずです.

    2.4 実行

    [process Job]を選びます
    これでガーバーデータが作成されます


    2.5 ドリルデータの作成

    前置きに書きましたが, ドリル穴のデータはガーバーではなくエキセロン形式で出力します.
    ガーバーの場合と同様に[Control Panel]の[CAM Jobs]から[exellon.cam]を選びます.
    出力名を[dri.grb]に変更して[process Job]を押せば完了です.

    3. ガーバーデータの確認


    次にここまで作成したファイルを確認します.
    ガーバーデータビューアをお持ちでない方は, フリーのガーバーデータ確認ツールとしてこちらで紹介していますので, 試してみてください.

    ファイルの内容を確認して問題がなければZIPで圧縮を行い, 基板発注を行います.

    4. データの送付と発注


    発注内容はWebページで記入できます.
    今回はサイズと総数,枚数以外は特に変更せず,標準で作成を依頼しました.

    データを送付してから, 受付のメールがくると現在の進捗を表示するWebページのアドレスを送ってくれます. 
    はじめに検図があるのかなと思ったのですが,特になく,データに問題がなければ何の確認もなく作成まで流れていくようです.
    今回はキャンペーンで遅くなるとのことわりはありましたが,実際は8日間で物が発送されました. これはとても早いなと思いました.

    今回はMakerFair2015に出展した浮上式リニアモーターカーの駆動回路基板を3枚作成しました. せっかくなので両面基板を活用して, CNC作成基板ではジャンパで対応していた配線を部品面で配線してみました.

    出来栄えはシルクも綺麗いに印刷されていますし, 基板研削で吹き飛んでしまうようなパタンも綺麗に形成され,レジスト,メッキの精度も十分で品質的にはオーバースペックなくらいです. 多層基板がこれだけ気楽に作成できるというのはとてもいいことだと思います.

    機会があれば是非お試しください.

    2015年8月4日火曜日

    Maker Fair Tokyo 2015に出展しました

    8月1日, 2日にMaker Faire Tokyo 2015に浮上式リニアモーターカーを展示しました.
    多くの方に見に来ていただきありがとうございました.

    配線に手間取り直前までレールを作っていたり,制御の最適化がまだまだで完成度が低く,その上初日に加速回路が壊れるなどいろいろと段取りが悪く反省しております.

    それでも優しい皆様にいろいろと声をかけていただけたことをこの場を借りてお礼申し上げます.

    まだ,壊れていますが修理して,本来お見せしたかった動作を動画にしてアップしたいと思います.

    「来年に期待ですね」と言ってくださった方のためにも,ブラッシュアップして来年またチャンスがもらえるようにしてみたいと思います.今後とも宜しくお願いします.

    ここでは, 展示したリニアモーターカーに関連した技術へのリンクをまとめておきます.

    8チャンネルADCをArduinoで仕様する方法
     今回の作品では車体の下部に配置したネオジウム磁石の磁場をホールセンサーで検出して車体の場所を特定していました. Arduinoで値を読み取るための方法をまとめています.

    CNCでプリント基板作成を作成する方法
     今回の作品ではリニアモーターカーの駆動回路をユニバーサル基板,CNC加工, 外注作成の3種類の方法で作成しました. Fablab 北加賀屋のCNC装置を借りて作成した基板の作成方法をまとめています

    ユニクラフトで外注基板を作成 その1,その2
     外注で基板を作成する際に気づいたことをまとめています.

    homebrew で ガーバーデータビュアー gerbv をインストール 外注で基板を作成する際に,ガーバーデータのチェックが必要になります.その際に便利なgerbvをインストールする際のメモです

    これからも少しづつまとめていきたいと思います.


    2015年7月22日水曜日

    外注によるプリント基板作成 その1 前置き

    いろいろと工作をしているとやはりプリント基板をどうやって作るかという課題に突き当たります.

    これまで, エッチングによる基板作成, CNCミリングによる基板作成を試してきました.
    銅エッチングは露光・エッチングも慣れれば簡単ですが, 版作成にコストと手間がかかること, 80mm×100mm程度になるとパタンに応じて露光・現像条件に気を使うこと,エッチング液の処理に気を使う必要があるので, 少数基板を多数作る場合は総合的にみると私の場合割に合わないかなという考えです. 決まった基板を大量に作成する場合は条件出しをやりながら最適化できるので, それなりにいいかと思います.

    一方, CNCミリングによる基板作成は片面基板であればそれなりの時間と,コストで作成ができることがわかりました. 数枚しか使用しない場合は版を作成する必要がなく,露光条件出しも必要ないので便利です. 研削時間がかかったり, ミリング刃のコストが高いなどの問題はありますが, 少量・多品種の作成となる趣味の電子工作には便利だと考えています.自作CNCミリングの作成にも現在取り組んでいます.

    しかし,  2層以上になると時間的にも精度的にも割に合わなくなる気がします. そうなるとやはり基板メーカーにお願いしたくなります.

    国内ベンダーでは, 50mm×50mm基板8枚で9,976円 とユニクラフトさんが最もコストパフォーマンスが良さそうです. さらに,Webでレビューを書くと基板三枚分無料という太っ腹キャンペーンを実施しているので,Eagleフリー版で作成できる最大サイズ80mm×100mmを3枚お願いしてみることにしました.

    出来栄えもさることながら, ガーバーデータを作成して業者さんに送るのも初めてなのでデータ作成方法についても無料を発注の機会を使って勉強できればとの考えです.
    次回データ作成から気づいたことを取り上げたいと思います.

    2015年7月5日日曜日

    homebrew で ガーバーデータビュアー gerbv をインストール

    外注で基板を作成するためにガーバーデータを作成したのですが, ビューアが欲しい.
    オープンソースのツールとしてgerbvをインストールしました.

    公式ページにはfink のリンクしか書いてありませんが,homebrewでもインストールできます.



    私の環境では
    brew install gerbv
    と入力しても
    Error: No available formula for gerbv
    と悲しい返事が返ってきたのですが,こちらにもある Q&Aを参考に
    brew tap homebrew/x11
    と入力してから
    brew install gerbv
    と入力すれば問題なくインストールできました.

    実行はターミナルから
    gerbv
    と入力すればOKです.
    確認したいファイルを[File]-[Open layers]で指定すればOKです

    めでたしめでたし.

    2015年6月28日日曜日

    Roland Modela MDX-15でプリント基板作成

    最近Fablab 北加賀屋さんに出没して,Roland Modela MDX-15を借りて実施中のプロジェクトです. CNCでプリント基板を作ってみます

    いろいろ試してみていますが今の所,時間はかかりますが,基板が作れることは確認できました.
    この方法は"アンドロイドな日々"でohwadaさんが紹介されている方法と同様です.
    (いろいろあがいたのですが,同じ所にたどりつきました....)

    この方法は, Eagleでデータを作り, そのデータを元にMDX-15に付属するDrEngraveというソフトで基板を削ります. このときEagleのデータでそのまま基板を削るとドリルの半径の分パタンがほそくなってしまいます.
    そこで Eagleの上でfablab-mill-n-drillというツールを使って配線やランドの外形をドリルのきりしろ分太らせたデータを作ります. これをDXFで出力し, DrEngraveで読み込み,基板を削るというながれです.

    (この方法にたどりつく過程でFabmoduleやfablab-mill-n-drill単体でMDX-15を制御する工程も試してみましたが,私の環境ではうまく実行できませんでした.これらについては継続して検討するつもりですが, いまは前にすすみましょう)

    以下具体的な方法です

    1)データの準備
    はじめにEagle で作りたい基板のデータを作成します.
    原理上両面基板は作成できますが,アライメントをうまくとるノウハウは実証できていないので,今の所片面基板を想定しています.
    配線の太さとしては0.32inchを選んだ時の出来上がりは0.8mm(ざっくりノギスで計った程度ですが), 0.5inchで1.3mmと線が細ることなく, それなりの精度で仕上がります.


    2) fablab-mill-n-drillを使って外形データを作成する
    まず, Marc BoonさんがMDX-20で用いた方法で, Eagle User Language Program (ULP)を使います.この方法はMDX-15でもそのまま使えます. このドキュメントは青木さんがこちらに翻訳を用意されています. 

    ここではこの手順に従って作業します. 
    まずはfablab-mill-n-drillをダウンロードして, EagleフォルダのなかのULPというフォルダのなかに保存します.
    Eagle を起動して[File]-[Run ULP...]を選び,先ほどのfablab-mill-n-drill.ulpを選びます
    すると設定画面がでます.
    今回は下記の通り記入します.

    Layer to mill (1 or 16): 16
    Tool diameter(0.1-1.0mm) 0.4mm
    Single in copper plane: GND
    Mill lager holes to their size: チェック

    これでLayer 46と45に外形データとスルーホールが自動的に入力されます.
    本来はこれでOKですが,このまま実行すると最新版のEagleではちっちゃなデータが形成されてしまいます.

    こちらでohwadaさんも書かれているようにこのままこの方法を使うと最新版のEagleではサイズがおかしくなります.
    そこでこちらを参考にコードを修正します.
    fablab-mill-n-drill.ulp
    の196行目を"eta         = 0.000003125"  のように変更します.
    これで実行すると,Bottomレイヤーの外側にエンドミルのサイズだけ太った線が追加されます.

    オリジナルの方法でここからMDXを制御して基板加工をするのですが,私が確認した範囲ではうまく動きませんでした.そこで, DXFデータを出力してMDXの制御はDrEngraveにお任せすることにします.


    先ほど作成した基板データをDXFで書き出します.
    (はじめPNGで書き出してBMPに変換していましたが,外径が消えたりしてサイズが適当に調整できないので断念.DXFの方が出来上がりも綺麗になります)
    この時に
    20 Dimension
    45 Holes
    46 Milling
    を書き出しておきます.
    外径データと合わせて出力しておかないと,後で寸法の調整がうまくいかないです.
    外形の寸法もメモっておきましょう.

    これでEagleの作業はおしまいです.

    次にRolandのツールでの作業になるのですが,
    ラボのMDX-15を制御するPCのDr Engrave のバージョンが1.7だったので最新版にバージョンアップさせてもらいました. これでDXFが読み込めるようになります.

    また,MDX-15を制御するプリンタドライバのバージョンが古く,おそらくバグのためプリンタドライバでxyステージの送り速度を変更しても反映されていませんでした.
    こちらもプリンタドライバのバージョンを新しくするときちんと動くようになりました.

    古いMDX-15に出会って使えるようにしたいいお考えの方はドライバを最新版にアップデートしてからことに当たることをお勧めします.(おかげで一本2400円のエンドミルがぽっきぽっきと...)


    DrEngraveで取り込んだらオブジェクトを右クリックでサイズを変更し,はじめにメモっておいた外形寸法を書き込みます. 今回は裏面の作成なので左右反転しておきましょう
    これで寸法は正しくなったので,不要であれば 一旦外形を削除します.

    エンドミルを取り付けます.
    基板加工用のエンドミルには,はじめエンドミルオリジナルマインドの土佐昌典FTを使用しました.  ラボのMDX-15にはシャンク径1/8のアタッチメントがなかったので,スピンドルユニット PS-1/8をAmazonで購入しました.
    しかし, 上記プリンタドライバのトラブルで立て続けに2本折れて,こころもポッキリと折れたので,海外製の安い1/64インチのエンドミルをebayで購入(京セラ製)して切り替えました. 一本12ドル. 安いですが, 0.4mmと土佐昌典FTよりは線が細いのでなかなか使えます.
    (スルーホールを開けるには少し浅い)

    サンプルを取り付けます.
    MDFの上に紙フェノールの生基板を貼り付けセットします.(表面実装の時や,ドリル手開け時は不要)
    基板は両面テープだけではなく,四隅と四辺をテープで固定しないと基板がそって, 想定以上の切り込みを起こして, エンドミルがポッキリと悲しいことがおこります.

    高さ合わせを行いますが,DrEngraveではxyステージが動かせないので,高さ合わせを行う際にちょっとだけModela Playerを使用してステージを動かします.
    上記を実施しても基板がかなり反るので,高さ合わせをしたらジャストの位置から上にふた押し分,あげておいたほうが安全です.

    これで準備ができたので印刷を行います.
    印刷を押すときに必ず材料のデータを修正しましょう.
    ファイルを開いたときに以前の設定を忘れてしまうようなので特に要注意.よりによって発泡材と動きが早く,切り込み量も多い材料になっているので,ここでもエンドミルがポッキリ行きます.

    プリンタのプロパティで一番上にくる発泡材の設定を柔らかな設定に変えておくのがよいかもしれません.

    とりあえず現状は
    XY方向の速度 9mm/s
    Z方向の速度 3mm/s
    Zアップ位置 0.50mm
    Zダウン位置 -0.40
    Z切削ピッチ 0.05
    としております.

    Zダウン位置は本当は-0.2もあれば十分ですが,基板が反るのと並行出しが不十分なのでで,原点のZ位置を高めに設定していて, その分斬り込んでいます.ちょっと時間がかかって仕方ないのでもっと最適化したいところですが,エンドミルがぽきぽきおれたトラウマの後遺症です.強気な方はどんどん攻めてもよいかとおもいます.
    ぜひここまで攻めても大丈夫だよという情報があればお教えください.

    外形カットはなんでも良いと思いますが,手持ちの1.5mmのエンドミルを使ってみます.
    基板は取り外さずに,そのまま長方形の場合は簡単なのでDr. Engraveで基板外形よりも1mm程度大きくした長方形を作成して,カットします.
    XY方向の速度 10mm/s
    Z方向の速度 3mm/s
    Zアップ位置 0.50mm
    Zダウン位置 -1.5
    Z切削ピッチ 0.2

    スルーホールはドリルの手持ちがないので, 今の所手動です.
    上記方法でカットするとスルーホールの穴がそれなりの深さでカットされているので,  手動でドリルを立てれば問題なくきれます.







    2015年5月21日木曜日

    PythonをWIndows環境で使う(その2)そして

    PythonをWindows環境で使う」でPythonの環境構築メモを書いておいたとおり,PythonをWindows環境で使用していましたが,
    Spyderのインストールを機にいろいろとはまり込み,結局
    「素直にanacondaに頼った方が楽」
    という結論に辿り着きました.

    そのためのメモです

    まずは前回インストールしたPythonをuninstallします(スタートメニューからPython34を辿るとあります.インストールしていない場合は無視して下さい)

    続いてこちらのWebからanacondaをダウンロードします.
    3.4をダウンロードしたいので,ペンギンの横にある[I WANT PYTHON 3.4]をクリックして画面を切り替えてからWindows版をダウンロードします.


    あとはインストーラからインストールするだけで,この間インストールした
    easy_install
    pip
    IPython
    NumPy
    SciPy
    Matplotlib
    やら
    Spyder
    ほか一通りの環境がインストールされます.

    spyderいいですね.







    2015年5月9日土曜日

    ArduinoでSPI通信を使って8チャンネルADC MCP3208からデータを読み取る

    複数のセンサからアナログデータを取得してArduinoで処理をする場合のメモです.

    ArduinoにはA/D converter (ADC)が6つありますが,これ以上のセンサーからデータを取得する場合,マルチチャンネルADCを使い,ADCとの間はSPI通信を行うことで解決できます.


    SPI通信はSerial Peripheral Interfaceの略で, シリアル通信の一種です.これを用いることでArduino側で必要となるピン数を節約できます.

    秋月で手に入る8チャンネルADC MCP3208とArduinoとの接続例が公式ページにあるのでこれを元に考えてみます.

    MCP3208は1〜8ピンが, 0~7チャネル. 9ピンがDGND, 10ピンはCS, 11ピンがD_IN, 12ピンがD_out, 13ピンがCLK, 14ピンがAGND, 15ピンがV_REF, 16ピンがVDDです.
    使用する際は, VDD, V_REFを5Vに接続し, AGND, DGNDをグランドに接続に接続しましょう.
    次にMCP3208の10,11,12,13ピンをそれぞれArduinoの10,11,12,13ピンに接続しておきます.

    MCP3208のマニュアルによると通信は次のタイミングチャートのように行われるようです.

    簡単にまとめるとCSピンをLOWに下げてからCLKを5回アップダウンさせます.ここでシングルエンドもしくは作動モードの指定及び,8チャンネルあるうちのどのチャネルからデータを読み取るかを指定します.続く2回ダミーのアップダウンを後,12回のアップダウンを行っている間にD_outから12ビット分のデータが送られてきます.これに対応するソースコードが先ほどのWebで公開されています.

    以下ちょっとソースコードの補足メモを記します.read_adcの関数の中で
    byte commandbits = B11000000; //command bits - start, mode, chn (3), dont care (3)
    とありますが,これはDinに対する入力ビットを表します.
    CS端子(通常High)がLowになったタイミングでADCはDinを読みます.CLKのアップ時にD_INに印加されている電圧を読むことでビットを与えます.
    この時のビットが開始ビット, モード指定ビット, チャネル選択ビット(3ビット)と並びます.
    開始ビットは1です.
    モード指定ビットは1が通常モード, 0が作動モードです. 今回は通常モードで使うので1です.
    これがB11となっている理由(始めのBは2進数であることを示します)

    次にチャネル番号を指定するために3ビット使います. これは普通に000がチャネル0, 001がチャネル1, 010がチャネル2 ..... 111がチャネル7です.

    これらのビットを渡すために, 次に示すようにB11000000というデータに, チャネル番号を3ビット分左にシフトした値との論理和をとり格納しておきます.

     このためには先ほど説明したようにデータを1 bit書き込んではクロックをアップダウンします.
    データを送ったあとは, ダミーの2回分のアップダウンを行ったのち,データを読んでいきます
    データを読んでからアップダウンを繰り返して1bitづつデータを読んでいます.
    この部分で関数の引数をビットシフトしてたし込んでいます.(このソースの後ろの3ビットは必要なさそうですが, byte型を使ったので8bit分明示しているのだと思います)

    digitalwriteを1 bitづつ実施してアップダウンを行うことで5bitぶんのデータを入力させます.

    最後にソースファイルを実行してオシロスコープでCLKとD_outを出力した結果を見てみます.
     CLKの間隔は結構適当ですがそれなりに動いているのがわかります.
    まずはこんなところで







    2015年4月11日土曜日

    PythonをWindowsで使う

    PythonをWindows環境で構築してみました.

    Pythonをインストールした後,
    easy_install
    pip
    IPython
    NumPy
    SciPy
    Matplotlib
    をインストールしましょう

    最新は3.5ですが使用するツールの関係や公開されている情報量から3.4系を選びました.

    まず本体をインストールします.これは
    Pythonのサイト(こちら)からMSIインストーラーをダウンロードします.
    今回は3.4.3を使いましょう

    ダウンロードしたら,インストーラを起動してインストールします.
    インストールオプションにpathの自動設定があるので,チェックすると楽ができます

    続いてipythonをインストールしましょう.

    3.4はeasy_install, pipが初めから入っているので,
    コマンドプロンプトから
    \python34\Scripts\easy_install ipython
    と入力します. 程なくインストールが終わると思います.
    次にScipyです.

    Numerical Pythonをダウンロード
    Python 3.4用のものがあります.(こちら
    インストールしましょう

    続いてSciPyをダウンロード
    Python 3.4用のものがあります.(こちら
    ここでは0.15.1をインストールしましょう

    最後にMatplotlibをインストールします.
    ダウンロードします.(こちら
    matplotlib-1.4.3.win32-py3.4.exe
    をダウンロードしてインストールします.
    このままでは関連パッケージがインストールされずエラーが出るので,
    matplotlib.orgを参考にdateutilとpyparsingをインストールします

    これにはpipが使えるので
    \python34\Scripts\pip install python-dateutil
    \python34\Scripts\pip install pyparsing
    とすればOKです.

    2015.04.29追記

    別な端末にもインストールしようとしたのですがうまくいかず.
    pipは環境によって
    "Could not find any downloads that satisfy the requirement *****"
    などと表示されてインストールできない場合があるようです.
    proxyなどいろいろと設定を試してみましたがうまくいかなかったのでpipは諦めて
    easy_installを使ってインストールしました.
    \python34\Scripts\easy_install python-dateutil
    \python34\Scripts\easy_install pyparsing

    これで環境構築は完了です.

    2015.05.21追記

    開発環境としてSpyderを使用したいと思い,
    こちらからSpyder 2.3.4を直接ダウンロードしてインストールしましたが,いろいろとうまく動かず...

    結局あきらめてAnacondaを使うことにします.こちら



    2015年2月8日日曜日

    Grblのインストール

    MacOSX+ArduinoUno でCNCコントロール環境を揃えるということでGrblを試してみます.
    (がなかなかうまくいきません)
    とりあえず現状までのメモ書き.

    G-Codeを変換するというこで幾つか選択肢があると思いますが,Arduino Unoに対応するということでGrblにしてみました.
    やり方はhttp://www.shapeoko.com/wiki/index.php/GRBL#Using_Grbl を参考にしてみます.



    現状の最新版はGrbl-v0.9のようです.
    以前のバージョンではバイナリを転送していたようでいろいろなWebページにいろいろな書き込み方が書かれていますが,整理すると下記の方法を使い現状はArduino IDEだけで簡単に書き込みできるようです.もと資料はこちら"https://github.com/grbl/grbl/wiki/Compiling-Grbl"
    (一応HexUploaderも試して,今の所同じ結果になっているように見えます.)

    注)下記の方法で簡単にArduino Unoに書き込めますが,なんでこれでうまくいくのか理屈がよくわかりません. ヘッダ読み込んでいるだけに見えるのに,どうしてスケッチが転送されているのでしょうか.

    やり方

    1.ソースコードのダウンロード
    https://github.com/grbl/grbl
    からソースコードをダウンロード. 画面の右側にある"Download ZIP"を押します.
    おそらくダウンロードフォルダにダウンロード後解凍されて”grbl-master”というフォルダができていると思います.

    2.Arduino IEDに登録 ( バージョンが変わって少しメニューが変わったようなので更新しておきます.2015.0912 Ver 1.6.5で動作を確認しています)

     上でダウンロードしたファイルを適当なディレクトリに移してから, Arduino IDEを起動します.
         メニューの「スケッチ」→「Include library」→「Add .ZIP Library ...」を選び,先ほどダウンロードした"grbl-master"フォルダの中にある"grbl"フォルダを選びます

     (どこかのバージョンで変わったのか元々そうだったのに気づかなかったのかわかりませんが,フォルダ選択のときに"grbl-master"ではなくて,"grbl"フォルダを選ばないとパスが通らずヘッダーが読み込めないようです)

     「スケッチ」→「Include library」を選ぶと一番下の「Contributed Library」の欄に「grbl」が登録されていればOKです


    3. Arduinoに書き込み
     メニューの「ファイル」→「スケッチの例」→「grbl」→「grblUPloader」を選択.
    (ここら辺はIDEのバージョンによってコロコロ変わるようです)

    新しいファイルが開いてglbl.hのヘッダファイルのインクルード文が挿入されます.
    次に「ファイル」→「マイコンボードへの書き込む」を選んでコンパイルと転送がうまくいくことを確認する.
    これでArduino側の設定はOK(のはず)


    次にGrbl controllerを使って制御してみる
    Grbl controllerはここからダウンロード
    http://zapmaker.grblcontroller.s3-website-us-west-2.amazonaws.com
    このページではMac版は3.5が最新ですが,最新版をコンパイルしてくれた方がいて公式にこちらからリンクされています.
    https://github.com/zapmaker/GrblHoming/releases

    "GrblController-3.6.1.7z"をダウンロードして, 適当な解凍ツールで解凍します.
    お手軽に適当な場所に保存してから実行します
    "GCV-3.6.1-T4.dmg"を選ぶとよりリッチなGUIで使用できます.解凍ソフトもいらないし...

    立ち上がったら
    「Port name」からArduinoが繋がっているポートを選択
    「Baud Rate」を"115200"にし,「Open」を選びます.
    設定パラメータがきちんと帰って来れば通信の確立はOKです.

    パラメータはGUIを使ってAdvanceから変更できるはずなのですが,うまくいきません
    試しに古いGrbl controller 3.5を使って試しましたが,GUIで入力した値を別の変数に書き込んでしまうと言うバグがありました.

    現状パラメータを変更しようと思ったら「Command」から
    $100=200
    などとて入力してやるのが良いと思います.

    もし間違えて書き込んでしまった場合は
    https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9#grbl-settings
    にデフォルト値の記載があるので手入力で戻してみてください.

    また3.5では「Go Home」の機能もだんだん値が動いていってしまう問題がありましたが, 3.6では治っているみたいです.



    とりあえずメモとして公開しておきます.

    参考情報
    https://github.com/grbl/grbl/wiki/Connecting-Grbl
    https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9

    HexUploaderとの動作確認をした際に使ったコンパイル済みファイル
    https://github.com/grbl/grbl-builds/tree/master/builds


    2015年2月7日土曜日

    DXF2GCODEのインストール

    dxfファイルを3DプリンタやCNCを制御するためのコマンド群gcodeに変換するためのソフトdxf2gcodeをインストールしました
    pyCAMを使おうと思ったのだけどうまくいかなかったのでこちらにしました.

    homebrewを入れていない場合は事前にインストールしておく

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    インストール方法
    https://code.google.com/p/dxf2gcode/wiki/Installation
    を参照
    python2
    pyQT4
    が必要とのことです.

    まず
    Python2をインストールします

    brew install python


    次にpyQT4のインストール

    brew install pyQT4

    環境はこれでOK

    dxf2gcodeはスクリプトで起動するのダウンロードしたフィアルを適当なディレクトリで解凍しておいて,コマンドのパスが切ってあるところにリンクをおいて運用します.
    (環境設定に追記してもOK)
    今回はホームディレクトリのdxf2gcodeフォルダにおいてあるので,以下のようにシンボリックリンクを追記

    sudo ln -s ~/dxf2gcode/dxf2gcode.py /usr/bin/dxf2gcode.py
    sudo chmod a+x /usr/bin/dxf2gcode.py

    これでインストールは完了

    2015年2月6日金曜日

    HomebrewがMacOSX 10.10で使えなくなったので復活させる

    しばらく使っていなかったMacOSX用のパッケージ管理ソフトhomebrewですが,久しぶりに実行すると

    brew upgrade
    /usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory

    /usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0

    とエラーがでて使えません.
    そもそも,もうなんのパッケージ入れたかもう覚えていないので,再インストールすることにしました.

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    It appears Homebrew is already installed. If your intent is to reinstall you
    should do the following before running this installer again:
        rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
    とでるの仕方ない

    rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup


    としたが,
    /usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
    /usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0

    とでる.しまった,brewが動かないから,当たり前ですね...
    微妙なことになってしまった.一応この状態でもインストールできるようになったので
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    でインストールしてから
    brew doctor
     でワーニングが出たので言われるがまま
    cd /usr/local/Library && git stash && git clean -d -f
    brew prune
    などと入力して無事インストールは完了.
    いちおう以前お試しで入れていたライブラリの残骸も綺麗に消滅したようなのでOKのようです.
    心機一転ここから始めよう(言い訳)


    現代版徒然草 (生まれてきたら負け)さんの"homebrewユーザーがYosemiteにアプグレしたらbrewコマンドが使えなくなった問題解決法"で解決方法を紹介されています.まめにアップデートしておけばこのようなことはなかったようですが...

    2015年1月8日木曜日

    MacOSX Yosemite で Arduino IDEが起動しない

    今更ながらMacOSXを Yosemite(10.10)にアップデートしてみました.

    Javaの関係でArduino の開発環境が起動できなくなりました.
    一度Arduino の開発環境を立ち下げて,

    http://support.apple.com/kb/DL1572?viewlocale=ja_JP&locale=en_US
    から
    Java for OS X 2014-001
    をダウンロード,インストールしてArduinoの開発環境を起動してみてください.

    (私の場合は,インストールしても起動がうまくいかなかったので,一度強制終了して,サイドArduinoのアプリケーションを起動するとうまくいきました.)