メカキネアート用ソフト試作版(書きかけ)

メカキネアート用モーション作成ソフト

メカキネアートとは

キネティックアートとは動きのあるアート作品のことです。
ここではモーター等を使いメカ要素を加えたものをメカキネティックアート、メカキネと呼んでいます。

経緯

CNCマシンとして加工用に経路を作りモーターを動かすだけでなく、アート用としてモーターを制御し各種動きつけたい、難しいコマンド等を覚えることなくモーションを作りたいという意見があり、そのためのソフトを試作してみました。

モーション生成の方法の概略

モーションを各モーター位置を記録したキーフレームの集合として考えます。
制御基板に繋がった各モーターをソフトにて動かし、位置を保存します。
全てのキーフレームを打ち終わった後はそれらを変換しNCファイルにし制御基板へと送信します。
そのため、基本的にはモーションを作成するためにGコードを触ることなく、モーターの位置だけ調整するということになります。

ソフトで作成したモーションの例

ソフトの公開

ビルドしたもの(現在windowsのみ)

ソースコード

現状の注意点・制限

  • Duet3 Mainboard 6HCを子基板として使用する場合、E軸は親機側に振る必要があります。子基板側にE軸を振ると動作不良になる現象を確認しています。

今後

  • もっとグラフィカルにモーションをセットできるようにしたい
  • ネットワーク経由でつながっている複数Duet基板を使用する際の連携があまり良くないので改良したい
  • 現状C#でElectronを動かすという黒魔術状態のため、機能が固まったらJavascript+Electronに以降したい

1.Duet側で必要な設定

1.1 Duetのconfig

config.g (5.1 KB)
6HC子基板時config.g (88 バイト)

1.2 configの設定値

configファイルにて以下の設定が最低限必要です。

  • IPアドレスの設定 M552(KASソフトでは192.168.0.56がデフォルト設定)
  • http通信の有効化M586
  • 軸の設定M569、M584
  • ホーミングなしの移動許可 M564 S0 H0

また、環境に応じてconfigに以下の設定をする必要があります。

  • モーターの移動量関連 M92, M350
  • モーターの駆動関連 M203, M201
  • モーターの移動制限関連 M203
  • モーターの電流値関連 M906

トリガーを使用する場合は以下のように設定する必要があります。

  • ピン定義 M950 J◯ C”io◯.in”
  • トリガー定義 M581 P◯ T◯

なお、Tパラメータは2以上にしてください(T0,T1は非常停止系で既に定義されています)

Duet Mainboard 6HCを子基板として使用する場合は子基板configに以下の設定値が必要です。

  • M954

1.3 外部トリガーの配線

スイッチにピン定義で設定した入力ピンとGNDをつなぎます。

スイッチのタイプがNOかNCによって上のピン定義が変わります。
NCの場合はM950にC”!io1.in”のようにピン名に!をつけます。NOの場合はつけません。

2.KASソフトでの設定

2.1 設定の流れ

KASの設定は基本的にdefault_setting.json(resources/bin内)を書き換えることとなります。

一部の設定は設定パネルで変更できますが、現時点では変更された設定は起動時には読み込まれないため、起動時に読み込まれるようにするには設定パネルで設定変更→設定保存→設定ファイルをdefault_setting.jsonとして保存する必要があります。

[image]

2.2 設定値

基本的にユーザーによって変更が必要な部分は上記の設定パネルで変更できますが、制御基板の数を変更する場合や、出力NCデータをループさせたい場合などは直接default_setting.jsonを変更する必要があります。

出力NCデータをループ: “is_enable_ncfile_loop”: false → true

スライダーで座標操作時の上限下限値:“max_move_range”、“min_move_range”

コントローラーパネルでのジョグ移動の単位:“default_jog_move_unit”

3.モーション生成の流れ

  1. 基板の電源を入れる
  2. (念のためWEBUIでアクセスできることを確認する)
  3. WEBUIでジョブのところにmkasフォルダ作っておく
  4. アプリフォルダのresources/binフォルダにncフォルダを作成しておく or default_setting.jsonの"save_nc_path_on_pc_directory": "./nc"を”./”に変更(一時的処置)
  5. アプリを起動する。基板にアクセスできていることを確認。
  6. Animatorパネルに移り、下部のモーター位置調整で各モーターを移動させ、希望の位置へ移動させる。
  7. 上部のキーフレーム操作の部分から移動方法を選択し、キーフレームをセット
  8. 4,5を繰り返す
  9. モーションデータができたら念のためキーフレームデータ保存ボタンでキーフレームを保存
  10. 送信先からトリガーか通常モーションかを選び、モーションデータ送信ボタンを押す。
  11. ファイルが送信され実行される。