\r\n\r\n

家庭でできるロボットの作り方(家庭でロボットを作ろう)

自分でロボットを作る方法を学びたいですか?自作できるロボットには、さまざまな種類があります。多くの人は、「ある地点からある地点まで移動する」という単純な作業をロボットがやってくれることを望んでいるのではないでしょうか。アナログの部品からロボットを組み立てることもできますし、ゼロからスターターキットを購入することもできます。自分でロボットを作ることは、電子工学やコンピュータプログラミングを学ぶのに最適な方法です。

第1部/第6部:ロボットの組み立て

  1. 1 部品を集める。基本的なロボットを作るには、いくつかの簡単な部品が必要です。これらの部品のほとんどは(すべてではないにしても)、お近くの電子機器ホビーショップや一部のオンラインショップで入手することができます。また、基本的なキットには、これらの部品がすべて含まれている場合もあります。このロボットはハンダ付けを必要としません。 arduino uno(または他のマイコン) 2個の連続回転サーボ 2個のサーボに合う車輪 1個のキャスター 1個の小さなハンダなしブレッドボード(両側にプラスとマイナスの配線があるブレッドボードを探してください) 1個の距離センサー(4ピンのコネクタケーブル付き) 1個の小型ボタンスイッチ 1個の10kΩ抵抗 USB A to B ケーブル 1個の分離ヘッド1組を、ハンダ付けしてください。単三電池6本、9V DC電源ジャック付き ジャンパーケーブル1パックまたは22ゲージ接続ケーブル 丈夫な両面接着剤またはホットグルー付き
  2. Image titled 1123333 1
  3. 2 バッテリーパックを裏返し、裏面の平らな部分を上に向けて、ロボットのボディを組み立てるための土台とします。
  4. Image titled 1123333 2
  5. 3 バッテリーパックの片方の端にある2つのサーボを合わせます。サーボの底面を合わせ、各サーボの回転機構がバッテリーパックの側面を向くようにします。車輪がまっすぐ進むように、サーボを正しく配置する必要があります。サーボの配線は、バッテリーパックの裏側から出ているはずです。
  6. Image titled 1123333 3
  7. 4 サーボをテープや接着剤で固定します。バッテリーパックにしっかりと装着されていることを確認してください。ティラーの背面とバッテリーパックの背面が同じ高さになるようにします。これで、ラダーがバッテリーパックの後ろ半分を占めるようになりました。
  8. Image titled 1123333 4
  9. 5.ブレッドボードを電池パックの空きスペースに垂直に貼り付けます。バッテリーパックの少し手前に垂れ下がり、左右に伸びているはずです。A列がヘルムに最も近い位置にあることを確認してください。
  10. Image titled 1123333 5
  11. 6 サーボの上部に Arduino マイコンを接続します。サーボが正しく接続されていれば、サーボとサーボの間に平らな空間があるはずです。ArduinoのUSBポートと電源ポートがブレッドボードから離れるように、Arduinoのボードをこの平らな面に取り付けます。
  12. Image titled 1123333 6
  13. 7 ホイールをティラーに乗せる。ホイールをラダーの回転機構にしっかりと押し付けます。このとき、ホイールはできるだけぴったりとはまるように設計されているため、大きな力が必要になることがあります。
  14. Image titled 1123333 7
  15. 8 ブレッドボードの底面にキャスターを取り付けます。ケースを裏返すと、電池パックの後ろにブレッドボードが少し伸びているのが見えるはずです。この延長線上にキャスターを取り付け、必要に応じてライザーを使用します。キャスターは前輪の役割を果たし、ロボットはどんな方向にも楽に曲がることができます。キットを購入すると、キャスターにライザーが付属している場合がありますので、それを使ってキャスターが地面に着くようにします。
  16. Image titled 1123333 8

