2017年07月15日

ロボットアームの構想

CNC のコントローラを自作したいのであるが、テスト用にこんなものを作ろうかと。

ステッピングモータ、モータドライバ



A4988 モジュールと、CNC SHIELD V3 -- A4988 モジュールを使うためのマザーボード。最新の GRBL で使うには古くて非互換になってるので安価。自作するのであるから、使えさえすればいい。これらは、試作だけじゃなくて、完成品でも使う予定。




テスト用に使うステッピングモータ。5V で使えて安価なタイプ。軸は 5mm φで、ギアード。1回転 64 ステップ x64 = 4096 ステップ。トルクは、34.3 mN/m = 0.3kg/cm x64 = 19.2 kg/cm ?。現物が手に入ったが確かに指では回せない。周波数 100 Hz とか書いてあるから、1回転させるのに、40 秒! 無負荷では 1000 Hz までいけるそうだから、最大で 4秒。


2GTベルトとプーリー







プーリーは自作したいと考えているのだが、どんなものがあるか紹介。ベルトは 6mm 幅で 2mm ピッチで突起が付いているタイプ(2GT/ GT2?)が安価に売られている。クローズド・ループのもの 158mm と 400mm を使おうと思っている。他には、オープン・ループのものもある。ブーリについては、駆動側は 20 teeth のものが良く使われるようだ。これは自作しないのだが、アーム側は自作したい。60 teeth よりもっと大径のものが良いと思っている。テンションをかけるための アイドル・プーリーというものもある。これは使うかどうか分からない。



さて、どんなものを作りたいかというと、あくまでテストなので、ちゃんとなにかを動かして、効果が目で見えるもの。しかも、シンプルなもの --- これが条件である。よくよく考えたのだが、水平方向にのみ動かすロボットアーム(のようなもの)が良さそうだということになった。
となると、ペンを持たせて字を描かせる -- これが効果である。それさえできれば良いが、工作精度というものは、追及しない。ガタガタの字になってしまうと悲しいが、論理的に問題なければ、それもやむなし。
ペンの上げ下げも必要ない。が、楽しくなってくれば、サーボかなにか使うことを考えたい。精度についても、追及すると楽しい結果が得られるのであれば、2号機というものを考えたい。



イメージを形にしてみた。18mm 厚の板に 51mm の蝶番を付ける。根本の板はベースに固定。これは、高さがいるので縦。ステッピングモータのブラケットは 25mm のアルミアングルで自作(46mm 長)。プーリーは 20:60 。最初にイメージしたものであるが、問題が。

そもそも、ステッピングモータについて誤解していたのである。1回転 64 ステップとなっていたが、モーター部の話で、ギアが 1:64 だったのだ。トルクも 0.3 kg/cm しかないと思っていたのだが、64倍! ロスがなければ、20kg/cm に近い。これなら、直接アームを動かせる。

で、アームなのだが、硬い木材が入手できたのである。直接ステッピングモータの軸に付ければ良いのではないかと。 .... というわけで、随分と話が変わってしまった。

    カバ 硬さ 14 GPa 比重 0.7 重さ当たりの硬さ 21
    ジュラルミン 硬さ 70 GPa 比重 2.7 重さ当たりの硬さ 26

    こんなデータを見つけてしまった。一般のアルミはもっと弱いわけだから、3mm 厚のアルミを使いたいようなところで、6mm 〜 9mm ぐらいの厚みにすれば十分な強度ではないか? 入手した硬木には、カバ(マカバ・カバ桜)もあるし、同じクラスで衝撃にも強そうな ウォールナットやタモ、ナラもある。

    ちなみに、硬い木材に期待するのは、ステッピングモータの軸穴。5mm φ の軸の両側が 1mm づつ削ってあるのだが、この形に削るだけで、がたなくアームを回せるのかどうか? プラスチックなんかでは良くあるが、硬木なら大丈夫なのかどうか? ダメなら硬木を使う理由はあまりない。普通の木材ベースで、プラリペア(または、その代用品)を使って、軸穴部分だけアクリルにする手が使えるはず。

アームの設計



2の腕をどうするか考えておけば、他は、その応用でいける。
とりあえず、板のサイズは 147mm 以下。先端にモーターを付けるが、太さは、46mm ぐらい必要。そこに取り付ける腕は ひとまず、135° 動けば良しと考える。モーターは M4 でマウントするが、腕にタップしてみる。( 無理なら貫通させてナット止め。) 。取付穴の周囲は、木材を残すわけだが φ10 の円と考えてみる。その円をモーター軸を中心に 67.5°回転させた位置に置いて、干渉しないように考える。そうすると、取り付ける側の 腕は、太さ 20mm 以下ぐらい。無駄に面積を取ってもしょうがないので、Y 字型になりそう。
回転部分の軸だが、片側はモーターの軸をはめる。片持ちでは安定しないだろうから、腕をそれぞれ削って、軸と軸受けにする。板厚は 25mm として、軸、軸受けに 8mm ほど使う。軸の太さは 10mm ぐらい?



その他の部分。根本は取り付け穴を付けられる大きさ。これをベースの板に直接取り付けると、アームが下と接触してしまうのでスペーサーを入れる。ひょっとしたら縦にして普通のロボットアームっぽくできるかも。それは、後で考えよう。

で、肘から先の部分。稼働範囲は、± 67.5° なのだが、135° - 0°になるように、曲げる。手首の先はまだ考えていない。



プーリーとベルトは使わなくなったが、せっかくなのでメモは残しておく。

入手したプーリーは、20T と 60T 。16T というタイプもあったが、open loop 用みたいなことが書いてあった。2GT のベルトにも、使える最小の径というのがあって、16T では、小径すぎるのかも知れない。大径の方は、径が大きくなると随分と値段が高くなる。送料もかさむ。80T とか 100T は、ちょっと買ってみようという気にはならなかった。

で、ベルトなのだが、close loop のものを使う。本来、設計してから目的にあった長さのものを買うべきなのだが、どんなものかいくつか買ってみた。158mm , 200mm , 400mm 。買ったのは良いが、軸間を後で計算するのは、めんどくさい。調べたものを記しておく。

 ・ http://gijyutsu-keisan.com/calc/mech/calc_belt_len/calc.php?sel_graph=beltlen

ベルト長を計算してくれるサイトが見つかったので、カット&トライで軸間を計算。最初に直径を求める必要があるが、20T なら 円周 40mm のはず。12.732 60T : 38.197 , 80T : 50.930

20T-60T 158mm : 36.8 200mm : 58.6 400mm : 159.5
20T-80T 200mm : 46.0 400mm : 148.8

20T-80T で 200mm は割とギリギリ。軸間 46mm だと、プーリーの内径どうしの距離が 14.17mm 。

80T のプーリーは、51mm + 鍔 のサイズがあって、存在感がある。これは作ってみたいとは思っている。

材料は、10mm 厚 と 5mm 厚 の PE(ポリエチレン)まな板。一面しか加工できないので、 鍔だけのを 5mm 厚で作ってはめこむ。言うは簡単だが、精度が出てないと無理。まずこれをクリアした後ということになる。また、1mm (以下)のエンドミルが必要。経験を積んで自信が出来た後でないと無理。



ところで、木材にタップとか今まで考えたこともなかったのだが、いけるのだろうか? そもそも、タップ自体あまりしたことはない。下穴のサイズすら知らない。ちょっと調べておこう。
 M2 1.6mm
 M2.5 2.1mm
 M3 2.5mm
 M4 3.3mm
 M5 4.2mm
 M6 5.0mm

0.1mm 径が小さくても、ごまかせるのだろう。1.5mm, 2.0mm, 3.2mm は手持ちにある。が、4.2mm を 4.0mm では厳しいような。。。見つけたら買っておこう。

さて、木材にタップだが、1X4 などでは出来るような気がしない。一応 硬木を想定。アルミだと 3mm 厚でタップするような強度をイメージ。 硬木で 2〜3倍の 6mm 〜 9mm ぐらいで。一度実験してみないと。

とりあえず、M3 のテスト

材料は、カバ桜、ウォールナット、1x4 (ホワイトウッド )。

下穴開けも、タップも軽い。どれも同じような感じで頼りない印象。金属製スペーサ(ねじ 5mm長)を取り付けて見ると ... 意外なことにどれもしっかり止まる。スペーサ程度なら 1x4 でも十分。耐久性が重要なのだが、よく分からない。どこまでトルクをかけたらネジ山がつぶれるか ... というのとは関係なさそうだし。スペーサーも痛みそうで嫌だったり。

M5 のテスト

4mm のキリしかないのだが、タップしてみる。貫通穴をあけたときに、失敗して 1x4 は裏側がだいぶささくれた。カバ桜も少々。ウォールナットは全然 --- 粘りがあるとは、こういうことだったのか。タップは少々重くなった。当然といえば当然だが、力が必要という感じでもない。ネジを付けてみたが、ちょっと失敗して、カバ桜のネジ山を少々つぶした。途中で回すのに力がいるようになって付け直すことに。どれも同じだが、全然力が必要でなく、頼りなく締まっていく。で、最後にしっかり止まる感じ。それは良いのだが、現時点ではタップしてみましたというだけ。どう評価したら良いのだろう?

ところで、ウォールナットは 厚いので全部はネジ切れなかった。長いボルトをねじ込んでいくと、ネジが切れてないところで、随分とかたくなる。が、ちゃんと入っていく。問題ない。。というより全部はネジ切らない方が良いのかも。
posted by すz at 20:04| Comment(0) | TrackBack(0) | CNC

2017年06月25日

ステッピングモーター・ドライバ


コントローラには、ステッピングモーターを制御する A4988 というIC を載せたモジュールが搭載されている。これがどういうものなのか、調べてみることに。使うだけでもある程度は知っておかないとならないが、コントローラを自作したいと思っているわけで、まじめに調べておかないとならない。

    基本的なことを書くと、STEP , DIR の2つの信号で制御する。DIR で方向を指定して STEP で最小単位回す。
    最小単位は、1/1 フルステップ 〜 1/16 マイクロステップ で設定が出来るようになっている。
    仮に 1/16 マイクロステップで 100 RPM で回すとすると CNC2418 では 200mm/分の速度。 5k Hz で STEP を ON/OFF しないといけない。また物体には質量があるので、いきなり 100 RPM で回すことはできない。加速度に上限があるわけだ。

    A4988 モジュールと互換性があるものとして、DRV8825 を採用したものがある。こちらの方が高機能で 1/32 マイクロステップが使え、より電流を流せる。が、それだけであるようだ。ここでは、言及しないことにする。

まずは、電源関係。コントローラ本体に電源回路が載っていて、XL4015 というDC/DCコンICで 12V 5A までの電力を連続して供給可能。 IC自体 の電流制限は 7A --- 瞬間的には 7A になるのだったか?忘れてしまった。

    ちなみに、aliexpress などで XL4005 のモジュールが安く手に入る。これも 5A なので、自作する場合に使えそう。 後で調べたら XL4015 のモジュールも 安い -- $1 ちょっと。違いは入力電圧範囲が少し。スイッチング周波数が少し。

使う上で、個々のステッピングモーターに供給する電流は、どうなるのか? まずはそこから。

A4988 というのは、ステッピングモーターにある2つのコイルを ON/OFF するだけのものではなく、PWM によって流す電流を制御している。それによって 1/16 マイクロステップでの動作をサポートしているのだ。データシートを見ると、最大電流を設定することが出来て、モジュール上では半固定抵抗で調整する。2個コイルがあるわけで、ステッピングモーター1つあたり 最大電流x2 ということになるのだが、実際は 100% + 100% という状態にはならない。ステップによってどれぐらい電流を流すか データシートに記載されている。

どうやら、フルステップの 70.701 % + 70.701 % = 141.42 % が最大。マイクロステップもフルステップの状態は通るので、最大は 141.42 % ということに。また、フルステップでは、常に 141.42 % であり、マイクロステップでは、100% 〜 141.42 % ということになるようだ。

    マイクロステップなどのモードの設定については、CNC SHILD などでは普通、ジャンパで行う。だが、付属のコントローラにはジャンパがない。どう設定しているのか要確認。

ステッピングモーターを動かしていない時でもこれだけの電流を流すのだ。5A しか供給できないのだから、電流制限は 1.18A 以下にしなければならない。余裕を見て 1A にしておく方が無難かも。

    ステッピングモーターは、17HS1352-P4130 というモデル。モーター厚みは 34mm で、あまりパワーがありそうな感じではない。
    ・Step Angle: 1.8 Degree
    ・Rated Current 1.33A
    ・Rated Voltage: 12V - 24V DC
    ・Holding Torque: 1.26N.m
    ・Shaft Radial force: 2.2Kg/cm

    必要なトルクさえあれば良いわけだし、別に定格まで電流を流さなくとも良いだろう。とりあえず 1A ということに。

    具体的な電流制限だが、Vref に入力する電圧と、電流値を検出する抵抗の組み合わせで行う。計算式は、
     Vref = 8 x 最大電流 x 抵抗値
    なのだが、 モジュールの抵抗値には 50 mΩ と 68 mΩ の 2 通りがあるそうだ。めんどくさいが確かめておいた方が良さそうだ。--- USB 顕微鏡で見てみたところ 付属のもの、別途入手したもの共に R10 - 100mΩであった。
    0.1 Ωで 1A であれば、Vref が 0.8V になるように調整すれば良い。

    そして新たな発見。片方に URL が記載されていた。
     ・http://reprap.org/wiki/StepStick
    これでパターンの詳細と回路図が入手できた。以下がオリジナルである。



さて、動かさなくても 1A x 1.4142 x 3 = 4.25A -- 51W も必要なのか? 静止状態では、そこまでは必要ないらしい。だが、制御可能なのかどうか?

データーシートを見ると ENABLE という信号線がある。これは、FET のみの制御で FET を OFF にしてモーターに電流を流さないというもの。モジュールにも信号線が出ていて、OR 接続で Arduino の D8 -- Stepper Enable/Disable に接続されている。OFF にしてしまうわけで CNC としてはどうなんだろう? トルクがかかっていなくて、動いてしまう可能性があるわけで、使えないんじゃないか?

    GRBL 1.1 ではじめて sleep mode が付いた。スピンドルを止めて、EN を OFF にしてしまう。0.9 では、この機能が使えないわけだが、使えたとして、ちゃんと再開できるのか? 

ドライバICによっては、自動カレントダウン機能を持っているものがある。
 ・https://www.orientalmotor.co.jp/tech/glossary/sa06/
たとえば、静止状態では、50% 電力を減らすというものがある。

もし使えるポートがあるならば、抵抗を1本通して Vref に接続し、Vrefの電圧を上げ下げすることで、カレントダウン機能を実現できるのだが... 残念ながら、Arduino のポートは余っていない。そのうえ A4988 モジュールにも Vref ピンは出ていない。モジュールを改造すれば、対応可能かも知れない。

    入手した回路図を見ると SLEEP は、プルアップされている。パターンカットして SLEEP の端子を別目的に使えそうだ。おそらく、 Vref を接続するのが良さそう。Vref は、半固定抵抗に接続されているので、そこからジャンパ可能。ただし、CNC SHELD などでは、RESET と SLEEP が接続されている。これもパターンカットしたうえで、RESET もプルアップする。これで Vref が外に引き出せたことになった。ポートを 抵抗を介して Vref に接続するとして、Z で通常、L で カレントダウンになるが、抵抗値がまた微妙。モジュールによって変わる上に、5V 系と 3.3V 系で共用できない。なかなかにめんどくさい。DAC を直接接続してしまいたいような ...

    あと気が付いたのだが、ROSC というピン。後で入手したものは 0Ωで GND に接続されているが、付属のものは、153 -- 15kΩである。さらに、入手したオリジナルの回路図では、10kΩ。この設定の違いで動作が微妙に違うらしい。



ところで、常時 50W 〜 60W で発熱するようなものであることが分かったわけである。スピンドルは、もっと発熱するが止めるという手立てがある。常時というのは、やはり厳しい。

こんなものを、密閉した空間に置いても良いのかどうか? しかも、切りくずと共にである。切りくずが宙に舞うってのも普通にあるらしいし。

ちょっと怖くなってきた。防音箱で動作させるのは、考え直さないといけないようだ。



付属 コントローラについて。



全体はこんな正方形。裏のレールに取り付けるのだが、どの方向で取り付けても良いようだ。電源回路は XL4015 を採用した 12V 5A が右下。A4988 モジュールの下に 3端子レギュレータによる 5V 電源がある。



コントローラには、WOODPEKER CNC GRBL0.9 とシルクが入っている。LED がいくつかあって、電源が正常か?また通信できているかいるか?確認できるようになっている。

下部には、ピンヘッダが付いている。Xen 等は、リミットスイッチを接続するためのもの。それに加えて(このコントローラでは)未使用のピンが出力されている。未使用とは言っても、だいたいは役割が割り当てられている。完全に未使用なのは、A6,A7 ぐらい。



スピンドルは PWM 制御される。ドライバには、IRF540NS というパワーMOSFET が使われている。VDSS = 100V. RDS(on) = 44mΩ. ID = 33A だそうで、オーバスペック。ただまともに動かすには、ゲートに 4.5V ぐらいはかけないといけない。3.3V 系でコントローラを自作する場合、ドライバを別途さがさないと。

    フルブリッジのドライバ IC として L298N というのがある。2 ch あって 46V 2A x2 まで。付属の AC アダプタは 24V 5.6A で ステッピングモータに 51W / 0.95 の電力を食われるとすると、 24V 3.2A ぐらいが スピンドルに回せる上限。2ch をパラレル接続すれば ... 使えるかも。で、例によって aliexpress では、かなり安いモジュールがある。

    スピンドルでは使えないが、参考までに安いフルブリッジのモジュールを探してみると。
     ・ L9110 12V 0.8A
     ・ MX1508 10V 1.5A (peak 2.5A)
    こういうのがある。いずれも 2ch 。模型用の DC モーターやスピーカーを駆動するのに使えそう。メモしておく。
    パワーMOSFET だと耐圧と 駆動電圧に比例関係があって、なかなか選択が難しい。とりあえず 耐圧 30V で 3.3V で駆動できるものとして FDD6670A とか。

リミットスイッチの接続

リミットスイッチは Y方向なら 前後の2つがあるわけで 、スイッチを2つ付けられるようになっている。が、信号線は1本で 単にパラレル。これを GND に落とすと リミットになったと認識する。ググってみたところでは、XY はリミットスイッチというよりは、ホームポジション検出のために使われているようだ。その目的では、フォトインタラプタを使うことが多いような感じ。
フォトインタラプタを使うには、抵抗が2つ必要。ひとつは発光側の電流制限抵抗で 220 Ω程度。もうひとつはフォトトランジスタに付けるもの。 エミッタ を接地して フルアップという接続例があったが、論理が逆になる。GRBL が対応しているのだろうか? 


実は、秋月で売っている KI1233 を使うと機械式スイッチと同じ論理になる。電流制限抵抗も内蔵されているので、+5V を接続するだけで良さそう。
これを使う方針で検討しようと思う。

Z軸については、いろいろな使い方をされている。エンドミル自体を スイッチとして使うやり方があるのだ。基板を作る場合など 基板が多少歪んでいても、heightmap を作成することで、掘りの深さを一定にすることができたり。この heightmap を作成するには、XY を格子状に動かして、高さを測定する。

ただ、ステッピングモーターは急には止まらない。Z軸が接触しても、わずかには行き過ぎる。材料を痛めたり、テーブルを痛めたりしそうである。その対策として、ばねが付いたものを考えてみた。

1) タクトスイッチの中のバネ。

タクトスイッチの中にお椀状のバネが入っている。中央がくぼんでいて、下にある接点と接触する構造である。これを取り出して、テーブルの上に置く。XY の原点が分かった後なら、どこに設置してもピンポイントで接触させることが出来るだろう。



タクトスイッチには、こういうタイプもある。テープで貼ってあるだけだから、接触させたい部分を切り抜くことで同じ目的に使えそうだ。

ただ、タクトスイッチは、ストロークというか、押せる距離が短い。0.1mm とか 0.2mm ではないか? 短すぎて用をなさない可能性がある。

2) Spring Test Probe



基板の冶具として使われるもので、テストピンというものがある。はんだ付けすることなく、スルーホールと接続する目的で使われるもの。ピンの中にスプリングが入っていて、ピンの先が動くようになっている。aliexpress で、P75-LM2, P75-B1 などをキーワードに検索するといろいろなタイプが見つかる。
どう使うのが良さそうか具体的イメージはないのだが、テーブルに突き刺して、エンドミル、あるいは ER11の縁やモーター と接触させるとか。エンドミルの代わりに ER11 に取り付けて ... というのもあるかも知れない。

とかいろいろ考えたのだが、根本的に誤解してことが1つ。Z のリミットは、あくまでリミットで 高さを検出するための端子は別にある。--- A5 probe 。付属のコントローラでも、同じはず。

 ・https://cnc-selfbuild.blogspot.jp/2016/05/cnc.html
GRBL にはホーミングサイクル機能というのがあって、右奥上に移動させて マシン原点(0,0,0)にする。これの設定項目が沢山あるようだ。それはともかく、上端を検出できるようにスイッチを設置したい。

 ・https://cnc-selfbuild.blogspot.jp/2016/05/cncz.html
プローブについてはこちら。aliexpress で、プローブ用のツールは確かに売っている (cnc Touch Plate で検索) 。売っているのはゴム足にプレートを付けたようなもの。まぁこういうもの自作するのも楽しいかも。

    良く分からないが、プレートをゴムじゃなくてバネで支えるようにしたものとかどうか? 形状はペットボトルのキャップに下からプレートを入れたような形。-- これは単なるイメージで、もっと背が低くて良いし、四角でもいい。底面とプレートを抑える縁の精度さえ出ていれば良いわけだから、木を削り出しても良さそうな。バネの入手の方が難しい。なんでもよければ、百均の木製せんたくばさみとか。

さて、porobe 以外の機能について、興味が出てきた。
 A0 Reset/Abort
 A1 Feed Hold
 A2 Cycle Start/Resume
 A3 Coolant Enable (出力)

たぶん A0 は、緊急停止ボタン。A1 はポーズボタン A2 は、それを再開するボタン。この中では、A0 だけはとりあえず付けたい。

ちなみに、D13 も出力されているが、スピンドルの回転方向。フルブリッジのドライバを使ったときだけ意味がある。あと、A4,A6,A7 は未使用。GRBL をソースからビルドすることにして、改造するなら、好きに使える。




