2017年11月15日

リフローめも

電子工作をやりだして長いのだが、はんだ付けに自信がない。最近は目も怪しくなってきてますます自信がなくなってきている。今は USB 顕微鏡 があるので確認ができるのだけが救い。

そんな状態でありながら、QFN など足のないパッケージにまで手を出して、積んでたり。一応 サイドに電極があるタイプのみを選択しているが、0.65mm ピッチぐらいがなんとか。0.5mm ピッチになると 無理そうなかんじ。しかし、0.4mm ピッチなんてのも 積んでる中にはある。あと サイドに電極がないタイプのクリスタルも苦手。

リフローなら簡単なのだろうか? なんて常々思ったりして。ただ、クリームはんだが厄介。まず管理がめんどうそう。フラックスが蒸発したりするので、すぐ使わないといけない。あと、ステンシルで刷り込むとか 相当に面倒な話に思える。

それ以上にリフロー炉をどうやって用意するのか? ホットプレート やら オーブントースターやら 食品用のものを使うわけだが、食品用と共用にするわけにもいかず、専用のものを用意しないといけない。だが、買ったところで1回やって失敗してヤメとなると目もあてられない。

というわけで、あきらめていたわけだが、やはり1回ぐらいはトライしてみたい。検討だけはしてみようかと。




リフロー炉について

かつては、オーブントースターを改造するというのが流行したように思う。改造キットがあったりもした。が、温度ムラができたりして難しいものらしい。今では、熱風を循環させる コンベクション・オーブンが出回っているので、これをベースにすると改善されるらしい。

その他、熱風の方がメインになるノンオイルフライヤーというものもある。ひとつ持っているが、このタイプは温度管理がすばらしい。しかし、プラスチック筐体のものは、最大温度が 200度あたりで、ちょっと低い。また、扉でないものは、出し入れの際ショックを与えて部品がずれる心配がある。

泉精機製作所 CA-OT56-K

コンベクション・オーブンで最も安価なもの。 温度設定は、230度まで可能。空気は循環させるのだから、ヒーターの熱を直接当てないようにするだけで、使えそうな印象。

安価なものには、シロカ crossline SCO-XXX というものもある。こちらは、中古も。

本格的にやるなら、こういうのをベースに 温度・時間管理をするコントローラを付けて改造するのが良いと思われる。しかし、やってみたいだけなのである。他の方法はないのだろうか?

ホットプレートでも可能である。ググれば記事が見つかる。しかし買ってまでやるなら、コンベクション・オーブンの方が成功する確率は高そうだ。

さて温度管理ができるものとして、他に卓上IHコンロがある。揚げ物用の温度設定が普通あるが、一般に最高温度は 200℃とかで低め。だが持っているものは、250℃までの「焼肉モード」設定がある。これにフライパン+蓋で良いのでは? とか思っていたところに、ダイソーで スクエアスキレットというものを見つけた。長方形で 長辺(内寸)は 100mm ちょっと。短辺は、80mm 弱で 最近作った DUO-DISK がぎりぎり収まらない。が、だいたいの基板は収まる大きさである。蓋はないが、2つ重ねることで蓋にできるとのこと。

値段も安いが、場所を取らないので 1回限りになっても困らない。これでようやく試してみる気になってきた。




さて、次の問題。クリームはんだ。あんまり使いたくないと思っていたのだが、ひとつ記事をみつけた。

予備はんだをしてリフローするというものである。見つけた記事では、ハンダを盛った後、部品を置きフラックスを塗っている。他の方法としては、適当でも とにかく手はんだして、リフローで綺麗にするみたいなことが出来るかも知れない。フラックスをどういう風にするのか --- なんかコツはありそうだが、敷居は低そうである。

また、クリームはんだを使うにしても、ステンシルなしという方法も考えられる。注射器タイプのクリームはんだも販売されていて、先の部分も様々な太さの針と交換出来るものがある。これは、直接 盛るということだろうか? これまたコツがいりそうだが、2012,1608 の CR 程度ならば 苦もなく出来るかも知れない。ピッチが狭い LSI などは、チップを載せるのに苦労するはずで、ステンシルを使ったからといって必ずうまく出来るというものではないだろう。 予備はんだ作戦の次に試すのは、この方法にしよう。

    サンハヤト「表面実装部品取付キット SMX-21」を使った 記事を見つけた。

    注射器(シリンジ)タイプで、手はんだ用? どうやら手はんだでも クリームはんだが有用らしい。それはそうと、注射器でうまく行くようだ。

    保存だが、冷蔵庫や冷凍庫で保存する。注意点は、室温に戻してから蓋をあけること。注射器の場合は、使ったまま冷蔵庫や冷凍庫に入れる。針の中のクリームはんだは数週間で固まってしまうらしいが、次に使うときに針を交換すれば良さそう。

    aliexpress だと このショップにいろいろとある。

    50Pcs SMT SMD PCB Solder Paste Adhesive Glue Liquid Dispenser+Dispensing Needle

    注射器と針一式。針は、細すぎるのと太すぎるのは使わない。使った後は捨てるように書いてあるのだが ...


    XG-50

    35g で 注射器 3本に見合いそうな分量。使い切れるような気がしない。保管は、0-10℃ で 製造から 1年 ?

      最初から 注射器に入っている XG-Z40 という製品がある。これが 10cc 25g みたいな。... ということは、XG-50 は 14cc 程度。3本には全然見合わない。


    10ml というのは、多すぎなのかも。3ml のタイプもあるようだ。付けるチップは互換性があるのだろうか?とか思ったんだが、3ml はダイソーで売っていた。チップも互換性があるように見える。--- これで良いのではないか?

      サイズをメモ
      Olive B1.55 2.1
      Amber 1.36 1.8
      Green 0.84 1.27 
      Pink 0.6 0.92  
      Purple 0.51 0.82
      Blue 0.41 0.72
      Orange 0.34 0.64
      Red 0.26 0.52
      Clear 0.21 0.42
      Lavender  0.16 0.3 

      Olive の B1.55 というのは、穴がなく蓋になっている。Amber で吸い上げて、0.5mm 前後を使う作戦でいこう。で、これらは、ダイソーの注射器にフィットする。10ml はいかにも多いので 3ml でやってみる。

      0.5mm が使えるなら、ここで買っておくと良いかも。どう使うにせよ、針だけは使い捨てそうだし。あと細すぎるのは、フタがわりに使えるかも。

    さて、これを注射器にうまく入れることが出来るのだろうか? 粘度が高そう。 吸い上げるしかないだろうから、心配しても仕方がなさそうなんだが、

      やはり・・というか、粘度高すぎで、吸い上げるのが厳しい。3ml の方は、1ml 弱がようやく。そして、クリームはんだが、随分と無駄になった。注射器作戦がうまく行けばの話だが、次回はもうちょっと考えたい。

    シリンジ充填機 だって。へぇー。




基板から部品を外してみる



リフロー可能であれば、外すことも出来るだろう。油で揚げて叩くと部品が外れるというのは聞いたことがある。熱した後、ショックを与えれば良いはずだ。

PAM8403 ボード と MINI-360 から、メインの部品を外す。後で、自作 PCB に乗せ換えてリフローするのだ。

    PAM8403 は、チップを買う気にならないので、外して使う。MINI-360 の方は パーツが欲しいわけではなく、MINI-360 が何故出来が悪いのか探るべく組みなおすのだ。


さて、熱する前に、スクエアスキレットの底に 耐熱の アライミドテープを張る。最初 シリコン加工されたアルミ箔でも敷こうかと思ったのだが、良いものを持ってることに気が付いた。

蓋をせず、スクエアスキレットにおいて、210 ℃に設定し加熱。3 分ほどで 温度に達してピーとなった。
ラジオペンチで部品をつまんだところ簡単に外れた。



    MINI-360 だが、IC の下ちゃんとパッドがある。10uH インダクタは、本来の性能なら余裕があるはずだがどうか?

とにかく、蓋をしなくても簡単にハンダが溶ける温度に達するのは確認できた。リフローでは、120℃とかに一旦予熱し、そこから一気に温度を上げるそうである。少し間をおいて冷却。スキレットは蓄熱するから、冷却が速やかに出来るか怪しい。普通の金属容器で良かったのではないかと思ったり。ステンレスのトレーで良いのかも。

小基板をリフローしてみる




すず 63% 鉛 37%の「共晶はんだ」の融点は 183℃ 。今度は揚げ物モードで試す。揚げ物モードは、160℃〜 200℃。まず温度を 160℃に設定し、しばらく余熱。その後 200℃ に設定しなおす予定。

ちなみに、鉛フリーハンダ(無鉛ハンダ)の 融点は、217℃ とかになる。リフローの温度は 240℃とかのようなので、鉛ハンダのみ揚げ物モードでいけるように思う。

実施


2枚の基板を手はんだで組んだのを 「揚げ物モード」で試してみたのだが、温度がどんどん上がって止まらない。最初に試した「焼肉モード」とは、制御のロジックが違う! はんだが溶けている状態でオフ。



左が before 右が after なのだが、写真では違いがほとんど分からない。

基板から浮いていたパーツが、基板に密着したように思う。あとはんだブリッジでかろうじて繋がっていたところが切れた感じ。ついでに言えば、全体に黄色くなっている。あとで無水アルコールで拭いておこう。

    よおく見ると、部品が 綺麗に収まったところがいくつか。( ダメなのはダメだが。)。次回やるときは、位置をちょいと動かせるなにか --- ピンセットはダメ 、竹串とか? を用意しておこう。

まぁ失敗かな。無駄に熱を加えて壊すリスクを増やしただけかも知れない。しかし得るものはあった。次は、クリームはんだ注射器作戦。注文したものが届かないことには、なにも出来ないが。

QFN に挑戦





外すことは簡単に出来ることが分かったので、PAM8610 モジュールからチップを外して、自作PCB に乗せ換えてみることにした。ダメもとである。

まず PAM8610 モジュールだが、裏のパッドがちゃんとハンダ付けされていないような。すごい適当な設計。

    PAM8610 は、チップも購入可能なのだが、このモジュールの方がチップより安く入手できる。そういえば、MINI-360 も チップとインダクタを買うより安いような。

さて、まずは、PAM8610 だけ載せてみる。ランドは一応予備ハンダをした。あまりハンダが載ったという感じではないのだが、ベタベタとフラックスを塗って置いてみた。目測だがちゃんと載ったように気がしたので、リフロー。

今回は、こげつくようになって使わなくなったフライパン。アライミド・テープを貼って使用。だいたい、3分で 210℃ --- 全然予定どおりではないのだが、それしか出来ない。その後 30 秒ぐらいおいて、オフ。

USB 顕微鏡で見ても、それらしい感じなので、他のパーツを手はんだで付けて、同様に加熱。加熱時間が短いのか、ハンダがうまくなじんでいない。

