フォーマット
制御ループはモータへの入力値を扱う。データを読み込んで、どのようにモータと読み込んだデータを合致させるかを理解する。そうやって、加速度や電流値などを管理しているんだ。 だから、次のステップはどのように装置と通信するかということだ。僕が持っている装置には、翻訳機が備えられていて、ファイルのフォーマットを読みこむ。 ●hpdl 低レベルのファイルフォーマットはこんな見た目で、hpのプロッタ用の言語であるhpdlから派生したものだ。 ●G Code G Codeアーカイブは、ShopBotで用いられるフォーマットだ。彼らはこのフォーマットを採用している。 G Codeは非常に古くから用いられているフォーマットだ。奇妙な歴史を持つフォーマットで、面白いことに、フォトプロッタとミシン用のフォーマットを起源に持つ。これは、決して今使われているような用途のために設計されたものじゃなかったんだ。しかし、現在ではG Codeは装置を制御するための標準的なフォーマットだ。多くの装置がG Codeを読み込むことができる。
これらのフォーマットは、装置がある位置に向かうように伝える命令に対応しているんだ。だが、G Codeは君たちに、どのようにその場所に行けば良いかは教えてくれはしない。これは、君たちが行きたい場所を機械に伝えるだけだ。 もしもG Code的な何かを使った時には、翻訳機が必要となる。で、これが、129ドルのナイスなG Code翻訳機の製品だ。 この機械はG Codeを扱うのだけれども、内部にモータコントローラを備えている。そして、決定的なのは、君たちはシステムを構成する必要があるってことだ。なぜならば、この機械にはどんなモータを制御するのかや、自由度はどうなのか、モータへのステップの与え方は動作にどのように関係するのか、といったことを教えてやる必要があるんだ。 だから、G Codeが、この場所に行け!って命令を下したときに、コントローラはどうやって地図を作ってモータへの命令に変換するのかを知ってなきゃならないし、もっと言えば、モータの電源を入れたり切ったりといった、制御ループとプロファイルにまつわる全てのロジックを制御しなきゃならないんだ。 でも、そうやって翻訳をしていくんだね。 これらの翻訳機は一般的に商用で用いられているし、DIYマシンでも普通に用いられている。 しかし、これらの機械にはいくつか問題がある。1つ挙げてみよう。 翻訳機には、多くの状態がある。そして、もしも軸を増やしたかったり、何か装置に関する設定を変更したいならば、君たちは翻訳機のコードを見てみて、装置にそれを伝えなきゃならない。一旦、設定が固まったならば、君たちは容易に翻訳機の自由度を増減させることはできない。 でも、大変ではあるんだけれども、これらの翻訳機は装置が色んな状態になっても、対応することができるんだ。
( つづく ) 講義の目次は 【和訳版】FabAcademy 2016 からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。