もし電源が壊れたら? 

付属の AC アダプタは、PSE マークがないため、自己責任で使わないといけない。あまり考えたくないことだが、壊れることもあるかも知れない。また PSE マークがないわけで、人に譲るときに問題があるし、そもそも、そういうものを使いたくないという人もいるだろう。

とりあえず 同じものは売っているようだ。24V 5.62A で探すと 1つだけ見つかる。だが、壊れた時には買えないかも知れない。

で、どうするか?ノートPC あるいは 小型PC用の AC アダプタを2つ使うのが良いのではないか? これなら PSE マーク付きの入手もできるだろう。

ひとつは、ステッピングモータ+コントローラ用。12V 以上で 60W クラス(以上)ならなんでも良い。19V が多いと思われる。12V の場合 12V出力の DC/DC を通すわけだが、多分問題ない。で、スピンドル専用がひとつ。90W 以上で 24V というのがあればそれで良いが、19V でも良いのではないか? 2電源にするためには、パターンカットして、電源を1つ引くか、または、専用のモータードライバを用意するか。どちらにしても、ちょっとした工作は必要。

コントローラを設計する際に、考慮すべきことだろうとも思うのでメモしておく。


posted by すz at 02:21| Comment(0) | TrackBack(0) | CNC

2017年06月19日

CNC の切削データを EAGLEで作ってみる

CNC で使う CAD アプリは、Fusion360 が良いらしい。だが、やりたいことは 2D で事足りることが多いので、使い慣れた EAGLE を使いたい。生基板を掘るような場合は、
 ・ PCB-GCODE (ulp)
 ・ FlatCAM
を使うのが良いことは分かった。ただ、 生基板でなんとかしたいようなことは、緊急で作りたい場合のみであり、実用としては、あまり興味がない。

とりあえずやりたいことは、板材の切り抜き、あるいは溝掘りなのだが、FlatCAM はともかく、PCB-GCODE は向いてないことが分かった。

いろいろ調べた(現時点の)結論としては、
 ・ DXF2GCODE
を使うのが良さそうだ。

ちょっとやってみた結果:


・とりあえず、テーブルの上に敷く板の穴あけを考えてみた。まず、EAGLE を無料で使っているので 160mm x 100mm のサイズしか使えない。そのため 1/2 縮尺で描くことに。
・テーブルの端には 15mm角 3mm 厚のアルミアングルを取り付ける予定で、敷板もボルト穴をあける。2mm の エンドミルを使うので、ミリングレイヤーに 切りしろを考慮して円を描く。
・その横のスロットは、ワーク(材料) を 固定するためのもの。テーブルのスロットは、8mm 幅で 45mm 間隔。ここに Hammer Nut もしくは、Sliding Nut を入れて、上から M5 のボルトで締める構造。このスロットを全部利用すると 敷板がうまく固定できないので、図のような配置を考えてみた。
    ちなみに、敷板は 2mm 厚、その下のテーブルのボルトまでの距離が 5mm 、そこから、テーブルにぶつかるまでの距離が 7.7mm 。アルミアングルを固定するためのボルトは 12mm では厳しく 20mm では長すぎ。
    あと前の記事でも書いたが、バイスのように横から挟むためにもう1本アルミアングルを配置する。この2つのアルミアングルを 75mm のボルト2本で締める計画。大きなものは、右のアルミアングルから長いボルトで押さえつける。


敷板を固定する穴をあけるわけなので、実際に作る場合どう固定するの?という問題があるが、とりあえず。

EAGLE では DXF フォーマットの export/import が出来る。表示したレイヤーのみを出力する仕様。2層しか使ってないので、全部を出力。



次に、DXF2GCODE を起動して DXF ファイルを読み込む。オプションに Scall All というのがあるので、2.0 に設定し2倍に拡大。そして 46 レイヤ (Milling) のみを表示させた。

また、オプションに、Slice Depth と Final Milling Depth があるので設定。

以上の設定をして export するのだが、.ngc という拡張子は都合が悪いので、後で .nc にファイル名を変更する。



このファイルを grblControl に読み込ませる。と、このようになった。マルチパスで 深さを変えながら同じところを掘るようになっている。

とりあえず、ここまで出来ることは分かった。




さて、EAGLE で多角形を描くと塗りつぶされて 「面」 の指定になるのだが、サポートしているのだろうか? PCB-GCODE はダメだったのだが、DXF2GCODE で試してみると、描画された。外縁を描いて 横(X方向)にスキャンするような出力である。スキャンの間隔は広く 2mm ピッチのように見える。この 2mm は、どこから出てきた? どうもツール(エンドミル)の設定があるので、それで決めているように思える。たぶん 2mm で start radius 1mm を選べば良さそうである。それはともかく、多角形を使えば、面出しやポケットを敷板に掘るなんてことが簡単に出来そう。
    2mm ピッチなのは、多角形の外周を描く線の太さで決まる。これは、EAGLE が決めていて、横方向のスキャンというのも EAGLE が決めているようだ。

次に「タブ」というものが作れるかどうか? これは、切り残しをわざと作って完全には切り取らないようにする機能。切り抜いてしまうと、その瞬間に材料が暴れたり、さらには引っかかってスピンドルを止めてしまったりする恐れがある。FlatCAM は出来るらしいのだが...。

調べてみたが、どうもそのような機能はない。そもそも切り抜くのかどうか・・・というようなことを明確に指定できない。ただし、自分でそのようなものを描くことで対応はできる。

DXF2GCODE は、レイヤー毎に深さやツールなどいろいろ指定できる。レイヤーの順番も指定可能だ。ということは、メインのレイヤーでは薄く残しておいて、最後のレイヤーでタブを残しながら切り取るようなやりかたをすれば良い。(ひょっとしたら、点線を使えば良いのかも!)

あと、切り抜くことが目的ではなく、穴をあけたいだけならば、削り潰してしまえばよい。上記の敷板の穴あけは、わずかな面積を切り抜いているが、そうするのは良くなく全部削ったほうが良い。

・・・というわけで、なんとかなりそうである。


さっそくやってみた。

これは、例のスピーカーボックスの側面。おまけの図形が描画されている。白の外形線と同じところに、別レイヤで long dash で線を引いてある。


溝や おまけ図形を 3mm 掘り、外形線を 8mm 掘る。そこからさらに 1mm long dash で掘る。スケール変更を忘れたので Z方向に2倍拡大されている。

こんなふうに、うまくやれそうなのではある。が、難点がひとつ。ファイル名の扱いが変なのである。深いディレクトリに置いたファイルを変換するのだが、ルートディレクトリに作成されてしまう。拡張子も変更する機能があるのだが、無視される。そのあたりはまだよいのだが、プロジェクトファイルがあるにもかかわらず、読み込んでくれず、設定を一からしないといけない。たぶん Windows だけの問題なんだろう。python なので、修正すれば良さそうなものだが、面倒くさい。




そういえば、印鑑も作りたかったのである。ググると 「竜巻ソフト」なるもので、印鑑を作ってた人がいた。イメージファイルを読み込んで、GCODE を出力するものらしい。残念なことに動かなかったので、別のを探した。
 ・http://www.scorchworks.com/Dmap2gcode/dmap2gcode.html

とりあえず、こういうのがあった。これもまた、python 。印鑑づくりもいずれは挑戦したい。
    メモしておくと、印鑑の一般的な長さは 6cm 。直径はいろいろあるが、10.5mm , 12mm , 13.5mm , 15mm , 18mm --- こんなところ。木材だと 「つげ」がよくつかわれるが、チタン製というのもある。自作している人の中には、真鍮やアルミを使っていた人がいた。

    アルミ棒を切り売りしているショップを発見
     ・http://www.yokoyama-techno.net/detail/64.html
    12φ 60mm だと、単価 160円。15φが 190円。テーブルに穴をあけないと加工できないが、意外と安い。
     ・http://www.yokoyama-techno.net/detail/188.html
    板材の切り売りも。厚みのあるものは、必要なサイズで切ってもらったほうが、定型より安くあがるかも。



ハンコのパターンを EAGLE で描いてみた。
 ・イメージファイルを import する。(できあがりのサイズに合わせてスケールを設定)
 ・掘りこむ部分をいくつかの多角形に分割してトレース
 ・(必要なら、左右反転)
できあがりを 12mm 角としたので、EAGLE 上は 6mm 角。多角形の width も重要で、面をスキャンする間隔が線幅に合わせて変わる。先端が 0.1mm の V-cut エンドミルを使うので 線幅は 0.05mm (右)。左は 1.5mm だったか。多分仕上がりは、左ぐらいに字体が痩せる。左のやつで良いかと思ったのだが、掘った底に結構な高さのスジが出来てしまいそうだ。なので、やっぱり右でないと。

この程度で良いのなら、多角形でトレースするのは、あまり手間ではなかったが、曲線を使いこなせていないので、なんかイマイチではある。すこし練習すべきかも。



テーブルに穴をあけないと加工できないのかどうか?

 ちょっと考えてみよう。 フレームの奥行は 33cm で 2cm の アルミ角棒?が前後についている。ということは、テーブルの奥行が 0cm なら、29 cm の可動範囲があるわけだ。それが 18cm になっているということは、11cm の奥行ということだ。なにが 11cm かと言うと、スライドさせる軸受けの間隔。テーブルのスリットは、4.5 cm なので、2つ分 9cm の間隔で 軸受けを配置するのが正しい。となると、3つのスリットがある面が裏になるようにするのが本来の配置なのだろう。さて、裏返して 4つのスリットがある面を使うとどうなるかと言うと、テーブルを 2.25cm 前にずらすことが出来る。そして、テーブルの外側 2.25cm まで、切削できるということになる。この空間にハンコをおけば、テーブルに穴をあけなくとも切削できるはず。
 どうやってハンコを固定するか?アルミアングルである。もともと端に置く予定のアルミアングルを 2cm はみ出すように取り付ける。同じように 裏面にも 取り付ける。テーブルの横面?にもスリットがあるので、コーナーアングルを使って 上で説明したバイスのようにする。
 皮算用だが、うまく行きそうな気がしてきた。

... とか書いたが、やっぱりヤメ。可動域が狭くなりすぎる。防音箱に入れるのが前提なのだが、32cm のフレームに対して 18cm のテーブル+18cm の可動域なので、フレームから外側には出さないように使うと、可動域が 14cm に制限される。で、2.25cm ずらせば、11.75 cm まで制限がきつくなる。テーブルを組みなおすだけの話でネジ10個の付け替えではあるのだが、これはまた別途検討。

・・・Y方向にテーブルをオフセットするのは、無理があったわけだが、X方向なら簡単ということに気が付いた。単にテーブルを右にずらして取り付けるだけ。計算では、最大 30mm ずらせる。




あと、やってみたいことは何か ... というと、厚みのある木をくり抜いてケースを作ってみたい。ホムセンを物色したら、1x4 がかなり安いことが分かった。1.8m で 250円程度だから、使い放題である。これで練習して行きたい。で、ケース。 22mm までは掘れるわけなので、18mm厚 の 1x4 はくり抜くことさえできる。



こんな風にしたらどうか? 左の部分に基板を置いて、20mm のスペーサを上に付ける。右の部分を被せてネジ止め。

18mm厚 の 板を 15mm 掘ったところが底。上下で 30mm の空間になる。底から 4.2mm 上に 1.6mm 厚の基板。+ 20mm のスペーサ + 4.2mm で 30mm 。赤い部分がスペーサの部分。ピンクは、ケースの加工部分で、基板の上面までケースを削ると 9.2 mm 。青は 15mm 高の穴をあけたいので、5.8mm という計算。

さて、プラケースにあるような嵌め込みは、作っていない。理由は精度に自信がないため。精度が出なければ、平行四辺形になる。これを合わせると誤差が2倍になって見える。もし綺麗に掘れたとしても、ピタリと合うとはとても思えない。また、Z軸が傾いていたりすれば、上下を合わせることで、くの字になったりするのが分かるだろう。

このケースづくりは、最終調整の確認のためにも、是非ともやっておきたい。

実用上はどうか? というと、どうだろうか? 所詮、蓋と底板であるから、使える範囲は限られるかも。よくあるアルミケースの構造 -- 上下を合わせてパネルの四隅のネジで固定する -- といったパターンもひとつ持っていると良いのかも知れない。



    底板だけを MDF で作るのもアリかも知れない。裸で置くのはどうか・・とか考えて、スペーサーで足を付けたりするわけだが、底板をちゃんと作れば絶縁になるし見栄えもいい。天板も必要なら、2mm PP シートで天板を作って、スペーサーを介してマウントすれば良い。こういうのもいくつかパターンを作っておくことにしよう。



作ってみたいものがもう一つできた。モーターをマウントして、フレームに取り付ける台。モーターには、小径のダイアモンド・カッターを取り付けて、丸鋸台にする。
CNC のテーブルは、アルミアングルとかを自由に取り付けられて、基板をスライドさせる台として便利だなと思ってしまったので作りたくなった。




モーターは、秋月の RS-385PH あたり、あるいは、もうちょっとパワーがありそうな、同径のモーター。30 φを想定。2.3mm のモーター・シャフトと 22mm φの ダイアモンド・カッターをどうにかしてつなぐわけだが、"2.3mm coupling" で見つかる 写真のようなものと 3mm φ のマンドリル(ダイソーのは、2.3mm) でつなぐのが良さそう。手持ちのマンドリルの長さは 35mm で、モータシャフトが 13mm だから 48mm 長(あるいは 51mm長)までの基板を切り出せる。 --- 100mm 以上の基板は必要ないと思っているので、ちょうど良さそう。さて、テーブルの端から フレーム外側までの距離は 左側だとオフセットしているので 65mm(ぐらい)。またデーブルの高さは 78mm ぐらい。

    2.3mm - 3mm のカップラーを何故使うかというと、それしか見つけられなかったため。2.3mm - 2.3mm もない。内径 2.3mm 弱 のパイプを打ち込むのが良いと思ったが、そういうのもない。


    最初は、ドリルチャックを付けることを想定していたのだが、径が 17mm ほどあるので、22mm のカッターだと、切れる範囲は、2.5mm 。これでも良いのだが、クリアランスがないと、切れかかった基板と接触する可能性がある。50mm の大径の カッターを使うなどすれば良さそうではあるのだが、これはまた別途検討したい。


以上のデータをもとに設計してみた。
1x4 からこんなものを切り出して左フレームの外側に取り付ける。厚みは 18mm しかなく 心もとないので、20mm 短いものを作ってはりあわせる。この部分がフレームの上に乗るわけだ。テーブルの上面から 11mm 上がカッターの中心で高さは調整できない。


    そう言えば、スピコンぐらいは欲しいところ。12V で 20W も使わないだろうと思われるので、1.7A 程度で良さそう。そうなると 以前記事に書いた MINI360 程度でも良さそう。--- というか都合が良いかも。2.0A を常時流そうとすると、数秒間隔でオフになる。まぁ "Motor Speed Controller" も $2 ほどで買えるので、それで良いのかも知れないが。(写真はケース付きで $3.05)




材料を無駄なく使うようにデザインを変更した。無駄がないのは良いが、切り出す手順が重要。材料を左右で固定し、腋の4つを切り出す。そのあと、固定する場所を上下4ヶ所に変更して、本体を切り出す。ついでに2枚を接着する際の ダボ穴を追加。 --- 別に必要ないと思う。単に使ってみたいだけ。

    Y 軸の 精度が出てなくとも 2つの本体は同じ形になるはずだ。向かい合わせにすると、精度が出ていない分ずれる。また、Z軸が垂直でないと、ダボ穴がずれる。同じ角度のはずだから、それでもタボは差し込める。が、本体が平行にずれるはず。どれだけずれるか測定して調整に役立てたい。

    ところで、ダイソーの 10cmm 四方の 6枚組 MDF 。精度がどんなものか気になって、ちょっと調べてみた。90°づつ回転させた4枚と、裏返して90°回転させた2枚を重ねてみたが、全く段差がなく思ってたより精度が高い。いろいろと利用させてもらおう。




まったく関係ないのだが、2.3mm 内径のパイプを探していたときに、スルーホール用のピンを発見した。 "tubular rivets" というものらしい。そのなかで、M0.9 というのがスルーホール用。

片面基板で嫌なところは、ランドが剥離する可能性があることで、ストレスがかかるものが使えない。もしこれが使えると嬉しいかも。というわけで、メモしておく。



こんなやつ。外径 0.9mm 長さ 2.5mm のようだが、詳細はわからない。一見すると長いハトメ (英語だと eyelet) 。真ん中は、ハトメ・ポンチ(eyelet punch)の一種。穴を保護する画鋲のような台に、針の部分を通すポンチ。ただし、これは 4mm 用。外径 0.9mm などという極小径用のものは見つからなかった。右は皮に穴をあけるポンチで 0.5mm とかは存在している。後は画鋲のようなものがあれば・・・とか。



そういえば、最近見たというか、買ったのである ダボ・ポンチ(dubbo punch)。6mm 用でたぶんドリル・チャックにセットできる。ダイアモンドやすりか何かで、削ってやれば使えるものになるやも。あるいは、0.5mm とかのドリル。途中から太くなっているから、そこを利用するとか。あるいはただの釘? ドリルにセットさえできれば、凸型に研磨するのは難しくはないはず。

    あ、ダイソーのピンバイスがあった。0.8mm と 0.5mm のセット。ドリル部分を 1.5mm ほど残して切ってしまう。簡単そうだから、最初にやってみよう。

    ところで、このダボ・ポンチ。旋盤じゃなくて CNC で削りだしているようだ。渦を巻いているから旋盤ではない。幅が多分 2mm だから 2mm のエンドミル? --- こんなことに気が付くようになってしまった。

いずれにせよ、練習しなくては。片面C基板などは、穴径 1.0mm なので練習に使えるだろう。

追記:入手した。
そのまま、両面C基板の穴に入る。外径が 0.9mm らしい。鍔の部分は、両面C基板のランド程度。内径は分からないが、0.8mm は入らず、0.5mm は入る。あと、とても小さいので、一回 0.5mm のピンバイスに通して差し込まないとうまく入れられない。
カシメの方法だが、0.5mm ピンバイスは、いまいち。中央の部分が凹んでいるので、良いかと思ったが凹みが大きすぎ。0.5mm のドリル(途中から太くなっているもの)でやってみたが、ドリルが折れた。うーん。



またぞろ、作ってみたいものが増えた。


コントローラを作りたいわけだが、実機を使うわけにはいかないので、テスト用として安価な 28BYJ-48 というのを買ってみた。それは良いのだが、くるくる回すだけでは面白くもなんともない。やはりなにか動かさないと。



どうも 3D プリンタなどでは、プーリーを使ったりすることも多いらしい。で、2GT (GT2 ?) という 6mm 幅で 2mm ピッチの突起が付いたベルト などが使われていたりするようだ。

買えば済む話なのだが、せっかく CNC があるのなら、このプーリーを作ってみたい。EAGLE だと ULP のスクリプトでデータ生成したりするのだろう と思ったのだが、どんなデータにすれば良いのか良くわからないので、手書きで描いてみた。




さすがに途中で投げ出すだろうと思ったのだが、なんと描き切れた。大きいのは、60 teeth 小さいのは 20 teeth 。座標を計算してプロットしていくわけだが、ひとつの歯を作ると コピーして回転すれば、4 つ分が描ける。グリッドサイズを荒くしてもピッタリになるので簡単。さらにミラーして +4の計 8つが簡単に描けるのである。回転も 6°とかが出来るので、次の歯はコピーをもとに、数値を入力して座標を合わせる修正をして出来上がる。それでまた 8つ分描けるのだ。

ただし、描いたものは、径が若干小さいような?


    図形全体を拡大縮小することは出来る。方法はいくつかあるのだろうが、DXF で export → import で scale を 1.04 にするとこんな風になる。(これだと拡大しすぎ 1.02 ぐらいか)

    ちなみに、export のオプションには注意。レ を外して、余計なものが出力されないようにする。


描いてしまったからには、実際に作りたい。ただ、1mm の エンドミルが必要になる。1mm だと折れやすいだろうし、経験を積んだ後トライすることになる。なお、アルミで作ることは考えない。まずは木材。次は、ABS とか エンプラ?
 ・ http://plasticbuhinya.shop-pro.jp/
。。。いや無理、簡単に無駄にしそうだし、もったいない。やはり、次も木材か。

    木材と言ってもピンキリだが、ちょっと 150mm x 100mm を基準にキリの方をリスト
     シナベニヤ 8mm 厚 54 円 (ダイソー 2枚組 版画用)
     フローリング用合板 9mm 厚 27円 (300 x 1800 1000円)
     桐まないた 90mm 9mm 厚 27円 (ダイソー 1/4 )
     1X4 18mm 厚 89mm 幅 20 円 (1800mm 250 円)
     カット合板 9mm 厚 16円 (300 x600 200円)

この中では、シナベニヤがきめが細かく微細な加工ができそうなんだが、弱いイメージがある。普通のラワン合板は、硬いそうだが、肌目が粗いので歯がボロボロになりそうなイメージ。ダメかも。
--- そういえば、これぐらいの厚みの板というと、普通のプラスチックまな板があった。
 リス 抗菌まな板L ホワイト 137円 [370×220×10mm 550円 1/4]
