CNCシールドとモータードライバの組み立て

要点まとめ: Arduino UNOとCNCシールドとモータードライバを組み立ててステッピングモータを制御するまでの手順
品名:ArduinoUno CNC Shield ステッピングモータードライバ(DRV8825)
属性: ・ソフトウェア ・ハードウェア
製作者: 個人

上記の部品を組み立て、ファームウェアの書き込みを行います。
実際にステッピングモーターと接続し、ステッピングモーターの動作確認まで行います


①ファームウェアの書き込み
Arduino UNOにgrblを書き込みます。
今回使用するCNCShieldが最新ではなくV3なので、使用するgrblもちょっと前の0.8cを使用します。
筆者は先にモータドライバ等組み立ててから書き込みを行いましたが、エラーとなり書き込みが完了しませんでした。先にファームウェアを書き込んでから組み立てる手順が良いです。

githubからgrblv0.8c Atmega328p16mhz9600baud をダウンロードします。

HEXファイルという形でダウンロードできるので、このファイルをHEXファイル書き込みソフトを使ってArduinoに書き込みます。書き込みソフトにはXLoaderを使用します。


ダウンロードボタンはリンクが切れているので、その下の or from our website here XLoader V1.0でダウンロードができます。

USBでArduinoと接続し、HEXファイルを選択、デバイスでArduinoUNOを選択、COMポートにArduinoが接続されているポートを選択してUploadします。問題なければ数秒で書き込みが完了します。
%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3

②モータードライバに冷却フィンを取り付け
詳しいことは下の商品ページに書いてありますが、要は電流いっぱい流すならフィン付けてねということでした。付けない理由は特になさそうなので付けておきます。
フィンの下面に電熱両面テープが貼ってあるので、それを使って取り付けます。取り付けた後の写真は下の方の完成図を参考にして下さい。
https://strawberry-linux.com/catalog/items?code=12025

③モータードライバをCNCShieldに組み付け、CNCShieldをArduinoに組み付け
モータドライバの足は左右対称なので方向が反対でも差し込めてしまいますが、下写真のようになるよう差し込みます。

CNCShieldをArduinoに組み付けるときは、足が全て刺さるようにすれば間違いようがないと思います。
組み付けた写真が下になります

④配線
ArduinoはUSBなどから5V給電。
モーター電源は下写真左下から給電します。
モーターはデフォルトではXYZのみ動きます。もう一個、Aというモーター(画像の右下のモータードライバとつなぐ部分)は独立した第四のモーターにするかXYZのいずれかと同じ動きをするように設定することができます。その設定は写真の青で囲んだ部分で行います。
AがXと同じ動きをしてほしい場合は、青枠部分のXの行をジャンパブロックなどで繋ぎます。
モーターと接続するのはモータドライバ横の黄色枠部分になります。

以上の設定、接続を行い、Gコードを送信したところ、ステッピングモーターが問題なく動作しました。

「いいね!」 1

ステッピングモーターが脈打つようにカッ…カッ…と変な動きになりましたが、モータードライバの電流量(抵抗値?)を調整することで改善されました。
下画像の赤丸部分をドライバーで優しく回します。(強く回したら一個壊れました)
a

電流値が低すぎるとモーターが回転せず、高すぎると脈打つように振動し、振動している間はトルクが低くなって手で動かせたりといろいろだめな感じになります。
モーターを実際に動かしてみながら、なめらかに動くように調整します。
電流計があれば電流計で値を測りながら調整できますが、手が滑るとショートして全体が破損するので要注意です。

ちなみにNEMA23のステッピングモーターを動かす場合0.8Aくらいが一番安定しました。うろおぼえ。(DRV8825のデータシートにはヒートシンクなしで1.5Aまでと書かれていたのでそのくらいかと思っていましたがもっと低くてよかったです。)

リミットスイッチなど色々追加したところ、Arduinoではいろいろ足りなくなってきました。
(ノイズ対策しないと正常に動作しないのでコンデンサ入れたりプローブ付けたりすると狭い範囲にわちゃわちゃになってすーぐ外れたりする)

CNC用に作られたボードに変更したところ、

  • 電流電圧の微調整をしなくてもスムーズに動作する
  • ノイズ対策のコンデンサを入れなくてもリミットスイッチが動作する
  • スイッチが押された時にLED点滅で教えてくれる
  • ケーブルが抜けにくい(大事)
  • ケースを付けると配線を直せない(デメリット)

と、Arduinoに比べると高いですがトラブルが激減したので今後はこっちベースに移行します。