第2回/全6回:ロボットの配線

  1. 1. 3ピンヘッダーを2つ外します。サーボとブレッドボードの接続に使用します。ピンが左右に等間隔になるように、ピンを押し下げます。
  2. Image titled 1123333 9
  3. 2 2本のヘッダーピンをブレッドボードE列の1-3番と6-8番に差し込みます。しっかり差し込まれていることを確認してください。
  4. Image titled 1123333 10
  5. 3 サーボケーブルをピンホルダーに接続します。黒いケーブルは左側(1、6番ピン)です。これでサーボとブレッドボードが接続されます。左サーボが左コネクターに、右サーボが右コネクターに接続されていることを確認してください。
  6. Image titled 1123333 11
  7. 4 C2、C7ピンから赤色のジャンパーを赤色(プラス)レールピンに接続します。ブレッドボードの背面(他のシャーシに近い方)の赤いトラックを使用するようにしてください。
  8. Image titled 1123333 12
  9. 5 B1、B6ピンから黒色のジャンパーを青色(グランド)レールピンに接続してください。ブレッドボード裏面の青いトラックを必ず使用してください。赤いトラックピンには差し込まないでください。
  10. Image titled 1123333 13
  11. 6 Arduinoの12、13番ピンからA3、A8へ白いジャンパーを接続します。 これでArduinoがサーボを制御し、ホイールを回転させることができます。
  12. Image titled 1123333 14
  13. 7 ブレッドボードの前面にセンサーを接続します。ブレッドボード上の外部電源レールには接続せず、(J)の文字があるピンの最初の行に接続します。左右同じ数のピンが空くように、ちょうど中央に配置するようにしてください。
  14. Image titled 1123333 15
  15. 8 I14ピンから黒のジャンパー線を、センサーの左側にある利用可能な最初の青いレールピンに接続します。
  16. Image titled 1123333 16
  17. 9 I17 ピンから赤いジャンパーワイヤーをセンサーの右側で利用可能な最初の赤いレールピンに接続します。
  18. Image titled 1123333 17
  19. 10 I15ピンからArduinoの9ピンへ、I16ピンから8ピンへ、白いジャンパーを接続してください。これにより、センサーからの情報がマイコンに伝えられます。
  20. Image titled 1123333 18

第3回(全6回):電源の配線

  1. 1 バッテリーパックのセルが見えるようにロボットを横向きにし、バッテリーパックのケーブルが下側から左側に出るように向きを調整します。
  2. Image titled 1123333 19
  3. 2 底面の左から2番目のバネに赤色の電線を接続し、電池パックの向きが正しいことを確認します。
  4. Image titled 1123333 20
  5. 3 右下の最後のバネに黒いワイヤーを接続します。この2本のワイヤーが、Arduinoに正しい電圧を供給するのに役立ちます。
  6. Image titled 1123333 21
  7. 4 ブレッドボード裏面の右端にある赤と青のピンに、赤と黒の線を接続します。黒線は青線トラックの30番ピンに挿入してください。赤い線は、赤いトラックの30番ピンに挿入してください。
  8. Image titled 1123333 22
  9. 5 ArduinoのGNDピンから背面の青レールに黒線を接続します。青レールの28ピンに接続してください。
  10. Image titled 1123333 23
  11. 6 29ピンのそれぞれで,背面の青トラックから前面の青トラックに黒線を接続してください。Arduinoを破損する恐れがありますので、赤いトラックは接続しないでください。
  12. Image titled 1123333 24
  13. 7 前面の赤いトラックの30番ピンから、Arduinoの5Vピンに赤い線を接続します。これでArduinoに電源が供給されます。
  14. Image titled 1123333 25
  15. 8 押しボタンスイッチをピン24-26の列の間のスペースに挿入します。このスイッチにより、電源プラグを抜かずにロボットのスイッチを切ることができます。
  16. Image titled 1123333 26
  17. 9 H24 からの赤いワイヤーをセンサーの右側の空いている次のピンの赤いレールに接続します。これはボタンに電力を供給します。
  18. Image titled 1123333 27
  19. 10 H26を抵抗を使って青いレールに接続します。数ステップ前に接続した黒線の隣のダイレクトピンに接続します。
  20. Image titled 1123333 28
  21. 11 G26から白線をArduinoの2番ピンに接続します。これでArduinoがボタンを登録できるようになります。
  22. Image titled 1123333 29