材質は、PP ではなく PE(ポリエチレン)。ホムセンで見たら 8mm,10mm,13mm 厚 PE(耐熱温度 70℃) と 10mm 厚 PP(耐熱温度 110℃) のまな板が、ダイソーには 5mm 厚 PE があった。PEもまたピンキリらしいが、スベリが良いので使える材質かも知れない。5mm 厚 PE で試してから、再検討で良さそう。

    堅木、硬木(かたぎ)とは、ブナ、ナラ、ケヤキ、ラワン、マホガニー、チークなどの広葉樹の材木のことだそうだ。木材博物館を見ると、ケヤキは特に硬い。そのほか タモ、マカバ、ウォールナットなども硬い。赤松はやや硬く、ラジアタパインなどは普通だそうだ。

    で、集成材ではあるが、これらのサンプルが安く買えるショップを見つけた。
     ・http://item.rakuten.co.jp/fujii-syuseizai/bigsample01
    300x200 のサイズで ウォールナット,タモ,ナラ,等が 200円! ただし厚さは選べない。フリー板 というカテゴリの木材の端材なのだが、フリー板自体 20,25,30 ... 100 mm 厚らしく、基本的に厚い。150x100 というサイズもあり、100円〜400円 (ケヤキ 300円、マホガニー 400円) 。

    150x100 が直接 CNC にセットできるから良いのだが、貧乏性で大を選んでしまった。買ってみたいのはホムセンにはない硬木ばかりなので切り出すのがめんどくさそう。ちなみに、プーリー用に考えているのは 10mm 厚程度なので、買った木材を使えるとは思っていない。それはまた別途。

    ちょっと関係ない話になっていくが、上記のショップで買った木材についてのメモ:
    カバ桜:真樺(マカバ)の別名 桜ではない。硬い、加工性が高い、油分が少なく接着性良。印材の「彩樺」の原料。
    タモ:硬く、反発力がある。オールやアイスホッケーのスティックの材料。加工はややしずらい。
    ナラ:ドングリの木、硬く粘りがある。「曲げ木」。ウィスキー用樽。加工はしずらい。
    ウォールナット:重硬で衝撃に強く、強度と粘りがあり狂いが少ない。ライフルの銃床。
    赤松:やや硬い。加工性がよく、耐水性もある。ヤニがでやすく、やや狂いが生じやすい。燃えやすい。


    この中で、松(パイン)というと一応分かる。ウォールナットも色合いで。タモは、丸棒で見たことがある。白っぽい。あとは(板材として)見たことすらない。カバ桜は、桜色の風合いがあるのが特徴で、ナラは少し暗い色で 「虎斑」というのがあるのが特徴だそうだ。

    追記:注文した板が来た。
    ウォールナット、赤松は 25mm 厚、カバ桜、タモ、ナラは 20mm 厚であった。たまたまだと思うが記しておく。
    どれも厚さ方向には一枚 -- 薄い板を貼り合わせたものではない。縦方向のつなぎ目は、ギザギザになっている、そうやって作った角棒を張り合わせて板にしている感じ。
    ナラは、「虎斑」がはっきり分かる -- どういうものか良くわかった。カバ桜はきめが細かい。桜色というが良くは分からない。タモは年輪がはっきりと出ていて針葉樹っぽい感じ。赤松はその年輪が広く、ホムセンで良く見るパイン集成材そのもの。この中では赤松だけが軽い。
    どれも歪みなどはなく。加工精度も高いようだ。ダボでつないで広い板には出来るだろう (私はしないが)。

    どれも切り刻むのがもったいない感じではあるが、そのために買ったのである。最低でも 1/2 に切らないと CNC にかからない。ただし、柔らかい木ではダメな場合のみ使う。特殊な用途であって出番は少ないかも知れない。

    とりあえず 真ん中で切ってみた。木目と垂直だから切りにくい方向。のこぎりでの切りやすさは、
     赤松 >> ウォールナット > タモ > カバ桜
    という感じ。赤松はサクサク。ウォールナットは厚みもあり厳しいかと思ったがそうでもなかった。タモは多少硬い。カバ桜は、きめ細かな感じなのだが、なかなか刃が進まない。このへんで、めんどくさくなったので、ナラはパス。
    ウォールナットはさらに切って 1/4 サイズにした。これを 1/2 の厚さになるよう のこぎりで切ってみたい。ひどいことになるかも知れないが、これが出来ると、CNC で切り抜ける厚みになる。のこぎりの切断面は面取りしてしまえば良いのだろう。カバ桜は、つなぎ目のないところを切り出した。(15mm ぐらい)。ハンコを想定しているのだが、丸棒とかに整形しないとならない。これは、EAGLE では厳しい。レイヤーを沢山使って階段状なら可能だが ... 。Fusion360 ならデータを作れるのだろうが、64bit Windows マシンが問題。 いっそのことプログラムでデータ生成したほうが楽そうな ... 。 あと、裏返して位置合わせという課題がある。

    さて、厚みを 1/2 にする計画だが、なかなかに手ごわい。半分もできてない状態で一旦ギブ。できないことはないが、飽きる。カバ桜の件は、CNC 使うなら 板から切り出す必要はない。だが他の方法では意味がある --- ドリルチャックに固定できるようまず整形して、ヤスリを当てて円柱にするのをやってみようかと。

     ・http://noho91.web.fc2.com/page64.html

    丸棒づくりは、いろいろな方法があるようだ。角棒が丸棒になって穴から出てくるやりかたとか、すごい。

話がそれたのだが、プーリーがあったとして、どう動かすか。一応イメージは出来た。

水平に動かす2関節のアームである。先にペンを取り付けて、簡単な字が描けたら合格。ペンの上げ下げぐらいはしたいが、とりあえずはなし。回転部分の軸をどうするかが問題なのだが、どうせ精度が出せないだろうから、蝶番で良いかと思っている。アーム自体は木材で、大きい方のプーリーをアームにネジ止め。60 teeth ではなくてもっと径が大きいものが良さそうとは思っている。

... とか書いたのだが、入手したステッピングモーターは、4096 ステップで1回転という代物で、直接アームを回せることが分かった。プーリーの件は、ひとまずお蔵入り。
posted by すz at 02:43| Comment(0) | TrackBack(0) | CNC

2017年06月13日

中華CNCが欲しいような・・・

かつて、CNC フライス盤といえば、フライス盤の改造であり、ステッピングモータを取り付け DIY で作るようなものだった。価格も10万円あたりで、ソフトも自作したり。実際に実用として使うまで非常に敷居が高いものであった。それが、いつのまにやら 2万円で最低限のものは揃うような時代になっている。アプリもいろいろ揃っていて、買えば実用として使えるのだ。

スピーカーボックス を製作したときに、あると良いなと思ってしまったのがきっかけ。長い間、なんとなく欲しいと思っていたので、この機会に現状を調べてみようかと。


 ・https://www.aliexpress.com/store/424291/search?origin=y&SearchText=CNC

目をつけたのは、CNC2418, CNC1610 といったモデル。$120 + 送料 $50 前後 (+ 税金 2000円?) ぐらいで入手できる。オプションでレーザーも取り付けられる。0.5W なら 木材を彫刻でき、ダンボールを切り抜くことができる。2.5W ともなると、色付きアクリルをも切り抜くことができる。ただ、作ってみたいと思っているのは、ステンシルぐらいだし、・・・危険そうだし、やっぱりレーザーはいらないか。

    ステンシルを作る場合はどうしたら良いのだろう?カッティングマシンとそう違わないような気がするのだが?

    一つ作っている動画があった。using 5mil(0.128mm) Brass Sheet and a 10 mil(0.254mm),10 degree bit. だそうで。真鍮板を削り出すほうが CNC に向いているっぽい。

    ポリイミド(カプトン)シートを使ってステンシルを作る例も発見。ただし、レーザーで切り抜いている。でも、テープを使って CNC でもできるのではないのだろうか? CNC だと力が加わるので敷板に張り付けて動かないようにすることが第一。幸い幅広のテープは aliexpress にもある。私の用途では50mm あれば十分で、怪しげながら $4.5 とやっすいものもある。まずはこれを試してみたい。あるいは、PET の 耐熱 tape もある。こちらも 50mm で $5 ほどの製品もあった。... いや、PET なら 液晶保護シートがあるな。粘着力は弱いからベストだったりするかも。

    まったく関係ないのだが、上の例で冶具のことを Jig って書いてた。英語でも冶具なのか。

CNC1610 は、ワーキングエリア 16cm x 10cm x 3cm 。この範囲のものしか作らないならば、収納に苦労しないこれがいい。が、ワーキングエリアを目一杯つかえるような気がしない。となると CNC2418 になるのだが、予定した場所に収納がぎりぎりできない。底面のフレームサイズが 33 cm x 34cm 。これにステッピングモーターが飛び出している部分を考慮しないといけない。予定した場所は、幅 38cm 奥行 35cm の大型カラーボックス 。 ・・・奥に穴をあけれ収納できるか・・・。どうせ最後には死蔵するのであるから、収納の問題は重要である。収納できなければ買わないとまで思っていたのだが、これでクリアか。

 ・https://martyworkshopdiary.blogspot.jp/2017/03/cnc2418.html

さて、CNC でどんなことが出来るのか? このひとの記事を見ていると実に楽しそう。堅い木材(パイン)を削りだしたり、主に CNC 自体の使い勝手を良くするような方向でいろいろやっている。ソフトについても解説があり、このひとがやったことをトレースしていけば自分にも扱えそうな気がしてくる。

さて、私はというと、ESP32 で コントローラを自作してみたかったり。
    前の記事でも書いたが、やりたいのはまず無線化。次に付けたい機能は、本体やエンドミルを壊さないための保護機能。ついでに書くと、材料を正確にセットするか、材料の位置を正確に測定する機能 --- これには多分カメラが必要だろう。



CNC2418 に付いてくるコントローラは、Arduino 互換機能に A4988 という モータードライバのモジュールが3つ載ったもの、電源回路もなにかついている。ファームウェアは GRBL というものらしい。この A4988 モジュール、さらには CNC シールドというものが、やたら安い。ひょっとしたら 作った ESP32 の 基板で直接使えるかも知れない。
 
 ・https://www.aliexpress.com/store/1280487/search?origin=y&SearchText=A4988

安いのには理由があった。安いものは、CNC Shield v3.0 である。現在は v3.51 だが、v3.1 から仕様が一部変更になり、最新版の grbl で少々困ったことになる。なにも考えずに使う場合は、grbl-0.8 まで。

 ・https://cnc-selfbuild.blogspot.jp/2016/11/cncv30v31v351.html

ここに詳しい説明があった。CNC Shield には、DC モーターを制御する SpnEN と SpnDir 端子があるが、GRBL が PWM 制御をサポートするために、ポートを変更したようである。V3.0 でも使えないことはないが、いろいろと変更する必要がある。ちなみに、SpnEN と SpnDir は単なるポート出力のようだ。Hブリッジの DC モータードライバ か (逆転が必要ないならば)トランジスタ/MOS FET が必要になる。そのほか XYZ の リミットスイッチを付けることが出来るのであるが、XY原点検出用に フォトインタラプタを使うのであれば、付加回路が必要になる。Z 軸については、( いろいろな用途があり、フォトインタラプタは使わない。)。




あといくつかメモ。

防音対策

私の環境だと、そうシビアではないのだが、やはりうるさいのは嫌である。ホムセン物色してたら、60 cm 角の防音マットが売っていた。材質はたぶん EVA 。これに収まると 5 枚あれば良いことになる。ほかには 45cm 角というのもあった。枚数は必要だが、90cm 角の空間を作ることは多分できるだろう。

    確認してきた。商品は「明和グラビア JEM-6020」遮音等級 特級 なんて書いてある。厚さは 2cm あり 4枚組で 1880 円(税別)。6枚あれば ジョイントで組み合わせて 立方体が作れそうなかんじ。45cm は 4枚で 1080円(税別)。後でググってみると、JEM-60BM とか 1.2cm 厚のものもある。これでも 特級に準じるとか。他にもいろいろ --- というかジョイントできるマット全般が有望。

「CNC 防音」で画像検索すると ... 扉つきカラーボックスのような形状のものが多数。そして収納予定なのも扉つきカラーボックスなのである。具体的には「扉 カラーボックス NEST. 5段」で検索できる製品、3扉 6段のも所有している。ひょっとして、収納場所で防音マットかなにかを貼って動かすのが吉なのであろうか? テーブルが前後に動くわけだが、フレームから外に出ないなら動作させるのは十分可能である。あとは、熱的な問題があるのかどうか?まぁとにかく検討する価値はありそうだ。

切りくず対策

木材を良く使うだろうと思うので、大量に切りくずが出そう。専用の掃除機を用意して ... みたいなことをやりだすと、コストがかかりそうではあるが、(もし)本格的に使うことになれば、是非ともやっておきたい。防音ボックスの画像を見ると、掃除機のダクトを付けている例も見受けられる。やっぱりそこまでやるべきなのだろうか?


     ・https://martyworkshopdiary.blogspot.jp/2017/07/cnc2418.html
    マーティ氏が、なかなか興味深いものを作っている。確か材料は、赤松集成材 -- 結構綺麗に切削できるものだ。それはともかく、この形状!ブロワファンみたいな。ひょっとして、5cm のブロワファンを改造し、羽部分をスピンドルに付けると良いのではないか? メモしておこう。

エンドミル

これがまた良く分からないのである。へたしたら、本体以上にお金をかけてしまいそう。付属のカッターみたいなので事足りるなら良いのだが、とてもそうは思えない。



付属のものは、先端 0.1mm 20度の半月型。V字カットとか、生基板を掘るとか、そういう目的に向いていそうだが、切り抜くとか、削り出すとか向いていなさそう。

    自分で V字カットができる! とか思ったが、精度良く基板をセットするのが大変。ナナメにさえならなければなんとかなりそうだが ... それすら自信がない。アルミアングルでガイドを取り付ける?



    ところで、ER11 って何?とか思ったのだが、これを使うと、ぶれないらしい。ぶれない利点は精度だけでなく、騒音にも有利でもあるそうだ。



まずは、いろんなサイズのセットを買ってみることに。なんか硬いものでもガリガリ削ってくれそうなイメージ。ただ、深くは掘れない -- 刃の部分 1.2cm と書いてあった。あと用途には、super hard wood はあってもアルミの記載はなかった。大丈夫のような気がするのだが、どうだろう?



なんか不安なのでもう一本。柔らかい材料をサクサク削ってくれるイメージ。2mm φ 22mm とか、長いのをひとつ。これは用途にアルミが入っている。また、これが2枚刃というタイプらしい。後で調べると、2枚刃は切りくずが大量に出る切削に向いているが、構造は弱いとのこと -- 折れないように気をつかう必要がある。2cm も刃があるのを選んでしまったので、柔らかい材料以外には使わない方が無難なようだ。



エンドミルの先端の種類がいくつかあって、フィッシュテイル -- 魚の尾の形のように端が出ているタイプ -- がひとつ。上記の2つはフィッシュテイル であって、削った底が平面になるタイプ。ボールノーズ型というのもあって、底がまるくなる。安いのを探したら、2mm φ 22mm とか同じサイズで2枚刃なのも同じ --- というのが見つかった。 2 本 追加。



ところで、軸の直系が 1/8 in (3.175mm) のものと 3mm のものがある。同じものでもショップによって表記が違ったりも。どちらが正しいのやら。いずれにしても ER11 を使う場合どちらも使えるような気がする。使えるのであれば、リューター用の 3mm径 ビット -- 例えば 円形カッターとか、切削ビットとかも使えるのだろうか? どちらも安いものがあるし試しに買ってみよう。ダメでも別に問題はなかったり。

    左の6本セットだが、CNC で使えそうなのは、上と下の円筒形だけかも。たぶん 径は、3mm と 8mm。下面にも刃が付いていて、面出しにも使えるかも知れない。これいろんなショップが違うことを書いている。
    - 1/8" Shank HSS Router Bit Rotary Burrs ($1.86)
    3.175mm というのがダウトだが、まぁまっとうな感じ
    - Tungsten Rotary Burr Set (Shank: 3mm , $0.99)
    こっちは、超あやしい。値段もだし、タングステン?
    - Diamond Bits alloy Rotary Burr ( HSS , Shank: 3mm , $2.23)
    どこにダイアモンドの要素があるんだろう?
    とは言え、
    - Tungsten Steel Carbide Burr Milling Cutter Rotary Tool (Double Diamond Cut)
    タングステンでまっとうそうなものもある。で、ダイアモンド・カット? -- 要素はこれか。これのサイズは 3mm,4mm,5mm,6mm で、Shank 3mm。 N3 3本で $5.2 とか そう高くない。もし買うなら、こっちが良いのだろう。

材料を固定する方法について




その前にテーブルについて、たぶん 横 240mm , 縦 180mm , 15mm 厚。EU Standard というのがあって、15180 というタイプらしい。CNCでは上面横方向に 3本のスリットがあるが、Sliding Nut を差し込み M5 のボルトで固定することが出来る。なにかを垂直に取り付けたい場合は、 Corner Bracket というものを使うようだ。

    テーブルと同じ 240mm に切断したものも売っている。15180 aluminum 240mm で検索して見つかるが、$4.8 + 送料 $12.75 。重量があるものは、送料がばか高い。スリットは 8mm で 3030 シリーズ用が適合する。Sliding Nut ではなく、Hammer Nut というタイプもある。8mm 幅で差し込んで 90°回転させる。M5 Hammer Nut 3030 で検索。また、テーブルではなく、フレームになにか取り付けたい場合は、2020 用を選択。たぶんスリットは 6mm 。



さて、Table Clamp これが4つ付属するが、単体で購入すると結構高価。それはともかく、そもそも、どうやって使うのか。



この写真は別のタイプだが、階段のようなものの代わりにボルトを使う。材料と平行になるように高さを調整し、もうひとつのボルトで上から締める。付属のほうの写真は間違っている。ボルトをスリットに差し込み上から蝶ナットを締めるわけだから逆になっている。

さて、上から押さえれば良い場合は、Table Clamp を使えばよいのだが、高さのあるものを横から挟みたい場合はどうする?



Table Vise というものがあるのだが、高さがある。Z軸の可動範囲が狭いのだから、これを使うのは無理。では、アルミアングル2本で挟むのはどうだろう? 長さのあるボルト2本で締め付けて、Sliding Nut を使って アルミアングルをテーブルに固定する。片側の Sliding Nut を緩めてスライドさせれば、バイスのようにも使えるはずだ。

    反対側にもアルミアングルをセットして、押さえつけるという手も。というか、画像検索でそういうのが見つかった。見つけたのは、バイスと同じで1本のネジで押さえつける構造だった。

ところで、せっかくのテーブルを傷つけたくないので、当て木(敷板)を敷きたい場合はどうしよう。材質は MDF が良いのだろうか? それとも アルミ板? 本来はその都度考えればよいものだろうが、アルミアングルを1本常設しておきたいような・・・苦労して精度を出して垂直にセットできても、外したら無駄になる。なかなか悩ましい。
・・いや、テーブルもそう高いものではない。痛んだら買えばよい。送料が高いが送料込みで1枚 $17.25 2枚 $31.79 である。裏返して使うのもありだろうし。最初はでたらめしそうだから MDF を使うが慣れたら使わない方針にしよう。



ずいぶん前にギガジンに載った記事を見てみる。

 ・http://gigazine.net/news/20140501-shingeki-rittaikidosoti/

30 時間かけて 12mm 厚のアルミ板から ハンドルを削りだしている。
CNC のスピンドルを見ると、CNC2418 とさほど変わらないサイズのものを使用している。
 → ということは、CNC2418でも同等のことは可能ということか!

防音箱の中で作業しているようだ。サイズは大きめ?50cm 四方ぐらい?
防音シート、吸音材といったものは、ないように見える。
切削くずがこんもり
 → ということは、掃除機ダクトなどは必須でもない?

切削跡を見ると 1cm あたり 5,6本程度の跡がある。
 → ということは、2 mm 程度のエンドミルなのか?

1本 2500円のエンドミルを30本以上折ったらしい
ちょっとしたミスですぐに故障したり先端部分が破損したりするとも。
 → 1本 $1 もしないようなものを使おうとしているのだが、なにか違うものを使っている?
 → やはりエンドミルを折らないような仕組みが欲しいところ。
 → 他の故障は何だろう? モータドライバが焼けるのだけは対処できるが、他は治せないぞ。

ハンドルの木材部はアガチス
 → アガチスは鉛筆にも使われる削りやすい材質だったような。

CNCフライス盤は高い精度で穴を空けることができない
 → え? 位置は正確なはず。穴径があってないエンドミルで削り出すなら確かに正確ではなさそうだが。

視点が違うと、こんなところが気になるのであった。

せいぜい 3mm 厚のアルミ板をくり抜ければ良いと思っていたので、12mm 厚のアルミが削りだせるとは朗報だ。30 時間もかけて削り出す根気はないが。また、エンドミルについては aliexpress でも高いものは確かにある。そういう高いものを使わないと話にならないのかどうか? まぁ高いものはもちろん、安物であっても折るのは嫌である。aliexpress で買うから時間がかかるのだ。多分経験を積んではじめて折らないようになってくるのだろう。初心者のうちは折りまくり? 折れる兆候が回転数の低下のような気がするのだが、細いエンドミルだと、たとえ兆候があっても微妙なものだと思える。そういうものを検出できるのかどうか? 他には圧力センサをスピンドルに取り付けて・・・みたいなことも考えてみた。切削できてないのに動かそうとすれば圧力が上がるはずだ。しかし、3軸の圧力を検出するのは難しそうなうえ、センサは熱に弱い。ちょっと無謀のような気がする。あるいは、6 Axis センサを付けて スピンドルが変な挙動をしていないか監視するとか。

さて、エンドミルだが 2mm というのを多用する方針にしようと思う。基板を作ってもミリングは 1mm なんだから、それ以下のものは、基本不要だろう。プロでも 1mm ということになれば、初心者が小径のものを使うのは無謀だろう。きっとせいぜいが 2mm なんだろう。




アプリについて

3D CAD がまず必要で、「Fusion360」が有名。趣味で使う場合は、3年間無料。64bit Windows 専用。3年間というのが引っかかる。他にもあるだろうし、2D で済むような場合、EAGLE も使えるかも知れない。それはともかく、生成物は Gコード というフォーマットにするらしい。

Gコードを入力し、CNC を動かすソフトが別に必要になる。コントローラは GRBL なので対応したものを選ばなくてはならない。
grblControl
  - Qtベース
Grbl Controller
  - Qtベース
Universal Gcode Sender
  - Javaベース
bCNC
  - Pythonベース
  - 要 OpenCV -- カメラサポート
OpenCNCPilot

どうもこのあたりのようだ。カメラを付けたいわけで、bCNC 一択という気がするが、お手軽に使えるような気もしない。とりあえずは、grblControl を使ってみることになりそう。

    PC しか考えてなかったが、Android アプリもあるようだ。接続は Bluetooth 。ひょっとしたら、使い勝手が非常に良いかも知れない。

EAGLE の基板データを G-code にするのは、EAGLE 内でスクリプトで可能らしい。それが可能であれば十分ではないかという気がする。材料を正確に綺麗に切り抜く・掘るといったことはやりたいわけだが、それ以上のことをやりたい and/or やれるイメージがわかない。気が向いたら 3D には挑戦してみたいが、2D でやりたいことが沢山出てくるだろう。とりあえず EAGLE だけでできることを考えたい。

http://ehbtj.com/electronics/make-circuit-board-with-cnc/

ここを見ると、pcb-gcode をいうものが良さそう。(最新 v3.6.2.4) ULP だから改造もできるかも知れない。また、面出しアプリの紹介もある。基板製作では重要な作業だ。--- いや基板が作りたいわけじゃないが、基本として理解しておく必要はありそう。

