アプリ制御油圧クレーン
コンポーネントと消耗品
> | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 8 | |
| | × | 8 | |
| 水族館フィルターパイプまたは生理食塩水パイプ td> | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 2 | |
| | × | 4 | |
| | × | 2 | |
| | × | 1 | |
アプリとオンラインサービス
> | | |
このプロジェクトについて
インターネットでは、手動で制御される油圧式と、アプリなどを使用して制御されるロボット式の2種類のアームしか利用できません。これ プロジェクトは両方の組み合わせです。
始める前に、arduinoコーディングの知識があることを確認してください。
<図>
この方法でhc05をarduinoに接続します。
<図>
これはl298モータードライバー[ena、in1、in2-モーターA]、[enb、in3、in4-モーターB]、ena&enbはモーターAとモーターBの速度制御用です。
<図>
コードの詳細な説明を提供し、コードに従って回路を作成します。電源をオンにする前に、すべてのコンポーネントが正しく接地されていることを確認してください。
コード
hydraulic.ino Arduino
// 1番目と2番目のモータードライバーはARM制御用// 3番目のモータードライバーは機関車部分用// 1番目のモータードライバー[BASE(2,3)AND SHOULDER(4,7)] int m1IN1 =2; // in1int m1IN2 =3; // in2int m1IN3 =4; // in3int m1IN4 =5; // in4int m1ENA =6; //速度制御の場合、ここでは速度制御は使用されないため、動作中は速度をHIGHに保ち、モーターを停止するにはLOWにします。m1ENB=7; //速度制御の場合、ここでは速度制御は使用されないため、動作中はHIGHに保ち、モーターを停止するにはLOWにします// 2番目のモータードライバー[ELBOW(8,9)AND GRIPPER(12,13)] int m2IN1 =8; // in1int m2IN2 =9; // in2int m2IN3 =10; // in3int m2IN4 =11; // in4int m2ENA =12; //速度制御の場合、ここでは速度制御は使用されないため、動作中は速度をHIGHに保ち、モーターを停止するにはLOWにします。m2ENB=13; //速度制御の場合、ここでは速度制御は使用されないため、動作中はHIGHに保ち、モーターを停止するにはLOWにします// 3番目のモータードライバー[CAR(INI、IN2)=RIGHT(IN3、IN4)=LEFT] int m3IN1 =14; // in1 14-arduinointのA0ピンm3IN2 =15; // in2 15-A1int m3IN3 =16; // in3 16-A2int m3IN4 =17; // in4 17-A3int m3ENA =18; // ena 18-A4、ここでは速度制御を使用して機関車部分の速度を制御できます。そのため、digitalWrite()int m3ENB =19の代わりにanalogWrite()を使用する必要があります。 // enb 19-A5、ここでは速度制御を使用して機関車部品の速度を制御できます。そのため、digitalWrite()void setup(){pinMode(m1IN1、OUTPUT);の代わりにanalogWrite()を使用する必要があります。 pinMode(m1IN2、OUTPUT); pinMode(m1IN3、OUTPUT); pinMode(m1IN4、OUTPUT); pinMode(m2IN1、OUTPUT); pinMode(m2IN2、OUTPUT); pinMode(m2IN3、OUTPUT); pinMode(m2IN4、OUTPUT); pinMode(m1ENA、OUTPUT); pinMode(m1ENB、OUTPUT); pinMode(m2ENA、OUTPUT); pinMode(m2ENB、OUTPUT); pinMode(m3IN1、OUTPUT); pinMode(m3IN2、OUTPUT); pinMode(m3IN3、OUTPUT); pinMode(m3IN4、OUTPUT); pinMode(m3ENA、OUTPUT); pinMode(m3ENB、OUTPUT); Serial.begin(9600);} void loop(){char ip ='0'; while(Serial.available()> 0)//シリアルポートがhc05から値を受信しているかどうかを確認します{ip =Serial.read(); //シリアルポートからデータを読み取りますdelay(10); } switch(ip){case '6':// SHOULDER UP digitalWrite(m1IN3、HIGH); digitalWrite(m1IN4、LOW); digitalWrite(m1ENA、HIGH); digitalWrite(m1ENB、HIGH);壊す;ケース「5」:// SHOULDER DOWN digitalWrite(m1IN3、LOW); digitalWrite(m1IN4、HIGH); digitalWrite(m1ENA、HIGH); digitalWrite(m1ENB、HIGH);壊す;ケース「1」:// ELBOW UP digitalWrite(m2IN3、HIGH); digitalWrite(m2IN4、LOW); digitalWrite(m2ENA、HIGH); digitalWrite(m2ENB、HIGH);壊す;ケース「2」:// ELBOW DOWN digitalWrite(m2IN3、LOW); digitalWrite(m2IN4、HIGH); digitalWrite(m2ENA、HIGH); digitalWrite(m2ENB、HIGH);壊す;ケース「8」:// GRIP CONTRACT digitalWrite(m2IN1、HIGH); digitalWrite(m2IN2、LOW); digitalWrite(m2ENA、HIGH); digitalWrite(m2ENB、HIGH);壊す;ケース「7」:// GRIP EXPAND digitalWrite(m2IN1、LOW); digitalWrite(m2IN2、HIGH); digitalWrite(m2ENA、HIGH); digitalWrite(m2ENB、HIGH);壊す;ケース「3」://ベースクロックdigitalWrite(m1IN1、HIGH); digitalWrite(m1IN2、LOW); digitalWrite(m1ENA、HIGH); digitalWrite(m1ENB、HIGH);壊す;ケース「4」:// BASE ANTICLOCK digitalWrite(m1IN1、LOW); digitalWrite(m1IN2、HIGH); digitalWrite(m1ENA、HIGH); digitalWrite(m1ENB、HIGH);壊す;ケース '9':// OFF digitalWrite(m1IN1、LOW); digitalWrite(m1IN2、LOW); digitalWrite(m1IN3、LOW); digitalWrite(m1IN4、LOW); digitalWrite(m1ENA、LOW); digitalWrite(m1ENB、LOW); digitalWrite(m2IN1、LOW); digitalWrite(m2IN2、LOW); digitalWrite(m2IN3、LOW); digitalWrite(m2IN4、LOW); digitalWrite(m2ENA、LOW); digitalWrite(m2ENB、LOW); digitalWrite(m3IN1、LOW); digitalWrite(m3IN2、LOW); digitalWrite(m3IN3、LOW); digitalWrite(m3IN4、LOW); digitalWrite(m3ENA、LOW); digitalWrite(m3ENB、LOW);壊す;ケース 'A':// FORWARD digitalWrite(m3IN1、HIGH); digitalWrite(m3IN2、LOW); digitalWrite(m3IN3、HIGH); digitalWrite(m3IN4、LOW); digitalWrite(m3ENA、HIGH); digitalWrite(m3ENB、HIGH);壊す;ケース 'D':// BACKWARD digitalWrite(m3IN1、LOW); digitalWrite(m3IN2、HIGH); digitalWrite(m3IN3、LOW); digitalWrite(m3IN4、HIGH); digitalWrite(m3ENA、HIGH); digitalWrite(m3ENB、HIGH);壊す;ケース 'B':// RIGHT digitalWrite(m3IN1、LOW); digitalWrite(m3IN2、HIGH); digitalWrite(m3IN3、HIGH); digitalWrite(m3IN4、LOW); digitalWrite(m3ENA、HIGH); digitalWrite(m3ENB、HIGH);壊す;ケース 'C':// LEFT digitalWrite(m3IN1、HIGH); digitalWrite(m3IN2、LOW); digitalWrite(m3IN3、LOW); digitalWrite(m3IN4、HIGH); digitalWrite(m3ENA、HIGH); digitalWrite(m3ENB、HIGH);壊す; }}
カスタムパーツとエンクロージャー
Hydraulic_crane_J6NH7RouoB.apkuse m-シールを使用して、ナットをモーターに取り付けます。 m-sealを使用してシリンジのピストンにナットを固定します。 このようにシリンジとモーターを固定します モーターが時計回りに回転するとピストンを押し、反時計回りに回転するとピストンを引っ張ります https://www.youtube.com/watch?v=lhOF6cViZ4Q