- 必要な材料:
- 必要な部品の3Dプリント:
- ハードウェアと回路図:
- ロボットの組み立て:
- Biped Robot用のArduinoのプログラミング:
- 処理ベースのAndroidアプリケーション:
- Bluetooth制御の二足歩行ロボットの動作:
歩いたり踊ったりできる小さなロボットを作る別のプロジェクトへようこそ。このプロジェクトの目的は、Arduinoを使用して小型のホビーロボットを作成する方法と、そのようなアプリケーション用にサーボモーターをプログラムする方法を教えることです。プロジェクトの最後に、Android携帯電話からコマンドを受け取って事前定義されたアクションを実行するこの歩行およびダンスロボットを作成できるようになります。また、プログラム(チュートリアルの最後に記載)を使用して、シリアルモニターを使用してサーボモーターの位置を制御することにより、自分のロボットの動作を簡単に操作することもできます。3Dプリンターを使用すると、このプロジェクトがより面白くなり、見栄えが良くなります。ただし、お持ちでない場合は、オンラインサービスを使用するか、段ボールを使用して同じものを作成できます。
必要な材料:
このロボットを構築するために必要な材料は次のとおりです。
- Arduino nano
- サーボSG90– 4Nos
- 男性のベルクスティック
- HC-05 / HC-06Bluetoothモジュール
- 3Dプリンタ
ご覧のとおり、この3D印刷されたロボットは、プロジェクトのコストを可能な限り低く抑えるために、最小限の電子部品を構築する必要があります。このプロジェクトは、概念的で楽しい目的のためだけのものであり、これまでのところリアルタイムのアプリケーションはありません。
必要な部品の3Dプリント:
3D印刷は、プロトタイププロジェクトを構築したり、新しい機械設計を実験したりするときに大きく貢献できる素晴らしいツールです。3Dプリンターの利点やその仕組みをまだ発見していない場合は、3D印刷の初心者向けガイドをお読みください。
このプロジェクトでは、上記のロボットの本体が完全に3Dプリントされています。ここからSTLファイルをダウンロードできます。これらのファイルをCuraなどの3D印刷ソフトウェアにロードして、直接印刷します。私はすべての部品を印刷するために私の非常に基本的なプリンターを使用しました。プリンターは3dingのFABXv1で、10立方センチメートルの印刷量で手頃な価格で提供されます。安い価格には、印刷解像度が低く、SDカードや印刷再開機能がないというトレードオフが伴います。 Curaというソフトウェアを使用してSTLファイルを印刷しています。資料の印刷に使用した設定を以下に示します。同じものを使用することも、プリンターに基づいて変更することもできます。
すべてのパーツを印刷したら、サポート(ある場合)をきれいにし、脚と腹のパーツの穴がネジを入れるのに十分な大きさであることを確認します。そうでない場合は、針を使用して穴を少し大きくします。3Dプリントされたパーツは次のようになります。
ハードウェアと回路図:
この携帯電話制御の二足歩行Arduinoロボットのハードウェア は本当にシンプルです。完全な回路図を下の画像に示します
上記の接続には、Perfボードを使用しました。回路がロボットのヘッド内にも収まるようにしてください。Perfボードの準備ができたら、次のようになります。
ロボットの組み立て:
ハードウェアと3D印刷部品の準備ができたら、ロボットを組み立てることができます。モーターを固定する前に、プログラムが問題なく動作するように、モーターを以下の角度に配置してください。
モーター番号 |
モータープレイス |
モーター位置 |
1 |
左股関節モーター |
110 |
2 |
右股関節モーター |
100 |
4 |
右足首モーター |
90 |
5 |
右股関節モーター |
80 |
これらの角度は、チュートリアルの最後にあるプログラムを使用して設定できます。上記の接続を行った後、プログラムをArduinoにアップロードし、シリアルモニターに次のように入力するだけです(注:ボーレートは57600です)。
1、100、110
2,90,100
4,80,90
5,70,80
すべてのモーターを所定の位置に配置すると、シリアルモニターは次のようになります。
モーターが対応する角度に設定されたら、上の図に示すようにモーターを取り付けます。
モーターの組み立て方法がわからない場合は、このチュートリアルの最後にあるビデオに従ってください。ロボットが組み立てられたら、ダンスロボットをプログラムします。
Biped Robot用のArduinoのプログラミング:
BBBロボット( Bluetooth Biped Bob )のプログラミングは 、このチュートリアルで最も興味深く楽しい部分です。Arduinoでサーボモーターをプログラミングするのが非常に得意な場合は、プログラムを作成することをお勧めします。ところで、このようなロボットアプリケーションでサーボモーターを使用する方法を学びたい場合は、このプログラムが非常に役立ちます。arduinoプログラミングの詳細については、arduinoプロジェクトのカテゴリをご覧ください。
完全なプログラムはこのチュートリアルの最後にあります。または、ここから完全なコードをダウンロードできます。以下、同じセグメントについて説明します。プログラムは、シリアルモニターまたはBluetoothを介してロボットの動作を制御することができます。シリアルモニターを使用して個々のモーターを制御することにより、独自の動きをすることもできます。
Servo1.attach(3); Servo2.attach(5); Servo4.attach(9); Servo5.attach(10);
上記のコード行は、どのサーボモーターがArduinoのどのピンに接続されているかを示すために使用されます。この場合、サーボ1、2、4、および5はそれぞれピン3、5、9、および10に接続されています。
Bot_BT.begin(9600); // 9600 baudrate Serial.begin(57600);でBluetooth通信を開始します。
先に述べたように、私たちの歩行ロボットはBluetoothコマンドで動作し、シリアルモニターからのコマンドからも動作します。したがって、Bluetoothシリアル通信は9600のボーレートで動作し、シリアル通信は57600のボーレートで動作します。ここでのBluetoothオブジェクトの名前は「Bot_BT」です。
switch(motor){case 1://モーター1の場合{Serial.println( "Executing motor one"); if(num1
上記のスイッチケースは、サーボモータを個別に制御するために使用されます。これは、ロボットを使って独自の創造的な動きをするのに役立ちます。このコードセグメントを使用すると、特定のモーターを目的の場所に移動させるために、角度から角度までモーター番号を簡単に伝えることができます。
たとえば、左股関節モーターであるモーター番号1をデフォルトの位置である110度から60度に移動する場合です。Arduinoのシリアルモニターに「1,110,60」と書いてEnterキーを押すだけです。これは、ロボットを使って独自の複雑な動きをするのに役立ちます。天使から角度まですべてを試してみると、独自の動きをして、関数としてそれを繰り返すことができます。
if(Serial.available()> 0)//シリアルから入ってくるものを読み取る{gmotor = Serial.parseInt(); Serial.print( "選択された番号->"); Serial.print(gmotor); Serial.print( "、"); gnum1 = Serial.parseInt(); Serial.print(gnum1); Serial.print( "度、"); gnum2 = Serial.parseInt(); Serial.print(gnum2); Serial.println( "度"); フラグ= 1; }
シリアルデータが利用可能な場合、最初の「、」の前の番号はgmotorと見なされ、次に2番目の「、」の前の番号はgnum1と見なされ、2番目の「、」の後の番号はgnum2と見なされます。
if(Bot_BT.available())// Bluetooth経由で着信するものを読み取る{BluetoothData = Bot_BT.read(); Serial.print( "BTからの着信:"); Serial.println(BluetoothData); }
Bluetoothが何らかの情報を受信すると、受信した情報は変数「BluetoothData」に保存されます。次に、この変数が事前定義された値と比較され、特定のアクションが実行されます。
if(flag == 1)call(gmotor、gnum1、gnum2); //アクションのためにそれぞれのモーターを呼び出します//シリアルモニターまたはBluetoothを介して受信したcommondに従って関数を実行します// if(gmotor == 10)left_leg_up(); if(gmotor == 11)right_leg_up(); if(gmotor == 12)move_left_front(); if(gmotor == 13)move_right_front(); if(BluetoothData == 49--gmotor == 49)say_hi(); if(BluetoothData == 50-gmotor == 50)walk1(); if(BluetoothData == 51-gmotor == 51)walk2(); if(BluetoothData == 52--gmotor == 52)dance1(); if(BluetoothData == 53-gmotor == 53)dance2(); if(BluetoothData == 54--gmotor == 54){test(); test(); test();}
これは、シリアルモニターまたはBluetoothから受信した値に基づいて関数が呼び出される場所です。上に示したように、変数gmotorはシリアルモニターの値を持ち、BluetoothDataはBluetoothデバイスからの値を持ちます。10、11、12から53,54までの番号は、事前定義された番号です。
たとえば、シリアルモニタに番号49を入力した場合です。say_hi()関数は、ロボットがhiを振る場所で実行されます。
すべての関数は、「Bot_Functions」ページ内で定義されています。それを開いて、各関数内で実際に何が起こっているかを確認できます。これらの機能はすべて、上記のスイッチケースを使用して、すべてのモーターのエンジェルからエンジェルまでを実験することによって作成されました。疑問がある場合は、コメントセクションを使用して投稿してください。喜んでお手伝いさせていただきます。
処理ベースのAndroidアプリケーション:
ロボットを制御するAndroidアプリケーションは、Androidの処理モードを使用して構築されました。アプリケーションに変更を加えたい場合は、ここから完全な処理プログラムをダウンロードできます。
単にアプリケーションを使用したい場合は、ここからAPKファイルとしてダウンロードし、携帯電話に直接インストールできます。
注:BluetoothモジュールにはHC-06という名前を付ける必要があります。そうしないと、アプリケーションはBluetoothモジュールに接続できません。
アプリケーションがインストールされたら、Bluetoothモジュールを電話とペアリングしてからアプリケーションを起動できます。以下のようになります。
アプリをより魅力的にしたい場合、またはHc-06以外の他のデバイスに接続したい場合。処理コードを使用して変更を加えてから、コードを携帯電話に直接アップロードできます。
Bluetooth制御の二足歩行ロボットの動作:
ハードウェア、Androidアプリケーション、Arduino Sketchの準備ができたら、ロボットを楽しんでください。次の画像に示すように、アプリケーションのボタンを使用してBluetoothアプリケーションから、または次のコマンドを使用してシリアルモニターから直接ロボットを制御できます。
各コマンドは、ロボットにいくつかの固有のタスクを実行させます。また、創造性に基づいてアクションを追加することもできます。
ロボットは、12Vアダプターから電力を供給することも、9Vバッテリーを使用して電力を供給することもできます。このバッテリーは、パフォーマンスボードの下に簡単に配置でき、ロボットのヘッドで覆うこともできます。
このスマートフォン制御ロボットの完全な動作は、以下のビデオで見つけることができます。