Grue hydraulique intelligente pilotée par application – Précision et facilité
Composants et fournitures
| Composant | Quantité |
|---|---|
| Arduino UNO | 1 |
| Module Bluetooth HC-05 | 1 |
| Plaque d'essai (breadboard) | 1 |
| Moteur DC avec réducteur 300 tr/min | 8 |
| Seringues 10 ml | 8 |
| Tuyau d'aquarium ou tuyau de perfusion | 1 |
| Carton épais | 1 |
| Écrous et boulons | 1 |
| Panneau contreplaqué 6 mm | 2 |
| Roues pour moteur DC réducteur | 4 |
| Aiguille à laine | 2 |
| Double pont en H L298N | 1 |
Outils nécessaires
- Fer à souder
- Perceuse
- Couteau de précision
- M-seal (mastic époxy)
Applications et services en ligne
- MIT App Inventor 2 (fichier .apk fourni)
À propos de ce projet
Sur Internet, on trouve soit des bras hydrauliques à commande manuelle, soit des bras robotiques pilotés par application. Ce projet combine les deux.
Prérequis
Des connaissances de base en programmation Arduino sont nécessaires.
Connexion du HC-05 à l'Arduino
Le pilote de moteur L298N : [ENA, IN1, IN2 = Moteur A], [ENB, IN3, IN4 = Moteur B]. ENA et ENB contrôlent la vitesse des moteurs A et B.
Explication détaillée du code fournie. Suivez le code et réalisez le circuit. Avant d'alimenter, vérifiez que toutes les masses sont correctement reliées.
Code
// 1er et 2e pilote moteur pour contrôle du BRAS
// 3e pilote moteur pour partie LOCOMOTION
// 1er pilote [BASE(2,3) et EPAULE(4,7)]
int m1IN1 = 2; int m1IN2 = 3; int m1IN3 = 4; int m1IN4 = 5;
int m1ENA = 6; int m1ENB = 7; // Contrôle vitesse (HIGH=en marche, LOW=arrêt)
// 2e pilote [COUDE(8,9) et PINCE(12,13)]
int m2IN1 = 8; int m2IN2 = 9; int m2IN3 = 10; int m2IN4 = 11;
int m2ENA = 12; int m2ENB = 13;
// 3e pilote [VOITURE (IN1,IN2)=DROITE (IN3,IN4)=GAUCHE]
int m3IN1 = 14; // A0
int m3IN2 = 15; // A1
int m3IN3 = 16; // A2
int m3IN4 = 17; // A3
int m3ENA = 18; // A4 (PWM possible via analogWrite)
int m3ENB = 19; // A5 (PWM possible)
void setup() {
// Configuration toutes broches en sortie
for (int p = 2; p <= 19; p++) pinMode(p, OUTPUT);
Serial.begin(9600);
}
void loop() {
char cmd = '0';
while (Serial.available() > 0) {
cmd = Serial.read();
delay(10);
}
switch (cmd) {
case '6': // EPAULE HAUT
digitalWrite(m1IN3, HIGH); digitalWrite(m1IN4, LOW);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH); break;
case '5': // EPAULE BAS
digitalWrite(m1IN3, LOW); digitalWrite(m1IN4, HIGH);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH); break;
case '1': // COUDE HAUT
digitalWrite(m2IN3, HIGH); digitalWrite(m2IN4, LOW);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH); break;
case '2': // COUDE BAS
digitalWrite(m2IN3, LOW); digitalWrite(m2IN4, HIGH);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH); break;
case '8': // PINCE SERRER
digitalWrite(m2IN1, HIGH); digitalWrite(m2IN2, LOW);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH); break;
case '7': // PINCE OUVRIR
digitalWrite(m2IN1, LOW); digitalWrite(m2IN2, HIGH);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH); break;
case '3': // BASE HORAIRE
digitalWrite(m1IN1, HIGH); digitalWrite(m1IN2, LOW);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH); break;
case '4': // BASE ANTI-HORAIRE
digitalWrite(m1IN1, LOW); digitalWrite(m1IN2, HIGH);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH); break;
case '9': // TOUT ARRÊT
for (int p = 2; p <= 19; p++) digitalWrite(p, LOW); break;
case 'A': // AVANT
digitalWrite(m3IN1, HIGH); digitalWrite(m3IN2, LOW);
digitalWrite(m3IN3, HIGH); digitalWrite(m3IN4, LOW);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH); break;
case 'D': // ARRIÈRE
digitalWrite(m3IN1, LOW); digitalWrite(m3IN2, HIGH);
digitalWrite(m3IN3, LOW); digitalWrite(m3IN4, HIGH);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH); break;
case 'B': // DROITE
digitalWrite(m3IN1, LOW); digitalWrite(m3IN2, HIGH);
digitalWrite(m3IN3, HIGH); digitalWrite(m3IN4, LOW);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH); break;
case 'C': // GAUCHE
digitalWrite(m3IN1, HIGH); digitalWrite(m3IN2, LOW);
digitalWrite(m3IN3, LOW); digitalWrite(m3IN4, HIGH);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH); break;
}
}
Pièces personnalisées et boîtiers
- Fichier APK de l'application :
hydraulic_crane_J6NH7RouoB.apk - Utilisez du M-seal pour fixer les écrous sur les moteurs.
- Fixez l'écrou sur le piston de la seringue avec du M-seal.
- Montez seringue et moteur comme indiqué : rotation horaire = pousse piston, anti-horaire = tire piston.
- Vidéo de démonstration : YouTube
Processus de fabrication
- Technologie des Grues : Design, Matériaux et Innovations Futures
- L'orgue à tuyaux : Le grand art de la musique à air
- Tuyaux en acier : Types, histoire et fabrication moderne
- Ventilateur à contrôle de température : système relais DIY pour refroidissement meuble multimédia
- Kit MOSMusic : MOSFET, Arduino et plus pour éclairage musical
- Comment la modernisation de grue transforme les composants clés pour une performance optimale
- Comprendre les grues hydrauliques : fonctionnement et efficacité
- Cintreuse hydraulique de tubes haute qualité — Durable, certifiée ISO 9001
- Pompes Hydrauliques : Principes Clés et Applications