西山 茂丸 について

組み込みマイコンでエンジニアを続けてきました。今の時代で見えない部分についても体験してもらってより深い理解を得てもらいたい広報教育活動をしています。

[Perseus] RFのスペクトル体験環境の整備

PerseusWindows10へのホスト環境移管で更新に手間取ったRFスペクトル体験のSDR受信機だが、実際には従来使っていたVAIO-Xというマシンを専任で設置していたので、今回の移管では設置場所も含めた使いやすさには問題が残っている。

VAIO-XにはUbuntuへのシフトを任命したので、サイズの小さなマシンを棚に突っ込んでディスプレイだけを見せるというのもできなくなってしまった。Perseusの環境としては一台専任で稼働させておけば、残りはリモートアクセスということも出来るのだが、当面マシンの手当てと場所がない。

USBのデバイスサーバーをアンテナ収容口近くにあるアクセスポイントと含めて整備して、そこにUSB機器をいくつかつないでおくことで自在にシェアが出来ればよいと考えていますが、はたしてどうなることやら。この種のマシンのドライバーがきっと未署名でWindows10に対応するには、ZdiagなどのWinUSBへの対応ツールが必要になるのだろうとは想定内だが・・・。製品は既にどれも終息状態のものばかりで流行らなかったようだ。

http://buffalo.jp/product/wired-lan/device-server/ldv-2uh/

http://zadig.akeo.ie/

 

 

[Windows10] Perseusの再稼働

土曜日に、訪問してくれたラジオ製作の子供たちに電波を見せてあげようとPerseus(イタリア製のSDR)を稼働させようとしていたのだが、今までは、あまり使い道のないATOMの2GBマシンのVAIO-XがWindows7で仕事をしてきたのだったがWindows10移行時代でUbuntuに宗旨変えしてもらっていた。そして、ペルセウスのソフト自体もあいにくとWindows10の壁にあたり準備がかなわなかった。AM放送やアマチュア無線をモニタするのと表示帯域幅でのリアルタイム表示などから目的によっては保有しているスペアナよりも見やすいものとなっているので、当日使ったPCスペアナで見せたニッポン放送などのブロードな波形では刺激が弱かったと反省している。

imageMFTにいき一旦自宅に戻っての補給体制に入るので、ペルセウスも持ち帰りWindows10で動作確認することを進めたところ、問題点はDriverの署名が必要となり同梱されていたzadigというツールで処理できた、またPerseusのライセンスファイルがUbuntu化してクリーンインストールしたVAIO-Xの中で消失したことも含めてPerseusのソフト更新(V5)と合わせてライセンスファイル購入をイタリアのmicrotelecom.itにお願いした。

必要なのは、PAYPAL の支払いアカウントでした。私のPAYPALアカウントでの住所入力は日本語化されていたので日本語表記にしていたが、外国とのやり取りで製品サイト側で確認するという目的で正しくコードがわたる気がしないので、ここをROMA字表記に変えることにした。あいにくと、県名フィールドは漢字でのリストからの選択しか出来ないのであきらめた。

Perseusのアプリケーションでライセンス申請を行う箇所では、英語しか受け付けなかったので心配だったが、ライセンス申請ファイルを生成して、メール添付して送付するともに、paypalで送金を行い、イタリアの月曜明けるのを待った。

2016-08-08日曜深夜にも関わらず手続きをしてくれたのか、朝にはライセンスファイルが送付されてきた。ドライバーは既に、サイトから落としたものを署名付与ツールに基づいてインストールして名称もPerseus RcvrとしてPCに認識されていたので、届いたライセンスファイルをPerseusのインストールされたフォルダに置くことで稼働することができた。

従来のV4までのUIと大きく異なることはなさそうだが、以下の機能が追加になっているようだ。

V5 software main features:
  • Resizable application window up to a HDMI screen resolution of 2560×1400 pixels
    • 2016-08-08 (2)確かにでかい画面で見ることができるし、一望できるレンジが広がった形になっている。

 

 

  • New, faster Digital Signal Processing engine
    • 処理速度も画面に応じた形であげられているようだ。
  • Much faster spectrum/waterfal screen refresh rate up to 120 lines/second
  • Much improved waterfall quality
  • Dynamic spectrum averaging for a more comfortable spectral view
  • Revised tuning options with better man-machine interface
  • Full support for XP/W7/W8.1/W10 Microsoft Operating Systems
  • Future support for split spectrum/waterfall display operations.

里に持ち込んで、アンテナが接続された状況で、使えるようになるだろう。

 

[実物検証更新] 3Dプリントでの嵌合処理

