2019年10月24日木曜日

Arduinoと互換機的な何か

AnyCubic の Kossel Liniar Plus には、Mega2560 互換+LAMPS1.4? 辺りの A4988 を1枚の基板にまとめた TriGorilla とかいうコントローラーが使われている。
ファームウェアのアップデートは、Cura から行っているので、ブートローダーとかは気にしたことはないが、多分、Optiboot を書き込めば、ソフト的にはキッチリ Mega2560 互換機になると思う。

CNC3080 の方は、多分 Uno 互換というか、初代Arduinoから連綿と続く、AVR ATMega328 の血脈 + GRBLシールド相当の こちらも A4988 でモーター制御する基板が使われている。
もう少し正確を期するなら、Arduino Nanoもどき(USBシリアルがCH340とか)の小型の互換機を、モータードライバーの基板の上に載せてる風で、純正?の構成とは少し様子というか風体は異なる。
まあ、中身が分かってれば「あー、ハイハイ」って感じではある。

他にも、予備って訳でもないけど、学習用に買ったものがいくつかあって、その中には純正のArduinoも含まれている。
1つは、ほぼ最初に買った Duemillanove(綴り合ってる?)で、シールドのピン配置が少し変わってしまって使いづらくなったので最近は出番がない。
ただ、こいつにはメリットもあって、USBシリアル変換にFT232が使われていて、何かとツブシが効くので、捨てるには少々惜しい気がして手元に置いている。
とは言え、FT232のUSBシリアル変換基板は、マルツ製の持っていて、ブレッドボードには、そっちを使う。
秋月でも同じようなモジュールが1000円ほどで売られているし、基板の形状に拘らなければ、ほぼ同機能のものが Amazon とか AliExpress とかで、半額以下で買えたりもする。

ArduinoがUNO R3から?USBシリアル変換にAVRの16u2を載せてきたので、FT232の出番は今後は少なくなるだろう。というか、FTDIのチップが有り難かったのは、BitBangモードの存在が大きいのだけれど、それも昔の話だし、今後そういうのが有り難く思えるシチュエーションも、そうそう無いだろうと思う。

で、16u2 に触れたので思い出したのが、もう1つの純正Arduino である Leonard で、これには 16u2 を少しゴージャスにした 32u4 てのが載っている。
フラットパッケージのチップ1個で完結しているので、基板の上がスカスカな印象。
まあ、これはシールドのピン配置も現行品であるので、ごく普通のArduinoである、という事にしておきたい。
で、更にこのLeonard互換というか、32u4 をDIP化したようなモジュールがあって、機能的には Micro に相当する。らしい。のだが、Microの現物を見た事もないし、特に深追いして調べてもいないので、よく分からない。
16u2 にせよ 32u4 にせよ、単なるUSBシリアル変換という訳でもなくて、汎用のUSBデバイスが作れる AVR チップで、シリアルは HID-CDC だし、スケッチのサンプルには、HIDでキーボードとマウスとゲームコントローラの例が含まれている。
もちろん、これはこれで、多少の問題もあったりするのだけど、その話は別の機会があれば、そちらで…。

ARM系もいくつか買い置きがあるのだけど、もう文字だらけで後で読み返す気力が湧かない気がするので、そっちも別の機会があれば…。
色んなものが、どんどん先送りされていくが、人生そんなに長くないし、先送りしている先で、更に余計なものを積んでいくので…。

で、まとめに入ると、Arduino 互換機は、USBシリアル変換チップが多様すぎて、色々買い込むとシリアルドライバだけで何が何だか、みたいな事になりがち。なので、3DプリンタやCNCミルのキットとかについてくる互換機も、純正品か、もっと純正に近い構成の互換機に置き換えたい。
または、AVR系からARM系に載せ替えたい。

2019年10月15日火曜日

CNC3018

結局、板ナットを近所のホームセンターで買ってきた。
板ナットを買ったついでに、M5x10mm の鍋ネジも買って、キットのキャップボルトを置き換える事にした。

なんというか、指でボルト・ナットを回している時に、なんかシックリ来ないとか、ザリッって感触があったりとか、まあ、格安中華だから仕方ないところ。
100セットぐらい買っても1000円しなかった。

ただし、プラスねじになったので、組立ての順序を良く考えないと、ドライバーが入らない、という間抜けな事態に陥りかねない点には注意が必要。

