【Arduino入門】ロボットを作る!車輪型の移動ロボットの作り方を解説!
										Arduinoとモータドライバを使って、モータの正転、逆転、停止をコントロールできるようになったら、、、もう、ロボットを作ることができます!!
もし、まだモータのコントロール方法がわからないという方は、こちらの記事を参考にしてください!
今回の記事では、Arduinoとモータドライバを使って、シンプルな車輪型の移動ロボットを作る方法を解説します!
使用するパーツは、ホームセンターやネットで簡単に購入できるものばかりなので、ぜひ、参考にしていただき、マイロボットを作ってみてください!!
- 製作する車輪ロボットについて
 - 車輪ロボットの組み立て方
 - 車輪ロボットの回路の作り方
- USBを挿すときは電池を外して!
 
 - 車輪ロボットを動かすプログラム
- 前進、後退、旋回の仕組み
 
 
解説動画
今回の記事こちらの動画を解説したものです。
製作する車輪ロボットについて
今回製作するロボットはこれです!
ロボットの名前は、、、「NR-02」です!!
NRは「伸びしロボット」(Nobishi Robot)です。。。笑

上の写真のように、本体は2階建になっています!
- 2階は組み立て後も触る可能性の高いパーツを配置
- ブレッドボード: 回路を作り変える
 - モータドライバ: スイッチで動作確認できる
 
 - 1階はあまり触らなくていい、保護したいパーツなどを配置
- Arduino Uno: 2階に置くのもあり
 - 電池BOX: 動かないように挟む
 
 - 足回り
- ボールキャスタ
 - ツインモータギヤボックス+タイヤ
 
 
ロボットを組み立てる!
まずは、ロボット本体を組み立てましょう!
使用するものリスト
使用するものはこちらです!
秋月電子で私は購入しているのですが、Amazonのリンクも…と思い追加しています。
完全に同じものではないですが、Amazonのリンクのものを使用しても問題はありませんよ!
■ロボット本体
| 機材・パーツ | 参考価格 | 個数 | 備考 | 参考URL (CHAの購入場所)  | Amazon | 
|---|---|---|---|---|---|
| ブレッドボード | 200 | 1 | 秋月電子通商 通販コード P-05294  | Amazonで 購入  | |
| 電池BOX | 60 | 1 | 単3 x 4本 | 秋月電子通商 通販コード P-02678  | Amazonで 購入  | 
| ジャンパー線セット | 400 | 1 | オスーオス | 秋月電子通商 通販コード P-00288  | Amazonで 購入  | 
| ジャンパー線 (10本入り)  | 220 | 1 | オスーメス | 秋月電子通商 通販コード C-08932  | Amazonで 購入  | 
| シールドクリップ (みのむしクリップ)  | 180 | 2 | 秋月電子通商 通販コード C-04351  | Amazonで 購入  | |
| タクトスイッチ | 10 | 1 | 秋月電子通商 通販コード P-03647  | Amazonで 購入  | |
| 抵抗 10kΩ | 100 | 1 | 価格は 100本入り1袋  | 秋月電子通商 通販コード R-25103  | Amazonで 購入  | 
| モータドライバ (Maker Drive)  | 470 | 1 | 秋月電子通商 通販コード M-16281  | ||
| Arduino Uno | 2,940 | 1 | 秋月電子通商 通販コード M-07385  | Amazonで 購入  | |
| ツインモータ ギヤボックス  | 574 | 1 | Amazon | ←同じ | |
| ナロータイヤセット | 381 | 1 | Amazon | ←同じ | |
| ボールキャスタ セット  | 280 | 1 | 2個入り | Amazon | ←同じ | 
| ユニバーサル プレートセット  | 276 | 2 | Amazon | ←同じ | |
| ユニバーサル アームセット  | 308 | 1 | Amazon | ←同じ | |
| ネジ M3 x 40mm | 4 | ナット含む | モノタロウ(参考) | 
合計 約6,855円 (参考価格)
■その他
- USBケーブル(Type-Aオス ー Type-Bオス) x 1
秋月電子通商 通販コード C-07605
Amazonで購入するならこちら - パソコン(プログラミング用) x 1
 
組み立て手順
ボールキャスタの高さは37mmで作ります。ツインモータギヤボックスは低速(タイプC)で作ります。タイプA, Bだと動きが速くてプログラムでコントロールするのが難しいです。
ユニバーサルプレートにボールキャスタ、ツインモータギヤボックスをねじ止めします。ネジを入れる穴の位置は下の写真を参考にしてください。ツインモータギヤボックスの軸にナロータイヤを差し込みます。

下の画像のように、M3 x 40 mmのネジと、ユニバーサルアームに入っているスペーサーを使って、ユニバーサルアームの四隅に支柱を立てます。
ネジにスペーサーを入れただけでは、ストンと落ちてしまうので、ナットでしめておく事をおすすめします!

Arduinoのプレートの裏面に両面テープを貼って、ユニバーサルプレートに固定します。ロボットが動いた時にArduinoが落ちなければいいので、ネジなどでガッチリ固定しなくても大丈夫です!

もう1枚のユニバーサルプレートの四隅にネジを通して、ブレッドボードとモータドライバを両面テープで固定します。四隅のネジの先をナットでしめて、ロボット本体はできあがりです!!
回路を作る!
次は、回路を作っていきましょう!
回路図と配線図
回路図と配線図はこちらです!


回路図だけで組み立てるのが難しいときは、配線図を参考にしてください!
回路で気をつけてほしいこと!
実は、この回路で気をつけてほしいことがあります!
下の図のように、電池をモータドライバ基板に接続して、モータドライバ基板の機能で5Vを作り出して、その5VをArduinoに与えている仕組みになっています。