この pcb-gcode はステンシル作成にも対応してるらしい。これはやってみたい。

・・・というか、普通の切削にも使えるのではないか? 原寸大なら 160mm x 100mm までのものが設計できる。それ以上の大きさだと ガーバーファイルをGコードに変換するツールが使えそう。

 ・http://eng.homuzorow.net/pyGerber2Gcode.html
 ・http://flatcam.org/

とりあえずは、pcb-gcode でできることのみ考えよう。

板材を一定の深さで掘る。あるいは切り抜く
 - 12mm とか 22mm とか刃の長さのエンドミルがあるわけだが、そこまで深く掘れるもの?
 - Milling レイヤーに描画し、エンドミルの直径と 深さを設定すれば良さそうな。
 - 面積が広い場合はどうなるのだろう?
 - 外形線では、マルチパスができると書いてあるのだが、Milling ではどうなる?
 - 外形線は、中心をエンドミルが通るんだった? それとも中心まで? 忘れてしまった。

これが出来ればそれだけで大満足という気はするが、ちょっと面積が狭いのが残念。例のスピーカーボックスを作り直すぐらいはやりたいのだが。

傾斜をつけて掘る
 - V字のエンドミルを使えば、それだけで傾斜が付くわけだが、自由な角度は難しい。
 - 深さと直径を変えて、いくつかファイルを作ればどうか?階段状になるが、ヤスリで仕上げれば。

スピーカーボックスでは、傾斜をつけて切ったことを思い出した。方法を知っておくと良さそう。

ハンコ
 - V字のエンドミルで掘ることにして、パターンに描き、ちょっと深めに設定すれば、出来そうな気が。
 - パターンはビットマップで作ったものを読み込ませる。
 - 外形線も使えば、木のブロックからハンコを切り出せる?
 - 板材は、版画用シナベニヤで練習。慣れたら、ヤマザクラ、朴(ほお)、桂(かつら)の合板や単板を使いたい。

せっかくだから、ハンコを作ってみたいのだが、一般的なハンコの長さを確保できない。テーブルに穴をあけてしまえば、棒を差し込むことで出来ないことはないが ... どうする? 位置合わせもどうしたら良いものか。木のブロックから削り出してみたいような気もしているが、刃の長さが制限になって 2cm まで。

(追記)
pcb-gcode を使ってみたが、期待したようなものではなかった。うーん。

基板を作る場合は、パターンの周りを掘るわけだが、マルチパスというのは、絶縁を確かにするために、もう一段外周を掘るものみたい。深く掘るために何周も掘ることではなかった。outline とか書いてあったので、基板の外形線のことだとばかり。で、外形線(dimension) についてはなにもしてくれない。

ステンシルについては、tcream レイヤの図形の外側を残すように掘る。これも当然1パス。しかも、pcb-gcode が期待していない図形を描くと変なのが出力される。

milling も期待と違う。milling レイヤに線を引くと、線の太さは無視して 線の中心をなぞる。これも1パス。

パスを増やして深く掘るのは、g-code を変換するツールを作ればなんとか。指示した軌跡を描いてくれさえすれば少しは使えるかも・・・という感じ。どこまで使えるか検討しつつ、他のツールを探してみたい。

やっぱり、一旦ガーバーにして FlatCAM を使うのが良いのかも。画像みると、すごく高機能な感じ。ただ、ガーバー作ると手順が煩雑になって、躊躇してしまう。



材料と切削方法

 ・http://www002.upp.so-net.ne.jp/hard-and-soft/CNC3020/CNC3020.html

いろいろと記録を書いてあるところを発見。興味深い。

ポリプロピレン(PP) は、 意外にも切削に向いているらしい。ダイソーに 2mm 厚の PP シートがあるのだが、これで練習したら良いかも知れない。実用として使いやすいのかどうか?はよくわからないが、敷板にするとか、使い道はいろいろありそう。

高回転だと PP でも溶けてエンドミルに絡みつくらしいが、アクリルはもっとひどい。対策としては、切削オイルではなく水を使うのが良いらしい。

PPシートは入手した。透明と乳白色。サイズは、245 x 331 。ちょうどテーブルのサイズが2つ取れる計算。ただ、保管方法が悪く湾曲している。(ある程度?)平坦にする方法はあると思うので、なんとかしたい。



カメラマウント方法の考察



上で紹介したブログのマーティ氏は、こんなマウンタを作成してカメラを取り付けている。取り付けられる所は、ここか、もしくはモータ自体しかない。モータにカメラを取り付けても良いような気もするので スピンドルのモーター用ブラケットを物色してみた。



まずはこの2つ。モーターを取り付けているプラスチックが厚いので、左のタイプを取り付けるとすれば逆向きに付けるしかない。 5cm ほども 下方向に板が伸びることになるわけだ。エンドミルは 4〜5cm ぐらいあるわけで、使えないこともないかも知れない。右のタイプは、スマートに取り付けられるような気がするのだが、どうだろう? ただし懸念材料がひとつ。ER11 を取り付け済みのスピンドルは、ER11 がブラケットの穴を通らないといけない。実物がないし、できるかどうか ちょっと判断できないのである。

    ER11 は、ナット込みで 40mm 長 直径 19mm であった。写真判定だが、ナットを外した直径は、15mm ぐらい。ブラケットの穴は 直径 17.6mm なので、問題なく通る。なお、スピンドルの直径は 45mm 。右のタイプは、L金具のねじが、プラスチックの部分と干渉する。皿ねじを使うとか対策が必要。

あと、CNC を手に入れた後なら自作できるんじゃないの?という気がする。買うようなものではないかも知れない。

モーターに取り付けて大丈夫?という不安がないわけではない。が、モーターを回さずに位置決めするわけだから、使っているうちにカメラがずれていくとか、そっちの方。逆に、振動センサを取り付けられるとか、ブラケットの温度を測定して、過熱してないかモニタできるとか、利点もありそう。

    忘れてた。回転計も付けたかったのである。スピンドルのそばにマウントできるわけだから、検討しておかないと。構想では、ER11 の側面にイモネジがあるが、反射型フォトインタラプタでこれを検出して回転数を計測。反射型フォトインタラプタを付けるネジ穴を切る予定。

    ついでにカメラだが、8mm 角ぐらいのカメラにフレキケーブルが付いているものを入手している。カメラ部は両面テープが付いていて貼る構造だが、振動で動くのが嫌なのでポケットも掘りたい。



さて、もうひとつあるのである。これもそのままでは無理。なのだが、両側の板の間隔を広げるようにスペーサーを付ければいけるかも知れない。あるいは、この形状にヒント得て自作するか。

簡単だけれども、以上メモしておく。なお、検索のキーワードは、「motor blacket 775」

とりあえず、ホムセン見てきた。3mm 厚 100x300 のアルミ板が 950円。これを切り抜ければ良いわけだ。どうやってするのか研究しておこう。


他の案として、この 54x50x15のヒートシンクを加工してブラケットにできるとおもしろい。フィンを利用して フォトインタラプタを取り付けることも出来るかもしれない。問題は、はたしてそんなことが出来るのか?ということ。

    ググってみると、アルミ加工もなかなか大変そう。エンドミルが溶着して折れるとかなんとか。切削油をスポイトでたらすだけでも助けになるとかなんとか。

     ・ 2から3mmのエンドミル、切り込み0.05から0.1mm XY軸送り速度480mm/min z軸送り速度60mm/min。
     ・ 切り込み量0.3mm :切削送りスピード150mm/min:エンドミル直径3mm

    という情報も。他には、ボールエンドのエンドミルは向いてないとも。

    切り込み量は、溝を掘っていく場合の1パス分の深さだろう。フィンを切り取る場合は、また違う条件になると思われる。

    調べていくと、CNC2418 などは、スピンドルのパワーもないし、剛性も低めで、金属加工にはあまり向いていないらしい。ただし、時間をかけて切削するのであれば、できないこともないとのこと。

      中華775モーターは、仕様の記載がまちまちではっきりしないのだが、最大回転数は 8500 〜 13500 rpm と低めの記述があった。150W とも。同じサイズの マブチモーターは RZ-735VA で 最大回転数は 20000 前後 300W とも。これに交換すればパワーが得られるのかどうか? ドライバが 20A 流せないといけないし、これだけのために、20V 300W の電源が必要。もともと厳しそうな放熱も問題になる。元の中華775でも連続稼働は無理そうに見える。温度センサを付けて、過熱したら休ませるようにしたい。

      剛性については、足りないとどうなるのだろう? たわむことで精度が狂うとか、あるいは、振動・騒音? いずれにせよ、はっきりと違いが分かるものなのだろう。逆に分からないようなものであれば、あまり影響はないのではないか?

    やはり切り込みは、0.1mmで送り速度も 150mm/min とか 80mm/min が良いのだろうか? フィンを削っていく場合は? もっともっとゆっくりやるべきか。

    メモ:ある人は、卓上 CNC で 2mm φ1枚刃を使って 22mm/min , 切り込み深さ 0.14mm という条件にしていた。2枚刃であるなら 2倍の 44mm/min , 4枚刃なら 88mm/min が適用できる。回転数 は、2500 rpm とのことで、もし 2倍の 5000 rpm で回せるならば、送り速度も 2倍にできる。また、1mm φを使うならば、1/2 にしなくてはならない。





電源について

AC アダプタは付属しているようだ。24V 5.6A (134W) とかいう半端なもの。これで 1.5A x2 のステッピングモーター x3 と 150W とも書かれている スピンドルを動かすわけだ。ステッピングモータドライバの A4988 は、最大電流を 半固定抵抗で設定できるが、大丈夫じゃないような ... 。トラブったり壊れたりする可能性もあるので、ちゃんと調べておこう。

というか、スピンドル専用に電源を用意した方が良いかも知れない。たぶん、ステッピングモーターの動作に左右されて回転数が変わるだろう。これでは、どうやって使うのが良いかの知識が蓄積できない。ちょっと考えたい。

ちなみに、ステッピングモーター
・Model: 17HS1352-P4130
・Step Angle: 1.8 Degree
・Rated Current 1.33A
・Rated Voltage: 12V - 24V DC
・Holding Torque: 1.26N.m
・Shaft Radial force: 2.2Kg/cm
こういうものらしい。1.8度ということは1回転 200 ステップ。送りネジ?のピッチが1回転 2mm ということで 1ステップ 0.1mm 。仮に 1000 RPM で動かすと 2000 mm/min --- こんな速度で切削などはできないから意味ないが。

(追記) コントローラの写真があったので、じっくり見ると 電源回路は、24V 〜 36V → 12V のようだ。 XL4015 を採用して 容量は 最大 5A 。おそらくはこれをステッピングモータの電源に使用していて、スピンドルは入力の 24V を パワーMOSFET(IRF540NS) で PWM 制御。arduino の電源は、12V をレギュレータで 5V にしている。 ちなみに、IRF540NSを所定の性能で動作させるには、4.5V は必要そう。3.3V では駆動できない。

ということで、ステッピングモータが使用する電力は せいぜい 1/4 〜 1/3。 残りはすべてスピンドルに回る。 これなら、心配するほどのこともなさそう。


あと、コントローラには GRBL 0.9 という記載がある。スピンドルを PWM 制御できるバージョン。



アプリについて(2)

EAGLE は、DXF フォーマットの エクスポート・インポートが出来るようだ。例えば File → Export で 今見えているレイヤーを .dxf に書き込む。これを dxf2gcode で読み込むことが出来た。レイヤー名には、EAGLE の レイヤー番号が付いた。で、 dxf2gcode なのだが、まずスケールを変更できる。EAGLE 上では縮小して描き、拡大して gcode にすることが可能なようだ。また、Z 軸について 最終的な深さと 送りを設定できる。とりあえずこれだけできれば、材料を切り抜くことはできる。Windows(32bit) で簡単に動いたので、とりあえずはこれで行こう。
posted by すz at 21:49| Comment(1) | TrackBack(0) | CNC

2017年05月20日

バックロードホーンを作ってみたい

つれづれ日記を読んでいて、秋月で 2個 500円の 8cm フルレンジ スピーカーユニット F77G98-6 が良いものだと知り、ついつい買ってしまった。4個も。ついでに2個 300円の F02607H0 までも。

さて、どうすんだこれ。FOSTEX の エンクロージャー P800-E と組み合わせれば良いとのことだが、当然余る。実験用だとしても裸で使うのは抵抗あるし、せっかくだから、適当なエンクロージャーを作ってみたい。

最初は、バスレフで良いかと思って、ホムセンで板材を見てきた。6mm 厚 5cm幅(10cm幅) 910mm のやつが良さそうだ。側板は別途ということにして、10cm 幅だと 20cm x 30cm ぐらいの箱が作れる。6L ぐらいだから十分。ダクトは、百均の掃除機ダクトで良いだろう。側板用の板材も百均でいいや。まな板つかっても良いし。板材だけはホムセンのやつを使う。自分で切り出したりしたら精度が出せずに困ったことになりそう。

それでも良かったのだが、いろいろ調べていくうちにバックロードホーン型がいいなと思うようになった。オーディオテクニカの 「AT-SP30BLH」なんて製品や、箱根寄木細工バックロードホーン組立キット「HC-BR100」 なんてのを見つけて、小さくても良いのか。。と思ってしまった。

とは言え、お金をかける気はあんまりない。性能? とかもあまり気にしない。それらしいものになって、自己満足できれば良い。

 お題:6mm 厚 5cm幅(10cm幅) 910mm の板材と適当な側板を使って作ること。

この条件で検討することに。

というわけで、こんな感じのやつってのを eagle で描いてみた。1目盛り 20mm として、線の合計は 701 mm --- いけそうだ。デザインはできるだけ直角を使う方針で。ちなみにラフスケッチであり、計算とかはしていない。配置とか正確に計算して調整したいけども。右は左で描いたものを回転させた。角度は -10.224 度。この値も計算したわけじゃなくて、最初に引いた線の角度。たぶん右の置き方にするので、側板は 160mm 幅あればよい。

作り方は、あまり検討していないが、少なくとも実物大の型紙を印刷できるようにするつもり。あと、接着剤は、セメダイン コンクリメントが良さそうな気がしている。



板材の寸法を決めて、再度配置したものが完成。板材は、切りしろなしで 858mm となった。スピーカーを取り付ける板のディメンジョンも併せて作成し、原寸大の pdf を作成! これを型紙としてコンビニプリントで普通紙印刷する。

型紙をダンボールに張って、組むのもありかな・・という気もしてきた。練習してみたほうが良いかも知れない。

実際にやってみた(1)。液状のヤマトのりをダンボールに塗って貼ってみたところ。水分が多いのでシワができた。--- 失敗かも。スティックのりでないとダメか。

実際にやってみた(2)。ダイソーで強力タイプのスティックのりを購入。型紙のほうに塗ってダンボールに貼ってみたところ、なんか良い感じ。



こんなものが出来上がった。側板とガイド?を張り合わせたもの。あるいは溝を掘った側板というべきか。ダンボールはサクサク切れるので、楽にしかも精度よくできた気がする。
さて、これを組んでしまうのは、もったいない。実機を作る際の冶具になりそうなのだ。難を言えば、組む際に接着剤が付いてしまうと大変マズそう。

実際にやってみた(3)。

冶具を別に作ることに。ダイソーに PP シートが売ってたので 1mm 厚を選択。透明が良かったのだが、色付きしかなかった。ポリプロピレンなら、ほとんどの接着剤は付かない。ただ精度よくつくれるかどうか。ダンボールは柔らかいからぴったりでなくてもどうにかなる。PP シートは、カッターで切り出した後、修正しないと。どうなることやら。



この写真は修整後。2枚別々に切り出したのだが、かなりのずれがあった。しょうがないので2枚を貼り合わせて同じになるように修正。一応 6mmの板はスリットに入る。--- ちょっと修正は難しいというか面倒だった。スリットに入ると書いたが、歪めないとギリギリ入らないような感じ。

苦労したし、この型紙中心で行く。板も現物合わせ優先。



完成! 貼り合わせた状態で穴をあけ、分離した後スペーサで2枚を接続。これを中心に組み上げていく予定。



またもテスト。ダイソー カラーボードでやってみた。5mm 厚で薄い板にも関わらず、冶具を外すのが面倒だった。理由は接着剤の盛り --- 干渉しないように、接着部分が型紙にあたるところを切っておこう。後、組んでからの側板切り出しは、うまくいかない気がしてきた。やはり切り出すのが先か。

側板の選択



ホムセン行ってみたが、どうもしっくり来るものがない。板厚が 13mm とか厚いうえに値段が高い。15cm 幅の板ならいろいろあるのだが、16cm は面倒なことに。結局、百均のまないたで決定 -- スピーカ用としては適切ではないかも知れないが、工作が楽そう。この上に組み付けて、最後に切り出す。余った部分はスピーカーが付くフロントパネルにも使う予定。厚みがあるので設計図とは若干形が変わる。

    ちなみに上の写真は ミーツのものだが、ダイソーにも同一形状のものがある。

    そういえば、ホムセンにフローティング用の板があった。30cm 幅 180cm で 1000円前後。表面がすばらしいし、使いたい気がしたのだが、なんか合わない気がして今回はパス。メモだけしておこう。なんか安いような気がしたが、一帖 3000円 か。8 帖だと 24000円 --- やっぱ安いか。


ところで、このデザインだと 実にもったいない感じでまな板が余る。 F02607H0用まで同じデザインにすると 8枚まな板が必要で同じ形の端材が大量にでることに。それでは、あんまりなので、F02607H0用は、余った部分で作ることにする。
 お題:まな板の残りと 30cm x 20cm 6mm厚 MDF , 10cm幅の板の残りを使って スピーカBOXを作る。
これで検討してみる。

木材の反り

さて、実機を組みだしたのだが、木が反っている。側板用のまな板が1枚。内側に使う 10c幅の木の端も。
困ってしまったのだが、かたく絞った濡れタオルを乗せておくと直るらしい。水分で膨張するので曲がった内側に乗せる。2枚あるなら、()←こうなるように挟む。

やってみたところ、6mm 厚の板は、数時間で反対側に反るほど効果があった。まな板もおおむね OK 。

ほぼ完成!



写真は、最後の側板を付ける直前のもの。ターミナルを付け、ケーブルも配置。側板を付けたら最後、中はいじれないので、結構不安だったり。スピーカの取り付け穴は、ダイソー コンパスカッターで切り抜いた。結構根気がいるが、両面から切っていったところなんとかいけた。

後は、水性ニスを塗る予定。そのためには、まず整形、次に全体をなめらかになるよう紙やすりをかけて、「との粉」なるものを刷り込む。ニスはなかなか乾かないので完成まで日数がかかる。
    「との粉」だが、砥の粉だそうだ --- つまりは石の微粒子。木目を埋めて表面をなめらかにするものだが、塗料をしみこませない役割もある。塗るのは水性ニスなので、しみこまない方が早く乾くだろうという判断。さて、これは MDF にも有効なのだろうか? ついでに実験してみる。
    --- 調べてみると、「との粉」で処理した後、サンディングシーラーを塗るのが有効だそうだ。とりあえず今回は、「との粉」のみで行く。


やってみた。

「との粉」 20ml 弱に同量の水を入れかきまぜる。量的にこんなものかと思ったのだが、塗りすぎたようだ。乾いた後にサンドペーパーで落とすのだが、いくらでも落ちる --- まるで土くれを磨いているよう。あるサイトでは、全部落とすつもりで磨けばよろしいとのこと。もっと少量で良かったかも。



つぎに、ダイソーの水性ニス(けやき)を塗った。できるだけ薄くと心掛けたが、垂れないギリギリだったかも知れない。数時間たってだいぶ乾いてきた。スピーカBOX のほうは、綺麗な木目が浮き出てきた。表面は少々ざらつく感じ。MDF は、ザラザラ。これを2〜3日乾かして、サンドがけして 2度目の塗りの予定。MDF はどう仕上がるのか?塗膜はできているわけだから、いけるとは思うが、まぁやってみる。



2つめ完成! ついでに、 F02607H0用バスレフも1つ。
写真は、それぞれ2度塗り後乾燥中のもの。バスレフは、けやき→ウォールナットに変更。MDF の色が濃くしっくりこなかったので。あとスピーカの穴が左にオフセットされているが、前の設計で穴をあけたのを流用したため。ダクトは、トイレの詰まりを流すアレの柄。内径 19φ 4cm 。吸音材はマットを切ったもの。上下にだけ貼っている。

    ダクトの候補として、ダイソー クレイツールのパイプも良さそうだった。あるいは、これらのパイプを型に厚紙を巻き付けて紙パイプを作るのも良さそうに思えた。


アンプについて



とりあえず bluetooth スピーカーにしたい。それで、左のタイプを入手した。だが、どうもスピーカーケーブルが長い場合 LP フィルタが必要らしい。最初から右のタイプを買えばよかった。とはいうものの 普通の 10uH インダクタ使ってるみたいだし、手持ちがある。コンデンサを 0.1 uF にするとカットオフ 160kHz 。
    なんか、22uF を沢山持ってた。1.3A の小さいやつと 3A ぐらいの表面実装型。これと 0.1uF のフィルムコンデンサで作る。カットオフは 100kHz 程度。

アンテナになるのを防ぐだけだから、これでも良いのかも知れない。あとは、電解コンデンサが目立つ。左のタイプで良かったのだろうか? ちょっと不安。まぁでも、最終的には ESP32 で作りたいしダメでも無問題。

つくり終えて

精度よく作ろうとしたのだが、思うようには行かなかった。板が歪んでいたりして、完璧なのは難しい。ニス塗りもあまり上手に出来たとは言えない。少々残念ではあるが、まぁこんなものだろう。

さて、作成をしていて思ったのが、CNC があれば・・・みたいな。スピーカー穴のくりぬきも完璧だったろうし、側板に溝を掘ることで、組み立てに苦労しなかっただろう。また、固く重い板材を採用することも出来たはずだ。aliexpress を見れば、CNC1610 あるいは CNC2418 といったのが $200 以下で買える。Arduino 互換のコントローラ付きで、この価格。しかもレーザーモジュールをオプションとして付けられる。死蔵してしまいそうで躊躇しているが、いずれ検討してみたい。
posted by すz at 18:51| Comment(0) | TrackBack(0) | 日記

2017年05月14日

ESP32 でやってみたいこと

ESP32 でやってみたいことの覚書

1) bootloader - 起動の仕組みの理解 あるいは改造

