XDF参加まとめ

結論

  • XilinxがPYNQにかける期待は高く、PYNQプロジェクトが近い将来に消滅する可能性は低いことを確認した
    • CEOのキーノートにおいて、Xilinxが社の方針として機械学習アクセラレータの市場でトップを狙っており、そのための一つの鍵がPythonおよびJupyterとの統合にあることが語られていた。RFSoC及びUltra96といった新型ボードでもPYNQが使えること、さらにxDNNやFINNといったMLアクセラレータの実行環境としてPYNQが想定されていることからも、その意向が伺える。
  • 現時点でXilinx自体が主体となり、(Pynquinoプロジェクトが主眼とする)ArduinoとPYNQの統合を行う予定は無いことを、PYNQ開発者のXilinx社員から確認した
    • 今後しばらくはKJの3Dプリンタをターゲットとした現行の路線を維持し、進めていく
    • K社では実装しないかもしれないが、画像処理、機械学習アプリケーションを今後開拓していくことでArduinoとの融合の意味がでてくる。この点については、まだあまり目をつけられていないはず(少なくともXilinx本家はノーマーク)。
  • PYNQ開発者に対してPynquinoプロジェクトについて紹介できたことに加えて、PYNQを使って研究をしている研究者と知り合えたことも収穫だった。

その他メモ

1日目
CTOのスピーチ

  • Xilinxの次の仕掛けはACAP(Adaptable Computing Accelerator Platform)
  • ZYNQにプログラマブルなベクトル計算ユニットを足したEverestというアーキテクチャを開発した→翌日の発表ではVERSALという製品名であることが判明
  • 別の記事によれば1500人のエンジニアと1000億円の予算を投入し、開発に4年かかったとのこと
  • 過去20年で最大の発明
  • 明日CEOのキーノートで詳細が話される

PYNQ

  • Xilinx Research Lab全体としてPYNQを主要なプロダクトと位置づけている感があった  
  • 近い将来にプロジェクトをクローズすることはほぼ無いと思われる
  • 特に機械学習アクセラレータ全般について、PYNQでの実行を前提としている
  • Jupyter notebookからJupyter lab IDEへの移行を進めている
  • PYNQ開発者のYunさんと話せた。以下話したこと:
    • ➢PYNQをメインに担当する開発者は現在3人
    • ➢Arduino APIの移植はXilinxのPYNQチームとしては特に考えていない  →Linux上でArduino APIを動かせば?と言われたが、OSの上だとリアルタイム処理が難しいからダメと返すと、MicroPythonを使えば割込のAPIが使えるよと言われた。しかしMicroPythonではJupyterが動かないから、結局MicroBlazeを使うしかなさそう。
    • ➢Linuxとリアルタイム処理を連動させるために、たとえばCortex A-53コアの一部をハイパーバイザ経由やOpenAMPを用いる方法は考えているか?  →Cortex A_53のコアを使う方法(hypervisor, openamp)はJupyter notebookで実現するのが難しく、今の所考えていない。Cortex R-5をJupyterから使うのは可能だと思うとのこと。  →Cortex-M1とCortex-M3ソフトコアをXilinxのFPGAに無料で解放することをArmがXDFにおいて発表した。MicroBlazeに加えてCortex-Mを使うこともPYNQのオプションになりそう。デバッグはKeil MDKなのか、XilinxSDKでもデバッグできるのかは、気になるところ。
    • ➢Dynamic Partial ReconfigurationはPYNQでサポートするのか?  →Vivado v2018.3からDPRが入ったので、近々対応すると思う。しかし奇数番号バージョンは安定版でないので、年末にリリース予定のv2018.4が出るタイミングでの対応になると思われる。
    • ➢PYNQ APIは一年前のv2.1を使っているというと、古いの使ってるなと驚いていた
    • ➢PYNQワークショップで、PYNQのPL部分(FPGA fabric)を使っている人はいるかという質問に誰も挙手せず、プレゼンターもこれが現実だ、と言っていた。
    • ➢画像処理HLSブロックを組み込む方法についての議論  →投げた質問:PYNQのHDMIビデオパイプラインにAXI Streamに対応したHLS IPコアを挿入した場合、どうやってPythonからIPを起動すればよいのか?  
      • 答1. インプットがAXI Streamのみであれば、明示的に起動する必要はない。というか仕様としてIPコアは働き続けるのみであり、止めたり再起動といった制御を行うことはできない。
      • 答2. インプットとしてAXI Liteも持っている場合、MMIOとして起動したり、パラメータを設定することができる。  
      • 答3. 画像処理HLSブロックを作る場合のYunさんのおすすめは、SDxを使って画像処理を行うStandaloneの回路を一度合成し、そこから一部のIPブロックを切り離してVivado上でPYNQのベースシステムに読み込み、再合成すること。おそらくHLSの煩雑なプラグマ設定や最適化を自動化してくれるものと思われる(あと、画像処理アクセラレータxfopencvが使えるのも利点)。SDxを使った画像処理回路をPYNQからPythonで起動する場合は、回路情報ビットストリームをPYNQ上でロードした後、SDxが生成したLinux共有オブジェクト(ダイナミックライブラリ)をCMAで読み込むことが必要。