第4回 全6回:Arduinoソフトウェアのインストール

  1. 1 Arduino IDEをダウンロードして解凍します。 これはArduinoの開発環境で、命令をプログラムし、Arduinoマイコンにアップロードするためのものです。arduino.cc/en/main/softwareから無償でダウンロードできます。ダウンロードしたファイルをダブルクリックで解凍し、中のフォルダーをアクセスしやすい場所に移動します。実際にプログラムをインストールすることはありません。代わりに、解凍したフォルダからarduino.exeをダブルクリックして実行するだけです。
  2. Image titled 1123333 30
  3. 2 バッテリーパックをArduinoに接続します。バッテリーの背面にあるジャックをArduinoのコネクタに差し込み、電源を供給してください。
  4. Image titled 1123333 31
  5. 3 ArduinoをUSBでコンピュータに接続します。Windowsではデバイスを認識しない場合があります。
  6. Image titled 1123333 32
  7. 4 .⊟ Win+Rを押してdevmgmt.mscと入力すると、デバイスマネージャが起動します。
  8. Image titled 1123333 33
  9. 5 「その他のデバイス」セクションの「不明なデバイス」を右クリックし、「ドライバーソフトウェアの更新」を選択します。このオプションが表示されていない場合は、「プロパティ」をクリックし、「ドライバ」タブを選択して、「ドライバの更新」をクリックしてください。
  10. Image titled 1123333 34
  11. 6 "Browse my computer for driver software "を選択します。これにより、Arduino IDEに付属しているドライバを選択することができます。
  12. Image titled 1123333 35
  13. 7 「参照」をクリックし、先ほど解凍したフォルダに移動してください。
  14. Image titled 1123333 36
  15. 8 「Drivers」フォルダを選択し、「OK」をクリックします。不明なソフトウェアがあると警告された場合は、続行するかどうか確認してください。
  16. Image titled 1123333 37

第5回 第6回:ロボット・プログラミング

  1. 1 IDEフォルダ内のarduino.exeをダブルクリックして、Arduino IDEを起動します。
  2. Image titled 1123333 38
  3. 2 次のコードを貼り付けて、ロボットを直線的に前進させます。以下のコードで、Arduinoを連続的に前進させることができます。#include <Servo.h> //プログラムに "Servo "ライブラリを追加します //次のように2つのサーボオブジェクトを作成します Servo leftMotor;Servo rightMotor;void setup(){ leftMotor.attach(12); //誤ってサーボを入れ替えた場合rightMotor.attach(13);}void loop(){ leftMotor.write(180); // 連続回転の場合、180でサーボがフルスピードになります attach(13);}void loop(){ leftMotor.write(180); // 連続回転の場合、180でサーボがフルスピードになります attach(13);}void loop(){ leftMotor.write(160)write(180); // 連続回転の場合、180 はサーボを全速力で「前進」させることを意味します。rightMotor.write(0); // 両方の数値が180の場合、サーボが反転しているため、ロボットは円を描くように進みます。"0, "全速力で「後進」するように指示する".}
  4. Image titled 1123333 39
  5. 3 番組を作成し、アップロードする。左上の右矢印ボタンをクリックすると、接続したArduinoにプログラムを構築してアップロードします。プログラムをアップロードすると、ロボットは前進し続けるので、表面から持ち上げておくとよいでしょう。
  6. Image titled 1123333 40
  7. 4.キルスイッチ機能を追加する。キルスイッチを有効にするための「void loop()」の部分に、「write()」関数の上に以下のコードを追加します。 if(digitalRead(2) == HIGH)// Arduinoの2番ピンでボタンを押すと、この記録が残ります{ while(1) { leftMotor.write(90); // "90 "はサーボのニュートラル位置で、サーボの回転を停止させる指示です rightMotor.write(90); }}。
  8. Image titled 1123333 41
  9. 5 コードをアップロードしてテストする。キルスイッチのコードを追加した後、ロボットをアップロードしてテストすることができます。スイッチを押すまで前進し続け、その時点で動きが止まるはずです。完全なコードは以下のようになります。 #include <Servo.h>// 以下の2つのサーボオブジェクトを作成します。 Servo leftMotor;Servo rightMotor;void setup(){ leftMotor.attach(12); rightMotor.attach()13); }void loop(){ if(digitalRead(2) == HIGH){ while(1) { leftMotor.write(90); rightMotor.write(90); }} leftMotor.write(180); rightMotor.write(180)(0); }
  10. Image titled 1123333 42