ESP32 は、OTA -- Wifi からのプログラム書き換えができるらしいのだ。作ったボードは USB シリアルがないし、これを常用したいのだが、どういう仕組みなのか? 理解してないとなにもできない。

ちょっと調べただけだが、まず次のところに解説があった。
 ・ESP32 (4) – Flash, bootloader and FreeRTOS

ざっと説明すると、ROM 内の 1st stage ブートローダーが SPI FLASH から 2nd stage ブートローダーを読み込み実行する。2nd stage ブートローダー は、 factory app もしくは 2種類の OTA app から選択したものを読み込み起動する。OTA app が 2種類あるのは、書き込みが失敗したときの対策ができるということだろう。

2nd stage ブートローダー 0x1000
パーティションテーブル 0x8000
 nvs 0x9000 24k
 phy_init 0xf000 4k
factory app 0x10000 1M

基本はこんな配置らしいのだが、パーティション自体は別。app と data の2個のパーティションがあるらしい。

で、さらに調べると 2nd stage ブートローダー のソースコードが公開されていることが分かった。
 ・https://github.com/espressif/esp-idf/tree/master/components/bootloader/src/main

ソースコードがあるのなら、自分が使いやすいと思うブートローダーを作ることも可能だ。例えば、OTA で書き込んでそれを起動するようなものも作れそうだ。そこまでしなくとも、起動する app の 選択ロジックがどうなってるか調べるのにも役にたちそうだ。

    いきなり訂正。

    PART_TYPE_APP PART_SUBTYPE_FACTORY: factory app

    ということ。OTA も PART_SUBTYPE_OTA_FLAG/PART_SUBTYPE_OTA_MASK で 2 種類が認識される。

さて、

dram_seg (RW) : org = 0x3FFF0000, len = 0x10000
iram_pool_1_seg (RWX) : org = 0x40078000, len = 0x8000
iram_seg (RWX) : org = 0x40080000, len = 0x400

メモリ上は、このあたりを使うらしい。といっても、そもそもどこが RAM なのか知らなかった。

512KB の SRAM は、3つのユニットに分かれている。

dbus ibus
SRAM 0 192KB 0x4007_8000 ~ 0x4007_FFFF
SRAM 1 128KB 0x3FFE_0000 ~ 0x3FFF_FFFF 0x400A_0000 ~ 0x400B_FFFF reverse order (word-wise)
SRAM 2 200KB 0x3FFA_E000 ~ 0x3FFD_FFFF

なんだか複雑でよく分からない。慣れが必要そうだ。

さて、OTA だが、実際にどう使うのか?
 ・http://ht-deko.com/arduino/esp-wroom-32.html
 ・http://www.iotsharing.com/2017/05/how-to-update-firmware-ota-for-batch-esp32.html
ここに説明と具体例があった。

要するにライブラリはあるが、app から 呼び出してやらないといけない。動かないコードを作ってしまうと、USB シリアル使っていちからやりなおし。ブートローダーに OTA 書き込み機能を付けるか、2 つ目の OTA app を OTA 書き込み専用にするか。まぁ普通に考えるとリカバリ用を作るのが妥当なのだろう。

    ほぼなにもしないプログラム : 103362バイト(9% /1MB)グローバル変数 9432バイト(3% /294912)
    ほぼ OTA のみの プログラム : 448515バイト(42% /1MB)グローバル変数 37380バイト(12% /294912)

    448KB ! bootloader に組み込むなどとんでもなかった。OTA のコードなど知れているはずだから、FreeRTOS で 100KB , プロトコルスタックで +300KB ということなのだろうか? いずれにせよ、リカバリ用の OTA app を作って、bootloader では、どちらを起動するかのロジックをいじるってのが良さそう。

ちなみに ホスト側のアプリは用意する必要はなく、Arduino IDE から書き込めるようになっているらしい。そうであれば、環境さえ整えれば、USB シリアルレスで いけそうだ。




さて、実際になにをしたいか?

1) IP カメラ
まぁ取り立てて必要というわけではないが、車のバックカメラなんかは、あると良いかも知れない。

 ・https://github.com/igrr/esp32-cam-demo/blob/master/components/camera/ov7725.c

このサンプルコードを見ながら、いろいろやってみたいとは思う。

 ・Orange pi 用カメラ

ov7725 は fifo なしのを使う。だが割と高い。どうせなら、より高機能な ov2640 を使ったほうが良いかもしれない。幸いなことに Orange pi 用が割と安い --- 送料込み $8.28 (OPi を買うついでに set にしておくと $5 分ぐらい)。 実験用なら、やっすい ov7670 が良いかも知れない。ov7670 にもいろいろあって、24-pin フレキのタイプもある。互換性があるなら、ov2640 と入れ替えてテストするとかできるかも。

さて、aliexpress のカメラモジュールを見ているといろいろなタイプがある。ONVIF 対応の IP カメラが $10 ほどで買えたりする。さすがに、こういうのに対抗するのは難しいような。シリアルインターフェイスの jpeg 30fps のものもある。プロトコルは、vimicro VC0706 プロトコルというもの。先人が これを ESP8266 で IP camera にするようなことをしている。互換性があるものを作れたら良いのかも知れない。

    データシートを見ていたら、ov2640 は圧縮エンジンが付いている。JPEG stream がいけるとなると、ONVIF 対応も可能? やはりこちらが本命か。

    ov7670 の ピンアサイン は、aitendo のモジュールのデータシートに記載されているものが一般的なようだ。HDR というシルクがある ov7725 も同じ。そして、Orange pi カメラもおそらく同じ。ただし、電源回りは少し違うようだ。ov7670/ov7725 は、内蔵レギュレータがあり、レジスタの設定で ON/OFF できる。ov2640 もあるのだが物理的に配線が必要で、ON/OFF がレジスタではできない。もし配線されてなければ、core に 1.2v を供給しないといけない。
    1 NC
    2 NC
    3 D2
    4 D1
    5 D3
    6 D0
    7 D4
    8 PCLK
    9 D5
    10 GND
    11 D6
    12 MCLK
    13 D7
    14 VCC (2.8v)
    15 VCORE (1.8v - ov7670/ov7725, 1.2v - ov2640)
    16 HSYNC
    17 STBY_EN (PWDN)
    18 VSYNC
    19 RESET#
    20 SCK
    21 AVCC (2.8v)
    22 SDA
    23 AGND
    24 NC

ところで、これらカメラモジュールは 38mm 角のものが多い。なにか規格があるのだろうか? カメラ専用基板とか作りたくなっているので気になる。


    ELECROW が SALE をしているので、基板を作りたく。10cm x10cm 5枚だと、$4.9 + 送料 $6.42 の $11.32 で作成できる。で、ESP32 基板にカメラ用コネクタを追加したものを作成してみた。
     ・suzbrd_wroom32_v1.2-out.zip -- 提出ファイル
     ・suzbrd_wroom32_v1.2.zip -- eagle ソース
    カメラの信号の割り当て
    1 NC
    2 NC
    3 D2 IO14
    4 D1 IO12
    5 D3 IO13
    6 D0 IO15
    7 D4 IO16
    8 PCLK IO17
    9 D5 IO4
    10 GND
    11 D6 IO35
    12 MCLK IO5
    13 D7 IO18
    14 VCC (2.8v)
    15 VCORE (1.8v - ov7670/ov7725, 1.2v - ov2640)
    16 HSYNC IO19
    17 STBY_EN (PWDN) pull-down
    18 VSYNC IO21
    19 RESET# IO2
    20 SCK IO23
    21 AVCC (2.8v)
    22 SDA IO22
    23 AGND
    24 NC

    こんな割り当て、VCORE には 3端子レギュレーターを付けることが可能で、AVCC は LC フィルタを通して供給するようにした。それは良いのだが、余ってる I/O はかなり少ない。この形状にする必要はあったのか?少々疑問ではある。

    ところで、SOT23 のレギュレーターをパターンに入れたが、適合するのがあまりない。MCP1700 もしくは、AP2120N ぐらい。内部レギュレータがあるのに、必要なのか?という疑問があるのだが、OV2640 のモジュールは、普通レギュレータが 2つ 3つ載っている。3.3V → 2.8v とかがまずひとつ。2つあるってことは、3.3v → 1.2v なんだろう。3つあるやつは、AVCC かな。さて、OV7670 は内部レギュレータがあって ON/OFF できる。ちなみに、VOUT に高い電圧がかかった場合、なにも起きないはずなので、OV7670 に切り替えてテストする場合も1.2V レギュレータを付けておけば良いのだと思う。


ところで、サーボモータで制御するカメラ台というものがある。


このカメラをマウントする部分につめがあるが、どうも 10mm高 3cm x3cm のカメラモジュール用らしい。これに直接マウント可能なカメラ基板を作ってみたいような。サーボ制御用のコネクタも付けてしまえば、電源ケーブルだけのシンプルなものになる。だだ、そこまでやるなら、カメラをちゃんと動作できてソフト開発も完了してから。幸い最近木工を覚えた。多分、桐まないたの端材でマウンタを作れば上記の基板でもいけるだろう。

あと、サーボに SG90/MG90S は使えるようだが、どうもきっちり適合しない。ひょっとして ES08MA II が適合するのかも。(間違い)。MG90S や ES08MA II は問題ないのだが、SG90 は、静止に問題があるかも知れない。カメラ用としては致命的。できれば 避けたほうが良いのかも。

    2017/7/5 追記


    Orange pi i96 というボードが出た。価格 $8.8 + 送料、サイズ 60mm x 30mm 。Wifi+Bluetooth とカメラインターフェイス。おそらくだが、カメラインターフェイスは、今までの OPi シリーズと違って、上記のカメラモジュールが直接接続できる。今までは 電源を直接供給しておらず、変換ボードが必要だった。が、2G IOT から、2.8v と 1.8v を供給するようになった。i96 も 同じ SoC RDA 8810PL 採用なので、カメラについても同じだと思われる。


    2G IOT の回路図はこうなっている。1.8V / 2.8V は、RDA 8810PL が供給しているようだ。この 1.8V がプログラマブルならば、ov2640 も接続できるかも知れない。
    あと気になったところは、AVDD 。 10Ω + 10uF の RC LPF で済ませている。 設計した ESP32 は LC LPF を付けているが、時定数が適当だったので、見直してみたい。

    さて、このようなボードが出てくるとなると、作ろうと思っているカメラボードについて再考しないといけないかも知れない。というか OPi i96 がカメラボードそのものに見える --- これ使えば良いじゃないと思えて来てしまうのである。

2) bluetooth スピーカー あるいはイヤホン

bluetooth のデバイス作れるのだから当然やってみたい。このあたりは先人が既に作っているから、楽だろう。慣れるために手を付けたいわけなので、外部 DAC じゃなくて、内蔵 DAC もしくは、1bit シグマデルタでやりたい。シグマデルタは GPIO を叩くライブラリがあったはず。RMT を使ったものはまだないかも知れない。

 ・事:ESP32でBluetoothイヤホンを作ってみた – Qiita
 ・ESP32でI2S+DACを使う – Qiita

 ・https://github.com/espressif/esp-idf/tree/master/examples/bluetooth
このあたり。

3) bluetooth キーボード

キーボードというか HID デバイスを作りたい。自由に作れるようになれば、かなり応用が広がる。ゲームコントローラに仕込んで、なにか遠隔操作するとか。あるいは、Android を遠隔操作するものとか -- 赤外線ハンドルリモコンのブリッジとか。

 HOGP -- HID over GATT Profile を使うらしいのだが、あまり情報がない。誰かの実装まち。

4) その他 bluetooth デバイス

 bluetooth デバイス はまだまだある。USB シリアルの代替につかえる bluetooth シリアル とか。

 ・http://anoda.cocolog-nifty.com/mad/2017/06/esp-wroom-32blu.html
SPP が使用可能になったそうだ。

ところで、USB シリアルの代替ならば、Wifi でもいい。
 ・http://www.eterlogic.com/Products.VSPE.html
Virtual Serial Ports Emulator なるソフトは、Windows から COM ポートとして接続してくれるので、既存のソフトが使えるようになる。例えば 中華CNCのコントローラは、Arduino だったりするので、代替できるものが作れるかも知れない。

    というか、もし中華CNCを買うなら、代替コントローラ作ってみたい。まずは、無線化した同等機能。できれば、モータの回転数をモニタして、過負荷を検出 -- 動かす速度を落とす...みたいな機能とか。あとは、原点を検出するような機能とか。さらに言うと材料との位置合わせのためのなにか?

    ググってみると、原点検出は標準的な機能らしい。透過型フォトセンサなどを取り付けている人がいた。Z軸はより容易なようだ。テーブルの精度(高低)を測定したりも可能。自機で削って公正している例もあった。また材料との位置合わせのためにUSBスコープを取り付けてる例もあった。モータの回転数も測定してる人はいた。これをフィードバックして制御するような例だけ見つからなかった。

    顕微鏡まで付けるとなると ... 1台のESP32 では荷が重い。じゃぁ2台? CNC が既にある前提なら 顕微鏡すら自作できるかも知れないし。

5) lowspeed USB HOST/device

ESP8266 でも ソフトUSB ができるそうだが、ESP32 でもたぶんできるのだろう。そのためには、CPU を1つ占有してブン回さないと。

 ・https://techtutorialsx.com/2017/05/09/esp32-running-code-on-a-specific-core/

とりあえず、コア指定でタスクを動かす方法。これが出来たうえで、同一バンクへのメモリアクセスが競合しないようにする。そこまでできれば、ESP8266 と同じ条件になるはず。あるいは、RMT を使うとか。



基板づくりメモ

先日はじめて ELECROW を使ってみた。使ったのは、special offer というので、10cm x10cm 10枚が、$9.5 +送料 $3.3 =$12.8 で作れた。(今は送料$4.8 計$14.3) 。AIR MAIL でも 2週間かからなかったし、シルクの品質にも満足。さらに今は、5 枚までなら、カラー基板がさらに安くなっている。

 https://www.elecrow.com/5pcs-2-layer-pcb.html

$4.9 が基本価格で、送料は 5cm x5cm $3.72 , 5cm x10cm $4.98, 10cm x10cm $6.42 。

milling を使った疑似パネライズが OK らしいので、便利に使えそう。
posted by すz at 21:49| Comment(0) | TrackBack(0) | ESP32

2016年12月04日

MINI-360 DC-DC コンバータモジュール

別記事でも同じ内容で書いているのだが、独立させた。



aliexpress で 「MINI 360 DC」 で検索すると見つかるのだが、10 個で $3.27 とか超安価な DC DC コンバータ モジュールがある。IC 自体は MP2307。4.5 〜 23V の電源入力レンジ。放熱が十分であれば、連続3A(ピーク 4A) の出力が出来る。ただし、ICの性能であって、モジュールではインダクタとの組み合わせで 上限が決まる。

このモジュールをよくよく見ると、空きパターンがあるタイプがある。多分古いタイプで、空きパターンがない方が来る可能性が高い。


裏面はこんな感じで、なにもない。なお、モジュールのサイズは 17mm x 11mm でかなり小さい。

さて、これは半固定抵抗を使っていて、ある意味危険である。出力電圧の上限を設けるように改造することを推奨する。



出力を 半固定抵抗 150k と 8.2k で分圧して FB に入力している。(FB 電圧 0.925v)。半固定抵抗 とパラレルに 2012 サイズの抵抗を付けるのである。

計算上は、
56k パラ : MAX 5.52v
33k パラ : MAX 3.97v
27k パラ : MAX 3.51v

となる。実際やってみたところ 12V 電源で、5V 系は 5.33V まで。3.3V 系は 3.34V までとちゃんと制限できた。

5V 系は 5.5V 以上になるのは危険だが、厄介なことに、5.0V は嫌で 5.3V とか少々高めにしたかったりするので、上限が低いのも困る。

これらの抵抗値のものは、入手しにくいが、aliexpress だと、例えば この25種 が $1.88 と安価に買える。
15K 18K 20K 22K 24K 27K 30K 33K 36K 39K 43K 47K 51K 56K 62K 68K 75K 82K 91K 100K 120K 150K 180K 200K 220K


また、EN ピンを GND に落とすことで 出力を OFF に出来る。入力電圧でプルアップされているので、実際に使う場合には、トランジスタか FET を介してスイッチするのが良いだろう。



本当に 2A 連続出力可能なのか? テスト。


USB resistor というのを入手できたので、試したみた。1A は問題なさそうに思える。2A の設定で 2.3A とか流れるのだが、しばらくすると一瞬切れてまた 出力されるのを繰り返す。

もともと、モジュールの説明では、 1.8A (3A MAX, can not be prolonged) となっている。本当にそんな感じだったわけである。

良くわからないのだが、インダクタがしょぼい? データシートでは 10uH 4A が例として載っている。MINI-360 は四角いシールドタイプで 7mm 角。スミダの CD75 がサイズが近いのだが、2.3A 。MINI-360 だと 1.5A とかそんなものかも知れない。インダクタが飽和すると、どんどん効率が落ちて発熱がひどいことになるのかも。

CD75 サイズのインダクタを入手して、交換してみたい。でも、交換するには、半固定抵抗も外したうえで、出力の大きいハンダごて 2本が必要だろう。IC を外してみるより嫌かも。( IC の方、恐らく裏面のサーマルパッドはなにも処理してない。基板と接触していない可能性まである。一回外して付け直したいような気がしている。)



このモジュールの使い道だが、アイドル時でもそれなりに電流が流れるようだ。データシートでは 1.3mA 。小電力装置のバッテリー駆動には向かない。

取柄は小さく安いだけかも知れない。1A で良いなら 他にも選択枝があり、さらにコンパクトにできる。今日び 2A 以上のものが求められているわけで、その目的には少々荷が勝ちすぎている。

3A 流せるチップには、MP1584 というのもある。これは 同期整流型ではなく、外付けダイオードが必要。なのだが、周波数が高い。--- 同じ大きさのインダクタでも、より電流を流せる。


aliexpress でも 「MP1584 module」 で検索すれば、$0.60 ぐらいのものも見つかる。サイズは 22mm x 17mm で MINI-360 の面積2倍。アイドル時の消費は 0.1 mA でモバイルにも向いている。大電流もOKで、こちらの方が断然良いのかも知れない。


ただ、最大電圧を変更する改造は、少々厄介なようだ。現物を持っていたので、調べてみたのだが ...

 VOUT -- VR -- FB --- 8.2K --- GND
こう接続されている。VR の空いている足が VOUT につながっているので、抵抗を VR に直付けすれば良いのだが ... 逆にVR の抵抗値が良くわからない。(外さないとわからない)。 出力は 0.8v 〜 20V まで というのを信用すると 200K のはず。
計算上は、62k をパラに付けると 最大 5.40V なのだが...
  62k 5.40v
  39k 3.98v
  33k 3.56v

データシートを見ると、出力電圧に対していろいろと値が変わるのも気になる。外付け部品が多く、それらの変更で特性も変わる。12V → 5.2V で 4.7uH(or 3.3uH) を使い最大の電流を取り出すにはどうしたら良いのだろう? もう少し検討が必要だ。



リポ電池を使う場合、電圧は 3.1 - 4.2v ぐらいの範囲になる。3.3v 系は割と都合が悪い。ただ、3.3v 系も 2.7v - 3.6v と動作電圧範囲が広いものが結構ある。Mediatek のスマホなどは、I/O 電圧を 2.8v にして バッテリーが 3.1v になるまで降圧だけで使う。その他 PMP やタブレットで良く使われている 統合PMIC の AXP シリーズなんかも、降圧だけで使っているような感じ。

別に降圧型だけでいけるとは思うのだが、aliexpress で面白いモジュールを見つけた。
「DD1205UA」で見つかるのだが、
 「1-6V to 5V buck boost DC DC converter Voltage Board for portable Solar Charger」
というもの、IC は1つで、インダクタが2つ付いている。

同じ IC を使った、DD0603SB というモジュールも発見。こちらは、3.3V とか 3.7V 版がある。
posted by すz at 22:04| Comment(1) | TrackBack(0) | PMIC

2016年12月02日

簡易 UPS の検討

電子工作では、いつでも電源をどうするかという点で悩むわけだが、さらにバッテリー駆動したいとなると頭が痛い。定番というものがあれば楽なのだが。カテゴリ PMIC で何が良いか探っていきたい。

さて、最近知ったのだが、ダイソーの300円モバイルバッテリーがあるそうだ。この記事を見ると、FM6316FE というチップが使われていて、充電と 5V 昇圧ができるみたいだ。

aliexpress で検索しまくったついでに、みてみると 20個 $3.1 とかで買える。昇圧用のインダクタは、kicc というショップが安かったり。
 ・https://www.aliexpress.com/store/821060/search?SearchText=CD54+3R3

データシートを見ると、モバイルバッテリー用だけあって アイドル時は、16uA (0.016mA)しか消費しない。5V 出力は 1A とまぁまぁ。

興味がわいたので、買ってみたり。で、どうしよう。




ただのモバイルバッテリーを作ってもしょうがないのである。市販のやつを買えば良い。で、考えたのだが UPS にするというのはどうか? 充電と出力を同時に出来るようにするだけなのだが。


一番簡単なのは、ダイオードで 5V 入力 と 昇圧出力をつなぐ。だが、問題が2つ。ひとつは Vf 分の電圧降下。もうひとつ、5V 入力の電圧が昇圧出力より低いとき、昇圧出力が使われるという点。こうなると、バッテリーへの充放電が同時に起きるから、まずいような。

で、MOS FET スイッチを付けることを考えてみた。5V 入力 の方は、ドレインが出力側。ボデイダイオードがあるから OFF でも電流は流れる。ON にすると 電圧降下が無視できるほど抵抗値が低くなる。昇圧出力側は逆にする。OFF のとき 出力させない。

これの制御をどうしたら良いのだろうか?


考えてみたのだが、 5V入力が 昇圧出力より 0.6V 下がれば PNP トランジスタが ON になるという回路は簡単だ。

PNP が ON になれば、5V入力 側 PCH のスイッチ を OFF にできる。もうひとつ Nch FET を追加して 昇圧出力側を ON にすることも出来る。

これで行けるのだろうか?ちょっと自信がない。

5V入力が切れれば、出力も下がっていって 0.6V 下がったところで PNPトランジスタが ON になり、5V入力 側 PCH のスイッチが切れる。一旦そうなれば、出力からの逆流が起きないから、スイッチが 再度 ON になることはない。

では、ちゃんとスイッチが切れるのか? 昇圧出力も ON になるから、そちらが先だと すぐに回復して 逆流によって 5V入力側が切れないとか? そうなるとまずそうな。

