Industrial manufacturing
Industrial Internet of Things | Industrial materials | Equipment Maintenance and Repair | Industrial programming |
home  MfgRobots >> Industrial manufacturing >  >> Manufacturing Technology >> Manufacturing process

Smart App‑Controlled Hydraulic Crane – Precision & Ease

Components and supplies

Smart App‑Controlled Hydraulic Crane – Precision & Ease
Arduino UNO
×1
Smart App‑Controlled Hydraulic Crane – Precision & Ease
HC-05 Bluetooth Module
×1
Smart App‑Controlled Hydraulic Crane – Precision & Ease
Breadboard (generic)
×1
300 rpm geared dc motor
×8
10 ml syringes
×8
aquarium filter pipe or saline pipe
×1
Thick cardboard
×1
nuts and bolts
×1
6mm ply board
×2
wheels for geared dc motor
×4
wool sewing needle
×2
L298N Dual H bridge
×1

Necessary tools and machines

Smart App‑Controlled Hydraulic Crane – Precision & Ease
Soldering iron (generic)
drill machine
precision knife
m-seal

Apps and online services

Smart App‑Controlled Hydraulic Crane – Precision & Ease
MIT App Inventor 2
I have provided the .apk file for the app below.

About this project

On the internet only two types of arms are available either hydraulic which is controlled manually or robotic which is controlled using app or some other thing. This project is the combination of both of them.

Before you start make sure you have some arduino coding knowledge.

Smart App‑Controlled Hydraulic Crane – Precision & Ease

connect the hc05 with the arduino in this way.

Smart App‑Controlled Hydraulic Crane – Precision & Ease

this is the l298 motor driver [ena, in1, in2- motor A], [enb, in3, in4- motor B], ena & enb are for speed control of motor A and motor B.

Smart App‑Controlled Hydraulic Crane – Precision & Ease

I have provided a detailed explanation of the code, follow the code and make the circuit. Before switching on the power supply please make sure that you have grounded all the components properly.

Code

  • hydraulic.ino
hydraulic.inoArduino
// 1st and 2nd motor driver is for the ARM control
// 3rd motor driver is for the LOCOMOTIVE part

//1st Motor driver  [BASE(2,3) AND SHOULDER(4,7)]
int m1IN1 =2;        //in1
int m1IN2 =3;        //in2
int m1IN3 =4;        //in3
int m1IN4 =5;        //in4
int m1ENA =6;        // for speed control, speed control is not used here so kept it HIGH when in motion and make it LOW to stop the motor
int m1ENB =7;        // for speed control, speed control is not used here so kept it HIGH when in motion and make it LOW to stop the motor
//2nd Motor driver  [ELBOW(8,9) AND GRIPPER(12,13)]

int m2IN1 =8;        //in1
int m2IN2 =9;       //in2
int m2IN3 =10;       //in3
int m2IN4 =11;       //in4
int m2ENA =12;       // for speed control, speed control is not used here so kept it HIGH when in motion and make it LOW to stop the motor
int m2ENB =13;       // for speed control, speed control is not used here so kept it HIGH when in motion and make it LOW to stop the motor
//3rd Motor driver  [CAR   (INI,IN2)=RIGHT    (IN3,IN4)=LEFT]

