Slimme app-gestuurde hydraulische kraan – Precisie & Gemak
Onderdelen en benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino UNO | 1 |
| HC-05 Bluetooth-module | 1 |
| Breadboard | 1 |
| 300 rpm getande DC-motor | 8 |
| 10 ml spuiten (syringes) | 8 |
| Aquariumfilterbuis / infuusbuis | 1 |
| Dik karton | 1 |
| Bouten en moeren | 1 set |
| 6 mm multiplexplaat | 2 |
| Wielen voor getande DC-motor | 4 |
| Wolnaalden | 2 |
| L298N Dual H-brug motordriver | 1 |
Benodigde tools
- Solderbout
- Boormachine
- Precisie mes
- M-seal (epoxy kit)
Apps en online diensten
- MIT App Inventor 2 (voor de Android-app)
Over dit project
Dit project combineert hydraulische besturing (handmatig) met app-besturing (robotica). Er zijn veel hydraulische armen die handmatig bediend worden en robotarmen die via app werken; deze kraan doet beide.
Voorbereiding: Arduino-kennis
Basiskennis van Arduino-programmeren is vereist.
HC-05 aansluiten
Sluit de HC-05 als volgt aan: - VCC → 5V - GND → GND - TX → Arduino RX (pin 0) - RX → Arduino TX (pin 1) via spanningsdeler (5V → 3,3V)
L298N motordriver
De code gebruikt drie L298N-drivers (of één driver met meerdere kanalen). De pintoewijzing in de code:
- Driver 1 (Basis & Schouder): IN1=2, IN2=3, IN3=4, IN4=5, ENA=6, ENB=7
- Driver 2 (Elleboog & Grijper): IN1=8, IN2=9, IN3=10, IN4=11, ENA=12, ENB=13
- Driver 3 (Onderstel/rijwielen): IN1=A0, IN2=A1, IN3=A2, IN4=A3, ENA=A4, ENB=A5
Mechanische bouw
- Gebruik M-seal om moeren op de motorassen en zuigerstangen van de spuiten te fixeren.
- Monteer de spuiten en motoren zoals op de foto's: draaiing kloksgewijs duwt de zuiger in, tegen de klok in trekt hij uit.
- Bouw het frame van karton en multiplex.
- Zorg dat alle componenten gemeenschappelijke massa hebben.
Code (hydraulic.ino)
// 1e en 2e motordriver voor ARM-besturing
// 3e motordriver voor LOCOMOTIEF (rijwielen)
// Driver 1: BASIS (2,3) & SCHOULDER (4,5) - let: code gebruikt 4,5 voor IN3,IN4 maar commentaar zegt 4,7
int m1IN1 = 2; int m1IN2 = 3;
int m1IN3 = 4; int m1IN4 = 5;
int m1ENA = 6; int m1ENB = 7;
// Driver 2: ELLEBOOG (8,9) & GRIPPER (10,11)
int m2IN1 = 8; int m2IN2 = 9;
int m2IN3 = 10; int m2IN4 = 11;
int m2ENA = 12; int m2ENB = 13;
// Driver 3: AUTO (A0-A3) - pinnen 14-17 op Uno
int m3IN1 = 14; int m3IN2 = 15;
int m3IN3 = 16; int m3IN4 = 17;
int m3ENA = 18; int m3ENB = 19;
void setup() {
// Alle pinnen als output
for (int p = 2; p <= 19; p++) pinMode(p, OUTPUT);
Serial.begin(9600);
}
void loop() {
char ip = '0';
while (Serial.available() > 0) {
ip = Serial.read();
delay(10);
}
switch (ip) {
case '6': // Schouder OMHOOG
digitalWrite(m1IN3, HIGH); digitalWrite(m1IN4, LOW);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH);
break;
case '5': // Schouder OMLAAG
digitalWrite(m1IN3, LOW); digitalWrite(m1IN4, HIGH);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH);
break;
case '1': // Elleboog OMHOOG
digitalWrite(m2IN3, HIGH); digitalWrite(m2IN4, LOW);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH);
break;
case '2': // Elleboog OMLAAG
digitalWrite(m2IN3, LOW); digitalWrite(m2IN4, HIGH);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH);
break;
case '8': // Grijper DICHT
digitalWrite(m2IN1, HIGH); digitalWrite(m2IN2, LOW);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH);
break;
case '7': // Grijper OPEN
digitalWrite(m2IN1, LOW); digitalWrite(m2IN2, HIGH);
digitalWrite(m2ENA, HIGH); digitalWrite(m2ENB, HIGH);
break;
case '3': // Basis KLOKSGEWIJS
digitalWrite(m1IN1, HIGH); digitalWrite(m1IN2, LOW);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH);
break;
case '4': // Basis TEKEN KLOKSGEWIJS
digitalWrite(m1IN1, LOW); digitalWrite(m1IN2, HIGH);
digitalWrite(m1ENA, HIGH); digitalWrite(m1ENB, HIGH);
break;
case '9': // ALLES UIT
for (int p = 2; p <= 19; p++) digitalWrite(p, LOW);
break;
case 'A': // VOORUIT
digitalWrite(m3IN1, HIGH); digitalWrite(m3IN2, LOW);
digitalWrite(m3IN3, HIGH); digitalWrite(m3IN4, LOW);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
break;
case 'D': // ACHTERUIT
digitalWrite(m3IN1, LOW); digitalWrite(m3IN2, HIGH);
digitalWrite(m3IN3, LOW); digitalWrite(m3IN4, HIGH);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
break;
case 'B': // RECHTS
digitalWrite(m3IN1, LOW); digitalWrite(m3IN2, HIGH);
digitalWrite(m3IN3, HIGH); digitalWrite(m3IN4, LOW);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
break;
case 'C': // LINKS
digitalWrite(m3IN1, HIGH); digitalWrite(m3IN2, LOW);
digitalWrite(m3IN3, LOW); digitalWrite(m3IN4, HIGH);
digitalWrite(m3ENA, HIGH); digitalWrite(m3ENB, HIGH);
break;
}
}
Aangepaste onderdelen en behuizing
De Android-app (.apk) is beschikbaar in de GitHub-repository. Meer bouwfoto's en instructies:
- Gebruik M-seal om moeren aan motorassen en spuitzuigers te fixeren.
- Zie de afbeeldingen voor de montage van de hydraulische cilinders (spuit + motor).
- Video: YouTube-demo
Schema
Schema's vind je in de GitHub-repo: GitHub (let: link verwijst naar MIA-1, maar project heeft eigen repo).
Productieproces
- Krantechnologie: ontwerp, materialen en toekomstige innovaties
- Pijporgel: De Grote Kunst van Luchtgedreven Muziek
- Stalen Pijp: Typen, Geschiedenis en Moderne Productie
- Geïntegreerde Schakelingen (IC's): Compacte, Krachtige Chips die Moderne Elektronica Aandrijven
- Temperatuur-gecontroleerde Ventilator: DIY Relais Systeem Voor Media Kast Koeling
- MOSMusic Project Kit: MOSFET, Arduino en meer
- Hoogwaardige hydraulische pijpbuigmachine - Duurzaam, ISO 9001 gecertificeerd
- Hydraulische Pompen: Principes, Typen en Toepassingen
- Hoe 3D-Printen Hydraulische Componenten Ontwerp en Prestaties Revolusioneren
- Hoe Kraanmodernisering Kerncomponenten Transformeert Voor Piekaanprestaties
- Hydraulische kranen begrijpen: werking en efficiëntie