Arduino
PR

【Arduino入門】ロボットを作る!車輪型の移動ロボットの作り方を解説!

blog_admin
記事内に商品プロモーションを含む場合があります

Arduinoとモータドライバを使って、モータの正転、逆転、停止をコントロールできるようになったら、、、もう、ロボットを作ることができます!!
もし、まだモータのコントロール方法がわからないという方は、こちらの記事を参考にしてください!

今回の記事では、Arduinoとモータドライバを使って、シンプルな車輪型の移動ロボットを作る方法を解説します!
使用するパーツは、ホームセンターやネットで簡単に購入できるものばかりなので、ぜひ、参考にしていただき、マイロボットを作ってみてください!!

今回の記事で解説すること
  • 製作する車輪ロボットについて
  • 車輪ロボットの組み立て方
  • 車輪ロボットの回路の作り方
    • USBを挿すときは電池を外して!
  • 車輪ロボットを動かすプログラム
    • 前進、後退、旋回の仕組み
スポンサーリンク

解説動画

今回の記事こちらの動画を解説したものです。

製作する車輪ロボットについて

今回製作するロボットはこれです!
ロボットの名前は、、、「NR-02」です!!
NRは「伸びしロボット」(Nobishi Robot)です。。。笑

上の写真のように、本体は2階建になっています!

  • 2階は組み立て後も触る可能性の高いパーツを配置
    • ブレッドボード: 回路を作り変える
    • モータドライバ: スイッチで動作確認できる
  • 1階はあまり触らなくていい、保護したいパーツなどを配置
    • Arduino Uno: 2階に置くのもあり
    • 電池BOX: 動かないように挟む
  • 足回り
    • ボールキャスタ
    • ツインモータギヤボックス+タイヤ

ロボットを組み立てる!

まずは、ロボット本体を組み立てましょう!

使用するものリスト

使用するものはこちらです!
秋月電子で私は購入しているのですが、Amazonのリンクも…と思い追加しています。
完全に同じものではないですが、Amazonのリンクのものを使用しても問題はありませんよ!

■ロボット本体

機材・パーツ参考価格個数備考参考URL
(CHAの購入場所)
Amazon
ブレッドボード2001 秋月電子通商
通販コード
P-05294
Amazonで
購入
電池BOX601単3 x 4本秋月電子通商
通販コード
P-02678
Amazonで
購入
ジャンパー線セット4001オスーオス秋月電子通商
通販コード
P-00288
Amazonで
購入
ジャンパー線
(10本入り)
2201オスーメス秋月電子通商
通販コード
C-08932
Amazonで
購入
シールドクリップ
(みのむしクリップ)
1802 秋月電子通商
通販コード
C-04351
Amazonで
購入
タクトスイッチ101 秋月電子通商
通販コード
P-03647
Amazonで
購入
抵抗 10kΩ1001価格は
100本入り1袋
秋月電子通商
通販コード
R-25103
Amazonで
購入
モータドライバ
(Maker Drive)
4701 秋月電子通商
通販コード
M-16281
Arduino Uno2,9401 秋月電子通商
通販コード
M-07385
Amazonで
購入
ツインモータ
ギヤボックス
5741 Amazon←同じ
ナロータイヤセット3811 Amazon←同じ
ボールキャスタ
セット
28012個入りAmazon←同じ
ユニバーサル
プレートセット
2762 Amazon←同じ
ユニバーサル
アームセット
3081 Amazon←同じ
ネジ M3 x 40mm 4ナット含むモノタロウ(参考)

合計 約6,855円 (参考価格)

■その他

組み立て手順

足回りを組み立てる

ボールキャスタの高さは37mmで作ります。ツインモータギヤボックスは低速(タイプC)で作ります。タイプA, Bだと動きが速くてプログラムでコントロールするのが難しいです。
ユニバーサルプレートにボールキャスタ、ツインモータギヤボックスをねじ止めします。ネジを入れる穴の位置は下の写真を参考にしてください。ツインモータギヤボックスの軸にナロータイヤを差し込みます。

ユニバーサルプレートの四隅に支柱を立てる

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

Arduinoを両面テープで固定する

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

2階のユニバーサルプレートを組み立てる

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

スポンサーリンク
ABOUT ME
CHA
「勉強に自由を!」をスローガンに、学校に限らず、好きな時に、好きな場所で、好きなことをYouTubeで勉強できるようになればいいなと思って授業動画を作っています!
記事URLをコピーしました