int m3IN1=14;      // in1  14- A0 pin on arduino
int m3IN2=15;      // in2  15-A1
int m3IN3=16;      // in3  16-A2
int m3IN4=17;      // in4  17-A3
int m3ENA=18;      // ena  18-A4  ,here you may use speed control to control the speed of the locomotive part, for that you have to use the analogWrite() instead of digitalWrite()
int m3ENB=19;      // enb  19-A5  ,here you may use speed control to control the speed of the locomotive part, for that you have to use the analogWrite() instead of digitalWrite()
void setup()
{
    pinMode(m1IN1,OUTPUT);
    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)   // check whether the serial port is receiving any value from the hc05 or not
    {
        ip=Serial.read();    // reads the data from the serial port
        delay(10);
    }
    switch(ip)
    {
          case '6' : //  SHOULDER UP
              digitalWrite(m1IN3,HIGH);
              digitalWrite(m1IN4,LOW);
              digitalWrite(m1ENA,HIGH);
              digitalWrite(m1ENB,HIGH);
              break;
          case '5' ://  SHOULDER DOWN
              digitalWrite(m1IN3,LOW);
              digitalWrite(m1IN4,HIGH);
              digitalWrite(m1ENA,HIGH);
              digitalWrite(m1ENB,HIGH);
              break;
          case '1' ://  ELBOW UP
              digitalWrite(m2IN3,HIGH);
              digitalWrite(m2IN4,LOW);
              digitalWrite(m2ENA,HIGH);
              digitalWrite(m2ENB,HIGH);
              break;
          case '2' ://  ELBOW DOWN
              digitalWrite(m2IN3,LOW);
              digitalWrite(m2IN4,HIGH);
              digitalWrite(m2ENA,HIGH);
              digitalWrite(m2ENB,HIGH);
              break;
          case '8' ://  GRIP CONTRACT
              digitalWrite(m2IN1,HIGH);
              digitalWrite(m2IN2,LOW);
              digitalWrite(m2ENA,HIGH);
              digitalWrite(m2ENB,HIGH);
              break;
          case '7' ://  GRIP EXPAND
              digitalWrite(m2IN1,LOW);
              digitalWrite(m2IN2,HIGH);
              digitalWrite(m2ENA,HIGH);
              digitalWrite(m2ENB,HIGH);
              break;
          case '3' ://  BASE CLOCK
              digitalWrite(m1IN1,HIGH);
              digitalWrite(m1IN2,LOW);
              digitalWrite(m1ENA,HIGH);
              digitalWrite(m1ENB,HIGH);
              break;
          case '4' ://  BASE ANTICLOCK
              digitalWrite(m1IN1,LOW);
              digitalWrite(m1IN2,HIGH);
              digitalWrite(m1ENA,HIGH);
              digitalWrite(m1ENB,HIGH);
              break;
          case '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);
              break;
          case 'A' ://     FORWARD
              digitalWrite(m3IN1,HIGH);
              digitalWrite(m3IN2,LOW);
              digitalWrite(m3IN3,HIGH);
              digitalWrite(m3IN4,LOW);
              digitalWrite(m3ENA,HIGH);
              digitalWrite(m3ENB,HIGH); 
              break;
          case 'D' ://     BACKWARD
              digitalWrite(m3IN1,LOW);
              digitalWrite(m3IN2,HIGH);
              digitalWrite(m3IN3,LOW);
              digitalWrite(m3IN4,HIGH);
              digitalWrite(m3ENA,HIGH);
              digitalWrite(m3ENB,HIGH); 
              break;
          case 'B' ://     RIGHT
              digitalWrite(m3IN1,LOW);
              digitalWrite(m3IN2,HIGH);
              digitalWrite(m3IN3,HIGH);
              digitalWrite(m3IN4,LOW);
              digitalWrite(m3ENA,HIGH);
              digitalWrite(m3ENB,HIGH); 
              break;
           case 'C' ://     LEFT
              digitalWrite(m3IN1,HIGH);
              digitalWrite(m3IN2,LOW);
              digitalWrite(m3IN3,LOW);
              digitalWrite(m3IN4,HIGH);
              digitalWrite(m3ENA,HIGH);
              digitalWrite(m3ENB,HIGH); 
              break;
    }
}
    

Custom parts and enclosures

hydraulic_crane_J6NH7RouoB.apkuse m-seal to fit the nuts with the motor.Smart App‑Controlled Hydraulic Crane – Precision & EaseSmart App‑Controlled Hydraulic Crane – Precision & Easefix the nut on the piston of the syringe using m-seal.Smart App‑Controlled Hydraulic Crane – Precision & Easefix the syringe and motor in these waySmart App‑Controlled Hydraulic Crane – Precision & Easewhen the motor rotates clockwise it pushes the piston and when it rotates anticlockwise it pulls the pistonSmart App‑Controlled Hydraulic Crane – Precision & Easehttps://www.youtube.com/watch?v=lhOF6cViZ4QSmart App‑Controlled Hydraulic Crane – Precision & Ease

Manufacturing process

  1. Build a Model Rail Digital DCC Command Station Using Arduino – Free App Included
  2. Build a Smart People Counter Controlled via an Android App
  3. MobBob: Build Your Own Arduino Robot, Controlled Seamlessly via Android Smartphone
  4. Bolt IoT Smart Robot Car – Arduino UNO & L298 Motor Drivers
  5. Arduino Nano‑Powered Spot Welder: DIY Precision Welding Control
  6. Build a Voice‑Controlled Arduino Car with BLE – DIY Guide
  7. Gesture‑Controlled Robot: Hands‑Free Arduino UNO Project
  8. Precision CNC Turning for Custom Hydraulic Components
  9. High-Quality Hydraulic Pipe Bender – Durable, ISO 9001 Certified
  10. Choosing the Right Hydraulic Tube Bender: A Comprehensive Comparison Guide