工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

サーボモーター付きロボット回避障害物

コンポーネントと消耗品

>
Arduino UNO
× 1
SG90マイクロサーボモーター
× 1
SparkFun超音波センサー-HC-SR04
× 1
ロボットシャーシキット-2WDとDCモーター
× 1
ジャンパー線(汎用)
× 1
Arduino MotorShield Rev3
× 1

必要なツールとマシン

>
はんだごて(汎用)

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

プロジェクトのすべて

私はマレーシアのサイバージャヤにあるマルチメディア大学で学ぶメディアアートデザインの学生です。今年はメディアアートを勉強する私のガンマ年です。インタラクションデザインは、Arduinoコンポーネントの使用方法とその仕組みについて学生に教えるテーマです。そのため、最終的な課題では、自分のプロジェクトとして障害物回避ロボットを選択し、すべてのコンポーネントがどのように機能するかを学びました。

ステップ1:

ロボットシャーシを準備して構築します。パッケージの中には、いくつかのコンポーネント、シャーシ、2つのモーター、2つのホイール、前輪、バッテリーホルダー、いくつかのネジ、スイッチ、ジャンパー線が含まれています。下の写真:

<図>

ステップ2:

両方のモーターにジャンパー線をはんだ付けする前に、すべてのコンポーネントをテストして、すべてが正常に機能していることを確認することをお勧めします。たとえば、両方のDCモーター、Arduinoボード、モーターシールド、サーボモーター、超音波センサー。次に、両方のモーターに赤と黒のワイヤーのはんだ付けを開始します。下の写真の例:

<図>

ステップ3:

バッテリーシャーシとスイッチパーツに来てください。バッテリーシャーシから黒いワイヤーの半分を切り取り、1つのワイヤー側を1つの穴にはんだ付けするだけで、別の黒いワイヤーが別の穴にはんだ付けされます。スイッチの準備ができました!

ステップ4:

Arduinoボードとモーターシールドボードをスタックする必要があります。モーターシールドはArduinoボードにスタックします。以下の例:

<図>

ステップ5:

モーターシールドボードに移ります。このシールドはモーターとサーボモーターに電力を供給し、モーターは大量の電流を必要とし、このシールドは各モーターに最大600mAの電流を供給することができます。モーターシールドボードにDCモーターワイヤーをはんだ付け/固定する必要があります。 DCモーターワイヤーがモーターシールドに到達するのに十分な長さである場合は、外部ジャンパー線を使用する必要があるかもしれません(オス/メスジャンパー線に関係なく)、ジャンパー線の頭を切り取り、内部を確認してください銅線が表示されます。 (銅線を表示するには、ジャンパー線のゴムをカットする必要があります)。また、外部ワイヤをDCモーターワイヤにはんだ付けする必要があります。例:

<図>

次に、左側のモーターワイヤーをモーターシールドのM1コネクターに接続します。右側のモーターワイヤは、モーターシールドボードからM3コネクタに接続します。例:

<図>

ステップ6:

次に、赤と黒の両方のバッテリースイッチワイヤーをモーターシールドボードに接続する必要があります。

<図>

その後、オスとメスのジャンパー線を5V、GND、アナログピン4、アナログピン5にはんだ付けする準備をする必要があります。その前に、同じ色のメスとオスのジャンパー線を見つけて半分にカットする必要があります。 。なぜ同じ色でなければならないのですか?まず、どのワイヤがどの部分に対応しているかを簡単に認識できます。次に、白いオスのジャンパー線は、5Vに接続する白いメスのジャンパー線とはんだ付けされます。黒色のオスジャンパー線はメスジャンパー線とはんだ付けされ、オスジャンパー線はGNDにはんだ付けされます。オレンジ色のオスジャンパー線はオレンジ色のメスジャンパー線ではんだ付けされ、オレンジ色のオスジャンパー線はアナログピン5ではんだ付けされます。最後に、茶色のオスジャンパー線はメスの茶色のジャンパー線ではんだ付けされ、次に茶色のオスジャンパー線はにはんだ付けされますアナログピン4。例:

<図>

ステップ7:

ロボットシャーシに両方のシールドを取り付けるために、両面テープまたはホットグルーガンを使用できます。

ステップ8:超音波センサーの部分に来てください

今はんだ付けしているメス&オスジャンパー線から、白ジャンパー線(5V)(メスサイトジャンパー線)を超音波センサーVCCピンに接続します。黒のジャンパー線(GND)(メスサイトジャンパー線)がGNDピンに接続されます。茶色のジャンパー線(アナログピン4)(メスサイトジャンパー線)がエコーピンに接続されます。オレンジ色のジャンパー線(アナログピン5)(メスサイトジャンパー線)がTRIGピンに接続されます。

