サーボモーターの接続bCNCからArduino(grbl)にG-Codeを送信する!前回はbCNCのインストールまで行ったので、次は実際にモーターを動かすところまでやっていきたいと思います。SVGからG-Codeを生成するために、Inkscapeをインストールします。※Macの場合について書いています。Windowsではうまくいかない場合があります。(Macの場合のみ)MacでInkscapeを使う場合にはXQuartzが必要です。ダウンロードしたら開いて、右下のボタンを押していけばインストールが完了します。Inkscapeのインストール以下のサイトから「Inkscape」をダウンロードします。Extension」を使うためには、古いバージョンをインストールしないといけないという情報もありますが、コードを少し書き換えれば最新版でも使えます。?」と聞かれた場合は、「/Applications/Utilities/XQuartz.app」を選択すれば起動します。それでもうまく起動しなければ、PCを再起動してみてください。Extension」のインストールここからダウンロードします。解凍すると、次のような4つのファイルが入っています。このままだと最新版Inkscape0.92で動かないので、servo.pyを以下のように書き換えます。self.unittouu(self.document.getroot().get('height'))次に、これらの4つのファイル全てを「~/.config/inkscape/extensions/」の中に入れます。ターミナルから次のようにすると楽です。~/.config/inkscape/extensions///これで、4つ全てのファイルが移動する。Inkscapeを起動してSVGからG-Codeを作る拡張機能を入れたら、Inkscapeを再起動して、まず適当なSVGを作ります。試しに長方形を描いてみます。Controller」を選択するすると、このようなウィンドウが出てくるので、「X軸の動く速さ」「Y軸の動く速さ」をどちらも「2000mm/min」に設定します(任意の値でいいが、初めは小さい方がいい)。ファイルの保存先を設定したら、「Apply」を押してG-Codeを生成します。生成されたG-Codeの中身をみてみると、こんな感じになっています。座標の単位が「ミリ(mm)」であることを伝える命令。「G20」はインチである。続けて「P〇〇」と書くと〇〇ミリ秒間停止し、「S〇〇」と書くと〇〇秒間停止する。追記:私の環境ではPはミリ秒ではなく秒になっていました。サイトによって情報が違うので、設定によるのかもしれません。「フィード率」といい、G1が実行されているときの動く速さを決める命令。F〇〇」と書くと、分速〇〇mmで移動する。※その他のコマンドについては、前回の記事の最後に書きました。このG-CodeをbCNCに読み込ませて、Arduino(grbl)に送信したいと思います。その前に、モーターを動かすための12V電源を確保します!12V電源の確保と半可変抵抗の調整このCNCシールドには12V~36Vの直流電源を流すことができます(使用するモーターによって変える)。そのため今回は、12VのACアダプター、もしくは12Vのスイッチング電源が必要です。0.4A位相抵抗:30オームとなっています。よって、今回はこのモーターを2つ使うので、最大2Aの電流を引き出せる12VのACアダプターがあれば十分と考えました。そこで、使わなくなった12V-2A程度のACアダプタを探していたところ、WiiのACアダプターがちょうど12V-3.7Aであったので、これを使用しました。※ちゃんと熱縮チューブでカバーしないとショートする危険があるので注意してください。モータードライバ「A4988」の製造元の「Pololu」のサイトを見ると、A4988は以下の式を満たすように使用するべきと書いてありました。測定します(12V電源は入れる必要ない)。下の写真のように、半可変抵抗とGND間の電圧を測ります。測定してみると、0.646Vになっており、これだとモーターに過電流が流れてしまいます。そこで、半可変抵抗を反時計回りに回して抵抗値をあげると、0.176Vまで下がりました。サーボモーターの接続サーボモーターについて書くのを忘れていました。私が使用するのは「SG92R」というサーボモーターで、ペンを上げ下げするだけなのでトルクはほとんど必要ないです。そのため、Arduino入門キットによく入っている「SG90」というサーボモーターでも問題ないと思われます。どちらも動作電圧は4.8Vであるので、問題なく使うことができます。CNCシールドとの接続方法については、前回の記事で書いた通り、サーボモーターの中央の線を5Vに、端のオレンジ色の信号線をZ+に、残りのGND線をGNDに接続すればOKです。bCNCからArduino(grbl)にG-Codeを送信する!さて、いよいよモーターを動かしていきます!。ここまで思っていたよりもやることが多くて大変でした...。bCNCを起動します。起動したら、上の方の「ファイル」というボタンを押します。すると、次のような画面がでるので、「Serial」の中の「ポーレート」を「115200」に設定します。次に、ArduinoとPCを接続して、「Serial」の中の「ポート」から、Arduinoのポートを探して選択します。終わったら、その右の「開く」というボタンを押すと、上部の「Status」が「Idle」という状態に変わると思います。画面上部の「ファイルのアイコン」のボタンを押して、Inkscapeで作成した.gcodeのファイルを開きます。開くと、画面右に作成した図形が表示されると思います。(今回の例だと長方形が表示されるはず)そうしたら、画面上部の「Control」というボタンを押します。ここでCNCシールドの12V電源を入れます。(タイミングはいつでもいい)ここで試しに、画面左下の矢印ボタンを左右に押してみて、モーターが滑らかに動けば問題ないです。ここまで、全て順調だったら、画面上部の「Start」ボタンを押します。すると、ステッピングモーターが動き出し、サーボモーターが適切なタイミングで上げ下げすると思います。2019Y軸のステッピングモーターも取り付ければ、ハードウェアとソフトウェアの方は完成です。あとは、ペンプロッターとして組み立てるだけですね!それでは、次回は部品を組み立てていき、ペンプロッターを完成させたいと思います。(2)はてなブログをはじめよう!tamu19さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。