【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でした!