最近一般化してきた3Dプリンターは、主にホビーで使われているフィラメントを溶融して絞りだしつつ積層していく方式のものだが、期待する外形サイズと実際のそれには、プリンタの設定、スライサーの癖、フィラメントの状態など多様なパラメータがあってある程度の誤差の範囲である意味あきらめるか、自身で経験を積んで設計値と実際の出力結果の傾向を学習して対応することになる。のし

とはいえ、プロ用途ではないものの物理的になにか既存のものと嵌合させたり、3Dプリント出力物でケースを作ったりする場合には蓋と本体の嵌合という問題が出てくる。

3Dプリンター自体はNC加工と同じでステッピングモータを何回転したら1mm進むのかという設定がギア比などから導かれるしGコードのコマンドでもM92などがそれに相当してプリンタ固有値を与えて調整するということになる。それ以外にもフィラメントの送り量についても同様なことが発生して太いマジックで書いたものと同じではみ出るし、それを計算して少し内側に描画というか出力を行うのはスライサーの仕事だ。

ともあれ、自身の使えるプリンター環境で設計値と出力値を比較して学習するためのテストピースを作ってみて確認してみる。

スクリーンショット (58)左の3Dデータがそのテストピースでサイコロの目のような穴と、サイズを少しずつ振った長さの異なるでっぱりを持つ凸側の二つで嵌合させた時に何ミリの隙間が出来るかで5段階の幅が判断できるようにして、それぞれ5mm角の穴に対応するものをセンタに一番小さいものを5mm出るようにして、順次1mmずつ短くして少しずつ太くしているということだ。

 

image実物はこちら

 

 

 

 

imageこの例では、2mmくらい嵌合できない隙間があり、用意した突起のうち、三つがクリアできたということになる。

 

 

 

 

5mm角穴に対して、この例では突起の設計値は4.0mm 4.25mm 4.5mm 4.75mm 5mmだったので設計値でいうところの4.5から4.75mmの範囲で嵌合する適合点があるようだ。

実際にはこの差分は常に同じと考えて0.5mmくらい内側を小さくすれば出来そうだ。

次の範囲を絞ったピースでは4.5 4.55 4.6 4.65 4.7としたが、4.55の場合にかっちり噛む感覚で閉じたようだ。これは、この印刷環境の事例なので同様なことを使われるツールで作り再現確認していただいて学んでいただくのがよいだろう。

[続報] プリンタ毎に異なるのも当然ですが・・・

image黒いテストピースはRobo3Dで出した同一条件、青のテストピースはQIDI Avatar IVでの結果

Robo3D     4.7 0.35程度

QIDI AvatarIV  4.55 0.5程度

 

[更新2][新製品] ミニサイズのプリント基板対応バイス

組み込みの里でカスタマイズ作成している電子工作用のバイスがリニューアルされて、分解可能な形になりました。材質はABSです。100%充填率で作成していますので強度は確保されています。

幅75mmの基板まではスリットに合わせると固定出来ます。

水平保持した場合に下のスリットの場合で85mmの高さ、上のスリットの場合で97mmほどです。

image機体の色は、そのときの事情でフィラメントの在庫によります。これはパンダ色になっていますが、特定できません。

  1. 前の爪が長くなりましたのでバランスがとりにくい重い基板なども対応可能になりました。

 

image2. ロックスクリューのネジ側の強度を高めました。

 

 

 

 

 

 

image3. すべて分解できる構造になりました。

 

 

価格 3500円にて頒布いたします。送料別途かかりますが、PCN 秋葉原 by Assemblageさんにも置かせていただきますので現地でご確認ください。

[追記] まだバイスの口を開閉する回転ノブの軸との密着度が不十分で空回りしてしまうことがわかりました。分解可能をあきらめて接着するかどうかを、もう少し見極めます。現在のものは、接着しておきます。

[追記更新] 強度と分解の両立を図るための、技術を一つ見つけましたのでこの方法で出していきたいと思います。従来のモデルはクロス軸を構成していたのですが、このモデルでは角の丸い軸を使っています。強度確保の意味では、こちらが強いのですが、軸に対して力を伝えるということに関しては精度含めて難しいのが3Dプリンターの矛盾となります。

image左側の写真が、対策を講じた部品です。

 

[ご紹介] 電子工作部品頒布します QIコネクター関連

通信販売ではありませんが、組み込みの里の部品ストックから割と在庫豊富で利活用出来そうなものについて実費頒布いたします。現在QIコネクター(2.54)については、ハウジング・ピンともに余裕があります。工作初心者の方々の支援含めての活動ですのでご理解のほどお願いいたします。送料実費です。振込手数料のほうがおおくなってしまいますのでご理解のほどよろしくお願いいたします。圧着機もあります。