これが動くかどうかの確認は、ちょっと先になりそうだが、QFN も出来る! という気がしてきた。

    通電する前に、テスト環境を作らないといけない。テスト用のメインのボードを組み立てて、仮組。あとスマホと接続するケーブルの用意。動作が確認できたら、メインのボードに接着剤で張り付けるつもりで、そっちの準備も。

そろそろ、DUO-DISK のパネルに挑戦しようと思う。QFP なので難易度は低いはず。といっても動かせるような気は未だしない。

はじめてのクリームはんだ






(上) 注射器でクリームはんだを盛っていき、部品を配置した。QFP のところは、うまく塗れなかった。拭き取る自信もないし、どうなるか見ておきたいのでこれで行く。
(下) そのままリフロー。210℃に設定し、はんだが溶ける様子をみながら、停止。一見しただけだと、思いのほか綺麗に付いた。QFP の部分だが、きれいにまとまってダマになった。あちこちにツブが残ることを危惧したのだが、こんな感じだと、あのままチップを載せても良かったのかも知れない。

注射器ではんだを盛るのは、CR に関しては難しくはなかった。QFP は見てのとおり。リフローだと綺麗に仕上がるのが嬉しい。

注射器は 3ml の方に、紫のチップを付けたもの。1ml しか入れられていないが、使用した量は、0.1ml 程度。どうもクリームはんだの粘度が高い。注射器に入れるのも苦労するが、基板に盛っていくのも、ちょっとやりにくい。最初から、注射器に入ったタイプ -- XG-Z40 というのがあるので、次は、これを使ってみたい。

さらにリフロー





調子に乗って、DUO-CLOUD のリフローもやってみた。HUB のチップは後回しで、電源をまず確認しないといけない。インダクタも手はんだのつもりなので付けていない。ちょっと IC のほう盛りすぎてブリッジが出来てしまっている。これでも控えめにしたつもりだったのだが、なかなか加減が難しい。

今回もフライパン。スキレットには入らないのだ。やってみたところ、均一には熱が伝わらず、時間差ではんだが溶けていった。加熱時間は全体で 4分ほど。最初に溶け出して、全部がとけるまでは 1分ぐらいだったろうか。

電源は、OK であった。5V x2 と、3.3V , 1.8V を確認。ところで、3.3V,1.8V の PMIC だが、SY8089A を使った。2A 品というオーバースペックだが、10個 $1.60 で結構安いのだ。もっと安いのは、SY8008C (1.2A) 10個 $1.35。 あと、SY8008B (1.0A) 10個 $1.88 SY8009A (1.5A) 10個 $2.00 も互換性がある。

写真

次に、HUB IC を 付けてみた。クリームはんだを付けておいて、位置決めが決まったら、はんだごてで、熱して固定する作戦。作戦自体は良いと思うのだが、位置が決まってない上に、足が曲がってるところが。

2本連続で曲がってるところがあって、使っていない1本を取ってしまった。使っていないピンも多数あるので、なんとかなるような気もするのだが、通電するのが怖い。



卓上 IH コンロについて。

普段つかってるのだが、IH は温度管理が優秀だと思う。また、食品調理用と共用できるので、お勧めだと思うのだが、「揚げ物モード」がうまくいかなかったので、なんでも良いというわけではなさそうなのが難点。

一応持っているものを紹介しておくと、機種は、ツインバード IH焼肉グリル 味わい亭 IH-D935B 。7000円弱だったか安価に買えたのだが、生産終了モデルで、もう入手すらできないかも知れない。

現行品で、250℃まで設定可能なのは、パナソニックの IHホットプレート ぐらいで、KZ-HP1100 あたりが安価。といっても 14000円ぐらい。

他に興味深いのは、ドリテック 卓上IHクッキングヒーター ブラック DI-213BKDI。200℃までだが、1℃単位の温度設定が可能。... というか 温度設定だけが出来る。
posted by すz at 23:37| Comment(2) | TrackBack(0) | 日記

2017年11月09日

Sunvell R69



cnx-software.com に Sunvell R69 という Android TV-BOX が紹介されている。この TV-BOX は、allwinner H2 採用で 非常に安価なもの。Gearbest でクーポンを併用すると $19.99 で買えるそうだ。写真は本体だけだが、AC アダプタと 本体より大きな赤外線リモコンが付属する。
コネクタ類は、2面のみ。主に後ろに集中していて、サイドは microSD と 2つ目の USB のみ。こういう所は使い勝手の点で悪くないと思う。

なんでこんなものを取り上げたかというと、OrangePi Zero, Nanopi DUO と、H2(+) 採用のものを取り上げてきたため。記事のコメントのリンクを見ると、既に armbian が対応している。

スペックを見ると

    Memory – 1GB DDR3
    Storage – 8GB flash + micro SD
    Video - HDMI 1.4 , AV port (composite video + stereo audio)
    Network – 10/100M Ethernet, 802.11 b/g/n WiFi (via XR819 chipset)
    USB – 2x USB 2.0 ports
    Power Supply – 5V/2A
    Dimensions – 9 x 9.5 x 1.8 cm

全部入りという感じで、コスパは良い。メモリが 1GB あって flash も付いている点は、ポイントが高い。紹介だけしておく。

    ちなみに、RK3229 採用の A95X R1 も同価格帯の TV-BOX で、同じように紹介されている。しかし、Linux を動かすといった話はさかんではないようだ。Sunvell R69 は、OPi Zero の armbian をベースにしたら、すごく簡単に動かせたのだろう。

    フォーラム見てたら、OPi Zero だけではなく、Beelink X2 など、H3 のイメージファイルとかが起動してしまうらしい。その際に問題になったのが、最大クロック。(後述)




内部写真 (armbian フォーラムより)

思ったよりは、内部のコネクターが多い。4pin のデバッグ用シリアル、隣の 5pin なんだろう? 裏面にはカメラ用と思われるコネクタも(18極だから違うかも)。



左下の QFN-20 のチップは 3 出力の DC-DC コンバーター。取り囲むように 1.5uH が配置されている。1.5uH が使えるということは、2MHz とか相当なスイッチング周波数。ダイオードがないことから同期整流型と分かる。こんなチップがあったんだと感心した。
探してみたが、LTC3569 ? 3mm角で 1.2A + 0.6A + 0.6A 出力。--- ちょっと出力が足りないような気も。

右上の 空きパターンは、おそらく Wifi+BT チップの AP6212 -- QFN44 で アンテナのそばにある。XR819 が使えなかった時用かな? ついでに書いておくと 左の空きパターンの中にあるのが eMMC Flash 。これの代わりに (低レベルの) Flash チップ も 使えるようになっている。OSでの扱いが面倒になるから eMMC を採用してくれて幸いであった。

RJ45 は、トランス外付けのタイプ。OPi Zero は、PoE の配線のためだが、これは背を低くするだけが目的のようだ。

メモリは 4つ載る。シールに 512*4 という 印刷が。本当なら 2GB になってしまうのだが? XR819 という印刷も意味深で、AP6212 モデルの可能性を示唆している。

 ・http://linux-sunxi.org/Sunvell_R69
  Vcore 電圧変更には対応していない。1.2V 固定なので 1008 MHz まで。
  
    OPi Zero と Nanopi DUO は、1.1V/1.3V の切り替え。

  microSD カードからのブート優先。

Vcore 電圧は、1.3V だと 1.2 GHz まで動作するらしい。標準の 1.2V だと 1.2GHz では暴走してしまう。1008 MHz までという条件は重要で、他の機種用のイメージファイルを流用すると、この条件に引っかかる場合がある。

サイドの USB は HOST だが、後ろの USB は、OTG に接続されている。Device として使うには、OS で なにか指定しないといけないと思うが、FEL の機能を使うためには、ボタンなどハード的な指定手段が必要になる。U-BOOT と書いてあるボタンがそれらしい。SDからブートするのだから FEL が必要だとは思えないが、一応メモ。




そう言えば、allwinner H2+ 採用の SBC がもうひとつ増えている。



Banana pi M2 Zero という機種で、cnx-software.com でも紹介されている

見ての通り、Rasberry pi Zero W 対抗である。価格は $15 (送料別) で少々高め。HDMI とカメラ・インターフェイスが付いている点、さらに Wifi+BT(AP6212) が付いている点は良いのだが、SPI-Flash は付けられない。あと、Wifi+BT用のアンテナが多分付属していないし、チップアンテナでもない。USB HOST, Ether , AV-OUT もない。

一応紹介だけしておくが、OPi Zero や Nanopi DUO とは、遠い存在。むしろ、TV-BOX の R69 の方が OPi Zero /Nanopi DUO に 近い印象がある。





さらに、何か出てきた

 ・Tritium IoT – Allwinner H2+ quad core Cortex A7 processor with Mali-400MP2, 512MB
 ・Tritium 1GB – Allwinner H3 quad core Cortex A7 processor with Mali-400MP2
 ・Tritium 2GB – Allwinner H5 quad core Cortex A53 processor with Mali-450MP2

だそうで。PCB は共通のように見える。H2+, H3, H5 は、同じパターンでいけるらしいのだ。共通なゆえに残念な点は、GbE が使えず 100M Eth のみという点。あと Rasberry Pi3 とデメンションが互換。

同じものは、もういらないので買わないが。

興味深い点としては、Ethernet コネクタ。Opi Zero と同じく トランスレスのコネクタに、トランス外付けのようである。・・・あの小さいので良いのか。あと、電源チップ。たぶん AXP シリーズ。AXP209 は持っているのだが、バッテリー充電機能+2スイッチング電源。確か バッテリー充電機能がない代わりに 3スイッチング電源の型番があったように思う。
posted by すz at 19:48| Comment(0) | TrackBack(0) | 日記

2017年11月02日

D級アンプ めも

alixpress で D級アンプ基板が安く売っている。12V で動作する PAM8610 や 5V 系の PAM8403 を採用したものが特に安いようだ。なにかを作りたいような気がして、ちょっと調べてみた。

PAM8610




このタイプ は、$0.86 とかで買える最も安いもの。他にもいくつか種類がある。


    コネクタ類とボリュームが付いたものでも $2 程度。

    最も出来の良さそうなタイプ。放熱とか考えて設計してあるし、電子ボリュームを使っている。

    こっちも電子ボリュームで $2.5。放熱についても配慮されている。入力側電解コンデンサは 2200uF の大容量。(Super Slim 15W PAM8610 で検索)

    これらのタイプについては、今回はコメントしない。