どうも、昇圧出力の ON のほうが条件が良い。これで頑張っても安定して動作させるのは厳しそうな予感。5V_IN の方は、諦めてダイオードでいくしかないのだろうか?



ところで、OPi Zero の回路図に似たような目的の回路がある。目的はなんとなく分かるのだが、最初回路が理解できなかった。後で、カレントミラーだと分かった。
なんとなくの理解:R10 と R12 に同じだけ電流が流れる ... ということは、電圧が 5V_IN = 5V_OUT となってるはずだ。また、5V_IN だけが OFF になれば、Q2 は ON になり、Q6 は OFF 。



結局これで良いのでは?

点線内は、純粋にダイオードの性能を良くする代替回路。こんなもの 5V_IN の電圧を上げれば済む話。でも、そうできない事情もあるだろうし、オプションとして使えるようにする。
回路図で BCM856BS とかになってるが間違い。BCM856DS でないとパターンに合わない。で、かなり高い、30個 $5 とか。digikey だと一個 51円也。 代替品もなさそうだし、無理して組まなくとも良いかという気になってくる。しかし、うまく行くなら結構役に立ちそうだし、ちょっと悩む。

ちなみに、PCH には、AO3415A(20V 5A) を使う。これも aliexpress で安く入手可能。秋月の IRLM6402(20V 3.7A) でも全く問題ない。NCH は、 BSS138 とか。

ひとまず回路は完成。5V 1A では面白くないというのであれば、こんなニコイチ IC を使わずに別々にする。昇圧 2A だと、MT3608 とか SX1308 とか。 (この2つ同じもののような ...) ちなみに スイッチングが起きないと消費は 0.1 mA 。僅かでも 出力を消費すると スイッチングが起きて 1.6mA になる。なお、この回路は、昇圧出力OFFのとき 電流は消費しないので たぶん 0.1mA で済む。ならば、充電回路との切り替えは特に意識しないで良い。


aliexpress で MT3608 を検索すると $0.36 とかの格安のモジュールが見つかる。安いものの形状は2種類だが、いずれも 22uH を使っている。データシートでは 4.7uH 〜 22uH となっているが ... この大きさ (たぶん CD54 or 7mm角シールド付き)では、たいして電流を流せないだろう。 1MHz 1A の FM6316FE ですら 3.3uH 3A なのだから、4.7uH 4A ぐらいのものが必要ではないだろうか?
いや MT3608 は 1.2 MHz だから 3.3uH でも良さそうな。current limit は 4A だから、4A の2割ぐらい小さなものでも大丈夫。 --- CD54 3.3uH 3.7A に交換すれば 2A いけるかも。

SX1308 のモジュールだと、$0.60 と少々高いが 4.7uH を使っている。こちらの方がたぶん目的に近い。


放電時は、アイドルでも少々電流が流れる。1mA ぐらいが目標で、昇圧回路と合わせて 2.5mA ぐらい。(上の回路図の抵抗値は適当なので信用してはいけない。) 。また、0.6V では落ちすぎとかであれば、TL431A を使って、最低電圧を決められるような回路にもできる。こちらも 1mA は必要。UPS であり、この程度は問題がないのであるが、もはやモバイルバッテリーとしては不適切な回路になっている。



さて、バッテリーをどうするか? UPS だから通電のまま放置である。そうなるとリポ電池は嫌。MiMH x3 で良いのではないか。どうせ 常時トリクル充電してるだけである。特に 秋月のやつは、電話子機用だしそういう用途で使えるもの。840mAH とかだが、30分も動作すれば十分だろう。2A 出力なら 15分だが、それでも十分に思える。

ただし、バッテリー動作であること、あとどれぐらい持つのか ... という情報が欲しい。
 ・ 5V_IN 電圧
 ・ バッテリー電圧
も出力するように考えておく。

ひとまずここまで。eagle で 基板設計までしたが保留中。FM6316FE ではやっぱり面白くない。2A が本当にいけるのであれば MT3608/SX1308 + LTC4054(互換品) + TL431A に変更したい。その確認は、くだんのモジュールを入手して実験してみて。... 先が長い話になりそうだ。




とりあえず、 TL431A に変更した回路。

5V_IN が来ている状態では、2.495 x 18.2/10 = 4.54v を上回るので、TL431A が ON になる。そうすると、NCH が OFF になり、PCH も OFF になり、昇圧5V が出力されない。昇圧5V が出力される場合、TL431A は OFF である。このとき TL431A は電流を消費しない。消費するのは R11 の抵抗のみ。こんなところで良さそうだ。

ついでだが、TL431A への入力は外部にも出力している。3.3V 系ならば、デジタル入力で 5V_IN ありなしを判別できる。



ついでなので、SX1308 + LTC4054(互換) を使った 2A 出力に変更した回路。MCP73831 となってるがこれも互換品だから気にしない。

FM6316FE 用を全部流用して単純置き換え。3.3uH 3A と書いてるが、たぶん 3.7A 。後で知ったのだが、aitendo でも CD54 3.3uH を扱っている (10個 100円) 。データシートもあって 3.7A だそうだ。

あ、FB だけは違う。SX1308 の FB 電圧は 0.6v なので、0.6 x 85/10 = 5.1v になるようにしている。




全部流用と書いたところで、FM6316FE と SX1308 + LTC4054(互換) の両方のパターンを載せられると思いつき、基板修正。これなら発注しても良いか。ちなみに基板サイズは、47mm x 36mm 。
 ・mini_ups_2a_v1.0.pdf --- 回路図
 ・mini_ups_2a_v1.0.zip --- eagle ファイル
 ・mini_ups_2a_v1.0-out.zip --- 提出ファイル

ただ、これを作ったとして、どう使うか全然イメージできてなかったり。たとえ 5V 2A 出力可能だったとしても、クラスタボードには使えないし。


大失敗。2A と書いているのにダイオードが小さすぎ。SOD123 とか無理にもほどがある。... と言っても 2A,3A 流せる製品がないわけではない。後で修正はするが、ちょっと検討してみる。

ともかく、aliexpress で買えるものを検索。
どうも 3A 品は、DO-214AA なんてでかいパッケージの SS34 が多いのだが、中には DO-214AC というのが安価にある。 「do-214ac Schottky diode ss34」とかで出てくる中には、100個 $0.99 なんてものも。ボードに適合する 「sod-123 Schottky diode」だと 安価なのは、1N5819HW で 1A 品。値段はやはり 100個 $0.99 がある。この辺を念頭において今後は基板を作ろうと思う。

さて、パターンに載るやつ。digikey で探してみると ON semi の SS34FA,SS36FA というのがあった。しかし、aliexpress にはなかった。ロームの RB50M-2y , RB51M-2y ならある。しかし、30 個で $9 とかそんな価格なのであった。

さすがに価格の差がありすぎなので、パス。頑張ってレジストを削ることにしよう。
posted by すz at 22:31| Comment(1) | TrackBack(0) | PMIC

2016年11月21日

OPi Zero クラスタボード(1)



OPi Zero クラスタボードの回路と部品配置が決まって来た。上のパターンは、INA219 の部分で、なんとか乗せることが出来た。まずは、ここらでスナップショット。 。パターンが出来ると発注したく .... 少々手直しは入れたが我慢できず発注!

 ・回路図:suzbrd_opizero_v0.06.pdf
 ・EAGLEファイル:suzbrd_opizero_v0.06.zip
 ・発注ファイル:suzbrd_opizero_v0.06-out.zip
今回は、ITEAD Studio にした。送料が $6.43 で合計 $21.33 。Fusion PCB(Seeed Studio)より少し安い。
v0.06 の問題点:
 ・ MINI-360 フットワーク の幅が 0.5mm 程狭い。0.35 inch ではダメで 0.37 inch ?

11/22 発注 11/30 発送 12/06 受け取り(予定)
 ・2週間ほどで受け取れるようだ。


時系列で思いついたことを記して来たが、よくわからなくなってきているので、まとめを書いておく。この記事は、変更があったら、訂正を入れる。

ボードについて


サイズは、99.06 x 49.53 mm 。これで FIX 。サイドに 2.54mm の余白を作ったので、PCBレール を使うことが可能。この上に 2つの OPi Zero を取り付ける。そのためには、13pin と 3pin のピンヘッダを取り外し、ピンソケットを下側に付けなければならない。
ピンヘッダを一本一本外すことは容易いが、スルーホールの中のハンダの除去が難しい。

左側の OPi Zero を ノード1とする。右側はノード2。基本的に対等ではあるが、一部違う所があり、普通はノード1がマスターになることを想定している。

ボード上にある3つの長方形は、MINI-360 DC DC コンバータモジュール。DJ ジャックの 12V (〜 20V) を入力し、OPi Zero と ボード上の USB に 5V を供給する。この DC DC コンについても改造が必要。1つは、EN ピンの引き出し。もう一つは、可変電圧になってる所を 確実に 5V にする改造 -- こちらは必須ではないものの、少なくとも 5V に調整済みのうえ取り付ける必要がある。
右側のエリアの前後に USB type-A メスが付く。DJ ジャック側を USB1, コネクタ側を USB2 とする。この2つの USB はそれぞれホストの切り替えが可能である。

この DC-DC コンは、aliexpress で MINI-360 DC DC で検索。
よくよく見ると、空きパターンがあるタイプがある。こちらの方が改造には都合が良い。 まぁ古いタイプみたいだから、写真はどうであれ、空きパターンがない方が来るだろう。

裏面はこんな感じで、なにもない。
IC自体 は MP2307 -- 4.5 〜 23V の電源入力レンジ。放熱が十分であれば、連続3A の出力が出来る。(ピーク 4A) 。だが、このモジュールは インダクタが小さいのでそこまで流せない。2.3 A は流せるが連続は無理であった。連続では 1.8A ということになっている。

電圧の設定は、出力を VR + 8.2K で分圧し FB に接続している。VR を外し抵抗と交換することで、固定電圧にする。
誤差を無視して計算すると、

39k : 5.32v
33k + 470k パラ: 4.98v
22k : 3.41v
22k + 470k パラ : 3.30v

こんな感じ。

上限を指定したうえで調整したいのであれば、VR とパラに 抵抗を入れる。最大出力が 17V であることから VR はおそらく 150k 。
56k パラ : MAX 5.52v
27k パラ : MAX 3.51v

この改造の方が良いかも。


2012 の抵抗を付けてみた。5番ピンがFB でそれが VR の右上に接続されている。だから、これでパラレルに接続したことになる。こういう改造なら、空きパターンのない方でも楽。

確認してみた。12V 電源で、5V 系は 5.33V まで。3.3V 系は 3.34V までだった。まだ回せるかも知れないのだが、だいたいこんなもの。作った 5V 系 は 5.22V に調整してタブレット用に使う予定。3.3V 系は ESP32 ボードに回す。

なお、2012(0805)サイズで、これらの抵抗値を入手するには、例えば この25種 が安価。
15K 18K 20K 22K 24K 27K 30K 33K 36K 39K 43K 47K 51K 56K 62K 68K 75K 82K 91K 100K 120K 150K 180K 200K 220K


2A 連続出力可能なのか?

USB resistor というのを入手できたので、試したみた。1A は問題なさそうに思える。2A の設定で 2.3A 流れるのだが、しばらくすると一瞬切れてまた 出力されるのを繰り返す。どうやら効率が急に落ちて温度が上がりすぎるようだ。データシートによるとサーマル・シャットダウンは 160℃。内部ではそこまで温度が上がってしまうということ。... というわけで少々当てが外れた。

信号線のアサインを後で説明するが、その前に、OPi Zero コネクタの信号線について

26pin CON 13pin CON 3pin CON
3V3(1) 5V (1)5V (1) GND
TWI0-SDA 5V GND (2) U0RX
TWI0-SCL GND USB-DM2 (3) U0TX
PWM1 U1TX USB-DP2
GND U1RX USB-DM3
U2RX IO1 USB-DP3
U2TX GND LINEOUT_R
U2CTS TWI1-SDA LINEOUT_L
3V3 TWI1-SCL TVOUT
SPI1-MOSI GND MIC-MBIAS
SPI1-MISO U2RTS MIC1P
SPI1-CLK SPI1-CE0 MIC1N
GND (26)SPI1-CE1 (13)IrRX

3pin には、シリアルコンソールが割り当てられている。13pin は、USB 2ch と アナログ系など。このうち USB の 4pin分のみ使用する。

26 pin は、デジタル系。すべての信号は、GPIO として使用できるが、専用の機能が割り当てられている。また、これらは 20mA まで電流を流せる。

機能として、2 つの I2C (TWI0,TWI1) 、2つの UART (U1,U2) 、および PWM1 を使用し、後は GPIO として使用する。



信号線の割り当てと機能

ノード1 U0TX - ノード2 U1RX
ノード1 U0RX - ノード2 U1TX
ノード2 U0TX - ノード1 U1RX
ノード2 U0RX - ノード1 U1TX
相手の コンソールを UART1 と接続してある。抵抗を間に入れるようにしており、接続しないことも可能


ノード1 U2TX - ノード2 U2RX
ノード1 U2RX - ノード2 U2TX
ノード1 U2CTS - ノード2 U2RTS
ノード1 U2RTS - ノード2 U2CTS

UART2 は、CTS/RTS も含め、相互に接続。抵抗を間に入れるようにしており、接続しないことも可能。CTS は、自ノード電源でプルアップしている。電源が入ったときに CTS が L レベルなら、ブートしないような制御にしようと目論んでいる。

ノード1 TWI0-SDA - ノード2 TWI0-SDA
ノード1 TWI0-SCL - ノード2 TWI0-SCL
まず、この I2C チャネルを使うために、OPi Zero の改造が必要。これらは、Zero 内で、自ノード電源でプルアップされている。共用して使うため、外さないといけない。プルアップはこのボード内の常設電源に対して行う。

このチャネルは、ボード内の いくつかのデバイスに接続できる。(オプション)。外部にも出力されていて、想定しているデバイスに接続できるようにしている。(後述)


R151,R152 を外すだけなので、比較的容易な改修。

ノード1 TWI1-SDA - ノード2 TWI1-SDA
ノード1 TWI1-SCL - ノード2 TWI1-SCL
ボード内では使用せず、外部に接続する。この I2C チャネルを使うために、OPi Zero の改造が必要で、プルアップ抵抗を外さないといけない。このプルアップの取り外しはリスクが大きく TWI0 のものより困難である。今のところ、どのように使用するか想定していない。

プルアップ抵抗を外さないと、片側が電源OFFのときプルダウンになってしまう。そのため、ボード内のプルアップも必要になる。それでも H が 2/3 VCC で通信が出来ない恐れがある。その上 通常時でも 1/3 の 約 700 Ωを駆動しないといけない。Zero 自体はいけるにしてもデバイス側は無理かも知れない。使えればラッキーというところ。


R153,R154 を外すのだが、横の R16,C14 にダメージを与えないようにしなければならない。特に R16 を飛ばしてしまうと起動しなくなる恐れがある。

PWM1
圧電サウンダを取り付け BEEP として使用することを想定し、トランジスタを介した出力になっている。これは、ノード1、ノード2別個にある。圧電サウンダを使う場合、パラレルに 抵抗もしくはインダクタを入れる。入れなければただのオープンコレクタ出力である。

MOSI(GPIO)
それぞれ相手ノードの電源を ON/OFF できる。Nch FET を介して MINI-360 の EN に接続されており、H にすると OFF となる。強制リセットの代替として使用。

MISO(GPIO)
USB1 を切り替える機能。デフォルトはノード1だが、L にすると、ノード2に切り替わる。共用なので H にしてはいけない。

IO1(GPIO)
USB2 を切り替える機能。デフォルトはノード1だが、L にすると、ノード2に切り替わる。共用なので H にしてはいけない。

CLK(GPIO)
ボタン1:外部にタクトスイッチを接続し、ボタン入力 として使えるが、L にすることで、リモートでのボタン押下にも使用できる。ノード1、ノード2共用。抵抗を入れてあるので、出力がぶつかっても問題ない。

CE0(GPIO)
ボタン2:外部にタクトスイッチを接続し、ボタン入力 として使えるが、L にすることで、リモートでのボタン押下にも使用できる。ノード1、ノード2共用。抵抗を入れてあるので、出力がぶつかっても問題ない。

おまけとして、ダイオードを通した外部出力ピンを持っており、ノード2から引き出したリセットに接続できるようにもなっている。このボードをクラスタではない使い方をしたときに、使うケースがあるかも知れない。(後述)

CE1(未使用)
唯一の未使用ピン。使うとすれば、リブート用。リセット信号を取り出しここにつなぐ。あるいは 割り込み割り当てて L になったらリブートさせる。後者は代替案であり、リセットほど強制力はない。でもリセット信号の取り出しが困難ならば、ないよりはマシだろう。


リセット信号がどこにあるかと言うと、C301 -- すなわち、CE1 の隣であった。CE1 につなぐのはどう見ても簡単。



クラスタ以外での使用方法

USB の切り替えには、NX3DV221 というチップを使用する。これの入手が難しかったりするが、それ以前にあまりに小さいためにハンダづけが困難である。そういう理由もあって、他の利用方法も検討している。

中央右、線が集中しているところが、NX3DV221 のパターン。基板は作れそうだが、実装は無理かも知れない。


クラウド
とにかく、多数の Zero を動かしたいという用途では、USB の切り替えはもとより、増設USB などいらないだろう。相互の再起動の仕組みや、コンソールの接続は有用だろうから、2つの DC DC コンだけ生かす。

こういう使い方では、13pin コネクタの取り外しも必要ない。まぁコンソール接続もいらないという場合は、 3pin コネクタの取り外しもしなくてよい。そういう使い方でも 電源が 2個に1つで済み、12V電源が使えるのはメリットだろう。

開発マシン+開発ターゲット

さらに簡略化して、DC DC コンを1つにする手もある。MINI-360 は、1.8A まで連続で流せる能力があるので、ノード1本体のUSB から ノード2の USB OTG に給電する。( ちなみに OPi Zero は ‘Armbian IoT settings’ だと アイドル状態で 110mA とかそのレベルらしい。)

相互接続も ノード2コンソール程度にしておく。運用ではあまり有用ではないのだが、1台を主に実験用に使うならば意味がある。

こういう用途でのみ、ノード2リセット信号の取り出し→ボタン2への接続を利用する。


I2C デバイス

EEPROM (1010xxx : 1010000 外付け / 1010001 内蔵)
クラスタを設計する場合、わずかな容量であっても共有ストレージが必要だろう。そのために EEPROM を接続する。接続可能なのは、正副2系統。幸いなことに、RTC + EEPROM モジュールが格安で手に入る。これを外付けにして正系とする。副系は、ボード内に付けられる。

正系が外付けなのは、このボード自体を交換する場合を想定してのこと。交換したらすべての情報がなくなるのであれば、復旧に手間がかかる。回路などないに等しいのだが、一応 DC DC コンが壊れる可能性がある。 また、このボード自体が実験用である。改修して交換みたいなことはするだろう。

... ということにしておく。実際の装置でも EEPROM をケーブルで接続し筐体に貼り付けるようなことをするそうだ。それがないと、ボード自体を交換したとき困るのは本当らしい。

この RTCモジュールは aliexpress で DS1307 を検索

DS1307 (1101000)

RTC モジュール。まぁあったほうが良いだろう。幸いなことに、必須とした EEPROM モジュールのおまけで使える。

スタンドアロンで使うものではないから、いらない場合も多いだろう。そういう場合は、正系 EEPROM も使えないから、ボードの副系のみで運用する。

追記:実は高精度のDS3231版のほうが安価だったり。

INA219 電圧・電流計( 1000x0x )
(1000000 NODE1, 1000001 NODE2, 1000010 USB1, 1000011 USB2)
オプションで、ボード内に4つ接続することを計画している。付ける場所は、Zero の電源入力に2つ。USB1,USB2 に2つ。

常時測定するような使い方はしないかも知れない。そして、INA219も小さいのである。ハンダづけが難しい。それ以前にアートワークが厳しく、パターンが入れられない可能性がある。
入手は、aliexpress で INA219 SOT23-8 を検索。

なお、安いモジュールもある。わざわざボード上に常設はしないが、測定したいという場合に使える。その場合も ボードに R100 -- 0.1Ω は付けておく。平行に仮付けして 0.05 Ωで計測。
こちらは CJMCU INA219 で検索。

SSD1306 ( 011110x )

表示デバイスが一切ないのは、実験用としても問題だろう。格安の OLED モジュールを接続することを検討。SSD1306 を使ったモジュールには、単色、2色、フルカラーがあるようだ。青+白2色を予定している。

aliexpress で oled module あるいは SSD1306 で検索

この 表示デバイスは、マスターとなったノードが使用し、運用に使う。デバッグにも必要であれば、TWI1 の方を使用する。


SPI-Flash

本体の裏に SPI-Flash を接続できるようになっている。これはブートも可能。クラウドなんかでは有用だろう。どうせ別に NAS がある。クラスタにおいても、USB ストレージを付けるのであれば、OS はそこに入れれば良いのだ。ノードダウンして切り替えるならば、もう一台が OS ごと引き継ぐ。スタンバイ側は、ストレージがないわけだが、マスターをNASとして使えばよい。こうすることで、micro SD が空く。

なんというか、本体が安すぎるせいで、micro SD が高価なものに思えてしまう。SPI-Flash の価格は、8MB が 10個で $4 ぐらい。4MB はもっと安く $4 も出せば 20 個買える。16MB は少し高く 5 個で $5 を超える。これらのうち標準的なサイズは 8MB である。1MB は U-boot で使うので、残り 7MB にカーネル+initrd を入れる。4MB でも良いとは思うのだが、足りなかったときどうにもならない。SPI-Flash を付けるのは比較的簡単だが、付け替えは厳しい。8MB にしておくのが無難。

ちなみに、ブートできないような状態になってしまっても、micro SD からのブートは可能で、いわゆる文鎮化は心配しなくて良い。

入手は、aliexpress で、25Q64FV, 25Q128FV あるいは W25Q32 を検索。



PCBレール

(aliexpress で PCB guide rail で検索)

PCB をマウントするものを探してはみたが、ピンと来るものが1つだけ見つかった。長さは 86mm で少し大きい。このボードを入れてもロックの位置にすらこないので、当て板が必要。

当て板は 2mm 厚 まで。長さは、おそらく 25mm ぐらいで端まで行く。外付けモジュールを付けるなら、もう少し大きく作って そこにマウントすれば良いと思う。