企業ブース

  • Lynx Secure: リアルタイムOS(LynxOS)とLinux共存のためのハイパーバイザ。メインの顧客は自動車業界で特にBOSCH。あと軍用ヘリコプターのローター制御。軍用ヘリの制御では、Power PC、ARM、x86の上で同時にLynxハイパーバイザを起動して同じコードを動かし、リアルタイムで全ての演算値が一致したときに正常に計算が終了したと判断しているらしい(冗長化)。
  • ENEA: Liynx Secureと同じくハイパーバイザを介してRealtime OSとLinuxの共存を行う。ENEA LinuxというLinuxディストリビューションを提供している。LinuxとリアルタイムOSとの共存には、Cortex A-53の一部のコアを使う方法と、RPU(コプロセッサCortex R-5)を使う方法があるが、ENEAではCortex A-53を使う方法がメイン。理由を尋ねたら、Cortex R-5を使いたいという顧客がほとんどいないから、とのこと。

Xilinx University Programのポスター発表

  • https://www.xilinx.com/support/university/XUP-XDF.html
  • BYUによる、Demand-Driven FPGA Configurations Using PR, Linux, and PYNQ の話を聞いた。PYNQ上でのPartial Reconfigurationの話。実装はGitHubにあり、次のリリースでPYNQ本体にマージされるとのこと。教授のBradさんに教えてもらったところによれば、VivadoにはPR Flow?という機能があり、Out-of-contextでブロックダイアグラムをビルドして、PRリージョンを合成することができるらしい。沖縄のFPLには行くの?と言われた。

2日目

CEOキーノート

  • XilinxはAPSoC(ZYNQ-7000)で革命を起こし、その後MPSoC(ZYNQ UltraScale+)、RFSoCを市場に投入してきた。そして今回お披露目するのがACAP(という概念)であり、第一号となる製品がVERSALである。(=従来Everestというコードネームで呼ばれていたもの)
  • VERSALはマシンラーニングやデータセンターといった新しい顧客のニーズに応えるために開発されたSoCであり、スカラーエンジン、アダプタブルエンジン、インテリジェントエンジンから構成される。7nmプロセステクノロジー。
  • Scalar Engine: Arm Cortex-A72デュアルコアCPU、Arm Cortex-R5リアルタイムプロセッサを搭載。従来の(煩雑な)ブートシーケンスと異なり、Platform Management Controllerという仕組みによってブートシーケンスも変更されたみたい。
  • Adaptable Engine: 従来のZYNQのPLとの違いがよくわからなかったが、Custom memory hierrarchyというのが一つのキーワードだった。シストリックアレイを使って計算する図が何回も出ていたが、あれは勝手にユーザでやってくださいという単なる一例なのか、IPコアを含めたフレームワークを提供しているのかは不明。
  • Intelligent Engine: DSPエンジンとAIエンジンから構成される。AIエンジンの中身は、ベクトルプロセッサアレイ。開発環境がVivadoにマージされるのかなどの詳細は不明。
  • メモリコントローラはDDR4-3200、LPDDR4-4266、HBM(High bandwidth memory)
  • ALVEOというデータセンター向けのHWアクセラレーター(PCIeカード)も製品発表し、会場からはWWDCのような歓声が上がっていた(個人的には明らかにVERSALの方がdisruptiveだったが、現存する顧客ニーズとしてはALVEOの方が大きいということだと思う)

