オープンソースのMicroFactoryであるFirePickDeltaのプロジェクトログ
ソフトウェアトポロジと動作理論
OpenPnPは、マシンの高レベルの頭脳であり、「その部分を拾い上げる」や「あそこに置く」など、一見単純に見えることを実行します。多くのライブラリとサブシステムが情報を提供し、他のライブラリやソフトウェアモジュールを介してさまざまなモーターやアクチュエーターに情報を渡します。 FirePick Deltaが開始されるずっと前に、Jason vonNiedaによって作成されました。技術的にはまだアルファ状態ですが、基盤となるソフトウェアは安定しており、いくつかの実稼働マシンで使用されています。それはよく書かれていて、非常にモジュール化されていて拡張可能でしたが、ドキュメントは素晴らしいものではありませんでした…今まで。オープンソースと完全開示の精神で、OpenPnPを自分たちで文書化することにしました。うまくいけば、これらすべてが公式プロジェクトの上流に押し戻されるでしょう。
上記のJavaファイル(「JAR」アイコン)は、独自のマシン構成を作成するための基本クラスとして置き換えたり、使用したりできます。上記の各Javaファイル(構成モデルを除く)は、「machine.xml」ファイルで指定できます。 Javaに慣れていない場合、これは奇妙に思えるかもしれませんが、本当にすばらしいです。これは、一連の.javaファイルへのパスを指定できることを意味します。これにより、どのクラスがインスタンス化されて使用されるかが決まり、それによって動作が変更されます。これにより、コードが非常にクリーンでモジュール式に保たれます。これは、ピックアンドプレースマシンのような複雑なものにとって重要です。 OpenPnPには、TinyGモーションコントロール、シングルヘッド、シングルノズルとアクチュエーター、ドラッグテープフィード、および下向きのカメラを備えたバニラPnP実装のリファレンスファイルのセットが付属しています。必要なすべてのクレイジーなことを実行できるようにするために、かなり多くの変更を加えました。
モーションドライバー: RepRap RAMPS 1.4からインスピレーションを得たカスタムモーションコントローラーボードと、変更されたMarlinファームウェアを実行するMelziボードを使用しています。正しいgコードをモーションコントローラーに送信するOpenPnPMarlinドライバーを作成しました。これは現時点ではうまく機能しますが、メモリが限られていて浮動小数点がない8ビットarduinoでデルタ計算とマルチポイントZプローブ補正を行うと、すべての計算能力がオンになっていると少し馬鹿げているように見えることがわかりましたパイ。さらに、カメラとカスタムXYキャリブレーションアプリを使用して精度を向上させたいと考えています。これらの計算は、Piではるかに簡単かつ迅速に実行できます。ただし、今後他のアプリを提供する予定であるため、このコードはOpenPnPの一部ではありません。これは、OpenPnPがモーションコントローラーと直接通信できないことを意味します。デルタ計算とXYZ補正オフセットを実行するソフトウェアのレイヤーを通過する必要があります。すべてのコードをFireFUSE(ユーザースペースマッパーのファイルシステム)でラップしました。これにより、後で説明する多くの優れた処理を実行できます。これはほとんどの場合かなり透過的です。 OpenPnPが「/ dev / ttys0」に書き込むのではなく、「/ dev / firefuse / sync / cnc / marlin /gcode.fire」に書き込みます。 FireFUSEは、デカルト座標をデルタ座標に変換し、マシンの自動キャリブレーションプロセスからの補間ポイントを使用してエラーオフセットを計算し、この新しいgコードをMarlinドライバーに送信します。また、そのコードは移植可能であり、3D印刷アプリ、はんだペーストディスペンスアプリなどで使用できます。OpenPnPがFireFUSEと通信するために必要なのは、現在作成中のFireFUSEドライバーだけです。
カメラドライバーとビジョンフレームワーク :OpenPnPのカメラのサポートは少し厄介で、すばらしい5メガピクセルのRaspberryPiカメラをサポートしていませんでした。彼らのコンピュータービジョンは、OpenCVコードの上にある薄いシムであり、実際に基本的な穴発見を実装していましたが、それ以外はあまり実装していませんでした。私たちのソフトウェア担当者であるKarlLewは、これを大きな問題と見なし、FireSightと呼ばれる素晴らしいオープンソースのビジョンライブラリを作成するのに昨年1、2年を費やしました。彼は、高レベルの数学や低レベルのC / C ++の知識を必要としない非常に高レベルの方法で、パイプラインにまとめることができる数十の素晴らしいビジョンルーチンを作成しました。カメラには、前述のRasPiカメラモジュールと、FirePiCamと呼ばれる「raspistill」のカスタムバージョンを使用しています。スナップショット画像を取得してFUSEファイルシステムに保存し、SDカードのフラッシュメモリのビットが消耗しないようにします。 OpenPnPに画像を表示させ、コンピュータービジョン操作を実行させるために、Karlは「firerest-client」と呼ばれるJavaライブラリを作成しました。これにより、すべてが機能します。
GUI :OpenPnP Java GUIは本当に不格好で直感的ではなく、専用モニターをRaspberry Piに接続することは、2014年には少しおかしなことに思えます。別名、モノのインターネットの夜明けです。ユーザーインターフェイスは、任意のHTML5ブラウザーから表示できるカスタムWebアプリである必要があります。この機能はOpenPnPを介して直接サポートされていませんが、少しの作業で実行できます。幸い、JasonはOpenPnPを作成して、GUIをバイパスするマシンおよびファイル構成関数のコンストラクターを呼び出すことができます。 githubで見つけたコードのおかげで、node-javaブリッジを使用してjavascriptからjava関数を呼び出すことができ、その逆も可能です。あとは、node.js、Express、AngularJS、TwitterBootstrapを使用して巧妙なWebアプリを作成するだけです。現在、そのアプリの作成の初期段階にあります。それまでの間、OpenPNPを通常どおり実行し、ストックGUIを使用して、マシンの他のビットをデバッグすることができます。
ハードウェアトポロジと動作理論
標準のRaspberryPiモデルB +を使用します。 B +は私たちが常に望んでいたRPiです。彼らはコネクタをより論理的な場所に移動し、実際の取り付け穴のセットを追加しました。まだくだらない遅いBroadcom2835がありますが、30ドルで何を期待しますか。 「なぜBeagleBoneBlackを使用したのですか?」という質問をよく受けます。または他の12台のシングルボードコンピューター。答えは非常に簡単です。 300ドルのマシンを狙っています。つまり、安価なシングルボードコンピューターを選ぶ必要があります。 Raspberry Piが最も安いので、勝ちます。 QED。 🙂実際、私たちはBeagleBone blackを非常に気に入っており、Allwinner A4、Intel Galileo、さらにはMiniITXなどの従来のセットアップなどの他のプラットフォームも気に入っています。すべてのソフトウェアとハードウェアは、これらのプラットフォームで動作するはずです。しかし、それらは高価であり、RaspberryPiが仕事を成し遂げます。
これまでのところ、Piのパフォーマンスには実際に驚いています。速く点灯するわけではありませんが、コンピュータビジョンを実行し、問題なくWebページを提供します。
ERPIHAT01HATボード
Raspberry Pi Model B +のリリース直後に、RPi Foundationは、ArduinoシールドまたはBeagleBoneケープに非常によく似た「HAT」仕様をリリースしました。これはカスタム形状のメザニンボードであり、あらゆる種類のケーブルやその他のナンセンスなしに、RaspberryPiにすっきりとしたものを追加するようにカスタマイズできます。 HATの前にプラグインモジュールがありましたが、それらは標準化されていませんでした。新しいHAT仕様に満足しており、FirePick DeltaHATを以下に誇らしげに紹介しています。
FirePick DeltaHATが行うことのリストは次のとおりです。
- Raspberry PiGPIOコネクタに配線された16×2文字のLCDコネクタを提供します
- Raspberry Pi GPIOコネクタに配線されたロータリーエンコーダとプッシュボタンスイッチ(LED付き)用のコネクタを提供します
- RaspberryPiに12V-> 5Vの降圧スイッチング電源を提供します。
- RasPiカメラモジュール用のパススルーコネクタを提供します。これにより、カメラをデルタメカニズムのエンドエフェクタまで拡張できます。
- GPIOコネクタのRasPiの唯一のPWMピンから駆動されるピエゾブザーを提供します。これは、Piのオーディオジャックを使用するよりも安価でした。
- 公式のHAT仕様に従って、このボードは+ 5VDC入力に必要なEEPROMチップとバックフィード保護を提供します。 GPIOコネクタを介して電力を供給しているため、マイクロUSBコネクタを介して電力を供給する必要はありません。
詳細:FirePick Delta、オープンソースMicroFactoryのプロジェクトログ
製造プロセス