クラスタの場合、裸の 2.5in HDD もレールを付ければいけるのではないかと思う。そう出来れば割とすっきりまとめられるかも知れない。

で、これを何に取り付けるか? L アングルで良さそうな気も。


ケース

(aliexpress で aluminum box 105 で検索 、SZOMK AK-C-C69a:w105 h40 d92)

ケースなど必要なのか?という疑問はあるが、見つかったので書いておく。基板は入るが、高さがギリギリである。

イーサの HUB とか USB Disk とかを 組み合わせて 使うものだから、全体で様にならないと意味がないと思うのだ。でもまぁ一応。


そういえば、よくある安物の5ポートHUB 。こいつのサイズが、97 x 67 x 25 mm だそうだ。


他に、w105 h55 d150 というのも見つかる。これも溝があるので入れられそうだ。これぐらいの大きさになると、HUB と DISK も入れられて良いのではないだろうか。

ちなみに、100mm の基板は入るが、下のでっぱりと干渉しそうな。注意が必要。

100mm で思い出したが、100mm x 72mm の Pico-ITX のボードはギリギリまで部品が配置されてるものが多く(普通)入らない。これらのケース内幅は 98mm ぐらい。また、3.5 inch HDD は入らないが、HDD 用マウンタにも合わない。HDD は 101.6 mm だが、このケースは 106mm 。さらに、2.5 inch HDD は、作ったボードを入れると、タテにもヨコにも置けない。長さが 100.45 mm なので、重なるように配置しないといけない。なんとも中途半端ではあるが、100mm幅の板が丁度合うのは利点。2.5 inch HDD なら、板にマウントしてつりさげるような配置ができる。

ちなみに、Pico-ITX の SBC EspressoBin


ヒートシンク

( banggood で入手 )

一応書いておくと、ちょっと背の高いのが欲しかったので、40x40mm 11mm高のを 切りだして使おうかと。aliexpress でも heatsink 40mm*40mm*11mm で検索すると見つかるが、banggood のやつが具合が良い。フィン 13枚なのは同じなのだが、切り目?が 10本のが良いのだ。

追記:とか書いておきながら 35mmx35mmx17mm のタイプも買っていたり。


こちらは、aliexpress で 「heatsink 40mm 11mm」で検索すると見つかるタイプ。なにしろ安いので気軽に消費できる。
これを 図示したとおりにカットできた。道具は、万力+金のこ。飛び出している部分は wifi チップにかぶせる。これのマウントの方法だが、H2+ SoC に 両面テープ。そのままでは wifiチップも SDRAM も浮くので、0.5mm厚の放熱シート(シリコンシート または αGEL)を挟む。

ちなみに、フィンの数は 13 だが、削った方の切れ目が 8本のタイプと 10本のタイプがある。今回は 8本の方を使った。(2) で切りだした部分も、wifi にかぶらせる突起部がないだけで使える。というか、うまくやれれば 同じ形状を2個取り出せる。(1) と (2) を切り離さないようにすれば良い。あるいは、(3) の切り方を工夫するとか。

35mmx35mmx17mm も同じような形状を切り出せた。背が高くなってもかまわないなら、こちらの方が良いかも。



チップ抵抗の取り外しは、2本のハンダごてを使うと書いたが、ふと USB solder iron を検索してみたところ、$4 ちょっとで買えるようだ。

昔にあったタイプとは違い、こて先が交換可能になっている。(こて先も売っている)。 それだけ実用的に使えるということか?ちなみに、5V 8W で 15秒で使え 30秒で冷めるそうだ。キャップも付属していて、携帯するのに配慮されている。--- 携帯などしないが、すぐ仕舞えるのは便利。今はタブレットの普及で USB AC アダプタも高出力なものが多く使い勝手が良くなって来ているのかも知れない。

ちなみに昔のタイプを所有している。熱量は少々足りない印象だった。形状のせいか、つい先に触ってしまい痛い思いをした。さて、新しいタイプはどうなのだろう?

追記:新しいタイプが来た。早速電流を測定してみると 5.1v で 1.78A : 9W ほど。旧型も火を入れて見たが 1.0A 程度で 5W 。差は歴然で これなら使えるような印象。


ピンヘッダの外し方

戦々恐々としていたわけだが、そう難しいものではなかった。
簡単に言えば、一本づつ、ハンダごてを当ててラジペンで引き抜くだけである。問題は、基板とラジペン両方に力がかかること。両手を使ってしっかりとやらないといけないわけだが、その上でハンダごてを正確に当てる必要がある。ハンダごてを机に置いても出来るが、万力などで固定したほうがやりやすいだろう。

後処理は、はんだ吸い取り線を軽く使った後、無理そうなのは 0.8mm φ のピンバイスで力をかけずにえぐる。私は、ダイソーにあった「精密ハンドドリル」を使用した。

とか書いてみたが、実は練習での話。本番では、はんだ吸い取り線はあまり上手くいかず、だいたいは「精密ハンドドリル」のお世話になった。USB 顕微鏡で見てみると 一部ランドにダメージがあった。大丈夫だとは思うが、それほど完璧にできたわけではなかった。


posted by すz at 03:13| Comment(0) | TrackBack(0) | 日記

2016年11月04日

Orange pi zero



存在がリークされていた、Orange pi zero が発売された。価格は 256MB 版が $6.99 送料込みだと $10.1。512MB 版は +$2 の $8.99。
スペックは

SoC Allwinner H2(+) quad core Cortex A7 @ 1.2 GHz
Memory 256 / 512 MB
micro SD card slot
100M Ethernet
WiFi (802.11 b/g/n)
USB 1x USB 2.0 host
micro USB OTG port

26-pin コネクタ (Raspberry Pi B+ 互換、SPI1, UART1, UART2, TWI0, TWI1 )
13-pin コネクタ (2x USB 2.0, TV out, lineout, microphone, IR receiver )
3-pin コネクタ (serial console)

Power Supply 5V 2A via micro USB port (or optional PoE)
Dimensions 52 x 46 mm


HDMI がない代わりに イーサ も Wifi も付いている。それでいてお安い SBC (某 Zero とは違って複数買いも可能)。特筆すべき機能としては、PoE も一応可能という点。一応というのは、ジャンパしなければいけないのと、5V でないといけないという点。なんの保護もないから、5V以上を付加すると、5V系にすべてその電圧がかかる。ジャンパの箇所は、裏面左下の R29,R358 。

PoE は使ったことがないので知らないんだが、ここに件の DC-DC コンバータをつなげれば、電圧はある程度自由になる(かも)。あと、SPI Flash のパターンもある(SPI0)。ここからのブートも可能らしい。NAS を使い microSD を空けたい向きには朗報か?




回路図(pdf)
回路図を見ると Core 電圧は、1.1v と 1.3v の切り替えが可能。 3.3V 系の電源は、3 系統あって、SYSTEM,CORE,SDRAM を加えると 6 系統もある。(One もそうだが)チープではあっても、電源回路はちゃんとしている印象。あと、Oneの回路図にしか載っていないが USB の 5V 出力は、SY6280 という電流制限つきのスイッチICが使われている。Zero も同じかも知れない。 :間違い、後述。

さて、このブログでは使い方などには触れない。なぜ取り上げたかというと、その基板サイズ --- 5cm x 5cm に収まってるわけで、なにか基板を作ってみたかったり。

arduino ユニバーサル基板で示すと、多分こんな感じ。イーサ と USB がだいぶ背が高い。52 x 46 mm らしいが、コネクタがはみ出てる分が込みになっている。現物が来れば分かることだが、1.9 x 1.8 (inch) ではないかなぁ。


実は、NanoPi NEO という 少し前から発売されてた SBC もある。こちらも 256MB/512MB があって、$7.99 , $9.99 (ただし送料は $10) 。こちらの方が 40mm x 40mm と小さい。専用のヒートシンクとか ケースとかもあって、悪くない。何故 OPi Zero を選んだのか? というと、512MB が $5.9 で出るものとばかり 思ってたため。まさか Wifi が付いて、$3 も予定より高くなるとは! でも Wifi は $3 では買えないし、まぁいいかというノリ。あと、5cm x 5cm というのも基板的にでかい。4cm x 4cm では、入れられる回路が少なくなる。

作りたいものというと ...2台使ってアクティブ--スタンバイ クラスタにする基板 -- とか。
 1) シリアルを相互に接続。
 2) お互いの電源を OFF できる回路 (リセットがあると良いのだけれどない)
 3) USB host を切り替える 回路。
 4) 電源回路
 5) 表示用ディスプレイ(I2C)

3) は無理かと思ったんだけれども、例えば NX3DV221 -- これが aliexpress でも買える。だいぶやる気になってきた。XQFN10 というパッケージなんだが、0.5mm ピッチで サイドまで電極がある。ハンダづけは一応可能そうだ。
4) 電源は 2A では足りない。USB とも 別にして 3 つ DC-DC コンが必要か? 12V 2A (かそれ以上)から供給すれば良いだろう。件の DC-DC コンを使うとして、EN ピンを 引き出して GND にショートすれば OFF にできる。

件のDC DC コンバータとは、これのこと。前の記事で紹介した。

ちなみに、micro USB の VBUS が 5V ということになっていて、ピンヘッダの5Vピンと直接つながっている。となると ... ピンヘッダに5Vを供給する場合に、USB device として使うには? ... 無理かな。

1) のシリアルはどうしたものか? console 用が UART0, その他 UART1,2 がある。console を含めて接続してしまうかどうか? そうした場合、外部との接続はどうする?
console を接続しておくと、panic したときのログが取れるのである。通常時はどうにでもなる --- USB OTG ですら使えるはずだ(使えればの話だが)。... となると console ⇔ UART1 とか。UART2 同士も接続して おいた方が良いか。network を通したりするかも知れないので、CTS/RTS もある UART2 が都合が良い。

5) の I2C は共用で良いのかなぁ。まぁ基板上に置いても見えないわけで。そんなことより、I2C の RTC -- これを共用する。メモリエリアがあるタイプを選べば、状態を通知しあえる。I2C も2つあるから、1つは外部デバイスを接続できるようにしよう。
生きてさえいればシリアルで状態を通知できるが、死んでいると状態が分からない。最終状態を書き込んでおければ、起動して良いものかどうかが判断できるだろう。こういう重要な役割を担わせるのであれば、外部に出さない方が良い。そうなると I2C 2つとも使うことに。

ディスプレイは、こんなやつがある。OLED 0.96 in で 128x64 。サイズは 29.3mm x 27.57mm 。これはバックライトは必要ないが、別途 バックライト制御用の信号線が必要かも知れない -- メモ。

追記:RTC はヤメて I2C EEPROM にするかも。DS1307 が RAM もあって良いのだが、バッテリーを置く場所がない。電気二重層を使おうとも思ったが、それも無理。逆に EEPROM がやたら有用な気がしてきた。秋月で単価 20円のやつが 64kbit の容量がある。装置固有の情報を置いたり、ログを取ったり、相手装置からも読めるわけだし。RTC が必須の装置でなくなれば、外部I2Cにつないでも良いし。


ところで、1列のピンヘッダは上部に実装されてしまっている。これを下向きに実装しなおさないと。抜くのは1ピンづつやれば良く可能だろうが、穴を綺麗にするには? なんだか自信がないぞ。ダメそうなら、作成基板の下に付けないといけない。考慮しておかないと。

考慮といえば、コネクタの方向。イーサを後ろ向きだとして、DC入力や、USB はイーサと同じ向き。そうなると、micro USB や micro SD はフロントということに。USB disk と一緒に、ケースに入れたとして、基板のフロント側はアクセス性が悪い。メンテナンスの時のみアクセスするという位置づけで使いたい。

USB disk だが、例えば 左のケーブルから基板を取りだし、自分で配線することで、コンパクトに収まるかも。USB コネクタも付けずに直接配線すれば、接触不良のトラブルが起きにくくなる。あるいは右のケース。同じようにケーブルを直接配線したうえで、ケース上にこの基板をマウントするとか。
ただ、どちらの例も古いものなので、512B セクタの HDD しか使えない(だろう)。ところで、右のケースで USB 3.0 対応のものもある。その場合、付属のケーブルを使い コネクタを介さないと無理。USB コネクタの向きはよくよく考えないと。


これは、3.5inch ベイ用のマウンタだが、幅が 101mm 。上部にこの基板がマウントできそうだ。随分とチープな仕上がりになりそうだが、それも良いかも。

後は I2C ディスプレイ、フロント側にコネクタを出す。そういえばボタン。付いてないような。GPIO が余ってるだろうか?

26pin CON 13pin CON 3pin CON
3V3(1) 5V (1)5V (1) GND
TWI0-SDA 5V GND (2) U0RX
TWI0-SCL GND USB-DM2 (3) U0TX
PWM1 U1TX USB-DP2
GND U1RX USB-DM3
U2RX IO1 USB-DP3
U2TX GND LINEOUT_R
U2CTS TWI1-SDA LINEOUT_L
3V3 TWI1-SCL TVOUT
SPI1-MOSI GND MIC-MBIAS
SPI1-MISO U2RTS MIC1P
SPI1-CLK SPI1-CE0 MIC1N
GND (26)SPI1-CE1 (13)IrRX

使い道が決まってないのは、SPI1 の5本と PWM1,IO1 の計7本で、システムで必須な GPIO が相手の電源 OFF と USB 切り替え2本 。ボタンは付けられるとして2つぐらい。
どうしても足りないなら、I2C をひとつにしても良いが ... ボタンのスペース自体も足りない。

いろいろ考えるといきなり基板を起こすのは無理がありそう。件の DC-DC コンは 使えるのかどうかテストしないといけないし、USB device が使えるかどうかもテストがいる。USB スイッチも別途テストしたいし。なかなかに前途多難。本当のところは、基板を設計したいだけだったりするのだが。


ところで、クラスタにしてどうする? という話があるかも知れない。単に複数動かすのではなく、アクティブースタンバイ クラスタを意識した構成。まぁ実用上はたいした性能ではないし、堅牢かというと、そうでもない。ちゃんとしたものは恐ろしく高価なわけだから、手軽に実験ができる学習用という位置づけを狙う。USB 2.0 disk なら、まだ切り替えられるものを作れそうだが、USB 3.0 やSATA はお手上げ。この辺が落としどころかなと思う。

そういえば、Wifi も付いているのであった。これを外部とのアクセス用と決めれば、イーサの方はクロスケーブルで直結して、インターコネクト専用とすることも出来る -- メモ。
ただし、技適問題があるから、あくまで実験用と考える。あるいは、逆に Wifi をインターコネクト専用とする。アンテナを一か所に集めてシールドしてしまうのはどうか?。--- これなら、技適問題をクリアできるかな?


SPI Flash について。

 ・http://linux-sunxi.org/Bootable_SPI_flash
ここ見ると、U-boot を起動させるものらしい。SD boot が失敗したら SPI Flash からブートするとのこと。network boot が可能なんだろうと推測されるが、容量があれば、カーネル+initrd も入れておける。

U-boot だけなら、1MB で済む。カーネル+initrd が、7MB 以下になるなら 8MB を使える。SPI Flash は、16MB までの製品があり入手は容易。4MB のものは、中途半端らしい。

入手するには、aliexpress で、25Q64FV, 25Q128FV を検索。


OPi シリーズの Wifi モデルに共通の いかにもチープなアンテナ。いくらぐらいするもの?と思ったので aliexpres で調べてみた。



ようやく見つけたのが左端。同じショップで 他に違うタイプのを扱っている。これらは、5個で $11 〜 $12 だった。 日本で買うと 1つ 500 円ぐらい。結構するのであった。コストが上がるのであれば、Wifi などいらないとも思うのだが... Wifi なし 512MB バーションが安く出るといいなぁ。

感度は、3DBi と書いてある。真ん中の FPC タイプは、よく目にするが、こいつと同じぐらい。


USB OTG について

 ・http://forum.armbian.com/index.php/topic/1426-connect-orange-pi-one-through-usb-otg-with-a-computer/

ここ見ると OPi ONE で使えているようだ。ドライバーは問題なさそう。後は電源回り。

ONE/Lite は、電源入力として使えないと書いてある。Zero は 電源入力。回路も違う。
ONE/Lite では、HOST として使った場合、SY6280AAC を通して電源を供給する。そのための信号線は、USB0-DRVVBUS で出力電流は 680mA に制限される。ID ピンは、USB0-IDDET に接続され、デバイスが接続されたことを認識できるようになっている。DEVICE として使った場合は、VBUS は何も利用されない。ついでだが、標準タイプの USB の VBUS は、5V と直結されていて、電流制限はない。

さて、Zero の方、ID ピンは、USB0-IDDET に接続されている。ということは、デバイスとして使える。問題は、ピンヘッダから 電力を供給して、VBUS にも電圧がかかった場合。Pch MOS FET (AO3415A) が間に入っていて何か回路がある。どうも VBUS の電圧が高いと ON になって 内部に電流を取り込むが、VBUS の電圧が低い場合に電流が出力されないようにする回路に見える。要するに HOST として使う場合の方が問題がある。標準タイプの USB の VBUS は、5V と直結されていて、電流制限はない。

ちなみに、OPi PC と 最近発売された OPi PC2 -- これらは、USB すべてに SY6280AAC が入っている。ただし2段になってるポートは、合計での制限。電流制限は 1.1A 。micro USB は、One/Lite と同じで 680mA 制限。

さて、USB デバイスとして使う場合、g_ether を使えば、ネットワークも通せる。HOST 側には g_ether を使うドライバもあるわけで、HOST 用ケーブル+通常ケーブルで 通信経路としても使えるはずだ。
この SBC で最速のインターフェイスは、USB である。これに network が通るということは ... インターリンクには最適ということでもある(かもしれない)。ケーブルは自作してスマートなものにすることもできそうだ。
USB は、オーバヘッドが大きそうで、実際は最適というわけではなさそう。パケットは 512B までだし、性能的にも怪しい。

あと、g_ether は、標準の USB イーサ。Windows からも使える(はず)。ちゃんと使うには、ルーティングがネック。仮想マシンなどと同じ設定で良いわけだから設定レベルだとは思うのだが、私は良くしらない。
追記:Windows10 マシンと接続する場合、標準機能の「モバイルネットワーク」を使うそうだ。

ところで、SPI Flash でブートできて、USB デバイスになる --- ということは、なにか USB 装置を手軽に作れるわけだ。こういう役割を Rasberry pi zero に期待したんだが、買えないなら仕方がない。256MB もメモリがあるボードが $6.99 (数量を買うときは、送料分 +$1.75) で買えるわけだから、ベアメタル・プログラミングしてみるのも面白いかも知れない。まぁ initrd にアプリを突っ込んで、専用機に仕立てるほうが簡単そうだが。
実をいうと、自分で中途半端と書いた 4MB の Flash をなにこれ安いで買ってしまった。20個で $3.41 。そのときは知らなかったわけだが、8MB でも 10個 $4.2 程で買えるのであった。initrd + kernel で 3MB しか使えないので、どうなることやら。

ベアメタル・プログラミングとか書いたが、おそらくはカーネルドライバですべてを行う方が簡単。ダウンロードして insmod するアプリをでっちあげて arduino もどきの出来上がり ... とはいかないだろうか。

こうやって使うとき、背の高い部品は邪魔。外したからと言って消費電力が減るわけではなさそうなんだが、なんかすっきりしない。部品を外したり、壊しそうなことも含めて、いろいろやってみたい。


制御線案

SPI1-MOSI : H で相手ノードの電源を OFF (デフォルト は電源 ON) 
SPI1-MISO : L で USB1 をノード2に割り当て (デフォルト は ノード1)
 (入力) H マスターノード=ノード1、L マスターノード=ノード2
SPI1-CLK : L で USB2 をノード2に割り当て (デフォルト は ノード1)
SPI1-CE1 : H で 自ノード LED を点灯、

TWI0-SDA,TWI0-SCL : 内部用, ノード1,2ともに接続 I2C-EEPROM
TWI1-SDA,TWI1-SCL : 外部用, ノード1,2ともに接続

PWM1 :未定 ビープぐらいは欲しいし、圧電サウンダを付けられるようにしようかと
12Vも使えるわけだが、うるさいと困るし 5V で駆動可能に。

IO1 : ボタン入力専用
CON
|
+-- (pullup)
|
 IO1 --- R -+- R --- IO1

SPI1-CE0 :ボタン入力専用
|
SPI1-CE0 --- R -+- R --- SPI1-CE0

U0TX --- R --- U1RX
U0RX --- R --- U1TX

U1TX --- R --- U0RX
U1RX --- R --- U0TX

U2TX --- R --- U2RX
U2RX --- R --- U2TX
U2RTS --- R --- U2CTS
U2CTS --- R --- U2RTS

注意:SDA,SCL は、ピンを直結するわけだから、出力がぶつかるような使い方をしてはいけない。これは当然として、USB 切り替えも同じタイプの接続なので要注意。
それ以外でポートが壊れたりはしないように考慮はする。直結を避けて抵抗を入れるだけではあるが、接続したくない場合もあるだろう。こういうジャンパ的に使える抵抗は、裏面にもっていこうと思う。


リセットについて

OPi Zero は、ボタンが一切ないが、他のボードも リセットがないものがある。一体どうなってるのか?と思って調べてみた。



だいたいの回路図は、こうなっていて、C301 と R346 がパーツ名に使われている。回路的には、VCC-IO の立ち上がりを遅延させているようだ。 C301 と R346 が接続されている所を GND に落とせばリセットがかかる。


Zero で言えば、左上のココ。C301 と R346 が見える。

まぁこのボードでは、電源 OFF/ON するつもりだから、リセットをジャンパすることは、考えない。
CE1 を使わないことに決めたのだが、CE1 は写真で言うと C301 の隣のパッド。これにリセットをつなぐのは容易なので考え直すことに

それは良いのだが、ブートしたときの動作を変えるには、どうしたら良いのだろう?

考えてみたのだが、起動を止めておくという指示だけは欲しい。信号線は相互に接続されているが、U2CTS かな。Lは起動待ち。相手が存在しないときもあるし、確実にプルアップしておくことにしよう。

普通タブレットは、電源があれば起動してしまう。電源OFFであればバッテリーの充電制御をしながらブートするのをスタンバっている。で、電源ボタンを押したら起動するが、音声ボタンの状態で動作を変える。U2CTS は、電源ボタンの役割というわけだ。音声ボタンの役割は、2個のボタンを使ってもいいし、EEPROM に何か書き込んでもいい。



GPIO について。