プレゼン聴講

  • Fordの研究所の自動運転チームの研究者。画像処理にZYNQ UltraScale+とOpenCVアクセラレーションを用いて高速化を行った話。ZYNQでSDxを使ったら高速化できてハッピーだった以上の話がなくてビビった。(あるいは知見があっても教えてくれないのか)
  • NGCodecのサーバーサイドビデオエンコーディングの話。AVC,HEVC,VP9、AV1で1080p60fpsの達成が目標。Virtex UltraScale+9(VU9P)を利用。高位合成を使用。Verification engineerの人員を減らせるのが高位合成の一つのメリット。ただしHLSは学習コストが高く、ある程度慣れるまではRTLで設計したほうが早い。あと、依然として動作周波数をギリギリまで上げるなどの観点ではRTLに理がある。
    • SDAccelの話が出ていたが(あと、結構SDAccelのセッションが開かれていた)、いまいち利点がわからなかった
  •  Xilinx社員のVU9Pプラットフォーム上でのPartial Reconfigurationの話。フロアプランをどう効率化するか、という話に聞こえた
    • SLR(Super Logic Region)という概念がキーワードとして何回も出てきたが(Timing ClosureのセッションでもSLRの議論がよく出てきていた)、よく理解していないので、あとでキャッチアップする。
  • Xilinx社員のTiming Closureの話。次のVivadoのバージョンからインクリメンタルコンパイル(論理合成・インプリの両方)が入るらしい。Vivadoのtclオプション(と思われる設定)を解説していた。

ハンズオンのワークショップ

  • Xilinxが買収した中国のベンチャー企業DeePhiが主催するDNNアクセラレーションのハンズオン。まずDPUカーネル上で.elfを作り、CPU上での.elfと合成してハイブリッド.elfを作成して実行する。Pluneからの再訓練によって精度を高められることを体感した。デモとしてはObject detection、Image classification、Face detectionなど。DNNとしてはResnetを使っていた気がする。
  • Ultra96上でSDSoCを用いてOpenCVのハードウェアアクセラレーションを行うハンズオン。強力なビルドサーバを用意してくれるのかと思ったら、時間がかかるからビルドせずにprebuiltを使ってくださいと言われて、Xilinxでもやっぱりそうなのかと納得した。Ultra96はrevisionにも対応している。
  • Xilinxが主催した、Ultra96上でPYNQを実行するハンズオン。Ultra96はrevisionにもPYNQにも対応しているので、今後標準ボードとして君臨すると思われる。
  • Xilinx主催のUltra96+SDx+Deep learningのハンズオン。Denseboxでの顔認識と、YOLOを用いた物体検出。DenseboxはOpenCVのfeatureを用いた顔認識と違って、訓練しだいで別の識別機にも使える、とのこと。

04. October 2018
Categories: 未分類 | Leave a comment

学部生研修5日目

ロボットアームのプログラミング(続き)

今日も朝早くから来て、前日からの課題であるロボットアームのプログラミングに取り組んでいるものがみられた。

 Simulinkを用いたArduinoのプログラミング