第 6 回 第 6 回:例

  1. 1 お手本に従う。次のコードは、ロボットに取り付けられたセンサーを使って、障害物に遭遇したときにロボットを左に旋回させるものです。各パーツの動作については、コード内のコメントをご覧ください。以下のコードがプログラム全体です。#include <Servo.h>Servo leftMotor;Servo rightMotor;const int serialPeriod = 250; //コンソールへの出力を1/4秒に1回に制限するunsigned long timeSerialDelay = 0;const int loopPeriod = 20; //センサーの読み取り周波数を20ms、つまり50Hzに設定します unsigned long timeLoopDelay = 0;//Arduino のピンにTRIGとECHO関数を割り当てます。接続が異なる場合は、ここで数値を調整してくださいconst int ultrasonic2TrigPin = 8;const int ultrasonic2EchoPin = 9;int ultrasonic2Distance;int ultrasonic2Duration;//thisdefine DRIVE_FORWARD 0 #define TURN_LEFT 1int state = DRIVE_FORWARD; // 0 = 前進(デフォルト)、1 = 左折 void setup() { Serial.begin(9600)); // これらのセンサーのピン設定 pinMode(ultrasonic2TrigPin, OUTPUT); pinMode(ultrasonic2EchoPin, INPUT); // これでArduinoのピンにモーターが割り当てられました leftMotor.attach(12);rightMotor.attach(13); }void loop(){ if(digitalRead(2) == HIGH)//this is detects kill switch { while(1) { leftMotor.write(90); rightMotor.write(90); }} 。debugOutput(); // シリアルコンソールにデバッグ情報を出力する if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // 測定した距離をセンサーに読み込んで保存するように指示する stateMachine();timeLoopDelay = millis(); }}void stateMachine(){ if(state == DRIVE_FORWARD) // 障害物を検知しない場合 { if(ultrasonic2Distance > 6 || ultrasonic2Distance &)lt; 0) // 前方に何もない場合 超音波によってはultrasonicDistanceがマイナスになる 障害物がない場合 { // 前方に駆動する rightMotor.write(180); leftMotor.write(0); } else // 前方に物体がある場合 { state =TURN_LEFT; }} else if(state == TURN_LEFT) // 障害物を検知したら左折 { unsigned long timeToTurnLeft = 500; // 90度回転するのに、約0.5秒かかる。ホイールのサイズが例と異なる場合は、この時間を調整する必要があります unsigned long turnStartTime = millis(); // 回転開始時間を保存 while((millis()-turnStartTime) < timeToTurnLeft) // までこのループにとどまる。timeToTurnLeft経過後{ // 左旋回、両方が "180 "の時に旋回することを忘れないでください。readUltrasonicSensors(){//超音波用 2.DigitalWrite(ultrasonic2TrigPin, HIGH); delayMicroseconds(10); //最低10マイクロ秒はトリガピンをハイに保つ digitalWrite()ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn(ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; }/Belowは、以下の通りです。エラーをコンソールでデバッグする void debugOutput(){ if((millis() - timeSerialDelay) > serialPeriod) { Serial.print("ultrasonic2Distance: " ); Serial.print()ultrasonic2Distance); Serial.print("cm"); Serial.println(); timeSerialDelay = millis(); }}。
  • 2022-03-10 17:29 に公開
  • 閲覧 ( 26 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