image

SN48B こちらは1500円

image

雄ピン、ハウジングの例

image

プライスリスト

[ご注意] 中国からの送料無料の送達確率は100%ではありません

多くのモノづくりが、日本を離れてしまい電子部品などの流通も様変わりしていて、電子部品市場である、秋葉原に近いからといったメリットよりも、Aitendo のある末広町に近いからというメリットが出てくるような事態になっている。そう中華市場に世界中の電子部品ニーズが集まっているからなのだろう。

知己の御仁は、もともと大陸からの部品手配で、子供達に向けた電子基板などの開発提供サービスを繰り広げていたのだが都内にいるメリットが無くなったということや、退職したセカンドステージに入ることも含めて北海道の屈斜路湖近くに本拠地を移転した。まだ現地でオフィス建築中なのだが・・・。Japan-Postの配送が来る地域ならば全国どこでもOKだということだ。

さて、組み込みの里を始めるころと中華市場での電子部品入手がメジャーなメソッドに変わり始めたことが相まって国内の通販のみならず徐々に中華通販での手配が増えてきている。大陸の通販を直接対応するには、知己のようにマンダリンで応対できないといけないのだろうけれど。それが難しい私には、aliexpress が英語レベルで敷居をさげてくれて助かっています。

aliexpress では AmazonでいうPrime会員はないのですが、ある程度の軽量な電子部品であれば数量規模の範囲で送料無料で送ってくれるショップをリストしています。おなじ商品でも数量を増やしていくと、ある量をきっかけとして有料に変わることにはなります。送料無料で対応している場合は、China Post Air Mailが一般的で、ここからJapan Postに配送されてきます。

表題の送達確率だが、経験からいえば98%程度だ。50回に一回くらいは送付から2か月かかっても到着しない、中国からの出荷履歴があるが、日本への到着履歴がないという事態が多い。注意しなければならないのは、Tracking Informationだが、ショップがChina Post Air Mailを使わずに別の業者に依頼される場合には、一切トラッキングインフォメーションが出ないこともままあるが、98%の確率でほぼ一か月以内には届いているという実績でもある。

China Post Air Mailに発送されたといっても安心は出来ず、下の事例のような形で、同一のトラッキング情報が何回も出荷された上で、結果として日本国内への着荷情報がないというケーrecordスもあり、何が起こっているのかは貨物でロストしたとだけは言えないのではないかと思われます。

 

 

注意すべき点として
・ショップの開設時期と実績の確認 (取り逃げのcaseもありますが、Aliexpressでは補償されます)
・出荷された場合のトラッキングデータのウォッチして一か月以上トラッキングデータが中国から出荷にならない場合にはアラートをショップにメッセージで投げる

 

 

 

3Dプリント安定化のベースが出来つつあります

3Dプリンターが到来して三年余り、今は二台目も登場してパラレル運転することもあり新旧両機種の癖の違いなども進化として理解している。旧型機種とはいえ、当該メーカーの更新や最新型のホットエンドへの改修も含めてそれなりに進化している。進化できないのはメカにともなう速度の問題と、構造に基づく振動などの課題だ。とはいえ先日作成したヒートカバーでABS出力も安心して出せるレベルになった。

新型プリンターはFlashforgeなどの相当品で、出力プレートが上下動するタイプでX-Y軸の水平面が保持される点なども含めて高速動作が出来るようになっている。構造からくるサイズ制限は、筺体に対して出力プレートの左右にエクストルーダーの余地がそれぞれ必要なことや、既にDualヘッドの時代になっているのでそれも要因の一つだ。出力サイズを確保して安定に出力するという目的に適うのはデルタ型かもしれない。Dualヘッドの並行性確保が難しいという噂などがあり、メカで水平が確保されるモデルとして現在の機種を選定したのだが、三つのモータを駆使して制御するデルタ型のほうが実は安定かつ力強く制御できるのかもしれない。

旧型プリンターはAutolevel機能を導入したので、この点については毎回の調整が不要になりとても便利だ。新型プリンターは構造的に本来は最初にマニュアル調整すればふとは不要のはずなのだが、ヒートプレートの過熱状態でのたわみの相違があるのか今のところ毎回微妙な調整を余儀なくされている。こちらも出来ればAutolevelの多点検知補正でアルゴリズムで解決できるように改造をしていきたいと思う。