このセッションでは、前日時間が足りず取り扱えなかった、SimulinkによるArduinoのプログラミングについて学習した。SimulinkはArduino Support Packageを追加することで、プログラミング(Arduino ROTH: Run on the hardware)およびシミュレーション(External mode simulation)が実行可能である。制御器設計において重宝する機能であり、是非説明しておきたかったため、最終日のタイミングで解説した。

実習で用いた回路はポテンショメータの取得電圧を指令値とするDCモータのフィードバック制御回路である。2つのDCモータの回転軸を連結し、片方はタコメータとして使うことで、タコメータの両端の端子電圧を回転速度に対応付け、フィードバック制御を行う。以下にSimulink上のブロック線図を示す。

実習で用いたSimulinkのブロック線図

最終日は十分に実習時間がとれなかったため、どのグループもモータは回せたものの、タコメータからの電圧が取得できずにフィードバック制御を行うことができなかったグループもあった。しかしながら、Simulink上のシミュレーションを実世界のアプリケーションで動かすためのワークフローは学んでもらえたことと思う。

ロボットアーム選手権

この研修の総まとめとして、3チームの中の最優秀チームを決定する選手権を行った。以下のルールによってポイントを加点し、最も得点の多いチームが優勝である。

得点を与えるルール(6点満点)

1. 初期状態から旋回する(1点)
2. アームを曲げて、対象物体まで接近する(1点)
3. 対称物体を把持する(1点)
4. アームをもとに戻す(1点)
5. 逆方向に旋回する(1点)
6. 対象物体を解放し、設置する(1点)

試験に先駆けて、各チームは制御の細かい修正に取り組んだ。ロボットアームのプログラムはチームによって様々であった。以下に一例を示す。

ロボットアームの操作をキーボードで行う(付箋が貼ってあるキーで操作する)
モータ回路を分割し、4人で同時に操縦するという画期的な?制御システムを考案したチーム

また、4人で同時にロボットアームの制御を行うチームもいた。見た目は少し笑ってしまうような光景だったが、実は実際的な利点もあると思った。他のチームはシリアル通信で制御コマンドを送ったときに、Arduinoの受信側に遅延時間を入れていたので、複数の軸を応答させようとすると、どうしても遅延が発生してしまう。これに対して多数端末による制御を用いれば、遅延時間を考えずに複数軸を動かせるというメリットがある。また、制御するホストコンピュータを1台にしてしまうと、その端末が駆動するArduinoに信号雑音が乗ったときに、全てのサーボが影響を受けてしまう問題もある。彼らは複数の端末から操作することでノイズによる影響を分散させ、せっかく掴んだ物体を離してしまうとか、意図しない急旋回をもたらしてしまう可能性を排除するための、冗長化を構成していたともいえるだろう。

選手権の結果を以下に示す。

最終獲得得点表

どのチームも全てのタスクを完了したので総得点は並んだのだが、チームによってはタスクを最初から最後まで連続してこなすのではなく、断片的にタスクを遂行したものもあった。連続してタスクをこなした場合、追加点を与えることになり、最終的に全てのタスクを一気通貫して完遂したチームが優勝となった。