すべての I/O は、GPIO にもなると勝手に思っていたが、確認しないといけない。Zero は H2 なのであるが、どうやら I/O 系は H3 と互換性がある模様。H3 のデータシート と Zero の回路図を見比べて確信できた。

PA0/UART2_TX/JTAG_MS0/PA_EINT0 (IO-2)
PA1/UART2_RX/JTAG_CK0/PA_EINT1 (IO-0)
PA2/UART2_RTS/JTAG_DO0/PA_EINT2 (IO-6)
PA3/UART2_CTS/JTAG_DI0/PA_EINT3 (IO-3)
PA4/UART0_TX/PA_EINT4
PA5/UART0_RX/PWM0/PA_EINT5
PA6/SIM_PWREN/PWM1/PA_EINT6 (PWM1)
PA7/SIM_CLK/PA_EINT7 (IO-1)
PA10/SIM_DET/PA_EINT10 (SPI_CE1)

PA11/TWI0_SCK/DI_TX/PA_EINT11
PA12/TWI0_SDA/DI_RX/PA_EINT12

PA18/PCM0_SYNC/TWI1_SCK/PA_EINT18 (IO-5)
PA19/PCM0_CLK/TWI1_SDA/PA_EINT19 (IO-4)

PA13/SPI1_CS/UART3_TX/PA_EINT13 (SPI-CE0)
PA14/SPI1_CLK/UART3_RX/PA_EINT14
PA15/SPI1_MOSI/UART3_RTS/PA_EINT15
PA16/SPI1_MISO/UART3_CTS/PA_EINT16

PG6/UART1_TX/PG_EINT6
PG7/UART1_RX/PG_EINT7

26- pinheader に接続されているピンの初期状態はすべて Hi-Z 。またこれらの絶対定格は 20mA 。これらの GPIO は、UART といった機能の選択の1つとして、IN または OUT を選べる。さらに割り込み機能も選ぶことが出来る。全部選択なので排他的に使用する。また、これらのピンには、pullup/down 機能はないようである。

UART2 は JTAG を兼ねる。SPI1 は、UART3 にもなる。TWI0 は DI_TX,DI_RX の機能もある。
なお、JTAG を実際に使用するには、PIN 機能の切り替えが必要。H2/H3 には、JTAG_SEL0,JTAG_SEL1 というピンが他にあって外部から有効化できそうなのだが、残念なことに無接続。どうやって使うかというと、ブートローダが起動したときに設定しておくのだろう。

H2/H3 には、RTC の機能があるが、32KHz 水晶用のピン X32KO,X32KI が無接続。ただし、OPi ONE のみ PAD が出てるかも知れない。でも、バックアップ電源のない RTC にどれだけ意味があるかという話があるか。

なお、13pin の方に出ている信号線は、すべてが GPIO に使えない。

この情報を元に回路図をみなおしてみよう。


RTC モジュール


なんか見つけてしまった。RTC の DS1703 に 4KB の I2C ROM (AT24C64)が付いたモジュール。$0.4 とか分けがわからない値段。

これで良いじゃないか。これを接続できるようにしませう。注意点としては、VCC が 5V でないといけないということ。I/O は 3.3V でいけるらしい。 多分 SDA,SCL が 5V でプルアップされてそうだから外さないといけない。

I2C ROM の容量が減ってしまったが、まぁいい。I2C ROM は普通に 1Mbit とかの製品があるし、必要なら付けられるようにしておこう。




もはや、本題とは関係ないのだが、いろんなモジュールが安く買えるようだ。左は 6-axis センサの mpu6050 モジュール I2C 接続 $1.3 ぐらい。右は、NEO 6M gps モジュール $4 ぐらい。シリアル、PPS 出力あり。
 --- まぁ GPS は時刻取得に使えるし一応は関係あるか。


ではこれはどうか? INA219 を使用した 電流・電圧計。$1.7 ぐらい。
R100 だから 0.1 Ω これに 2A 流すとすれば、0.2w だから 1/4 W 品が必要で 1206 (3.2mm x 1.6mm) を使わないといけない。この基板では 1206 より一回りでかい。INA219 が豆粒に見える。

結構悩ましい。IC 自体の値段にちょっと上乗せするだけでモジュールが買えてしまう。IC を付けるスペースも厳しいから、まぁモジュールを買うとして、何を測定したいのか? 自機の消費電力? あるいは USB 出力? なんでもかんでも測定しようとすると、コストもかかるし、ボードがたこ足になって配置に困ってしまう。

スペースさえ確保できれば、パターンだけ入れておこうかなぁ。アドレスが4つからの選択だから 1つのバスに 4つまで。スペース的には USB が余裕がある。あと2つなら、zero の消費電流 か。

データシートを見たら、なんと 16 通りもあった。A1,A0 しかないんだが、SDA,SCL と接続することで選択できるようだ。まぁ4つしか付けないことにして、VCC,GND の組み合わせから選ぶ。

とりあえず、接続予定なのは、次のリスト

INA219 10001x0x
DS1307 1101000
EEPROM 1010xxx
SSD1306 011110x

EEPROM は、DS1307 モジュールにも乗っている。多分 1010000 だから、基板に付く方は、1010001 にしようと思う。

ちょっと、忘れないようにメモ。
INA219 は、おまけなので別につけなくても良い。極小のチップだから付けるの面倒だし。USB の切り替えも別に必要ない使い方もあるだろう。NX3DV221 もハンダづけできない可能性があるわけだし。だから、ジャンパして接続を固定にできるようにしておかないと。この場合、一筆書きに出来るだけ近くなるよう配慮する。


もう、実機を受け取った人がいる

気が付かなかったが、LED とか付いている。--- LED は、わざわざ付ける必要なかったか。外してしまおう。
回路図を確認

PL10/S_PWM/S_PL_EINT10 (PWR-LED)
PA17/SPDIF_OUT/PA_EINT17 (STATUS-LED)

また console 用ピンヘッダが付いている。忘れていたが、どうしようか。

案としては、arduino で良く見るスタッカブルのやつを使う。console 用は下がソケット。13 pin の方は、どうしようか。切って使えるタイプでないと、短いピンソケットを縦に並べるのは厳しい。切って使えるタイプで スタッカブルは見たことがない。USB のみ スタッカブルで、後は ピンヘッダを立てておくことにしよう。26 ピンの方は、普通にソケットを下向き。スタッカブルは必要ないし無理だろう。あと、SPI1-CE1 を使わないと決めてしまえば、24 pin が使える、これも考慮しよう。

要するに 3pin と 4pin のスタッカブルが必要で、8pin を切って使うと丁度いい。... となると、基板に使わない穴を開けなくともよいか。ピン間に通せるのは、表裏2本なので、配線が厳しいのだ。

しまった。USB に スタッカブルは使ってはいけない。4 ピンのソケットを下向き。

そういえば、通常のピンヘッダ+ピンソケットを連結すると、11mm 。だが、11mm のスペーサはない。何故なんだろう?

ついでに回路図を確認したところ、TWI0,TWI1 が、それぞれの 3.3V にプルアップされていた。R151 - R154。これを外さないといけない。場所は確認できた。R151,R152 は、TWI0 で 表右上。取り付け穴のとなり。R153,R154 は TWI1 用で、裏左下。少々ごちゃごちゃしてる。TWI0 が圧倒的に簡単だから 重要な方に割り当てる。

    クラスタとして使わず 1台をホスト、1台を 開発ターゲットとして使うことも考えておきたい。

    26 pin を一切接続しないという場合、開発ターゲットの電源は USB → USB OTG で取れる。USB から電源を取れば、消費電流も測定可能だから便利かも知れない。3pin のコンソールは 必要があればつなぐし、なければつながない。13pin の USB は必要ないだろう。単にボードを固定できる台という感じだが、電流供給能力があるのが利点か。

    リセットが欲しい場合もあるだろう。その場合は、リセット用信号を取り出して、ダイオードを通して、ボタン用のコネクタに接続すればいけるか。タクトスイッチを押してもいいし、リモートで操作もできる。 一応パッドだけ作っておくか。

    他の使い方としては、多数の Zero を稼働させる場合に便利か。電源が1つで2台分。しかも外部からリブートさせる手段がある。この場合 増設した USB は使わないだろう。 だが、今の設計では、DC DC コンが3つ必要。なにに使っているかというと、RTC 用電源。これだけだから、ちょっと考えておこう。

    もうひとつ検討しておきたいのは、この基板自体のマウント方法。レールつけてスライドさせるとか良いんじゃないか? 良くは分からないがフチを作って部品を置かないようにしておこう。

    なんかこういうものがあった。ロックさえできるようだ。”PCB Guide Rail” 。
    とにかく、フチさえあれば、なんとかなるのだろう。

    この製品、全長が 86mm 。ネジがある方 13mm ぐらいは溝がないから ぴったりになる基板サイズは 73mm ぐらい。ロックにぎりぎり引っ掛けられるサイズは 60mm ぐらいかな。少し大きいが、当て板をすれば、どうにでもなる。そんなことより、これに近いようなものが見つからない。ベストかつ唯一という気がしてきた。

    取り付け方法がピンと来ないが、簡易的には、アルミアングルに横にならべていくとか。それを木の側板に取り付けて出来上がり --- みたいな。

    クラスタとして、HDD ありの場合も、HDD に小さい アルミアングルを取り付けてマウントできるか。


    あと注意しておきたいこと。多数の Zero が、同時に起動すると同じタイミングで、ひとつのリソースにアクセスすることになって、あまり嬉しくないことが起きるかもしれない。ブートローダでブートをランダムな時間遅らせるとかしたほうが良いかも。クラスタにしても、マスターを決める手順があるから、時間差があった方が問題が起きにくいだろう。

    ついでに電源の話。12V と書いてきたが、ノートPC用の 19V とかでも良い。100W クラスの ACアダプタを使えば、分岐させて 10台ぐらいいけるんじゃないか。多分もっといけるだろうが、どういう使い方をすると、どれぐらいという情報を集めないといけない。その手段として INA219 を付けておくのは有効かも知れない。


    11/12 私のところにもキター。

    起動確認とかより、まずはサイズの確認。
     1.9 x 1.8 (inch) = 48.26 x 45.72 (mm)
    これで合ってる。横は余白がなく隙間なしに並べられる印象。

    取り付け穴の間隔は、42.5 x 40 ぐらいで リングの外径は 5mm ぐらい。作ったライブラリは、 42.26 x 39.72 --- 合ってそうな気がする。あと、コンソール 3pin の位置も合ってるようだ。

    基板からの高さは、USB が 14mm で、RJ45 が 12.8mm ぐらい。基板からのはみ出しは 約 3mm 。

    フチの計算。基板を 0.1 in 空けて並べ、両脇に 0.1 in のフチを作ると、99.06 mm -- OK 。縦は、基板+余白 0.025 in で 49.53 mm にしよう。


    さて、部品の付け外しの可否。
    ピンヘッダを外せる自信はある。しかしスルーホールをどうにか出来るかどうかは不明。細いドリルで空けなおすのだろうか?
    秋月のFT232R モジュールのピンヘッダを外したことはあるが、このときは吸い取り線だけでなんとかしようとした。一応は出来たものの、かなり基板を痛めてしまった。

    PoE 用のジャンパは問題なさそうだが、DC-DC コンを付けるために線を引き出せるかどうかというと、かなり怪しい。... 5V も GND も一緒に引き出すのは難しいが、+PoE だけなら、あるいは簡単かも。
    R151,R152 は出来る自信がある。R153,R154 は厳しい。となりの R16 も一緒に行きそう。R16 はパワーオンのためのプルアップ 47K。外すと起動しなくなりそうだ。これだけ付け直せるかというと、あまり自信がない。--- でもハンダごて2本ならいけるかも。CR なんかは、両端に同時に熱を加えれば簡単に外せるとのこと。ちなみに、右隣りの C14 は、VCC-IO の パスコンのひとつで 1uF --- これは飛ばしたとしても、どうと言うことはなさそう。
    USB は外せそう。RJ45 は無理そう。とても厳しい印象。
    SPI-Flash は付けられる自信があるが、付け替える自信はない。周りの部品がいってしまいそう。
    付け直せないなら、やはり最低 8MB にするべきか。3M でカーネル+環境というのは可能だと思うんだが、相当な面倒が待っていそうで嫌になって来た。

    リセットを引き出すのは出来るかもしれないが、リスクがでかい印象。失敗したとき 周りの CR を付け直せる自信が全くない。
    ... とか最初思ったのだが、未使用の CE1 に接続してみることにした。CE1 は C301 のとなり、D18 のカソードからCE1 につないでも良い。... なんか簡単そうなのであった。

    まだテスターを当ててないので、多分なのだが、赤い点のどれかを、赤いリングのところにつなぐだけなのだ。なんか楽勝に見えるんだが。

    以上は私の話であり、世の中には全く問題としない人も居るのである。可能性の話を書いておくのは意味がある。

    まぁこれで、ディメンションは FIX 。基板設計を進められる情報は得た。


    ケースについて

    ケースなんて飾り・・・とは思っているのではあるが、一応探してみたところ1つ、ぴったりなのか、はたまた微妙に入らないのか ... というのを見つけた。

    aluminum box 105 で検索して見つかったものだが、サイズは、w105 h40 d92 -- SZOMK AK-C-C69a というものらしい。



    これを見ると、幅は問題ない。99.06 mm であるから ケースのガイドにきっちり入る。問題は高さ。厚みは 2.5mm だから空間は 35mm 。さて、このボードに Zero を載せると、14mm + 1.6mm + 11mm +1.6mm = 28.2mm 。 基板の下は、6.8mm 以下でなければならないが、どうだろう? ギリギリアウトの場合、Zero の USB がなければ、セーフになるんじゃないか? あるいは、短メスを使い 低くするとか。(部品の高さがあるので、それが可能かどうかは不明)。はたまた浮くのを気にせずにパネルを自作するか。USB の分ケースを削ってしまうという荒業もあるかも知れない。

    奥行は、92mm もある。micro SD は、ケースを空けないとアクセスできない。内部の LED も見えない。I2C の OLED は入る。

    折角だから、検討項目としよう。

    ところで、こんなケースに入れた場合、排熱はどうする? 一応 35mm のファンはある。これを PWM に接続することは、可能。しかしクラスタであるから、2個付けるのだろうか? それはともかく、物理的に付けられるようになっているか? ファンの写真を見ると、向かって右が+。この基板は逆になっている。その上、ピンが並んでたりするので、コネクタが干渉する。--- これだけ L 型ピンヘッダを基板の裏側に付ける。-- 一応 OK としよう。

    さて、排熱という話になるとヒートシンク。これをどうしよう。ケースはアルミだから、そこに熱を逃がすことが出来れば、ファンなどいらないではないか。


    そうなると、これを横向きに付けるのかなぁ。幅16x高さ25x奥行16mm ということなので、どうつけるにしても底面は、25mm x 16mm 。サイズ的には DRAM も覆って良い感じなのだが、周りの部品と干渉する。特に DRAM 横の コンデンサは、絶縁しないとダメ。また DRAM は H2 より背が低い。結構頭がいたい。さらに、16mm 高となると、一番背が高い部品になる。2〜3 mm ケースに合わせて削らないと。すごく面倒な予感。


    探してみると、厚いシリコンパッドがある。Heatsink Conductive Pad でいろいろ見つかる。1mm のものが多いが、3mm のものまであった。切れ目を入れてあるものも多い。とりあえず 25mm角にカットした 1mm のものを heatsink の下に引いて、ケースに接触するように上にも置くことを考える。絶縁は問題ないが、ヒートシンクがしっかり固定されない。でも絶縁することの方が重要だから、それは別途検討しよう。逆にそうなると、ヒートシンクの形状より高さの方が気になる。11mm ぐらいが丁度よいのかも。H2 の厚みが 1mm として シートの 1mm 加えると 13mm 高ぐらいになる。この上にさらにシートを置くのである。40mm角で 11mm というのが安価に出てるんだが、切って使うか。 

    私の皮算用では、これで 26 mm x 18mm ぐらい。まぁ秋月のと大差ない。高さを調整できるなら、秋月の方が良いと思うが、絶対に綺麗に仕上げられない自信がある。私には無理。40mm のを切った場合、汚いのは2辺の下側だけ -- 目立たないように出来るだろう。なお、切るのにクラフトのこを使うつもり、2.2mm ぐらいならいける。
    Zero の写真の赤枠に置くつもりなわけだが、いくつかメモ。SDRAM 横のコンデンサは、SDRAM より背が高く本当に絶縁注意。大き目の2つのインダクタは、絶縁の問題はないとは思うが、力を加えたりすると欠ける恐れがある。結局は触れないようにしないといけない。触れて良いのは、パルストランスのみ。ここに引っ掛けるようなことを考えても良いかも知れない。

    さて、どうやって固定するか? 弾力性があって、ネジのところで止められそうなもの --- まさか輪ゴム? 確かにシリコンの輪ゴムは、売っている。silicone rubber rings で見つかったので、試しに 60mm のをひとつ買ってみる。... あまり考えないで買ったが、60mm というと、Zero の外周ぐらい。1本をうまく引っ掛けるわけか。
    amazon でも耐熱輪ゴムという名称で同じものを売ってた。 「通常のアメゴムは3倍程度伸びますが、本製品は2倍程度まで伸びます。耐熱性と伴に対候製もあり、直射日光、雨、風の当たる場面でも使用可能です。」 とのこと。やっぱりパッキンじゃなくて輪ゴムだったのか。

    これ、太さが 3mm もあって ネジに引っ掛けるのは無理。1mm か 1.5mm ぐらいの やつを探してみた。
    色々あるのだが、OD 28mm 1.5mm φ が安かったんで選択。o ring の材質は NBR っぽい。多分延ばさない状態で 4 cm ぐらい。これをクロスして掛ければ良いんじゃないか? まぁ延びるものかどうかさえ良くわからないんだけども。

    追記:40x40mm 11mm厚のヒートシンクは、新たに買うまでもなく持っていた。別件で banggood で買ったのだった。これを切ってみた。道具は百均で買ったクラフトのこもどき。先に見つかったので。

    簡単というほどでもないが、切りだすのは、たいして苦労はしなかった。スジを深く掘って折るのみ。ただ、フィンが多少曲がってしまった。修正は最後の最後。
    だいぶ慣れたところで書いておくと、掻き出すようなイメージでゆっくりと引くのがいい感じ。


    まぁこんな風に置きたいわけだ。意外とインダクタとの干渉が少ない。--- あぁ予定と違うところを切ったのか。まあいいや。後は、どうやって切り取るか?
    ついでに書くと、パルストランスに引っ掛ける案も破棄 --- とどかないだけでなく、実際に引っ掛けると足と接触する恐れがある。


    副産物の切れ端の方がしっくり来る。少し整形して、(熱伝導性)両面テープで貼るほうが良かったりして。

    整形は、ダイアモンドシャープナー #150 ってのを使った。ハンドグラインダー用の円盤で割と安価。適当に削って マジックで塗っておしまい。削るのは切るより大変。途中でめんどくさく ....

    やっと気が付いた。aliexpress で良くあるやつと banggood で入手しておいたのは別物。いや正確には加工が別物。14-5 mm で切りだすには、banggood のやつが具合が良いようだ。

    結論:切れ端の方を貼る。これでいいや。

    ケースに入れる場合、ヒートシンクを向かい合わせにして、ブロック状にする。そのときに、フィンどうしを接触させるように詰め物をする。詰め物は、1mm のシリコンシート。ブロックにしたときの高さは、ちょうど良いかんじ。上面にシリコンシートを置いてケースに接触させる。

    大きい方は、SDRAM との段差を埋めるのがめんどくさい。SoC だけ両面テープで貼って 段差の分はシリコンシートとかでも良いような気がするが、厚みが合わないと本末転倒になるような気がしてきた。

    ところで、両面テープ付きのヒートシンクなんかで、良く 3M のロゴを見る。良く見れば 9448A と書いてあったり。どうもこれ、ただの両面テープではないのか? 両面不織布粘着組織テープ 0.15mm ぐらいの説明しか見つけられない。薄いのが特徴? とりあえず、3M9448A で見つかる 14mm 角のものを注文してみた。


    ESP32 関係で探していたら、良さそうなショップを見つけた。
    Top Electronic Company というショップなのだが、MINI 360 DCDC コンバータや、CP2102 モジュール を初めとして、ここで紹介したほとんどのモジュールを扱っている。値段も最安クラス。RTC モジュールも、高精度の DS3231 + EEPROM が $0.5 とか。

    このショップ探検するだけで楽しいかも。
     https://www.aliexpress.com/store/1266255/search?SearchText=MINI+360
     https://www.aliexpress.com/store/1266255/search?SearchText=CJMCU
     https://www.aliexpress.com/store/1266255/search?SearchText=NEO-6M
     https://www.aliexpress.com/store/1266255/search?SearchText=OLED
     https://www.aliexpress.com/store/1266255/search?SearchText=DS1307
     https://www.aliexpress.com/store/1266255/search?SearchText=DS3231
     https://www.aliexpress.com/store/1266255/search?SearchText=INA219
     https://www.aliexpress.com/store/1266255/search?SearchText=mpu6050

    ほとんどではなく、全部あった。
     https://www.aliexpress.com/store/1266255/search?SearchText=MICRO+USB
     https://www.aliexpress.com/store/1266255/search?SearchText=infrared
     https://www.aliexpress.com/store/1266255/search?SearchText=ESP-32
     https://www.aliexpress.com/store/1266255/search?SearchText=ov7670
    きりがないから、そろそろ辞めるが、まぁいろいろあるものだ。

    あぁ、まだまだある。
     https://www.aliexpress.com/store/1266255/search?SearchText=9G+SG90
      Pan/Tilt Camera 台とか。
     https://www.aliexpress.com/store/1266255/search?SearchText=4WD
      4WD Smart Robot Car -- エンコーダ付いてる!
     https://www.aliexpress.com/store/1266255/search?SearchText=bluetooth+receiver
      BT アンプとか。


    NX3DV221 を見つけて USB 2.0 までなら切り替えられると喜んでいたわけだが、CBTL01023GM という上位互換(たぶん)のチップがあった。digikey で単価 138円とあまり高くない。同じ XQFN10 アナログスイッチなのだが、性能が違い SATA 6 Gbit/s が通せる。SATA などケーブルで接続するような規格だし、意外と電子工作で扱えるかも知れない。

    とりあえずメモだけしておく。
posted by すz at 18:54| Comment(0) | TrackBack(0) | 日記