なので、Arduinoの「Vin」ポートには何も入れないでください!また、Arduinoにプログラムを書き込むときにUSBケーブルを挿し込む際は、電池BOXから電池を外してから、USBケーブルを差し込んでください!
Arduinoにも5Vを作り出す機能があり、両方で5Vを作ってしまうと、微妙に電圧が違ったりして、壊れてしまうかもしれないので、気をつけてください!!
プログラムを作る!
プログラムを書いていきましょう!
ロボットの動作とモータへの指示
ロボットの前進動作をするときに左右のモータに送る指示について考えてみましょう。
前進する場合は、下の図のように、左右両方のモータが正転するとロボットが前に進みそうですよね!
なので、左右両方のモータについて、AはHIGH、BにはLOWを送ればOKです!

同じように、ロボットの動作を実現するために、左右のモータが正転するのか、逆転するのか想像するとモータに送るべき信号がわかると思います!
以下に、後退、左旋回、右旋回、停止動作とモータに送る信号を図でまとめておきますので参考にしてください!
ちなみに、右旋回は穴埋めにしているので、ぜひ、考えてみてください!!




プログラムのポイント
- スタートボタンを押すと1秒後に動き始める
 - 前進、後退、左旋回、右旋回を繰り返す
 - 動作が変わるときに停止を入れる
 
- スイッチは8番につながっている
 - 左モータは6番(A)と7番(B)でコントロール
 - 右モータは5番(A)と4番(B)でコントロール
 
ソースコード
ソースコード全文です。
行数が多くてビックリするかもしれませんが、digitalWrite x 4個+delay x 1個を1セットとして、コピペしながら割と簡単に作れます(^^)
1void setup() {
2  //ピンの出力(Output)or入力(Input)設定
3  pinMode(6, OUTPUT);  //左モータA
4  pinMode(7, OUTPUT);  //左モータB
5  pinMode(5, OUTPUT);  //右モータA
6  pinMode(4, OUTPUT);  //右モータB
7  pinMode(8, INPUT);  //スイッチ
8
9  //スタートボタンを押されるのを待つ
10  while(digitalRead(8)==0);
11  delay(1000);  //1秒待つ
12}
13
14void loop() {
15  //前進
16  digitalWrite(6, HIGH);  //左A
17  digitalWrite(7, LOW);  //左B
18  digitalWrite(5, HIGH);  //右A
19  digitalWrite(4, LOW);  //右B
20  delay(1000);
21
22  //ストップ
23  digitalWrite(6, HIGH);  //左A
24  digitalWrite(7, HIGH);  //左B
25  digitalWrite(5, HIGH);  //右A
26  digitalWrite(4, HIGH);  //右B
27  delay(1000);
28
29  //後退
30  digitalWrite(6, LOW);  //左A
31  digitalWrite(7, HIGH);  //左B
32  digitalWrite(5, LOW);  //右A
33  digitalWrite(4, HIGH);  //右B
34  delay(1000);
35
36  //ストップ
37  digitalWrite(6, HIGH);  //左A
38  digitalWrite(7, HIGH);  //左B
39  digitalWrite(5, HIGH);  //右A
40  digitalWrite(4, HIGH);  //右B
41  delay(1000);
42
43  //左旋回
44  digitalWrite(6, LOW );  //左A
45  digitalWrite(7, HIGH);  //左B
46  digitalWrite(5, HIGH);  //右A
47  digitalWrite(4, LOW );  //右B
48  delay(1000);
49
50  //ストップ
51  digitalWrite(6, HIGH);  //左A
52  digitalWrite(7, HIGH);  //左B
53  digitalWrite(5, HIGH);  //右A
54  digitalWrite(4, HIGH);  //右B
55  delay(1000);
56  
57  //右旋回
58  digitalWrite(6, HIGH);  //左A
59  digitalWrite(7, LOW );  //左B
60  digitalWrite(5, LOW );  //右A
61  digitalWrite(4, HIGH);  //右B
62  delay(1000);
63
64  //ストップ
65  digitalWrite(6, HIGH);  //左A
66  digitalWrite(7, HIGH);  //左B
67  digitalWrite(5, HIGH);  //右A
68  digitalWrite(4, HIGH);  //右B
69  delay(1000);
70}
動作確認
プログラムをArduinoに書き込んで動作確認をしましょう!
USBケーブルを挿し込むときは、電池BOXから電池を外してくださいね!
書き込みが終わったら、USBケーブルを抜いて、電池BOXに電池を入れて、スタートボタンを押してみましょう!
こんな感じで動くと思います!
(↓動作確認のところから再生されます)
まとめ: 【Arduino入門】ロボットを作る!車輪型の移動ロボットの作り方を解説!
今回の記事では、はじめて車輪型ロボットを作る人に向けて、ロボットの組み立て方から回路、プログラミング、動作確認までを解説しました!
電池の扱いには気をつける必要がありますが、ものすごくシンプルで伸び代がたくさんあるロボットです!!
ぜひ、LEDやブザーをつけたり、センサをつけたり、キャタピラにしてみたり、改造を楽しんでください!!
- 製作する車輪ロボットについて
 - 車輪ロボットの組み立て方
 - 車輪ロボットの回路の作り方
- USBを挿すときは電池を外して!
 
 - 車輪ロボットを動かすプログラム
- 前進、後退、旋回の仕組み
 
 
最後まで読んでいただき、ありがとうございました!
以上、CHAでした!