以下の優勝チームの試行動画をみると、タスクを達成したときの学生の歓喜、熱気が伝わってくることと思う(リンク: https://youtu.be/vUtjoPJynyE

16. February 2018
Categories: JKUAT/PAUSTI | Tags: , | Leave a comment

学部生研修4日目

ロボットアームの組立とプログラミング

このセッションでは前日に引き続き、ロボットアームの組立を行った。前日にグルーガンで接着した箇所を剥がしたいのだが、半田ごては使えないか、という質問を受け、実際に試したところ、アクリル板にダメージを与えずに綺麗にはがすことができた。アクリル板とグルーガンは、プロトタイピングにおいて非常に良い組合せであることを知れたのは、筆者にとっても新たな学びであった。というのも、普段筆者はアクリル板の接着には専用の接着剤を用いているため、グルーガンを試した経験はなかったのである。アクリル接着材は剥がす際にアクリル板にダメージを与えることもあるので、熱することで流動性を再度高められるグルーガンには利点がある。そもそもケニアではアクリル接着剤が手に入らず、グルーガンは容易に調達できるという背景があったのだが、これも現地の状況に応じて工夫することで見つかった新たな発見であると言ってよいだろう。

ロボットアーム完成の記念撮影(チーム名:Babaroa)

組立が終わった後は、実際にプログラミングを開始した。なかにはC++のクラスをつかってコーディングを試みるものもおり(電気電子工学科の学生)、結構プログラミングが得意な学生もいるのだな、と感じた。

MATLAB実習

本セッションでは、数値計算や工学一般において様々な活用が可能なプログラミング環境であるMATLABについての初歩的な使い方の解説を行った。

まず、講習に先駆けて、学生にはMATLABの30日評価版のダウンロードとインストールを要請していた。これについて補足すると、MATLABのライセンスはJKUATは保有していないようである。したがって、この研修を受けた後に学生がMATLABを使えなくなるとあまり意味が無いため、以下に示すいくつかの代替オプションを提示した。

代替ソフトウェア 利点 欠点
GNU Octave MATLABとコマンド互換 (ほぼ同じコマンドが使える) Simulinkに相当する機能がない
Scilab & Xcos Simulinkと同等のXcosというソフトウェアが付属する。XcosはさらにArduinoとの連携も可能である。 MATLABとコマンド名が異なるため、コマンドを覚え直さないといけない
Python ipython, numpy, matplotlib等を組み合わせることで、Matlab同様の数値計算・グラフ描画が可能。また、python-controlパッケージを入れることで制御シミュレーションも可能。拡張性、汎用性は最も高い。 Simulinkに相当する機能がない
OpenModelica Simulinkのようなモデリングが可能 筆者が使ったことがないため、詳しく知らない

講習ではMATLABがデータを扱う際の基本的な構造であるベクトルと行列を説明し、転置やインデックスでのデータ要素へのアクセス方法を説明した。そして、線形連立方程式の解を、係数行列をつくって行列操作で求める方法を説明した。この際に、その都度逆行列を求めるのではなく、ガウスの消去法を使うことで高速に解を計算できることを説明した。

 また、伝達関数の定義方法と、ステップ応答やインパルス応答、周波数応答(ボード線図)などの基本的な制御シミュレーションの方法についてもここで解説した。

Simulink実習

Simulinkの使い方は、今回とりわけ教えたかった項目の一つである。制御に興味を持ったものの、どうやってブロック線図を計算機シミューレーションに落とすのか、そしてその先にマイコンにどのように実装すれば良いのか、というのは初心者が最初に悩む点である。たとえプログラミング能力が卓越していても、実際にブロック線図とマイコン用のCの実装を行ったり来たりするのは面倒であるのだが、Simulinkを使えば、シミュレーションから実機での実行までを、単一のブロック線図のみでシームレスに扱うことができるのである。このセッションでは、Simulinkの簡単な使い方と、PID制御のシミュレーションまでを取り扱うこととし、実習を行った。

ロボットアームのプログラミング(続き)

 MATLAB/Simulinkの講習が終わった後、この日も結局18時過ぎまで、参加者はロボットアームのプログラミングに励むことになった。

15. February 2018
Categories: JKUAT/PAUSTI | Tags: , | Leave a comment

学部生研修3日目

Arduinoプログラミング実習

 本日の研修では、マイクロコントローラを制御するためのプログラミングを学んだ。Arduinoと呼ばれる8ビットのマイクロコントローラを利用し、プログラムの開発環境としてArduino IDEを用いることで、機械設計によく使われる制御要素のプログラミング技術を習得することを目的とした。

ほとんどの学生が一応Arduinoを触った経験はあるようで、難なく進めることができた。余談であるが、iPICにあるArduinoボードはArduino UNO(5台)、Arduino Mega 2560(5台程度), Arduino Mega ADK(7台程度)である。ボードはケニア現地で調達したと見られ、どれも純正品ではなく、中国製のコピー品である。Arduino Mega 2560と包装された箱のうち、半数以上がArduino Mega ADKであったことには閉口した(プロセッサ自体は両者とも同じものを使ってはいるが)。経験的に多くの場合コピー品でも問題なく使えるが、3台ほどシリアル通信できないボードが存在した。そのうち1台のArduino Mega2560に対してAVR ISP mkIIプログラマーを用いてATmega16u2をシリアルUSBブリッジ化するファームウェアの書き込みを行ったが、そもそもSPI通信ができないようで、チップ自体の破損か基板上に配線不良があると思われる。

このセッションではPWMを用いたLEDの連続的な光量制御、A/D変換によるポテンショメータ端子電圧の読み取り、FETを用いたDCモータの速度制御、ポテンショメータを用いたサーボモータの角度制御などを学習した。

ロボットアームの製作

 このセッションからは、いよいよロボットアームを製作することになった。ロボットアームの設計はThingiverseで公開されている以下をベースとして用いた。

Robotic arm with 7 servos ( https://www.thingiverse.com/thing:2433 )

 このプロジェクトを選定した理由は、構造がシンプルであることと、レーザーカッター用のDXF/PDFがすぐに加工可能な形で用意されていたことである。また、こちらで調達できる高トルクなサーボモータHD-1501MGにフィットする寸法であったこともある。メンテナンス不良によりiPICのレーザーカッターが不調だったため、もとFabLab Nairobiのファブマスター、いまはGearboxというメイカースペースを運営しているKamauを訪ね、事前にアクリル板のレーザー加工を行い、パーツは準備しておいた。

 学生たちが早速ロボットアームの製作にとりかかると、設計の不備と材料の不足に気づき始めた。ネジの長さが足りない、穴の大きさが小さくてネジが入らない、スペースが小さく部品の干渉が起こる、などである。

筆者は本プロジェクトを実際に自分で組み立てたことがないため、このような問題は出るだろうとは予め想定はしていたものの、解決策の提案は参加者に任せようと思っていた。どうするのだろうかと観察していたところ、一人の学生がやってきて、穴が小さすぎるのだが大きくすることはできるか?という質問を投げかけてきた。Mr. Omondiと話すと、隣の工作室にあるボール盤で穴の追加工をやってみようということになった。所望の径のドリルビットがiPICになかったため、工学部ワークショップから取り寄せて使うことができた。

また、径の長いネジに関しても工学部ワークショップからの調達を図ったが、微妙に長さが足りなかったため、近隣のネジ屋に頼んで手に入れることができた。JKUATの近くにネジを購入できる場所がある、と知れたのは今後のためになる収穫であった。

 本ロボットアームの設計は、アクリル板に空けた穴にボルト・ナットを通して組むものであったが、製作を通して、ボルトの頭が干渉する箇所がある、ピボット軸がない、などの問題が出てきた。このため、ホットボンド(グルーガン)をアクリル板の接着に使えないか、という議論になり試したところ、かなりの強度で接着することができたため、以後多用することとなった。

徐々に組み上がってきたロボットアーム

 この日は16時が研修の終了時刻であったが、学生が延長を希望したため、結局18時過ぎまで作業することになった。遅くまで残っても帰ろうとする参加者はおらず、一生懸命取り組んでいたのが印象的であった。

14. February 2018
Categories: JKUAT/PAUSTI | Tags: , | Leave a comment

学部生研修2日目

Autodesk EAGLEを用いた電子回路の設計実習

 本実習では、Autodesk EAGLE(以下EAGLE)という電子回路CADを用いて、電子回路(PCB)の設計を行った以下に、演習に用いるために用意した基板の設計を示す。

設計演習用のPCB(回路図)
設計演習用のPCB(アートワーク)

さすがにProteusでの設計経験があるようで、回路図は難なく仕上げたものの、配線には苦戦している学生が多かった。特に女性の参加者に多かったようが、配線に進む前に部品の最適な配置を延々と試行錯誤している学生がおり、慎重さが垣間見られた。

また学生から、輪郭線(メカニカルレイヤー)を円形あるいは任意形状にしたいが可能か、という質問が出た。自分は基板形状をあまり意識したことがなかったので、やり方を調べる方法があったが、単純にDimensionの第20レイヤーに任意の線画を描画すればよいことが分かった。今思い返せば、なぜ基板形状を変更したいのか、その理由を聞いておけばよかった

EAGLEによる基板設計の様子

ほぼ全ての学生が配線を終えたところで、学生にクイズをだした。皆配線には苦労したと思う。では筆者がこの配線をやろうとすると、実際どれくらいの時間がかかるか?という質問である。一番短い学生で15分と答える者もいたが、だいたいの学生は1時間くらいと答えた。では答えを発表しますと言って、オートルータ(自動配線機能)を使って配線し、正解は5秒でしたと伝えると、教室中が「やられた!」という歓声に包まれた。[

LPKF S63基板加工機を用いた電子回路基板の加工実習

本実習ではLPKF社のS63基板加工機を用いて、実際に設計した基板の銅板への切削加工を行った。筆者は日本ではMITS社の基板加工機を愛用しており、LPKF社の加工機は初めてであったが、メカトロニクス学科のテクノロジストの助けもあって、操作方法をすぐに習得することができた。LPKFに搭載されていて、MITSに無い機能として、加工ツールのZ方向の自動キャリブレーション機能がある。大変便利な機能であり、製作者に優しい製品設計であると感動した。

S63基板加工機ではCircuit Proというソフトウェアを利用して、通常の基板加工機と同様にガーバデータ(RS-274X形式)を読み込み、ツールパスを生成し、加工機へデータを送信する。今回は簡単のために片面基板を設計したが、カメラを利用した位置合わせによって容易に両面基板を製作することも可能である。

参加者が一番知りたかったのは、複数の加工情報をどのように区別して加工機に送信するのか、という点であった。EAGLEではCAM ProcessorとLPKF S63用の定義ファイルを用いて、はんだ面データ(.sol拡張子)、Excellon形式ドリルデータ(.drd拡張子)、輪郭線情報(.outline拡張子)を吐き出すことができる。これらの各々をCircuit Proで読み込むことで、自動ツール交換装置(ATC)に対応したツールパスを生成できるということを、参加者は学んだ。

基板加工機のツールパス作成の説明を行う

 実際に基板切削を行ったところ、なぜか配線層の切削が浅い仕上がりとなり、綺麗に配線層が切り離されていなかった。Circuit Proのデフォルト設定では銅箔の厚みが18μmとなっているため、35μmに変更する必要があるが、この変更も問題なく反映されていたので、別の原因と考えられる。

失敗の原因を分析していると、Mr. Omondiが基板加工機ツール番号1番のマガジンが歪んでいることに気づいた。想定を超える過大な力(オーバーロード)がかかったとみられる。Circuit Proが生成したツールパスを確認すると、ツール番号1番は0.1mmのマイクロカッターが割当てられており、これは配線層(Bottom layer)の切削に関連する部分である(どのパスなのかは、パスが細かすぎるためか、Circuit Pro上のハイライトでは識別できなかった)。実際に配線層を切削するのはツール番号2番の0.2mmユニバーサルカッターである。Mr. Omondiの記憶によれば、ツール番号2番は切削時に使われていなかったという。この状況から考えられるのは、ツール1番を置くときにオーバーロードが発生し、異常を検知した基板加工機がツール番号2番の装填を中断し、外形線の加工に進んだというものである。それをもとに考えた結果、ツールパス生成の画面上で、0.1mmマイクロカッターの切削パスを削除してしまえば、この問題は発生せず、したがって綺麗に切削できるはずであるという仮説は得たものの、時間の関係から実際に試してみることはしなかった。

14. February 2018
Categories: JKUAT/PAUSTI | Tags: , | Leave a comment

← Older posts

Newer posts →