Grúa hidráulica inteligente controlada por app – Precisión y facilidad
Componentes y suministros
| Componente | Cantidad |
|---|---|
| Arduino UNO | 1 |
| Módulo Bluetooth HC-05 | 1 |
| Protoboard (genérica) | 1 |
| Motor DC con reductor 300 rpm | 8 |
| Jeringas de 10 ml | 8 |
| Tubo de filtro de acuario o tubo de suero | 1 |
| Cartón grueso | 1 |
| Tuercas y tornillos | 1 |
| Tablero contrachapado 6 mm | 2 |
| Ruedas para motor DC con reductor | 4 |
| Aguja de coser lana (6 mm) | 2 |
| Driver L298N Dual H-Bridge | 1 |
Herramientas necesarias
- Soldador
- Taladro
- Cuchilla de precisión
- M-seal (masilla epóxica)
Aplicaciones y servicios online
- MIT App Inventor 2 (se proporciona archivo .apk)
Sobre este proyecto
En internet solo hay dos tipos de brazos: hidráulicos controlados manualmente o robóticos controlados por app. Este proyecto combina ambos.
Antes de empezar: conocimientos previos
Asegúrate de tener conocimientos básicos de programación Arduino.
Conexión del HC-05 con Arduino
Conecta el HC-05 al Arduino: TX → RX (pin 0), RX → TX (pin 1) mediante divisor de tensión, VCC → 5V, GND → GND.
Driver de motor L298N
El L298N tiene dos canales: [ENA, IN1, IN2 - Motor A], [ENB, IN3, IN4 - Motor B]. ENA y ENB controlan la velocidad (PWM).
He proporcionado una explicación detallada del código. Sigue el código y haz el circuito. Antes de encender, asegúrate de que todos los componentes tienen masa común correctamente conectada.
Código
// 1er y 2do driver para control del BRAZO
// 3er driver para parte LOCOMOTORA
// 1er Driver [BASE(2,3) y HOMBRO(4,5)]
int m1IN1 = 2; int m1IN2 = 3;
int m1IN3 = 4; int m1IN4 = 5;
int m1ENA = 6; int m1ENB = 7;
// 2do Driver [CODO(8,9) y PINZA(10,11)]
int m2IN1 = 8; int m2IN2 = 9;
int m2IN3 = 10; int m2IN4 = 11;
int m2ENA = 12; int m2ENB = 13;
// 3er Driver [CARRO (IN1,IN2)=DER (IN3,IN4)=IZQ]
int m3IN1 = 14; // A0
int m3IN2 = 15; // A1
int m3IN3 = 16; // A2
int m3IN4 = 17; // A3
int m3ENA = 18; // A4 (PWM para velocidad)
int m3ENB = 19; // A5 (PWM para velocidad)
void setup() {
// Configurar todos los pines como salida
for(int i=2; i<=19; i++) pinMode(i, OUTPUT);
Serial.begin(9600);
}
void loop() {
char cmd = '0';
while(Serial.available() > 0) {
cmd = Serial.read();
delay(10);
}
switch(cmd) {
case '6': // HOMBRO ARRIBA
digitalWrite(m1IN3, HIGH); digitalWrite(m1IN4, LOW);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH);
break;
case '5': // HOMBRO ABAJO
digitalWrite(m1IN3, LOW); digitalWrite(m1IN4, HIGH);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH);
break;
case '1': // CODO ARRIBA
digitalWrite(m2IN3, HIGH); digitalWrite(m2IN4, LOW);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH);
break;
case '2': // CODO ABAJO
digitalWrite(m2IN3, LOW); digitalWrite(m2IN4, HIGH);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH);
break;
case '8': // PINZA CERRAR
digitalWrite(m2IN1, HIGH); digitalWrite(m2IN2, LOW);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH);
break;
case '7': // PINZA ABRIR
digitalWrite(m2IN1, LOW); digitalWrite(m2IN2, HIGH);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH);
break;
case '3': // BASE HORARIO
digitalWrite(m1IN1, HIGH); digitalWrite(m1IN2, LOW);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH);
break;
case '4': // BASE ANTIHORARIO
digitalWrite(m1IN1, LOW); digitalWrite(m1IN2, HIGH);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH);
break;
case '9': // TODO APAGADO
for(int i=2; i<=19; i++) digitalWrite(i, LOW);
break;
case 'A': // ADELANTE
digitalWrite(m3IN1, HIGH); digitalWrite(m3IN2, LOW);
digitalWrite(m3IN3, HIGH); digitalWrite(m3IN4, LOW);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
break;
case 'D': // ATRÁS
digitalWrite(m3IN1, LOW); digitalWrite(m3IN2, HIGH);
digitalWrite(m3IN3, LOW); digitalWrite(m3IN4, HIGH);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
break;
case 'B': // DERECHA
digitalWrite(m3IN1, LOW); digitalWrite(m3IN2, HIGH);
digitalWrite(m3IN3, HIGH); digitalWrite(m3IN4, LOW);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
break;
case 'C': // IZQUIERDA
digitalWrite(m3IN1, HIGH); digitalWrite(m3IN2, LOW);
digitalWrite(m3IN3, LOW); digitalWrite(m3IN4, HIGH);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
break;
}
}
Partes personalizadas y cajas
- Usa M-seal para fijar las tuercas al motor
- Fija la tuerca en el émbolo de la jeringa con M-seal
- Monta la jeringa y el motor como se muestra: al girar el motor en sentido horario empuja el émbolo, antihorario lo tira
- App para Android: Descargar APK
- Video demostración: YouTube
Proceso de manufactura
- Tecnología de grúas: Diseño, materiales e innovaciones futuras
- Órgano de tubos: El gran arte de la música impulsada por aire
- Tubería de acero: Tipos, historia y fabricación moderna
- Circuitos integrados (CI): chips compactos y potentes que impulsan la electrónica moderna
- Ventilador controlado por temperatura: sistema DIY con relé para refrigeración de muebles multimedia
- Kit MOSMusic: Control de Iluminación de Alta Potencia Sincronizada con Música vía MOSFET y Arduino
- Doblador de Tubos Hidráulico de Alta Calidad – Duradero, Certificado ISO 9001
- Bombas Hidráulicas: Principios Fundamentales y Aplicaciones
- Cómo la impresión 3D revoluciona el diseño y rendimiento de componentes hidráulicos
- Cómo la Modernización de Grúas Transforma Componentes Clave para un Rendimiento Óptimo
- Entendiendo las grúas hidráulicas: funcionamiento y eficiencia