さて、最初のタイプには、どうも2つのバージョンがあるようだ。右のタイプには、黒いチップが 4つ見える。これはフェライトビーズではないだろうか? また、このタイプはコンデンサが小さい。コストダウンが世の常なので、フェライトビーズありが古いタイプのような気がする。両方とも電源入力近くに、ダイオードのようなチップが2個。また、このボード実に抵抗が少ない。左でも 3つしかない。124 は、OSC の周波数を決める RC。下の 103 は LED の 電流制限抵抗。あとひとつの 103 (10K) は何だろう?

チップの機能について

PAM8610 のデーターシートを見ると MUTE と ~SD(SHUTDOWN) 機能がある。また ~FADE という機能もある。これは、SHUTDOWN 解除や 電源ON のときにボリュームを徐々に上げていく、逆にSHUTDOWN したとき下げていく機能。(MUTE とは連動しない)。それに加えて 32段階の電子ボリュームもある。また、出力からの負帰還が組み込まれている。昨今ではD級アンプも負帰還を入れるのが当たり前だそうだが、おかげで電源にあまり気を使わなくとも済む。

これらの機能は、ボードではどう扱われているのだろうか? 

電子ボリューム (#5):
ボード上で AVDD(5VLDO 出力 #3),AREF(#4) に接続されている。 パターンカットして改造している人も



    レジストを削って、#5 のパターンを分離する。なんだか厳しそうな改造だ。

増幅度は、+10db 〜 +33db まで 1db 刻み。+10db 以下は +5, 0, -5, -10, -20, -30, -40, -75db となっている。入力に入れる2連ボリュームでは、こういうきめ細かな芸当は出来ない。多分コンデンサを入れることでガリも対策できるはず。ちなみに db は +6 で 2倍だから、+10db だと 3.17倍 +33db は、45倍

~FADE (#8):

ポップノイズ軽減のために是非とも ON であって欲しいわけだが、現物を調べたところ GND に接続され有効になっているようだ。

MUTE (#25), ~SD (#29):

MUTE は H で音が出ない。~SD は逆で L で音が出ない。データーシートではそう読み取れる。
SW という 外部端子がある、どちらを使っているのか、どういう接続なのか?

多分 103 の抵抗が関係しているのだろう。~SD をプルアップして SW の片側。もう片方は GND とかで良いんだが ... 現物を調べたところ どうも MUTE (#25) - 103 - SW と接続されているようだ。

となると MUTE は、L で音が出ないというのが正しいようだ。

ポップノイズ対応は、電源ON のときのみ。OFF のとき MUTE を L にしてから電源を切るのが良いのだが。どうしたものか。

ダイオードのようなもの:

逆接保護のためのダイオードだった。Vf 0.6V 1A 品(多分)をパラ接続。 こんなもの有害なだけのような気がするが ...

    ひょっとして RC フィルタになるのだろうか? 小出力のときに R を大きくする効果になるから、ノイズが目立たないとか?

    最大電流が 2A だとして、そのとき Vf 1V だとすれば、0.5 Ω相当。0.12A のとき 0.6V だとすれば、5Ω相当。無音で 20mA みたいなので、50Ω相当にまでなる。 コンデンサはデータシート通りでも 50uF (以上)。LPF cutoff 周波数は、6KHz → 600Hz → 60Hzと変化する。 上記の 2200uF が付いたモジュールなんかだと、さらに 1/50 にまで下がる。ついでに書くと 2200uF が入っているモジュールなら、ダイオードの外側の電圧を元に MUTE を操作するような回路を入れれば、Off 時のポップノイズも削減できるだろう。

PAM8403




5V で動作するもので、PAM8610 よりさらに安い。(10個で $1.68 とか) 。これも複数のタイプがある -- 写真左のものは、端子の位置がずれている粗悪品ぽい印象。

PAM8403 には MUTE と SHUTDOWN 機能はあるが、電子ボリューム、FADE はない。2009 年あたりの情報では、3.15V まででないと動かないとか MUTE と SHUTDOWN のロジックが反転しているとか。この情報は古いものしかないので、今はデーターシート通りだと思える。

    古いチップを使ったものがあるかも知れない。マークの 4つ目の数字がYEAR 。左のものの 9 とかやばそう。右は 5 だから多分 2015 で大丈夫。

ブロック図には、負帰還に関した情報はない。今では当たり前の機能がない? 書いていないだけのような気もするが、なければないで逆に楽しみな面でもある。そう -- 自分で負帰還を入れてみるのだ。

~MUTE (#5), ~SHDN (#12)

データシートでは、両方 Active-LOW (L で音が出ない) 。内部でプルアップされている。ボードでは両方 5V に接続されている。写真のボードだと #4-#5 , #12-#13 のブリッジをパターンカットすれば良い。ドリルで穴をあけてブリッジをえぐってしまっても良さそうなかんじ。

パターンカット出来たとして、プルアップ抵抗値はいくつなのか? 1.34kΩという情報もあったが、そんなに低いはずはない。 100kΩとかそういうレベルではないのか?

仮に 100kΩで 0.1uF を接続するとして、1.4V まで電圧が上がってくる(0 - 28%) 時間。

    -CR x ln(1 - 0.28) = 0.0033 (3.3ms)

    コンデンサを 10uF にすれば 0.330 秒 。電荷を抜くための抵抗も必要だし、合成抵抗値が 10K ならば、この 1/10 -- 0.033 秒。もし 数KΩ だと 数百 uF が必要そうで たいへん厳しい。



内部プルアップ抵抗が、100kΩ以下なら こんなので良いはず。もっと高い値だとすると、1.4V まで上がらない可能性があるので、外部にもパラでプルアップが必要。古いキットで、100k + 100k + 1uF というものがあった。これが良さそうな気も。

    0.8mm のピンバイス (ダイソー)で、 ピン間をえぐってみた。次に、抵抗値を見てみたところ、数十MΩだった。となると、100kΩ で プルアップ+プルダウン。そして 1uF 程度で GND と接続というのが良さそうだ。

ゲイン:
24 db -- 16 倍固定。 0.5Vrms = 1.414 Vp-p が入力だとして、 出力 4.7 Vp-p だとすると、出力が 3.3倍で済む。この余裕分を負帰還を回せるのではないか? 具体的には、オペアンプ同様 負の出力から、Rf の抵抗を通して入力に入れる。入力側には、Ri = 10K の抵抗が入っている。Rf = 33K としてやれば、ゲイン 3.3 倍。うまくいくのかな? とか思うわけだが、パターンを入れるだけならどうということはない。 あと、そもそも (-) の出力が負なんだろうか? これが逆だったりすると正帰還になって全く意味がなくなるので、(+) 側にも抵抗のパターンを入れておこう。

    The PAM8406 sets maximum RF =142kΩ, minimum RI =18kΩ, so the maximum closed-gain is 24dB.

    という説明があった。Rf と Ri があるということは、負帰還がかかっているということ。また、124k/18k = 7.88 しかないから、24db は BTL 込み。というわけで、さらに負帰還を入れるのは意味がない -- やってみても良いけど。

PAM8406

新しいチップが出ているのを後で気が付いた。SOP-16 で PAM8403 と互換性がある。まず ON/OFF でポップノイズが出ない機能がついた。AB 級 と D 級を切り替えられる機能も。ピンは #9 で H: D 級 L: AB 級と書いてある。PAM8403 のデータシートでは、#9 は NC で 回路例では GND に接続。 パターンを流用すると AB 級 固定になる。

    番外 CS8508E (中国製なぞアンプ), CKE8002 (LM4890 互換)

    SOP-8 のサイズで 2.5V 〜 8.8V で動作する BTL スピーカーアンプ。AB 級 と D 級を切り替えられる仕様。そんなには安くない。(4個 $2 ぐらい)

    SOP-8 BTL スピーカーアンプ だと LM4890 が有名で、ピン互換のものが多数存在する。なかでも CKE8002 が、かなり安く入手できる。(20個 $0.86 とか)。ちなみに CS8508E は全く互換性がない。

    CKE8002 なんかはちょっとモニタ用にスピーカーを付けたいとき便利かも知れない。電源電圧は、2.2V 〜 5.5V

出力側フィルタ

PAM8610,PAM8403 ともにスイッチング周波数は 250kHz あたり。キャリアをスペクトラム分散するタイプらしくフィルタレスを謳っている。ただし、音に問題がなくとも、スピーカーケーブルがアンテナになって ラジオにノイズがのったりする問題が起きる場合がある。

データシートに載っているのは、フェライトビーズ + 220pF 。高周波が出ていくのを防げるとは思うが、AM帯はどうなのか? できれば、まともな LC フィルタを 出力段に入れたい。10uH + 0.22uF の組み合わせだと、cutoff 周波数は 107kHz 程度。

    cutoff = 1/( 2π SQRT(LC) )
    L も C も u 単位なら、周波数は MHz 単位。

PAM8610 では、12V 8Ωスピーカー時に 8W + 8W 出力。PAM8403 だと、5V 8Ωスピーカー時に 1.8W + 1.8W 出力。

どれぐらいの電流が流れるか? インダクタの選定で重要なことだが、よく知らない。BTL で 8W なら 片側 4W 。平均 6V とすると 平均 0.66A なんだろうか? 6V を中心に 12V まで振れるなら x2 x 1.41 ぐらい ? インダクタは、1.9A ぐらいの定格で十分そうな気がする。前調べた CD75 の定格は 10uH で 2.3A 程度。--- いけるじゃないか。

PAM8403 だと 片側 0.9W で 平均 2.5V なら 0.36A ということで、定格 1A 以上とか? CD43 だと 10uH で 1.1A --- これで十分そうだが、4.7uH しか持ってない。4.7uH + 0.47uF で cutoff だけはクリアできる。インピーダンスがどうのという話があるが、まぁいいか。

コンデンサは、積層セラコンでは(見栄え的に)イマイチという印象があるので、フィルムコンを使ってみたい。が、フィルムコンは高い。可聴域でもないし、違いが分かるとも思えないから、やっぱり X7R あたりで。一応 手に入ったときのために、リード間隔 5mm のものは考慮しておきたい。


この回路図は、TA2020-020 のデータシートに載っているもの。10uH を使う場合はフルコピーした方が良さそう。PAM8403 では、値がわからないし、部品点数も増えるしで、左の3つの CR をなしにする。

    ここを見たかんじでは、cutoff が同じならば、左の3つの CR は変わらないようだ。4.7uH + 4.7uF でも 107kHz なので、そのまま使えるっぽい。

    もし 22uH があるならば、22uH + 0.47uF で cutoff 50kHz にするのもあり。その場合 左の3つのうち R を 10Ω → 15 Ωに変更。

入力側

PAM8403 ボードでは、1uF + 10KΩを直列に接続して入力している。103 が2つ見える。PAM8610 では、1uF の コンデンサしかない。内部でゲインを変えるため Ri が内蔵されていて、20kΩ 〜 200kΩ の範囲で値が変わる。





PAM8403 採用のボードには、こんなものも。blutooth スピーカーを作るためのもの。PAM 側に抵抗が 3 つ。103 x2 は、入力の 10K のはず。104 (100K) + コンデンサが ~MUTE 側にあるようなのである。

それはともかく、こういう機能のボードが欲しいような。 ボタンも必要なさそうだし。ESP32 で同等機能を作ってみたい。

その場合、DAC はどうするのが良いのだろうか? 内蔵DAC もあるが、DAC 外付け? あるいは力任せで ΣΔ?

DAC を外付けするとしたら、とりあえず安いもので良いか。鳴らすということが最初の問題であって、それをクリアした後に不満が出ればまた考えればよい。とか思って探したところ CS4334 が見つかった。10個で、$2.25 とか。 このチップまだ現役なのか --- 大昔からあるような気が。これでも I2S 24bit 96kHZ に対応している。192kHz も行けるような話もあるようだ。問題点は、5V を用意しないといけないことと、出力にアナログフィルタを入れないといけないこと。フィルタは逆に楽しみな要素でもあるし、最初はこれで良いんでは?

自分でスイッチ出来るのであれば、ΣΔ ってのも良さそうだ。が、ひとつ問題が。PAM8610 なんかだと、電源 - GND でスイッチしているだけではない。負帰還がかかっていて、電源の影響を受けにくくなっているようなのだ。よほど安定した電源を用意できなければ、太刀打ちできない。

電源は、あとで検討することにして、次。12V をドライブする回路は面倒だから、モータードライバ使っても良さそうだ。手頃なものとしては、L9110 という SOP-8 のチップがある。フルブリッジ1個なので 2個使う。価格は 10個で $1.85 とか。
L9110 の データシートは手に入るのだが、詳しい情報はない、一応 3.3V 入力が可能で、12V までをドライブできる。流せる電流は、コンスタント 0.8A ピーク 1.5 〜 2.0A 。 これだと 10W ぐらいいけそうな感じ。

あと、スイッチング周波数。まぁ好きなようにすればよいのだが、LC フィルタ用の部品を潤沢に用意するわけにもいかない。できれば 10uH + 0.22uF の cutoff 107kHZ だけでいけるようにしたい。となると 250kHz 以上でのスイッチングになる。ESP32 は、360MHz の CPU を1つ占有させることが出来るから いけそうな気もするんだが、決めつけて良いものかどうか。

    ところで、Bluetooth A2DP でどれぐらいのレベルのデータが送られてくるんだろうか? 実は知らないので調べないと。
    どうやら、すべて圧縮形式で、まず必須なのが、SBC 225kbps 〜 345kbps 。注目されているのが aptX 352kbps 。その他 AAC,MP3 なども。 なかなか重そうな処理も同時にやらないといけないようだ。それはともかく 44.1 kHz とか 48 kHz サンプリングが最低レベルのデータを処理できる必要がありそうだ。で、それを直線補間とかしてオーバサンプリングで 250kHz に持っていくのだろうか?

    ちなみに ESP32 には、ON/OFF の時間 (80MHz クロック単位) を決めれば、その通りに出力してくれる機能がある (RMT)。バッファリングも可能で、計算までが間に合えば 良い。バッファリングは全体で 512 エントリ 8ch あるので最低 64エントリ x 2h 、256 エントリ x 2ch も可能。外部 DAC 出力 と比べて処理が重いというわけではなさそうだ。精度は 80MHz クロック単位なので、250 kHz スイッチングなら 1周期 320 クロック -- あれ?こんなんで良いんだっけ?
     ・ PCM 96kHz/24bitと DSD64 -- DSD 2.8MHz/1bit はだいたい同じ情報量
    こんな情報もある。DSD は、ΣΔ だと思って良いらしいから、超オーバースペック? 例えば 4MHz 単位で正確に ON/OFF できればそれで十分ってことか。となると、LC フィルタはやはり 低いところでカットすべきなのだろうか? -- 聞こえなくて電波として外に出なきゃ良いってものかも知れないし、実際のところは良く分からない。

    ところで、クロックは 80MHz である。どうやっても正確な 48KHz, 44.1KHz は作り出せない。リサンプリングして、都合の良いサンプリングレートに変換するしかない。その際に デジタル LPF を 通して エイリアシングを回避するとか面倒な話もある。

しかし ΣΔ がいけるのであれば、相当に魅力である。DAC がどうの アンプがどうのという話が 全てプログラミングに帰着する。私としては、こっちのほうが好みである。

電源について

自前でスイッチングする場合、電源に乗った低周波ノイズは、そのまま 出力されてしまう。ノイズの少ない電源を専用に用意すべきである。CS4334 もそうかも知れないのだが、15mA しか消費しないので、対策は楽だろう。

大昔のアンプ -- LM386 とか -- と違って、負帰還アンプはノイズがすくない。出力が入力通りかフィードバックがかかるためである。自前でスイッチングする場合は、フィードバックが出来ない。

    だいたいバッファリングしようとしているわけで、遅延が大きい。たとえリアルタイムで出力状態をモニタできたとしても無理。

スイッチング電源でも、電圧が正しく出ているかのフィードバックはある。ノイズが大きい印象があるが、一般にスイッチング周波数帯と、FET の状態遷移に関連したはるかに高い周波数帯のノイズが顕著らしい。では、可聴域ではどうなのか?

    前の記事で、リプルのレベルと 出力段 LPF のインダクタンス が 比例関係にあることが分かった。が、これも高周波数帯での話であって、可聴域への影響についてはよく分からない。

一方、リニアレギュレータは、可聴域では良好らしい。PSRR というのがキーワードで、10kHz までは 60db 以上みたいなのが普通にある。

とにかくリニアレギュレータ を通して電源供給したほうが良いのは、間違いなさそうなのだが、いかんせん 出力が小さい。その上 電圧がドロップするので、放熱などが面倒。

    ◎ MIC29302 370/600 $1.83/5
    〇 LT1764 340/450 $13.1/5
    △ LP3966 800/1200 $13.48/10 (入力 〜 7.0V)
    ? LT3083 310 $31.55/5

よくある 1.5A までのものでは話にならないので、3A 品を探すと、上記のものが見つかった。MIC29302 がコスパが良いようだ。電圧ドロップも小さいので、これを通して電源供給すれば良いのではないだろうか?





こういうわけで、いつものごとく、基板設計のネタ。ドライブ回路にフィルタ それに電源 (あとコネクタ) をセットにした Arduino 型のシールドをまず設計する。これがメインだが、いろいろ実験するために、D級アンプ基板 と 入力用 3.5mm ジャックも付けたい。あとボリュームも -- ESP32 にも ADC があるので、あっても良さそう。

D級アンプ基板は、PAM8610 のモジュールを使う。これはオプションでフルブリッジとは排他で組む。この場合(たぶん)シールドとして使わないので、裏面に付ける。入力は 4極の 3.5mm ジャック。電子ボリュームは、頑張って改造すれば使えるよう配慮しておく。

電源は、12V 入力にして MIC29302 で 1〜 1.5V 落とす。3A も電流は流さないとは思うが、もし流すことになれば、これだけで 3W 〜 4.5W も消費する。

ESP32 には、内蔵DAC があるが、これも一応 つなげたい。。100 Ω + 47uF を直列につないでから 3.5mm ジャックとパラレルに接続する。出力が大きければ、イヤホンを直接鳴らせるかも知れない。D級アンプ基板の入力としては、たぶん不適切。

出力レベルは、0V-3.3V (電源電圧) なので、3.3Vpp / 1.17 Vrms (1/2.828 ) 。ライン出力に使うには 2倍強 電圧が高い。十分な電流を流せるならば、イヤホンを鳴らせるが、出力が弱い可能性がある。どっちつかず。分圧抵抗も入れられるようにはしておきたいが、入れてしまうと、3.5mm ジャックから入力する場合に不都合。

    分圧抵抗は不要であった。レベルのスケーリングができる。1, 1/2, 1/4, 1/8 が可能なので 1/2 に設定すれば良い。分圧しなければ、HI-Z にすることで、外部入力に影響がないようにできる。

    DAC は、本来 RTC の電源を使って出力する。が、ESP-WROOM-32 では、すべて1つにまとめられているので、ノイズ低減をすることが出来ない。あまり期待することは出来なさそう。8bit ながら、Msps 以上の高速性がありそうなだけに残念。

コンデンサについて:
秋月では 2012 サイズの 47uF はないようだが、22uF なら 2012 (25V) 以外に 1608 (6.3V) もある。aliexpress では、2012(0805) 47uF 16V なんてのもあった。3225 のパターンを用意するぐらいなら、2012 x2 の方が良さそうだ。

ここまでがメイン基板の機能。この基板の周りにサブ基板をくっつけて、面付けというか、大きな基板にする。分割しても良いが、実験ではそのまま使う。配線しなおすのも面倒だし。


サブ基板1 CS4334 DAC

さて、まず入れたいのは、CS4334 。ESP32 では、I2S の機能もあり、出力ポートを任意に決められる。入力専用のポートにだけ気を付けて、都合のよいポートを使える。

ところで、DAC の出力を Line 出力にする場合、バンドパスフィルタを入れるものらしい。CS4334 のデータシートにも回路例が載っている。



3.3u - 10k - 560 - C の4つの RC が、バンドパスフィルタを形成している。RL だが、音圧レベルを決めるものだろう。3.5V p-p (1.24Vrms) なので、0.5 Vrms にするためには、分圧しなければならない。560 が入っているので、390 あたり。そうなると C は、22nF あたり。

こんどは、
 ・http://sim.okawa-denshi.jp/CRCRtool.php
で計算してみる。22nF だと落ち始める周波数が低すぎる。ググると コンデンサは 3.3nF のパターンが多い。 3.3nF だとまぁ良いかんじにはなる。

3.3u - 10k - 560 - 3.3nF がベストだとして、なんとかならないだろうか? 3.3uF も 3.3nF も持っていない。10nF なら沢山あるし、10uF または 1uF も沢山あるのだが。そもそも 560 というのは、何の値? -- これを もっと大きなあたいにするのはアリなのだろうか?

いろいろ数値をいれてみたが、10u - 30k - 1.5K - 1nF - 1.2K でもいいか。だいたい、直流成分と高周波をカットしたいだけだろう。あと、レベル変換。


サブ基板2 MP2307 電源基板

リニアレギュレータが良いのは分かったが、DC/DC コンでどれぐらい不都合があるのだろうか? 製作記事などを見ても電源について気にしてないような。あまり重要ではなかったりするのだろうか? MIC29302 の代わりに 付けられる 電源基板も用意しておこう。

MP2307 で組むつもりだが、面倒なら、MINI360をさらに載せる。あるいは、この基板を使わずに全然違う電源ボードに入れ替えられるよう配慮しておく。

あと、ΣΔをデバッグするとき、うるさいと困る。電圧を変更できるMINI360を使ったほうが良いかもしれない。

サブ基板3 PAM8610 基板

作るとは思えないのだが、チップ単体も売っている。電子ボリュームを引き出せなければ、いっそ基板から作ってしまえみたいなノリで設計だけしておく。0.5mm ピッチ QFN なので、作れるかどうかも怪しい。

この基板では、SW 端子の仕様を変更してみた。~SD がそのまま接続されている。MUTE は即 出力を落とすが、~SD は、~FADE が効く。

また、プルアップ、プルダウンを入れられるようにしてある。基本使わないから関係ないんだが。


サブ基板4 PAM8403 基板

PAM8403 も試してみたい。安い PAM8403基板も使えるようにするのは厳しいので、PAM8610 基板と同じサイズ・ピン配置のものを用意しておく。 12V を入力するわけに行かないので、上記 電源基板を使うつもり。

PAM8406 には配慮してない。#9 は GND 。

PAM8403 は、手持ちのモジュールから外そうかと。チップを買うなら、PAM8406 の方が良さそう。古いのを掴まされるのはイヤだし。しかし、PAM8406 は高いのであった。


サブ基板5 FAN コン基板

別にここで作る必要はないのだが、スペースがあるし、おまけで。8pin AVR を使うのだが、SOP-8 を想定。DIP-8 のように見えるのは、あくまで ISP 用のコネクタ -- スペースがないのだ。モータ類は、10kHz 程度の PWM で駆動。センサーは、1 回転で 2 周期らしい。



基板全体は、こんな形になった。elecrow で発注するとどうなるのだろうか。面付けと認定されると +$8 らしいが。

    スリットは 1mm 幅。ミリングなら角は丸くないとダメだろうということで、端は半円。凸になる部分はそのままで、凹になる部分は、カーブを付けている。
    ブリッジになる部分は、あまり細いと製造で問題になるらしい。適当に付けたが、ある程度強度があるよう配慮したつもり。
    あと基板の角部分には、ブリッジを作らないようにした。角部分を綺麗に処理するのが難しいのもあるが、のこぎり (丸鋸、クラフトのこ)での切り出しが楽になるようにしたつもり。

    この基板を切り離すのに、金のこを使いたいがスリットが狭すぎだったかも。ダイソーのファミリーソーで DUO-DISK の基板を切ってみたが、切れることは切れるが2枚ぐらいで刃のエッジがなくなってくる。整形は、#120 ぐらいのダイアモンド砥石で軽くこする。包丁用でも良いが、ハンドグラインダー用の円盤型を使ってみたが、楽だった。




11/1 elecrow に発注 。$9.7 (送料込み 1150円だったかな)。 -- 文句言われずに ステータスが、In production になった!

11/08 珍しく時間がかかったが、shipped になった。今回は 10枚ぴったりのようだ。



なんか、指定したのと微妙に違う。サブ基板間のレジストを外すように keepout の指定をしたのだが、レジストがかかっているように見える。修正してたから時間がかかったのかも? 来ないことには分からないが。

11/12 受け取り。



やはり、サブ基板間にレジストがかかるよう修正されていた。手間をかけて修正してるということは、理由は分からないが、やってはダメということだ。前の基板のタブは、指定通りだったから、外側は良いのだろう。あと、枚数は12枚。

これを切ってみた。




32山の金のこでゴリゴリ切断。ちょっと苦労する。残った部分は、配線してあることもあり、とりあえず切らない。もっとも、普通の金のこでは、無理。ファミリーソーの刃を一回外して通すとか工夫がいる。

    ファミリーソーはダメ。突起があって刃を通せない -- つかえないヤツ。
    金のこの刃だけ持って引き切りするのが楽だった。刃を寝かせ気味にして一気に切ってしまうのだ。ブリッジの切断部分が狭いので引っかかるとスムーズに行かない。
    後処理は、ダイソーのダイアモンド砥石が良かった。かかとヤスリみたいな形状のやつ。

さて、このボード最初は、PAM8403 と MP2307 電源ボードから作ろうと思う。ちょっとやってみたいことがあるのだ。
posted by すz at 18:52| Comment(0) | TrackBack(0) | 日記

2017年09月24日

Nanopi DUO

cnx-software.comの記事で知ったのだが、Nanopi DUO という SBC が発売されている。Orange pi Zero (以下 OPi Zero) と同じ SoC (H2+) , wifi チップ(XR819) を採用していて気になっている。



製品ページ:
http://www.friendlyarm.com/index.php?route=product/product&product_id=197

価格は $7.99(256MB モデル), $11.99(512MB モデル)。送料は いくつか買っても $5 。例によって専用のヒートシンクも用意されている (+$2.99) 。

サイズは 50mm x 25mm 程度で、なんと ESP32 の開発用ボード ESP32-DevKitC と同等のサイズで、より安い SBC なのだ。電源に 5V2A が必要なことや、技適がないなど、実際に使うのには難があるのだが、よくぞ作ってくれたと思える製品だ。



ピン配置はこんな風になっている。Ethernet や USB HOST さらには、コンポジットビデオ出力、オーディオ関係があるため、GPIO として使えるピンは OPi Zero より少ない。

また OPi Zero とは違って、ビデオ出力、オーディオ出力には回路が付加されていて コネクタを用意するだけで良い。ただし、ビデオ出力を使うには OS 側の対応がイマイチらしい。

電源は、USB OTG または 5Vピンから入力できる。OPi Zero と同じ回路で 電圧が高い方から入力される。また、USB OTG 側へは逆流しないので、PC の電源を OFF にしても問題が起きない。

ちなみに、レギュレータIC は、単電源のものが スイッチングDC-DC を含めて 6 つも使われている。(OPi Zero と数は同じ)。必要とはいえよく収まったと思うわけだが、さらに Wifi チップアンテナ や SPI Flash のパターンまで付いている。

    製造元の friendlyarm.com のフォーラムに Wifi Problem XR819 という話題が、なんでも Wifi の MAC アドレスが皆同じだとか。解決方法も書いてあるようなので要チェック。



NanoPi DUO には、Mini Shield というオプションがあって(+$9.98) Rasberry pi と同じディメンジョンになる。この Mini Shield には、各種コネクタが付いている。USB は HUB IC を介して 4port 。また、USB-SATA ブリッジも付いていて ハーフサイズの mSATA SSD が付けられる。

    DUO + Mini Shield を買うのであれば、Starter Kit というものがある。ヒートシンクやケース、USBシリアル などが付いてお得な感じ。特に 512M は、$19.98 (+ 送料 $7 )。

    USBシリアルだが、電源ケーブル代わりになるようだ。USB 5V が ボードの 5V に直結されている。電源コネクタは micro USB なので、こちらを使った方が良いかも知れない。

    ちなみに Mini Shield に mSATA SSD を付けるなら、オプションの 64GB SSD ($45) も同時に買うと良いようだ。mSATA ハーフサイズ の SSD は割とレアで 特に for industrial なのは他で買えないかも。

    ピンヘッダーが付いているが、18 ピン。Rasberry pi の #1〜#18 分だけ 互換になるようになっていて、I2C, シリアル TX,RX の位置が合っている。

    cnx-software にスターターキットのレビューが載った。
     ・ https://www.cnx-software.com/2017/09/25/nanopi-duo-starter-kit-review-part-1-unboxing-and-assembly/
    第二弾の記事
     ・https://www.cnx-software.com/2017/10/30/nanopi-duo-quick-start-guide-ubuntu-breadboard-mini-shield-msata-ssd/

    まず、SPI Flash が搭載済み? それも 128Mbit(16MB) 。気になる。

    コメントを眺めると、OPi Zero の イメージ (armbian mainline) がそのまま動くようだ。ただし、1つ問題があって、USB-SATA チップ の RESET が GPIOG11 につがっているため、u-boot で SATA が enable にならないといった(意味の)ことが 書かれていた。




さて、このボードをどうやって使うと面白いのであろうか?

形状からみて、なにか USB デバイスになる専用機というのが思いつく。
 1) USB シリアルボード あるいは、FTDI でできるようなもの (JTAG 等)
 2) USB サウンドボード とか AV 出力ボード
 3) Wifi ドングル
 4) mp4 エンコーダーボード
外付け回路がほとんどないようなものだとこんなやつ。ただのUSBデバイスに SBC を使うのは大げさすぎるが、コスト的には十分成り立つように思えるのである。標準の OS や armbian を入れた SDカードを作ってちょっと弄れば実現できてしまいそうなのだが、もっとシンプルに SPI Flash にインストールできて 専用機として動けばすごく嬉しいような。

 ・ http://linux-sunxi.org/Bootable_SPI_flash

SPI Flashの使い方はここに載っている。1MB が u-boot 専用。残りに カーネル+initrd を置くことが出来る。SPI Flash は 16MB まであるようだが、4MB 程度までなら、そこそこ安い。

昔は 1フロッピーで動く OS がいろいろあったと思うのだが、今はどうなのだろう? Linux カーネルと busybox あとちょっとした自製アプリぐらいなら 圧縮して 3MB もあれば ...とか思ってしまうのだが。

専用機であれば、Linux カーネルなどいらない。全部自製する -- いわゆるベアメタル・プログラミングというのも可能ではあると思う。H2+ のデータシートは手に入らないが、H3 と互換のようで 上記のリンクにも H3 のデータシートがある。本当の ベアメタル・プログラミングだと avrlibc 程度の環境もないから、本当にめんどくさい。たぶん レジスタの定義ファイルを作るだけで嫌になるだろう。すこし楽したければ、u-boot の環境を流用する -- というか u-boot の一部として実装するという手がある。

もうひとつ、作りたいアプリをカーネルモジュールとして作ってしまうという手がある。Linux カーネル API を知らないといけないが、レジスタ定義のヘッダーファイルや ちょっとしたライブラリ環境を利用できる。一部だけ自製して、あとはカーネルの機能を使うということも可能なので、個人的には、こっちの実現方法が好きかも。いずれは挑戦してみたいような。ただ、OPi Zero の時でもやりたいとは思っていたのだが、なかなか手をつける気になってこない。




Ethernet 関係の話題

このボード 100M Ether の PHY も付いているわけである。パルストランス入りの RJ45 なら結線するだけなので、使うのは難しくないのであるが、他の使い方も考えられる。


2台の Nanopi DUO を直結することは可能らしい。同一ボード上で短距離であれば、25Ωで3.3v にプルアップするだけで良いようなのだ。別のIC のデータシート(トランスレス AN1900 で検索)に載っていただけなので、うまく行くかどうかは不明。より一般的には、直流除去のカップリングコンデンサが必要になるとのこと。その場合回路も変わる。

とりあえず、これが出来るということであれば、2台のPC をUSB-to-USB でつなぐことも出来る。それをして何になるか?という話はあるのだが、キーボード切り替え器が とりあえず思いつく。

あと 1:1で接続する形態だと、ちゃんとパルストランスを入れれば、100m まで ケーブルを伸ばせる。物理的に離れたところに Wifi を届かせるルータにもなるだろう。(技適が通ったとしての話 一応)あるいは、離れたところにある USB 機器を 接続する USB ケーブル(?)延長器とかも可能だろう。




ボードの特徴を考えれば、こんなところかなと思うのだが、Mini Shield を使って サーバーに仕立てるような使い方ももちろん良いだろう。普通の使い方だと思うので、ここではコメントしない。

で、そうした使い方をした場合、mSATA が少々ネックになる。$45 もする SSD を買う気にならないので、無駄なのである。mSATA から 2.5in HDD 用の STATA コネクタに引き出せれば、嬉しいような気も。普通に SATA コネクタを付ければ良いだけだが、PC 用のケーブルは長すぎて収まりが悪いような・・・5cm 程度のケーブルというのはあるのだろうか? とりあえず基板設計ネタとして覚えておこう。


    探したら、SATA に変換するボードは安価に購入できる。左は背が高くなってしまうので却下 -- 右のタイプが良さそう。--- 作る必要はなかった。あとはケーブルか。


    ケーブルは、7cm, 10cm といったものがあるようだ。ただ、ストレートー(HDD側)ライトアングルでないと。それを前提として、横から回すので 10cm では短いような気が。15cm ぐらい必要かもしれない。また、7pin どうしをつなぐので、15pin の電源ケーブルも別に必要。これも ライトアングルが良いと思う。

あるいは、Mini Shield のようなものを自作するとか。HDD の裏面にマウントできて、ケーブルもすっきり というのは考えてみたいところ -- こういうのは他のボードでは難しい。ちなみに USB HUB IC は、FE1.1s が安価に入手できる。USB-SATA チップも GL830 が安価に入手できる。-- 実は Orange pi でこれらを採用していて、実際の回路を参考にできるのでお勧め。ただし、これは必要な場合に選択枝があるという話であって、コネクタだけ付けるのもあり。特に USB-SATA は ケーブルになっているタイプとか さらにその中身の基板のようなものが入手できるから、別のやりかたがある。

さらに、さらに、Ethernet が直結できるならば、Switching HUB IC を入手して、いくつかの DUO を接続したコンパクトなボードも作ることは可能だ。

 ・ https://fabiobaltieri.com/2011/08/19/5p-switch/
 ・ https://github.com/fabiobaltieri/5p-switch


HUB を自作した人がいて 回路図など 公開している。HUB IC は、KSZ8995MA というもので、現在でも入手可能 。Mouser なんかでも買えるけれども、aliexpress で 昔のものっぽいのが 安価で購入可能なのだ。どう有用なのか?というのを別にすれば、なかなかに興味深い。作ってみたいものだ。

    こういうのを作っても、有用ではないと思えるのは I/O の絶対性能が低いため。いまどき USB 2.0 + 100M Ether ではちょっと。allwinner の SoC はいろいろ出ているが、H6 という 最新 SoC が出てきている。特徴は 64bit , GbE は当然として、USB 3.0 , PCIe サポート。まともに使えるようになるまで時間がかかりそうだが、Orange pi も プロトタイプらしきものがリークされている。こういうのが、サーバ用途での本命だろう。

    秋月で扱いはじめた ROCK64 なんかでも良さそう。GbE , USB 3.0 だから、高速I/Oは備えている。RAM も 4GB タイプがあるので メモリ的に重い処理もこなせる。こういうのと比べると DUO + Mini Shield は本命の使い方ではなく、DUO 単体で電子工作的に使うのが良いのだろうと思わされる。



Mini Shield のようなもの を検討してみる。

やりたいことは、HDD と一体化するようなボードの設計。


この図は、HDD の上というか裏面に Mini-Shield を載せたイメージ。これをベースに考えてみる。例えば板で HDDマウンターを作って HDD に取り付ける。左上に寄せるとこんな感じ。mSATA からケーブルを上に引き出し、ぐるっと回して HDD に接続。これでも良いのだろうが、SATA のケーブルは太いし、電源ケーブルもあるから、あまりスッキリとは行かない。あとコネクタの向き。Ether などは裏面に配置するもの。となると HDDのコネクタ側が正面になる。正面がグダグダしているのはちょっと。



こういう部品を使って、HDD を接続し、かつ正面パネルになるものを作ってみたらどうだろう?だいたい 結構背が高いのである。HDD からスペーサーで 浮かさないといけないし、2段のUSBコネクタも高さが 15mm ぐらいある。HDD 自体もあるから 全体で 9.5 + 5 + 1.5 + 15 = 31mm ぐらいにはなる。一方 128x64 の OLED モジュールは 27.8mm である。これを付けて タクトスイッチがいくつかあるようなものは作れそう。

問題は、Mini Shield (のようなもの) と接続する ケーブル 。特に SATA だが、信号線は 4 本のみで、距離も 直線なら 4cm ぐらいだから、ツイストペアでいけそうな気はする。あるいは、USB-SATA チップも載せてしまって、USB DISK 化するボードにしてしまうとか。ちょっとこの方向で考えてみたい。一応汎用として考えるのだが、うまくいくようなら、Mini Shield のようなものも設計して完成形を狙う。

    バネル付き USB-SATA ボードというのは、割と良い考えのような気がしてきた。USB2.0 専用で QFP48 の GL830 を予定している。ちなみに、 Mini Shield のチップは、USB 3.0 にも対応の JMS567 である。 このチップは手に余るので無理。というか入手できない(かも)。入手できデータシートがある USB 3.0 対応チップは、ASM1053 (QFN) ぐらい。といっても手に余るわけだが。




こんな感じでレイアウトを考えてみた。サイズは 70mm x 30mm 。左の4ピンコネクタが USB で、右は I2C とボタンと 赤外線レシーバー。コネクタはケーブルを引き出しても良いし、専用基板にピンヘッダで付けることも出来る(ようにしたい)。SATA コネクタは、1.27mm ピッチのスルーホールなので、クリアランスが厳しい。ELECROW は OK みたいだが、DRC が通らないところがあるかも。


で、専用基板のプロトタイプ - ショートバージョン。本当は HDD の 100mm 長にしたいわけだが、別発注になるので、これでいけるかどうかのチェック用。ショートバージョン は随分奥まったところにコネクタが来る。HDD のネジ穴にも届かないので、ちゃんとマウントできない。右の穴は コネクタとの干渉をチェックするためのもので役には立たない。また、マウントの補助のために、左右 5mm づつ 耳を付けている。
要するにパネル部が本命で、ちゃんとパターンが引けるかどうか?これは、ボチボチやっていこうと思う。

ついでに書いておくと、USB は 2 段のパターンになっているが、HUB IC を入れないと、1つしか使えないので意味がない。その場合、普通のタイプを取り付けてもいい。ロングバージョンを作るときに、HUB IC を入れるかどうか検討してみるが、2段はおまけの扱い。あと、電源は DCジャックから 12V 入力を考えている。DC-DC コンは、12V → 5V を 2つ。1つは、HDD というか USB DISK 専用。

そう言えば、このショートバージョンは、もともとブレッドボードの片側に挿すためのものであった。途中で目的を変えたので、こうなったが、それも検討しよう。


あとパネル部分がうまく作れない場合でも、こんなボードを使えば、とりあえず HDD は使える。ショートバージョンでも USB のケーブルを 引き出してすっきりと接続できるはず。この場合は、ボードを HDD の端まで移動させることも出来る。・・・と言っても、移動してもやはり2か所でネジ止めできるだけなので、しっかりと取り付けることは出来ない。

    このボードがどういう チップを採用しているのか分からないが、随分と部品が少ない。目立つのは水晶ぐらいで、あとは RC 。GL830 も 似たようなものなのでパターンは作れそう。SATA 信号線は 数ミリ長でストレートにコネクタに配線するだけであり問題が起きようがないと思える。ーーなんか作れそうな気がしてきた。

    ちなみに、Orange pi の GL830 まわりの回路図を見ていたのだが、内蔵 USB にまで、電流制限 IC の SY6280 が使われている。 ちょっと驚いた。

    ショートタイプは、取り付けに難があるようなことを書いたのだが、アルミアングルなどを使えばいける。10mm x 7.5mm のコの字型のものがホムセンにあるが、基板の耳にネジ止めすれば、HDD のサイドのネジ穴で止めることが、出来そうだ。

さて、少し設計が進んだ。(問題も出てきた)

左側のコネクタだが、ブレッドボード に合わせることにした。BB-801 (EIC-801) タイプは 30穴あってサイズは 82mm と 84mm。この基板は 80mm で、センターを合わせたときに、穴の位置があうように調節した。次に コネクタから 13mm は、なにも置かないようにした。あと、コネクタの増設。一応デジタル信号は、コネクタに割り当てることが出来た。

    USB 5V - DM - DP - GND
    8pin#2 MO - MI - CLK - CS - GND - 3V3 - DTX - DRX
    8pin#1 GND - 3V3 - SDA - SCL - TX - RX - G11 - IRRX

こんな感じ。AV 出力は未だ考えていない。MIC は、取り付け パターンを付けた。

問題は、パネル部への信号線。ボタン3つに対して 2本 (TX,RX) しか割り当てられていない。I2C 以外の信号線は、4 つあって IRRX , TX, RX, GPIO G11。Mini Shield で G11 は、USB-SATA のリセットに使われているので、同じ目的に使おうとしている。GL830 搭載の Orange pi でも、やはり G11 が GL830 の電源制御に使われている。
ちなみに、GL830 にも GPIO があり、電圧低下の検出?(GPIO0) と LED (GPIO2) に使われている。ドライバのソーソコードを読めば使い方が分かるかも知れない。



今は、こんな感じ。パネル部を 使わなければ ロングバージョン(もどき)になるようコネクタと穴を追加。コネクタは電源以外配線しないので、あくまで、ディメンジョン評価用のつもり。



GL830 のパターン作成中。なんとも苦しい。電源ライン(3.3V, 1.8v, GND) が入り乱れているのが理由の1つ。もうひとつ、SATA 信号線は直結するものではなく、10nF (0.01uF) のコンデンサを入れるものだったこと。2012 を使うので、場所が取られてしまう。それでも、なんとかなりそうな感じにはなってきた。

ところで 12V → 5V 変換で MINI-360 を2つ使おうとしているのだが、変更。MINI-360 の IC - MP2307 を使って 自分で組んだ方が良いかも -- とか思ってパターン追加。MP2307 は本来連続 3A が可能な IC なので 1個で済むはず。MINI-360 は インダクタが電流を流せない上に、IC の 放熱も考慮されていないため 連続だと 1.8A 程度まで。 インダクタは、秋月で扱っている NRシリーズ (10uH) なんかが使えれば十分なのだが、10mm 角で大きく パターンを入れるのが無理だった。4.7uH にして、75mm 角であれば、2A 連続には十分ではないかと考えて、CD75 (7mm x 7.8mm) 用のパターンにした。あと上面からハンダ付けできる自信がないので、長穴を置いてみた。仮止めした後、裏からハンダを流し込むつもり。入力のコンデンサだが、一応 25V 耐圧のものを使いたい。こうしておけば、ノーパソ用の 19V までは使える。分圧抵抗は、30K + 6.8K にすると 5.00 V の計算になる。誤差がだいぶありそうなので、後で調整することになるだろう。

    MINI-360 は インダクタが電流を流せないと書いたが、間違っているかも。村田製作所の FDVE0630 というのを見つけたのだが、7.4mm x 6.7mm 3mm高 のサイズで 10uH 3.1A , 4.7uH 4.6A となっている。--- 調べてみたら、一体成型のメタルアロイ というタイプで 大電流を流せる特長があるとのこと。大電流を流しても磁束を保持し、熱にも強い。巻き線が固定されているので鳴きもない。すごく良いものらしい。
    aliexpress でも 同じ 0630 タイプ (7.3mm x 6.6mm 3mm高)で、10uH 4A (Isat 5.5A), 4.7uH 5.5A (Isat 8A) という商品があった。 PIHA06030 という型番のものが 同スペックなので、出鱈目でもないのだろう。
    さて、MINI-360 のインダクタも 0630 で見た目も近い。ということは、4A 品かも知れないのだった。それで何故出力が止まるほど熱くなるのか?という疑問はある。最も 2A 流すのに、2A 品ではダメということはある。2A + Vout/Vin x (Vin - Vout) / ( 2 x fs x L) の定格が必要で、12v , 5v , 10uH だと +0.43A という計算になる。-- これは問題なさそう。あるいは、単純に放熱できていないだけ? 効率が 85% 程度だとすると 5V2A - 10W で 1.76 W 発熱する。 これが MINI-360 単体では無理なのだろうか? データシートに 50℃/W と 10℃/W の数字がある。そのままだと 88℃上がってしまうが、放熱さえすれば、問題ないということだろうか?

      追記: DUO-DISK を組み立て確認した。インダクタは 10mm 角のメタルアロイ タイプ。12V 入力で 5V 出力だが、3A 流しても余裕。2.2 Ω + 4.7Ω パラ (1.50Ω) を 4.95V ぐらい。インダクタは全く熱くならない。MP2307 もあまり --- こっちは放熱が十分という印象。

    あと必要なインダクタンスについて、L = Vout/Vin x (Vin - Vout) / ( fs x ΔIL) という関係らしいのだが、ΔIL とは さっき計算した 0.43A x2 のことである。同じ式なわけで、2倍のΔILを許容できれば 10uH → 5uH にしても良いということらしい。

    さて、まともなインダクタだと思った CD75 だが、定格は 10uH で 2.3A 程度。4.7uH でも 3A ぐらいだろう。ちょっと無理そうなので、再検討しないといけない。


    再検討したパターン。メタルアロイ・タイプ用にパターンを作った。10040 用をメインに、6030 も付く。NRシリーズも付くようにした。これらは、電極の幅が狭いので、なんとか MINI-360 のパターンと重ねて配置できた。入出力のコンデンサは 3216 が 2個パラで付けられるようにしておいた。


    ついでなので、2.2uH も調べてみた。
    CD32 1.4A CD43 1.9A CD54 2.8A(前後) CD75 4.2A(前後)。
    5V から 1.8V や 3.3V を作る DC-DC コンで 1A クラスなら CD32 で良さそうだが、2A クラスになると CD54 を使わないといけないようだ。 あと、メタルアロイ・タイプなら、0420 2.2uH が 3A だが、少々高価になる。


だいぶ設計が進んで今はこうなっている。ボード名も決めた --- LANDISK じゃなくて DUO-DISK 。サイズは、ロングタイプにしたとき使いやすいように 80x100 に変更。電源は MP2307 一つでまかなうつもりだが、MINI-360 x2 でも出来るようにはした。一応 5V3A ちゃんと流せることを期待。実際には 3A も使わないと思うが、その場合効率 85% として 12V 1.5A ぐらいの容量が必要。あと 電源OFF 機能のコネクタを付けた。リモート強制リブートが可能なように配慮だけしておく。

パネル部分。スイッチを、GL830 の GPIO に接続してみた。ドライバを改造しないと使えないというハードルの高い仕様。無理がありそうなので、パターンカット+ジャンパはできるようにはしてある。
SATA コネクタの詳細が FIX すれば発注できそうなところまで来た。(現物で確認しないといけない)


さて、Ether HUB の KS8995MA だが、ついでに いくつかの Nanopi DUO を載せたボードも検討してみようと思う。

まずは、上記の KS8995MA を使ったボードの回路図を見てみる。QFP128 なのでピン数は多いのだが、使わない ピン(NC)が多い 。 PORT5 の MAC と PHY の間を切り離してそれぞれを MII インターフェイスで 接続できるようになっていたりするのだが、使わなければ NC で済む。あと LED が 15 ピン。これもいらない。SPI で、設定したりステータスを読み出すことができる。( SPI を使わない場合 I2C ROM (110バイト以上) を接続する。) SPI で設定をやりたいとは思うのだが、
次に多い線は電源。3.3V と 1.8v と GND だが、実に沢山ある。これらが、入り乱れて配置されるので配線がめんどくさい。

    1.8v は、結構消費するようで、市販製品でレギュレータが壊れるトラブルがあったようだ。1.8v には、DC-DC コンを使いたいところ。SY8008B ,RT8059 あるいは 2A クラスの SY8089A ぐらいか。 3A クラスだと MP2143DJ , SY8113B とかもある。これらは、Orange pi などで使われている。
    加えてメンドクサイことに 1.8v はコア用とアナログ、さらに PLL 用がある。電源は共通でも良いのだが (少なくとも PLLには)LPF を入れる必要がある。

    MII の機能はいらないと書いたが、そういえば ESP32 が MII (または RMII) で Ether に接続する機能を持っている。わざわざPHYチップを用意してまで使ってみたいとは思わないのだが、一応実験用に使えるようにしておくのも良いかも知れない。

電源は面倒なものの、思ったよりは、シンプルに扱える印象はある。多分扱いきれないということはないだろう。

こっちのボードも進行中。名前は DUO-CLOUD 。DUO x3 と HUB が一体になったボードで、DUO-DISK の上に取り付けることを想定。電源は、MP2307 x2 で 6A を想定。割り振りは、マスターの DUO + HUB と DUO 2台。入力は 12V3A ということに。DUO-DISK と合わせて 60W クラスのACアダプタを使う。あと、HUB には、1.8V と 3.3V が必要だが、SY8089A で 5V を降圧する。

左側裏面にある部品は、8ピンAVR ( オプション機能) 。I2C ROM の機能を持たせて HUB を自動で config させる。加えて ファンコン機能。本当に 60W 近くも消費するのかどうか不明だが、ファンは付けることが出来た方が良いだろう。--- この2つは DUO が動いていないときでも機能させたいものなので、独立したコントローラーがあると良い。本当は DUO のリセットなんかも制御させたいが、リセットピンが出ていないため、電源 OFF 機能で対策。外部コントローラで電源制御ができる可能性だけ残しておく。


回路は考えてみただけのもので自信がない。よくあるのは、NPN(Nch) で ファンの GND 側 を ON/OFF する回路だが、それでは回転数検出の回路が組みにくい。12V 側をドライブするように Pch + Nch を使おうと思う。回転数検出は、SENSE がオープンコレクタ(ドレイン)だったはずなので、プルアップして入力。このへんの機能も I2C で制御(予定)。他に3つのコネクタがあるが、DTX,DRX でコンソール用。また、DTX,DRX はとなりの DUO の RX,TX と接続できるようにもしてある。

といっても、オプションだし組むかどうかは分からない。それどころか、このボードの基本機能を動かせるのか? 自信が全くない。

    回路図のコネクタのピン番号は、逆。4pin ファンに合わせて
     (1) SENSE (2) 12V (3) GND (4) PWM
    とするのが正しいようだ。
    あと AVR の信号線

    DUO AVR HUB
    SCL/A11 PB2/SCK/SCL SPIC/SCL
    SDA/A12 PB0/MOSI/SDA SPID/SDA
    MI/A14 PB1/MISO SPIQ
    CS/A13 SPIS_N
    G11 RST_N
    MO/A15 RESET

    こんな風にした。DUO は、HUB の SPI に対しても、AVR の ISP に対しても GPIO で操作する。I2C のマスターも GPIO で操作できるが、I2C ドライバを使っても良い(かも知れない)





またまた外形を変更。Pico-ITX なる規格があることを思い出し、サイズ(100mmx72mm) を合わせることに。DUO-DISK はもともと 70mm で設計したので、部品の位置もほとんど変える必要はなかったのだが、DUO-CLOUD は、だいぶ苦労した。それは良いのだが、マウントするのに難があるように思い、小さいタブを付けることにした。ネジ止めしたり、レールを使って固定したりするのを想定したが、邪魔なら削ってしまえば良い。


    このボード2枚を組みにして使う場合、放熱の関係でボードを立てて使うのが良いのだろうと思うのだ。で上か下にファンを設置するとしたら、60mm ぐらいが丁度よさそう。ボード間隔は 25mm ぐらい。多分 DUO のヒートシンクまでが一番背が高く 8.5 + 2.6 + 7 = 18.1 mm 。次が 2段のUSB 15.6 mm で 三番目が RJ45 の 13.5 mm 。 基板厚を足して、ヒートシンク上部 5mm ぐらいで、25mm 。


    あと、DUO-DISK に 4極 3.5mm ジャックのパターンだけ付けることにした。PJ-393 という型番のもの。それは良いのだが、ピン配置が統一されていない。Mini Sheild は、先端から R-V-L-GND 。だが、日本で一般的なのは、どうやら L-V-GND-R 。 GND の位置が違うとどうにもならないのが難点。カモンのRCA 変換ケーブル 435 は 日本式なので、L-V-GND-R にすることに。

    最初 4極 3.5mm ジャックの位置は、DUO の下にしたのだが、どうにも気に入らない。コネクタ類は右側に寄せる方針なので、無理やり移動した。

    USB コネクタもこのタイプに変更して、場所を作った。使ったことのない部品が増えると不安なのだが、まぁやってみよう。ちなみに、このタイプは、DRC で Restring 10 mil だとエラーになるパターンになってしまう。-- 8 mil 以下でなければならない。SATA コネクタ と これは 業者を選ぶ。





ケースも具体的に考えることにした。一応 MDF で考える。配置は、向かい合わせにして、下にファンを置く。レールは 5mm 角の角材。割りばしでも良さそうだが、サイズが正確なので。メイン部分は 端から 3.2mm 部品を置かないようにしたので タブ 4mm と合わせて 7mm まで行けるのだが、HDD (の取り付け部分) が干渉するので、そこだけ 5mm ぐらいが限界。
5mm 角の角材は、補強にも使う。最初からバックパネルを用意できれば補強は必要ないのだが、自信がないし面倒だしで、最初は厚紙にするつもり。フロントパネルは未だだが、扉にして、前から基板を差し込む。LED が いろんな位置にあるので、できれば透明なものにしたい。


ファンを取り付ける底板。上にレールが来るのだが、ファンを塞がないようレールは短くしている。基板が前後に動かないようにするためのロックだが、あまり練れていない。タブのネジ穴に上から棒またはネジを刺すので良いのかなとは思っている。

あと奥行は未だ決まっていない。HDD と SATA コネクタで何 mm になるか、ちゃんと調べていない。



10/14 elecrow に、基板発注。
 ・duo-disk-01c2.zip
 ・duo-disk-01c-out.zip
 ・duo-cloud-01c.zip
 ・duo-cloud-01c-out.zip

    追記: 問題点の記録
    DUO-DISK: 回路図の LCR の値は基本適当である。よくよく確認しないとマズイのであるが、特に注意すべき点について。MP2307 の 6.8K と 30K が逆に書いてあった。

    DUO-CLOUD : Ether コネクタとの接続。
    HUB は、MDI-X として接続しないといけないが、MDI として接続してしまった。auto MDI/MDI-X の機能があるのでダメではない。内部接続のトランスレス接続は合っている。UP-LINK も MDI で良いので、1つだけ MDI-X であるべきだが、port 4,5 のうち どれを UP-LINK にするか決めていない。ローカルに使う方は、できたらクロスにするということで。
      トランスに CT という端子があるが、これの接続が良く分からない。Orangepi など allwinner 系の回路図では、0.1uF を通して GND に接続だが、例のHUB の回路では、+2.5V に接続している。その他、TX側では、3.3V 、RX側では無接続 というのもあった。

10cm x 10cm 10 枚が $4.9 + 送料 $4.8 -- 1129 円になってる。チェックするのも飽きたので、ダメならまた発注すれば良いかと思い両方発注してみた。

    10/14(土) 発注
    10/18(水),19(木) 発送(追跡OK)

    ボケボケの写真が添付されてた。それにしても 水曜日・朝は早すぎ。土日も働いているのだろうか?
    10/23(月) 通関手続中
     先に発注した DUO-DISK が 国内に来た! 水、木あたりには受け取れそう。
    11/25(水) 受け取り(予定) 火曜日に地元到着。DUO-CLOUD の方は、引き受けのまま。土曜日の4時間の差がこれ。

部品のなかで SATA コネクタの フットプリントだけが分からないままの発注。デジキーとかで買える MOREX (87779-1001) なら、分かるんだが 高いし、これだけのために発注できないし。7pin+15pin の部分さえ合ってればなんとかなる( ということにした)。

    SATA コネクタが来た。両端の 基板に止める部分の幅はぴったり (42mm)。位置はほぼ同じ。穴径は 2mmφにしたが、1.5mmφという感じ。

    HDD に接続したときの位置関係もだいたい分かった。手持ちのHDD だと、端から 105mm の位置に基板が来る。DUO-DISK と右端を合わせると、端のコネクタまで 6.5mm 。だが実際には、合わせられない。穴の位置を間違えた!長穴の端から端を使ってようやくネジを締められる! で、HDD は 2mm はみ出す。ということは、4.5mm 固定でほぼ調整できない。メインの基板の左端から、3.0mm はなれたところにパネルが来る。したかったことは、パネルとの距離を 0mm にすることなので、ここから 3mm ずらせるように修正しておこう。0mm にするには、メインの基板の右の穴から 3mm 右に移動したところにドリルで穴開けで対処できる。この場合 HDD は、右に 5mm はみだす。

    縦の関係は、HDD のネジ穴がある面から 下に 2mm がコネクタの位置。そこから、22.1mm 上が パネルのコネクタの位置で、5mm のスペーサで HDD をマウントするとすれば、メインの基板上面から 13.5mm にコネクタが来る。普通のピンソケット(8.5mm)を使うと、5.0mm 上にコネクタがあることに。対策は、Arduino で使われるような連結ピンソケットを使う。Arduino 用は 8pin, 6pin なので、USB の 4pin は切るかピンを抜いて使う。

回路については、Ether HUB と USB-SATA 以外は電源と配線だけみたいなものだから、一部がダメでもなんとか。2つのチップ回りが怪しいわけだが、元にした回路図があるわけなので動くかも知れない。






DUO-DISK 基板がきた。前の写真で 14 と手書きがあったが、枚数だった。14 枚も来たのははじめて。なにかと運が良い注文だったようだ。パネル部をメイン基板にぴたりと着けるには、赤丸のところに穴をあけなければならない。これはちょっと難しいかも知れない。タブは、予想以上に目立たない。良い感じだ。

最初に作るのは電源回りの予定 MP2307 も同時に到着。というかパネル部を除けば、コネクタと電源しかないが、コネクタは HR911105A(発注忘れ), USB, 4極 3.5mm ジャック (到着待ち)がなく、あるのは DC ジャックのみ。パネル部分の部品は、一応全部ある。GL830 は、紙の台紙にテープで貼った適当なものが来ている -- 動かない不安がある。

10/31 DUO-CLOUD の基板も来た。こっちも 13 枚。何枚も作るとは思えないが、あっても別に困らないか。




本当に動くものを作れるのかなぁ? 0.5mm ピッチならハンダづけは出来ると思うが、設計上の不安も多い。




電源回路の確認

DUO-DISK を組み立て確認した。インダクタは 10mm 角のメタルアロイ タイプ。12V 入力で 5V 出力だが、3A 流しても余裕。2.2 Ω + 4.7Ω パラ (1.50Ω) を 4.95V ぐらい。インダクタは全く熱くならない。MP2307 もあまり --- こっちは放熱が出来ているという印象。

10mm 角を使えば、MP2307 の性能を発揮できるということは分かった。DUO-DISK, DUO-CLOUD では 10mm 角しか使わない。では、MINI-360 と同じ 7mm 角 では本当にダメなのか? 7mm 角 でも 定格4A (サチるのは 5.5A) のはずで、3A 流せると思うのだが。あるいは 4.7uH にするとか。
posted by すz at 23:07| Comment(0) | TrackBack(0) | 日記

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(2) | 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 を使うとか。


ADC についてのメモ

ADC は2つある。ひとつは、ADC1 で 低ノイズアンプあり。あと ADC2 。ADC のピンは、どちらかに接続されている。
ADC を制御するコントローラは、RTC ドメインと、DIGTAL ドメインにある。RTC ADC1, ETC ADC2, DIG ADC1,DIG ADC2 の4つ。なんだかよく分からないが、RTC ドメインの方は、ulp 用だと思っておこう。DIGTAL ドメインの方は、高速で 複数チャネルのスキャンもサポートしている。

また、ADC に接続される内部機能がある。ホールセンサ、電源電圧(PWDAT)、および 電源のピーク電圧(PKDAT)。それ以外に温度計があり、こちらは専用の ADC に接続されている。

    SENSOR_VP (GPIO36)
    SENSOR_CAPP (GPIO37)
    SENSOR_CAPN (GPIO38)
    SENSOR_VN (GPIO39)
    32K_XP (GPIO33)
    32K_XN (GPIO32)
    VDET_1 (GPIO34)
    VDET_2 (GPIO35)

これらは、ADC1 に接続されている。またホールセンサは、SENSOR_VP/SENSOR_VN に接続されている。
その他は ADC2 である。

さて、DIG ADC は、どれぐらい高速なのか? 調べて 11us とか 17.2 us とか書いている人がいてはっきりしない。analogRead()を使っての計測で、ピンの設定やらなにやらをいちいちやっての時間らしい。

esp32-hal-adc.h

/*
* Set number of cycles per sample
* Default is 8 and seems to do well
* Range is 1 - 255
* */
void analogSetCycles(uint8_t cycles);

/*
* Set the divider for the ADC clock.
* Default is 1
* Range is 1 - 255
* */
void analogSetClockDiv(uint8_t clockDiv);

どうやら、ADC clock は クロックソースを分周して、指定したクロック数かけて計測するようだ。しかし、クロックソースが何かは良くわからない。
adc.h

/**
* @brief Set ADC source clock
* @param clk_div ADC clock divider, ADC clock is divided from APB clock
* @return
* - ESP_OK success
*/
esp_err_t adc_set_clk_div(uint8_t clk_div);

こっちに書いてあった。APB_CLK というのは、80MHz (最大) 。div が 1 というのは、1/1 分周? だとしたら 80MHz で 8 clock で取得できるのだから 10M sps ? 最適な値を設定しなければ、精度に差がでてしまうのだろうが、結構すごいような。AVR とは雲泥の差である。

ただし、正確な起動タイミングというのが、少々怪しい。ソフトウェアかまたは I2S と書いてある。ソフトウェアでは、完全に正確なタイミングは取れない。となると I2S になるのだが ...

I2S には、ADC モードというのがある。ADC のデータを取得して I2S で外部に出力する機能。( ちなみに、DAC モードというのもある。I2S から入力したデータを DAC で出力する。)。これのために起動できるようになっているのだが、内部に取り込むために使えるのかどうか不明。

ついでだが、audio clock というのが独立して存在する。専用のPLL で I2S だけが使用できる。44.1k の整数倍とか サウンド用の周波数を作り出すためのもの。それは良いのだが、完全に正確なタイミングとなると無理。

さて、DAC はどういうものなのか? 8bit x 2 というのはすぐ分かるが、周波数などは?

まず フルスケールは、電源電圧の 3.3V -- ではあるが、4 段階のスケーリング 1/1, 1/2, 1/4, 1/8 が出来る。 うまく使えば 12bit 相当になるかも。クロックについては、ソースが RTC8M_CLK (8MHz) でこれの n/65536 (n = 1 〜 65536) とか。PLL を 使っているのだろうか? とにかく最大は 8MHz のようだ。1 クロック毎に出力できるとは思えないのだが詳細は分からない。仮に 8 clock だとしても 1M sps になる。これだと、多値 ΣΔ とかで 8bit 以上の分解能を実現することが可能かも知れない。ただし、電源にノイズが乗れば、だいなしである。ESP-WROOM-32 なんかだと、電源も1つにまとめられているので、厳しい。


基板づくりメモ

先日はじめて 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