<図>

ステップ9:

最後に、サーボモーターはservo_2スロットに接続します。注*(サーボモーターにはいくつかの種類があります。servo_2スロットに接続する方法については、オンラインで見つける必要がある場合があります)。以下は私自身のバージョンのサーボスロット用です。

<図>

最後のステップ:コード

この障害物回避ロボットには、モーターシールドドライバー用のモーターシールドライブラリである3つのライブラリが必要です。新しいPingライブラリは超音波センサー用です。 3番目はArduinoIDEです。以下は、ライブラリのダウンロード可能なリンクです。

  • モーターシールドライブラリ
  • 新しいPingライブラリ

私のプロジェクトをご覧いただきありがとうございます。指示が十分に明確で、障害物回避ロボットを自分で作成することができれば幸いです。ありがとうございます!

テスト用のビデオ:

コード

  • Arduino IDE
Arduino IDE C#
コードをコピーしてArduinoIDEに貼り付け、Arduinoボードにアップロードします
 #include  #include  #include  #define TRIG_PIN A4 #define ECHO_PIN A5#define MAX_DISTANCE_POSSIBLE 1000 #define MAX_SPEED 150 // #define MOTORS_CALIBRATION_OFFSET 3#define COLL_DIST 20 #define TURN_DIST COLL_DIST + 10 NewPing sonar(TRIG_PIN、ECHO_PIN、MAX_DISTANCE_POSSIBLE); AF_DCMotor leftMotor(3、MOTOR12_8KHZ); AF_DCMotor rightMotor(1、MOTOR12_8KHZ);サーボneckControllerServoMotor; int pos =0; int maxDist =0; int maxAngle =0; int maxRight =0; int maxLeft =0; int maxFront =0; intcourse =0; int curDist =0; String motorSet =""; int speedSet =0; void setup() {neckControllerServoMotor.attach(10); NickControllerServoMotor.write(90); delay(2000); checkPath(); motorSet ="FORWARD"; NickControllerServoMotor.write(90); moveForward();} void loop(){checkForward(); checkPath();} void checkPath(){int curLeft =0; int curFront =0; int curRight =0; int curDist =0; NickControllerServoMotor.write(144); delay(120); for(pos =144; pos> =36; pos- =18){neckControllerServoMotor.write(pos); delay(90); checkForward(); curDist =readPing(); if(curDist  curDist){maxAngle =pos;} if(pos> 90 &&curDist> curLeft){curLeft =curDist;} if(pos ==90 &&curDist> curFront){curFront =curDist;} if(pos <90 &&curDist> curRight){curRight =curDist;}} maxLeft =curLeft; maxRight =curRight; maxFront =curFront;} void setCourse(){if(maxAngle <90){turnRight();} if(maxAngle> 90){turnLeft();} maxLeft =0; maxRight =0; maxFront =0;} void checkCourse(){moveBackward(); delay(500); moveStop(); setCourse();} void changePath(){if(pos <90){lookLeft();} if(pos> 90){lookRight();}} int readPing(){delay(70); unsigned int uS =sonar.ping(); int cm =uS / US_ROUNDTRIP_CM; return cm;} void checkForward(){if(motorSet =="FORWARD"){leftMotor.run(FORWARD); rightMotor.run(FORWARD); }} void checkBackward(){if(motorSet =="BACKWARD"){leftMotor.run(BACKWARD); rightMotor.run(BACKWARD); }} void moveStop(){leftMotor.run(RELEASE); rightMotor.run(RELEASE);} void moveForward(){motorSet ="FORWARD"; leftMotor.run(FORWARD); rightMotor.run(FORWARD); for(speedSet =0; speedSet  

回路図


製造プロセス

  1. シンプルなパイロボット
  2. ラインフォロワーロボット
  3. ArduinoとAndroidデバイスでルンバロボットを制御する
  4. ArduinoとMPU6050によるサーボモーターの制御
  5. 自律型ホームアシスタントロボット
  6. DIY Arduinoロボットアーム–ハンドジェスチャで制御
  7. AndroidアプリでArduinoロボットアームを制御する
  8. ArduinoNanoで食べるロボットを作る|金ネジ
  9. 超クールな屋内ナビゲーション用ロボット
  10. サーボモータとは
  11. ギアヘッドとサーボ モーターのペアリング