ここまでは、現状認識までの話なのだが、実際問題として安定出力していく上でどちらにも重要な課題は、実はフィラメント供給の安定が鍵だといえる。

新型プリンターでも発生した、フィード不良による停止は、実はフィラメントガイドが課題だったし、同様に旧型でも同様なことが懸念されたし思い返される事態が記憶にあったのでフィラメントガイドの再設計を行った。Flashforgeでも共通の課題だったフィラメントスプールからの引き出し位置をスプール幅の中央位置に合わせることでフィラメントがスプール内部で噛むことが回避されるようになった。片寄せをしていた場合には噛みこみが発生していた。

Robo3Dではフィラメントを上部に置いてはいたものの、噛みこみについての理解は十分でなかったし、中央位置へのガイドとともにスプールが安定に回るようにという意味も含めてひっかけではなくてベアリングを追加してスプールがスムーズに回るようにした。従来は、テンションがさらにかかる要因になっていた。また取り付け位置も高さを稼いでフィラメントガイドに追加したガイドホールの角度もスムーズになるようにした。

3Dプリンターでフィラメント供給が止まる要因には様々なものがあるが、色々つぶしていった結果、残ったのはここになる。もうホットエンド供給内部でフィラメントが詰まることはなくなった。冷却が十分に必要ということの認識と対策が出来たことに基づく。ホットエンドをヒートアップして、フィラメントさえ送りこめるようにしてあげれば内部を掃除する必要はなくなったと感じている。

まだまだほかの事由も起こってくるのかもしれないが、三年余りの運用を通じて学んできた経験からの対策は、複雑な3Dプリンターのシステム理解についてゴールに近づいているかもしれない。

[注意] STLファイルの加工について続報 Meshmixer

既存のSTLファイルを加工して利用する場合についてデータ出力で問題となる場合がわかった。

imageこの写真の例では、左端のデザインをベースにして一部の脚のみを分割して伸ばしたいというものだったのだが、真ん中の事例は、そのままやったことが明確なままに部材も分断されて出てきた。

右側の事例は、そのことが判明したので対策をしたものです。Meshmixerで面カットなどで分断した場合で別の部品や拡張した形で接続しようとする場合に起こりました。

Gcodeベースで確認すると違いは次の通り。

スクリーンショット (55)結合しただけの状態で出したSTLファイルは実際には内部は結合していませんでした。Mattercontrolでgcode生成した場合の第一層の写真です。

 

 

スクリーンショット (53)結合した後にMake solid(固体化)というアクションをとることで作ったSTLファイルでは綺麗に内部が固体化されたのが確認されました。

 

 

必要な手続きをMeshmixerで再確認すると

スクリーンショット (44)これが内部で固体化されていないSTLファイルを読み込んだ状態でObject Browserを開きました。

スクリーンショット (45)

 

Edit->Separate Shellを実行すると内部に三つのパートがあったことがわかり分解されました。
Object Browserで三つのパートを再選択して、Combine(結合)します。

 

 

スクリーンショット (46)Object Browserでも一つになりましたが、これではもとに戻っただけですね。

スクリーンショット (49)

 

 

Edit-> Make solidを選択するとメニューが出てきますので、固体化する際の精度などを選択できます、ここではsolid accuracyを最大の512にしました。そしてacceptを実行すると

 

 

スクリーンショット (50)Object Browserにもう一つのデータとして名前に(solid)が付加されたものが作られました。

 

 

 

スクリーンショット (51)固体化していないオブジェクトを一旦Object Browserでゴミ箱に入れて

 

 

 

スクリーンショット (52)このオブジェクトに対して、Edit->Separate shellを実施すると出来ないよとアラートが出ますので、これで固体化が完了しました。

 

 

スクリーンショット (54)Object Browserで、固体化したオブジェクトを選択した状態でFileメニューからExportを選んで、STL形式で出力することで完了となります。

 

 

 

 

 

[懸案事項] MatterControl と QIDITECH関連

