前回でステッピングモーターの基本的な扱い方がわかったところで、今回は実際にステッピングモーターを使って2輪走行ロボットを作ってみます。
第13回 Arduinoでモーターを制御する!(その3)。自作ラジコンカーに挑戦!サーボモーターでステアリング実装。では、通常のモーターが前進後退などの駆動し、サーボモーターがステアリング部分を担当するラジコンカーを作りました。今回の2輪走行ロボットでは、2つのモーターを並べることで前進後退・回転の処理を実現することができます。
テレビなどでよく見るロボットの多くは、移動方法としてこの2輪走行ロボットがベースとなっていたりします。そんな汎用性のあるものを、この機会に作ってみたいと思います!
今回の電子工作レシピ
時間目安:90分
必要なパーツ
- Arduino UNO R3
https://www.switch-science.com/catalog/789/ - 42mm ステッピングモータ 12V 2相
https://strawberry-linux.com/catalog/items?code=12026 - L6470 ステッピングモータ・ドライバキット
https://strawberry-linux.com/catalog/items?code=12023 - L6470/42x34mmステッピングモーター用ネジセット
https://strawberry-linux.com/catalog/items?code=12051 - 5mmユニバーサルマウント(2個セット)
https://strawberry-linux.com/catalog/items?code=12049 - 006P 9V電池ホルダー
http://akizukidenshi.com/catalog/g/gP-02665/
2輪走行ロボットの仕様を考える
何はともあれ、まずはじめに2輪走行ロボットの仕様全体を考えていきます。2輪走行ロボットは、モーターが2つあれば作成できる簡単な走行型ロボットです。2個のモーターを同じ方向に回転すれば前進・後退、逆回転させれば回転と、移動の基本的な動作を2つのモーターで手軽に実装できるのがポイントで多くの場面で利用されています。今回使うステッピングモーターなどの部品全体のサイズを定規で測り、そのサイズに合ったボディを作成しましょう。
図1は、第29回・第35回でも使ったフリーのモデリングソフト「123d design」を利用して(※注:123d designはアプリの配信が停止されてしまったため、現在Fusion360などでモデリングが可能です。)
2輪走行ロボットの簡単な仕様を考えているところです。円形の木板をベースに、そこにステッピングモーターやArduinoそして電池などを取り付けできるような設計を考えます。2輪走行ロボットはそのままでは前か後ろに倒れてしまうので、100円均一などで売っている小型のボールキャスターを木板の後ろに貼って補助キャスターとして利用します。
タイヤのサイズを決めるには、写真1の円形の木板にステッピングモーターを載せて、床からの高さを測りその高さに対してキャスターが少し浮くくらいで+2~3ミリ加えた高さがタイヤの直径になります。

写真1 円形の木板と3Dプリンターで出力したタイヤ

写真2補助のボールキャスター
また、ステッピングモーターを木の板に固定するパーツも設計します。ステッピングモーターには軸側に4箇所4mmのネジ穴があるので、これをつかって木板とステッピングモーターを固定できるパーツを作りました。

図2 木板とステッピングモーターを固定するパーツ

写真3 3Dプリンターでパーツの出力
3Dプリンターでパーツが出力されたらステッピングモーターを装着してサイズを確認します。ちょうど納まりました。

写真4 パーツを組み合わせる
ステッピングモーターにドライバを装着する
今回は、直径12cmの木板の上にパーツをすべて載せたいので、できる限りスペースを節約する必要がありそうです。今回利用するステッピングモーターのドライバL6470の基板とネジ穴の位置はステッピングモーターの面のサイズと同じサイズになっているため、ステッピングモーターの背面にドライバをネジ止めすることができます。これで、スペースを少し節約することができますね。

写真5 ネジを一度はずしてドライバ基板をつける

写真6 ステッピングモーターの後ろにドライバ基板
Arduinoでステッピングモーターを2つ動かす回路
前回は、ステッピングモーターを1つだけ動かしましたが、今回は2つのステッピングモーターを動かす必要があります。L6470では「デイジーチェーン」という方法で、複数個のステッピングモーターを制御できます。
デイジーチェーン – wikipedia
デイジーチェーン(英: daisy chain)は、複数の電気・電子機器を数珠つなぎにする、あるいは全部まとめて1つの輪にするような接続方法である[1]。単純な輪っかでない、輪から分岐があるような系に対してこう呼ばれることはない。
L6470でデイジーチェーンをするための回路は下記になります。線の数が多くなるので、配線する際につなぎ間違いをしないように気をつけてください。

図3 2つのステッピングモーター回路
1つの回路のときと違い、1つ目と2つ目のステッピングモーター同士で結線している部分がありますね。L6470のデータシートで確認してみると、一つ目のステッピングモーターはSDO、二つ目のステッピングモーターにはSDIに結線されています。この部分でデータを受け渡しているようです。
まとめ
回路の接続が完了したら、次はプログラム部分に取り掛かります、と言いたいところですが、複数のステッピングモーターを扱うプログラムはちょっと複雑になるため、次回じっくり腰を据えてステッピングモーターのプログラムを学んでみたいと思います。うまくいけば、下記の動画のように2つのステッピングモーターがきちっとシンクロします!