オープンソースのCAMソフトGrblでステッピングモーターを回してみる:Arduinoで学ぶ基礎からのモーター制御(11)(1/3 ページ)
今回は、3DプリンタやCNCで定番の制御ファームウエアとなっているオープンソース「Grbl」を使って、ステッピングモーターを制御します。
はじめに
今回はオープンソースのファームウェア「Grbl」をArduino上で動作させてステッピングモーターを制御します。このGrblはオープンソース系のCNCや3Dプリンタなどで定番のファームウェアです。今回は1軸(X軸)のみにステッピングモーターを接続し、Grblの基本動作を理解していきます。
連載:Arduinoで学ぶ基礎からのモーター制御
・(10):マイコン1つで複数モーターを操る、制御モジュール「A4988」を学ぶ
・(9):定番IC「TA7291A」でバイポーラ型ステッピングモーターを駆動する
・(1):「マイコンによるモーター制御」を学ぶ前に知っておくべきこと
オープンソースのファームウェア「Grbl」
まず、ファームウェア側の環境を整えます。
なお、ハードウェアについては前回の記事(基礎からのマイコンモーター制御(10):マイコン1つで複数モーターを操る、制御モジュール「A4988」を学ぶ)を参考にして整えてください。またPC側の「Grbl Controller」については次回以降に説明します。
では早速ArduinoにGrblをインストールします。ここからの操作は「Windows 10」搭載PCでの作業を前提に説明します。
以下のサイトからGrblをダウンロードできます。
- Grblダウンロードサイト:https://github.com/grbl/grbl
図2は、上記サイトのスクリーンショットです。githubからプロジェクト全体をZIP形式のファイルでダウンロードし、ソースからビルドしてArduinoのHEX形式のファイルを生成する方法もありますが、既にビルドしたHEXファイルがいくつか用意されています。
HEXファイルとはプロジェクトをビルドした結果生成されるファイル形式の1つで、Arduino(Atmega328p) の実行命令を格納するフラッシュメモリに書き込まれる一歩前のファイル形式と思ってください。ビルドした結果がバイナリー形式のものもありますが、HEX形式はこれをいったんASCII文字で表現できる16進の数字列に変換した後、アドレスとチェックサムを付加した形式となっています。
筆者の場合、このHEX形式のファイルを使っても特に問題がなかったので、これをいつも利用しています。Grblには、いくつかのバージョンがありますが、筆者は「Grbl v0.8c」を使っています。ですので、本記事もこのバージョンを前提に書いています。Grbl v0.8cは、最新のバージョンに比べてシリアル通信のボーレートが9600bpsと多少低めです。ですが、
- 以前から使っていて実績があった
- 機械相手なので通信側だけ速くてもあまりメリットを感じなかった
- モーター制御なので耐ノイズ性の観点からボーレートが遅い分通信の信頼性が多少よいかな
という理由からGrbl v0.8cを使っています。
アーカイブの中から任意のバージョンを選択して、ローカルのPCにダウンロードします。
ダウンロードしたHEX形式のファイルは、Arduino IDEではそのままターゲットであるArduinoには書き込めません。そこで、Arduino IDEから呼び出される書き込みツールのAvrdudeをコマンドラインやシェルから直接操作する必要があります。そのためHEXファイルをGUI形式のオペレーションでArduinoに直接書き込めるXloaderを使います。Windows版は以下のサイトからダウンロード可能です。
- Xloader(Windows版))ダウンロードサイト:
http://www.hobbytronics.co.uk/arduino-xloader
右の図(図3)がXloaderを起動した時の操作画面です。
操作画面の上の入力項目から説明します。Hex fileの項目にはダウンロードしてきたHEXファイルを指定します。次のDeviceはArduinoの種類を選択します。筆者の場合はDuemilanove/Nano(Atmega328p) を選択しました。次のCOM Portですが、ArduinoをPCにUSBケーブルで接続した際に認識されたポート番号を選択します。Baud rateは書き込む際の通信速度ですが、これはArduinoの種類によって異なります。筆者が使っているArduino Nano Atmega328Pの場合は57600bpsを選択します。これであとはUploadのボタンを押せばGrblのファームウェアがArduinoに書き込まれるはずです。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコン1つで複数モーターを操る、制御モジュール「A4988」を学ぶ
ステッピングモーターに制御用ドライバモジュールを組み合わせると、用途の幅がグッと広がります。今回は3Dプリンタなどで、バイポーラ型ステッピングモーターの制御モジュールとしてよく利用されている「A4988」の扱いを学びます。 - 定番IC「TA7291A」でバイポーラ型ステッピングモーターを駆動する
ステッピングモーターを制御する時、トランジスタで回路を組んでもよいのですが、制御用ICなどを用いる方が便利です。今回は定番IC「TA7291A」でバイポーラ型ステッピングモーターを制御します。 - バイポーラ型ステッピングモーターの制御
精密制御に欠かせないステッピングモーター。今回はバイポーラ型ステッピングモーターについて、その制御をマイコン(Arduino)から行います。 - ステッピングモーターの制御
前回までは“マブチモーター”に代表される「直流ブラシ付きモーター」を、マイコン(Arduino)で制御する方法を紹介してきました。今回からは「ステッピングモーター」の制御に取り組みます。 - PWMを使ったサーボモーターの制御
ラジコンカーのステアリングやロボットの関節などに用いられ、角度を指定して動かす機能を持つのが「サーボモーター」です。今回はArduinoからこのサーボモーターの制御をPWMを用いて行う手法を紹介します。 - PWMでマブチモーターを制御する
「マブチモーター」でもおなじみ「直流ブラシ付きモーター」は安価で入手性もよいモーターですが、マイコンからの制御を考えると一工夫必要になります。今回は「PWM」を使った回転制御を紹介します。