なんというか、ちょっとしたパズル要素?
極短のビットとショートスタビとか持ってれば何とでもなるかも知れず…。

フレームを組むのに 10mm だと少し長すぎて、ワッシャーを一枚噛ませてギリギリな感じ。
ホームセンターには8mmも置いてあったけど、それだと今度はほんの少し短い、という事になりそう。
付属のワッシャーが薄いので、少し厚めのワッシャーに換えるとかすると丁度良いのかも?
それかスプリングワッシャーを追加するか?

X軸のリードスクリューの振れ止めにあたる部品は3Dプリント品なんだけど、妙に分厚いので、これは10mmではなくて15mmは必要だと思った。
あと、コントローラーの基板の固定ねじも15mmは必要。
基板をショートさせないように?樹脂製のスペーサーがついているのだけど、フレーム側にはワッシャーを噛ませたいところ…機械的な強度は全く必要ないけど、縁起物みたいな意味で…。

あと、テーブルとスライド用のベアリングとかを接続しているM6のボルトも絶妙に短くて作業性が悪かった。
20191016追記:使用されているのは M6x16mm なので 20mmぐらいのに換える?

そこは、もう組み終わってるから弄らなければ問題ない事にしても良いが、こういうのを放っておくと、後で激しく苛立たされる事になるのは、過去の経験上明らかなので、次にホームセンターか、その近所にでも足を運ぶ事があれば、ねじを買うのを忘れないようにしたい。

2020材に角ブラケットのフレームは組んでみると、意外にヨレヨレというか、直角がキチンと出ない状態で組むことが出来てしまう。
仮組みして、力をかけて正しく90度になるように歪めるイメージで面とか角を出した。
なんというか、思ったほどスマートではない作業でちょっとガッカリしつつも、すこしだけ楽しかった。

オマケ?で付いてきてるコレットとエンドミルはイマイチな感じなので、後でアマかアリを漁る事にする。

ソフトウェアとかは後日。

2019年10月11日金曜日

AnyCubic Kossel Plus の ココがダメぽ

別に AnyCubic だけでなくて デルタ全般に言えることかも知れないけど、操作性に若干問題があるように思える。

問題は3点

1)
ロータリーエンコーダーでパラメーターを増減する際に、1クリックで4ステップ進んでしまう。
クリック感が無いタイプのエンコーダーを使っていれば、まだ何とかなったはずだけど、クリックタイプは途中で止めるのが難しいので1ステップ単位での調整が難しくなっている。
これはデルタに限らず直交系のプリンターでも同じのような気がする。
デルタだと下側のエンドストップがないので、ヘッドの高さ調整で、最後の0.1mmを追い込みたい時に、いっぺんに0.4mmも動いてしまうと、ヘッドをテーブルに押し付ける事になってしまって、あちこちにダメージを与えかねないので注意が必要だ。

2)
こっちの方が重要かもしれない。というか、個人的はコッチが本題。
ロータリーエンコーダーの回転方向に対して、パラメータの増減が逆になっている。
普通に考えれば、時計方向に回せば、パラメータ増加、反時計回りで減少、となるはずだが、なぜか逆になっている。

ヘッドを下げたい →
  高さを0またはマイナス方向へ移動させなければならない ← まあ、わかる
  パラメータをマイナス方向へ ← わかる
  ロータリーエンコーダーを時計方向へ回す ← 逆だろ、JK
と。

直感と反する方向に想定の4倍も動いてしまう操作系にイライラしっぱなし。
まあ、プリンターの目的からすれば、成果物を正しく出力するのが第一義なので、操作性とか深く考えないものかも知れない。

3)
ストップスイッチの意味がない。
デルタなので、ヘッドの最低位置が各キャリッジの最低値とはならない事から、ボトム側のストップスイッチは省略されている。
が、一応?アッパー側のストップスイッチは用意されている。

ストップスイッチは用意されているにも関わらず、手動でヘッドを下げようとしてると、上述した2)のパラメータの増減の問題で、ヘッドを上げてしまうことがある。
電源投入後はヘッドが上がりきった状態なので、そこからヘッドを上げるとストップスイッチを押すのだけど、そこでモーターが止まる訳でもなくて、ガゴガゴと異音を発して何だか気持ち悪い事になる。

