
確かに、サイエンス フィクション映画で、科学者やオタクがすべてを制御し、あたかも人間であるかのように物体を持ち上げたり、機能を実行したりできるロボット アームを持っているのを見たことがある人は多いでしょう。フリー ハードウェアと Arduino プロジェクトのおかげで、それがますます可能になっています。しかし、ロボットアームとは何でしょうか?このガジェットにはどのような機能がありますか?ロボットアームはどのように作られるのでしょうか?以下では、これらすべての質問に答えていきます。
ロボットアームとは
ロボットアームは、完全にプログラム可能な電子ベースを備えた機械式アームです。。 さらに、このタイプのアームは単一の要素にすることができますが、ロボットまたは他のロボットシステムの一部にすることもできます。 他のタイプの機械要素と比較したロボットアームの品質は、 ロボットアームは完全にプログラム可能ですが、デバイスの他の部分はプログラム可能ではありません。 この機能により、XNUMXつのロボットアームでさまざまな操作を実行したり、Arduinoボードなどの電子ボードのおかげで実行できるさまざまなさまざまなアクティビティを実行したりできます。
ロボットアームの機能
おそらく、ロボットアームの最も基本的な機能は、補助アーム機能です。 一部の操作では、人が何かを構築または作成できるように、いくつかの要素をサポートするXNUMX番目のアームが必要になります。 この機能では、特別なプログラミングは必要なく、デバイス自体の電源を切るだけで済みます。
ロボットアームはさまざまな素材で作ることができるため、危険な操作の代わりに使用できます。 汚染された化学元素の操作のように。 ロボットアームは、丈夫で抵抗力のある素材で構成されている限り、重い作業や適切な圧力を必要とする作業を実行するのにも役立ちます。
その建設に必要な材料
次に、すべての人のために、高速、シンプル、経済的な方法でロボットアームを構築する方法を説明します。 ただし、このロボットアームは、映画で見られるアームほど強力でも有用でもありませんが、その操作と構造について学ぶのに役立ちます。 そのため、 このデバイスを構築するために必要な材料は次のとおりです。:
- プレート Arduino UNO REV3以降。
- XNUMXつの開発ボード。
- 並列のXNUMX軸サーボ
- XNUMXつのマイクロサーボ
- 並列のXNUMXつのアナログ制御
- 開発ボード用のジャンパー付きケーブル。
- テープ
- スタンド用の段ボールまたはフォームボード。
- カッターとはさみ。
- 多くの忍耐。
アセンブリ
このロボットアームの組み立ては非常に簡単です。 まず、フォームでXNUMXつの長方形を切り抜く必要があります。 これらの長方形はそれぞれ、ロボットアームの一部になります。 画像でわかるように、これらの長方形は必要なサイズにする必要がありますが、 そのうちの16,50つのサイズは3,80x11,40cmです。 3,80番目の長方形のサイズはXNUMXx XNUMXcmです。.
長方形ができたら、各長方形またはストリップの一方の端で、各サーボモーターをテープで固定します。 これを行った後、 泡の「U」をカットします。 これは、腕の保持部分または端部として機能し、人間にとっては手になります。 この部品を最小の長方形にあるサーボモーターに結合します。
次に、下部またはベースを作成する必要があります。 このために、同じ手順を実行します。 次の画像のように、正方形のフォームを切り取り、XNUMX軸サーボモーターを並列に配置します。:
次に、すべてのモーターをArduinoボードに接続する必要があります。 ただし、最初に、接続を開発ボードに接続し、これをArduinoボードに接続する必要があります。 黒の線をGNDピンに接続し、赤の線を5Vピンに接続し、黄色の線を-11、-10、4、および-3に接続します。。 また、ロボットアームのジョイスティックまたはコントロールをArduinoボードに接続します。この場合、画像は次のようになります。
すべてを接続して組み立てたら、プログラムをArduinoボードに渡す必要があります。そのために、Arduinoボードをコンピューターまたはラップトップに接続する必要があります。 プログラムをArduinoボードに渡したら、次のことを確認する必要があります。 ケーブルをArduinoボードに接続しますが、いつでも開発ボードを続行してすべてを分解できます、後者は、学習したいだけの場合です。
操作に必要なソフトウェア
ロボットアームの製作は終了したようですが、実はまだまだ先がたくさんあり、最も重要なことがあります。 ロボットアームに生命を与えるプログラムを作成または開発します。プログラムがなければ、サーボモーターは意味のない回転をする単純な時計メカニズムであることに変わりはありません。
これは、Arduinoボードをコンピューターに接続し、プログラムを開くことで解決されます Arduino IDE、コンピュータをボードに接続し、次のコードを空のファイルに書き込みます。
#include <Servo.h>
const int servo1 = 3; // first servo
const int servo2 = 10; // second servo
const int servo3 = 5; // third servo
const int servo4 = 11; // fourth servo
const int servo5 = 9; // fifth servo
const int joyH = 2; // L/R Parallax Thumbstick
const int joyV = 3; // U/D Parallax Thumbstick
const int joyX = 4; // L/R Parallax Thumbstick
const int joyP = 5; // U/D Parallax Thumbstick
const int potpin = 0; // O/C potentiometer
int servoVal; // variable to read the value from the analog pin
Servo myservo1; // create servo object to control a servo
Servo myservo2; // create servo object to control a servo
Servo myservo3; // create servo object to control a servo
Servo myservo4; // create servo object to control a servo
Servo myservo5; // create servo object to control a servo
void setup() {
// Servo
myservo1.attach(servo1); // attaches the servo
myservo2.attach(servo2); // attaches the servo
myservo3.attach(servo3); // attaches the servo
myservo4.attach(servo4); // attaches the servo
myservo5.attach(servo5); // attaches the servo
// Inizialize Serial
Serial.begin(9600);
}
void loop(){
servoVal = analogRead(potpin);
servoVal = map(servoVal, 0, 1023, 0, 179);
myservo5.write(servoVal);
delay(15);
// Display Joystick values using the serial monitor
outputJoystick();
// Read the horizontal joystick value (value between 0 and 1023)
servoVal = analogRead(joyH);
servoVal = map(servoVal, 0, 1023, 0, 180); // scale it to use it with the servo (result between 0 and 180)
myservo2.write(servoVal); // sets the servo position according to the scaled value
// Read the horizontal joystick value (value between 0 and 1023)
servoVal = analogRead(joyV);
servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180)
myservo1.write(servoVal); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
// Read the horizontal joystick value (value between 0 and 1023)
servoVal = analogRead(joyP);
servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180)
myservo4.write(servoVal); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
// Read the horizontal joystick value (value between 0 and 1023)
servoVal = analogRead(joyX);
servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180)
myservo3.write(servoVal); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
/**
* Display joystick values
*/
void outputJoystick(){
Serial.print(analogRead(joyH));
Serial.print ("---");
Serial.print(analogRead(joyV));
Serial.println ("----------------");
Serial.print(analogRead(joyP));
Serial.println ("----------------");
Serial.print(analogRead(joyX));
Serial.println ("----------------");
}
保存してからプレートに送ります Arduino UNO. コードを完成させる前に、ジョイスティックが機能することを確認するために適切なテストを実行します また、コードにエラーがないこと。
私はすでにそれをマウントしました、今何ですか?
確かに多くの人はこのタイプのロボットアームを期待していませんでしたが、それが何であるか、それが持つコスト、そしてロボットの作り方を教える方法の基本から理想的です。 ここからすべてが私たちの想像力に属しています。 つまり、材料やサーボモーターを変更したり、プログラミングコードを完成させたりすることができます。 言うまでもなく Arduinoボードモデルを、リモコンを接続できるより強力で完全なモデルに変更できます またはスマートフォンで作業します。つまり、フリー ハードウェアとロボット アームによって提供される幅広い可能性です。
詳しくは - Instructables