ヒートベッドの温度設定ならびにフィラメント温度設定などが正しくx3gファイルに設定されないと思われる事象の発生

  1. PVAフィラメントの入荷で、サポート材料をPVAにしようと、まずは温度設定を振って試験データ採取をしようとしているのですが、個々に設定を変えたはずのx3gファイルを読み込ませても機体が抱えている設定が変更されないようにみえる。
    1. Sailfish firmware側の設定でGcode温度設定に対してOverrideするという設定があり、これがONになっている場合には機体が抱えている設定が反映されるので、SDカードにゆだねる場合には、設定をOffにする [解決1]image
  2. PLA利用での出力の際には、最初のフィラメント垂れが発生するように見えて、これを回避するにはloopを形成してそこに逃がす必要がありそうなのだが、loop指定もうまく反映されないように見える。mattercontrol側の課題か確認要
  3. PVAフィラメントのヒートベッド設定は高温設定が不要とのことで、ABS材料とPVAフィラメントの組み合わせはダメらしいという情報もある。PLA+PVAでないと使えない可能性あり
  4. フィラメント詰まりが起きた、どうもDualExtruderのブロックに取り付けているヒートシンクが正しく熱接触していなかったようだ。ばらしてみるとサーマルコンパウンドやグリスもなかった。ヒートシンクがついているのに片手落ちだ。
    1. image
  5. PVAのフィラメントはノズルが詰まりやすいようだ、何か対策が必要な気がする。

もろもろ確認の一日になりそうです。予定では、細密出力のトライをしたいのですが、先は長そうだ。

[作業メモ] STLファイルの加工について Meshmixer

3Dプリンターを使い始めると、パソコン創成期のように自分で改造していくということが頻繁に発生するようになる。完成品というには、似つかわしくない進化する道具といえるだろう。カスタマイズが共通だったりする場合も、オプションが異なる場合なども含めて共有されるカスタマイズパーツのSTLファイルはthingiverseなどのコミュニティに提供される共有フォーマットとしては有用なのだが、加工をベースにした場合には123Designなどで開いても加工できないケースが多い。

今回は、Robo3Dプリンターに保温カバーを取り付けるという長年の懸案事項に踏み込んだ為にスマート液晶コントローラの取り付けパーツを変更することが必要になった。

2016-07-20 (1)左側の3Dデータが、従来使ってきたものだが、今回取り付け位置を右にずらす必要から、右側のように3Dデータを変更してパーツを作成する必要がある。

踏み込んで使えるように、今回はMeshMixerというAutodesk社のツールを用いて、こなしつつ学ぶことにした。

 

行うべき手順は、取り付け部分のパーツをカットして、スライドしてということなのだが、実際には、それだけでは済まなかった。

Plane Cutという機能で切断面を当該部分の根元に当てようとすると、角度の調整が難しいのである程度あわせて切断面を前後に移動させながら角度を追い込んで適当な位置を求めた。
2016-07-20 (2)写真の下のほうでカバーの一部が、この切断面で切れてしまうことが分かったので、あらかじめ、このケーブルカバーを根元で切断して保存しておき、あとで結合することにした。

 

 

2016-07-20 (3)切り出されたオブジェクトはObject Browserに追加された。この部分を非表示にしておいて、本体の部分のカットに取り掛かる。

 

 

2016-07-20 (4)ある程度のところで妥協すると断面は、すこしスカートが残ってしまうことになった。このままスライドしてもつながらないので、それは断面をextrudeして伸ばして面に接地されるようにしなればならないが、適当な厚みで重なっても問題はない。

 

2016-07-20 (5)切断するとこの動かすべきパーツがさらにObject Browserに追加された。

 

 

 

2016-07-20 (6)移動させてみると断面がおかしなことになっていることが判明したので、これを修正する。

 

2016-07-20 (7)

修正には、Analysis->Inspectorで断面をFlatFilでAuto Repair allを実施してまずはベースの修正を完了したので、このパーツを非表示にして移動した部品の断面を伸ばすことにとりかかる。

 

 

2016-07-20 (8) 2016-07-20 (9)案の定切った断面の前処理が必要なのでベースと同様にAnalysis->Inspectorで断面をFlatFilでAuto Repair allを実施し処理してみる。

 

 

これでこの断面を伸ばすことに取り掛かれる。

 

 

 

2016-07-20 (10) 2016-07-20 (11)selectの画面で、左クリックする少しずつ領域が選択されるので、繰り返し残りの領域を選択して全面あるいは少なくとも周囲を押さえることが必要だ。

 

 

まじめに全部選択してみた。

 

 

 

2016-07-20 (12)Edit->Extrudeでメニューがでるので、ここで長さを調整する。おそらく3mmもあればかぶるので適当なところでAcceptをする。

2016-07-20 (13)

 

非表示にしていたメイン部品を表示にすると重ね合わせが出るので少し長いが問題ないと判断するか調整をするか

 

 

2016-07-20 (14) 2016-07-20 (15)三つのパーツがそろったので、Object Browserですべて表示させて、シフトおしながら選択して、EditからCombineを選択して結合させる。

 

 

Object Browserでも一つになったことが分かるので、これで一応目的は達成した。最後に出来上がったファイルをSTLフォーマットでExportして完了だ。