常識で考えれば、ストップスイッチを無視してモーターを回すような事はないはず、というか、そうでなければ、何のためのストップスイッチなのか?と…。
っていうか、意味がわからないよ。

)=================================================

ま、どの問題もファームウェアの問題なので、気に入らない場所は書き換えれば済みそうな話ではある。
結局、中華のキットプリンターを買う、というのは良くも悪くも、こういう事なのだ。
完成度に少々問題があるのが普通、ぐらいの感覚で付き合う必要がある。
一方で、仕様の大半がオープンだし見て分からない部分は少ないので、ちょっとした問題があっても、自力で対応する道があったり無かったりする。

最初から問題ないレベルの完成度の製品であれば、オープンソースで自前でナニカをどうにかする、みたいな必要もないのだから、オープンである事のメリットはない、という事になってる辺り、なんというか、妙な禅問答みたいな事になっているのは、3Dプリンターとかに限らず枚挙に暇がなさそうではある。

ファームウェア

AnyCubic の Kossel Plus のファームウェア更新が出てたので試してみたら、何かがおかしい。

エクストルーダーが動作していないように見える。
モーターかドライバーが焼け死んだのかと思って、軸を入れ替えて無理やり回してみたところ、問題なく動いているので、部品が損傷している訳ではなさそうだ。
ホットエンドを加熱して、フィラメントを手で押し込めば、それなりに吐き出すのでヘッド詰まりでも無さそう。

こんな感じで消去法で原因を探ってみて、というか、色々考えるまでもなく、直近で変更したのはファームウェアなので、そこが最も疑わしい…。
思うに、フィラメントの送り量相当のモーター駆動が出来ていない。

例えばだけど、1cm送り出しに対して何らかの係数をかけてモーターを何ステップ分回すか?ってのを決めてるとこがあって、そこで用いられる係数が0なら、どれだけ送らせようが戻させようが、モーターの回転は0だ。

何か、その係数に当たる部分を設定する箇所があるはずなんだけど、設定メニューがあるのか、あるいは何かファイルを操作する必要があるのか…。

あと、いくつか気になるというか気に入らない点があって、ファームウェアをコンパイルできないか?検討したい気持ちになりつつある。
甘えた事を言わせて貰えば、キットのプリンタを買ったのだから、出来るだけ手をかけずに、ただただ普通に「お客さん」として、使うだけに徹したいのだけど、やっぱり、そう簡単にはいかないらしい。

具体的に、何がどう気に入らないとかは、書き出すと長くなるので、別エントリをポストの予定。

2019年10月8日火曜日

後入れナット

記事にしてないけど、最近CNC3018のキットを買った。
写真撮りながら組み立てるのも面倒だし、結構昔からあるキットなので、今さら何か書くべきことがあるとも思えず…。

ただ、こいつも3Dプリンタと構造はほぼ同じだし、造りも良く似ている点があって、構造の大半をアルミのフレーム材に頼っている。
デルタだと60度のアングルを自前で何とかする必要があって、Kosselの構成の肝になっている感じだけど、普通に直角に組んでいくなら90度のアングルが簡単に手に入る状況になっている。

で、このフレームとアングルをボルトとナットで固定するのに、2020のフレームの溝に後から嵌め込めるナットがよく使われている。
これが気に入らない、という話。

レゴブロック的に、組んだりバラしたりを繰り返すには実に都合が良いのだけれど、設計が決まってしまえば後からナットを入れる必要はない。
後から「ナットが入る≒後でナットが外せる」なので、何かの拍子にナットごと抜ける可能性もある訳だ。
Kossel では、リニアガイドの取り付けの際に、ナットが上手く締まってなくてガイドレールがヨレて出力がヘロヘロになる(一応、形にはなっていたが…)という経験もした。
これは、私の経験不足による単純なミスだけれど、後入れのナットでなければ防げたはずの問題でもある。

CNC3018だと、そこそこ強度が欲しいはずのフレームで後入れナットを使う意味がわからない。
まあ、後で組み直すには好都合だとは思うけれども、一回組んだら半年や一年は組み直す事もなさそうだし、そんなに長寿命の製品ではないとも思う。

ちゃんとした?Tナットを買って、Kossel も組み直そうかと、少し考えている。