Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
Benötigte Komponenten
| Arduino UNO | × | 1 |
| Jumper-Wires | × | 1 |
| Ultraschallsensor HC-SR04 | × | 1 |
| MP3 Modul DFPlayer Mini | × | 1 |
| 4-Kanal-Relais-Modul | × | 1 |
Werkzeuge
- Heißklebepistole
- Lötkolben
- Spitzenreiniger (bleifrei)
Software
- Arduino IDE
- Bibliotheken:
Ultrasonic.h,SoftwareSerial.h,DFRobotDFPlayerMini.h - Audio-Dateien: GitHub-Repository (Dateien 001.mp3, 002.mp3, ... auf SD-Karte)
Projektidee
Eine Iron-Man-Figur wird zum Leben erweckt. Nähert sich eine Person (ca. 1,3 m), erkennt der Ultraschallsensor dies und löst zufällig eine Audio-Datei (Tony-Stark-Zitate) sowie Bewegungen über das Relais-Modul aus (Kopf, Brust, Arme).
Schaltung
- Ultraschallsensor: VCC → Pin 2, Trig → Pin 3, Echo → Pin 4, GND → Pin 5
- DFPlayer Mini (SoftwareSerial): RX → Pin 6, TX → Pin 7
- Relais-Modul: IN1 (Kopf) → Pin 13, IN2 (Brust) → Pin 12, IN3 ( linker Arm) → Pin 11, IN4 (rechter Arm) → Pin 10
- Lautsprecher an DFPlayer, SD-Karte mit Audio-Dateien einlegen
Code (Homem_de_FerroV5.ino)
#include
#include
#include
SoftwareSerial mySoftwareSerial(6, 7); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
#define Gnd 5
#define Echo 4
#define Trig 3
#define Vcc 2
Ultrasonic ultra(Trig, Echo);
int distancia;
#define Cabeca 13
#define Peito 12
#define Esquerda 11
#define Direito 10
int x = 3;
String buf;
int pausa = 0;
int equalizacao = 0;
int maxSongs = 0;
void setup() {
mySoftwareSerial.begin(9600);
Serial.begin(115200);
if (!myDFPlayer.begin(mySoftwareSerial)) {
Serial.println("DFPlayer nicht gefunden!");
while (true);
}
myDFPlayer.setTimeOut(500);
myDFPlayer.volume(30);
myDFPlayer.EQ(0);
maxSongs = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD);
pinMode(Cabeca, OUTPUT);
pinMode(Peito, OUTPUT);
pinMode(Esquerda, OUTPUT);
pinMode(Direito, OUTPUT);
pinMode(Vcc, OUTPUT);
pinMode(Gnd, OUTPUT);
digitalWrite(Gnd, LOW);
digitalWrite(Vcc, HIGH);
digitalWrite(Cabeca, HIGH);
digitalWrite(Peito, HIGH);
digitalWrite(Esquerda, HIGH);
distancia = ultra.Ranging(CM);
}
void loop() {
distancia = ultra.Ranging(CM);
Serial.println(String(distancia) + " Lendo fora");
if ((distancia <= 150) && (x == 3)) {
buf = String(random(1, 19));
play();
delay(3000);
while (ultra.Ranging(CM) <= 150) {
digitalWrite(Esquerda, HIGH);
x = 2;
delay(1200);
}
} else {
digitalWrite(Direito, LOW);
x = 3;
}
}
void play() {
digitalWrite(Direito, HIGH); delay(300);
digitalWrite(Direito, LOW); delay(300);
digitalWrite(Direito, HIGH); delay(300);
digitalWrite(Direito, LOW); delay(300);
while (Serial.available() >= 0) {
int track = buf.toInt();
if (track >= 1 && track <= maxSongs) {
myDFPlayer.play(track);
buf = "-1";
break;
}
}
}
Funktionsablauf
- Ultraschallsensor misst kontinuierlich Distanz
- Bei Distanz ≤ 150 cm: Zufällige Tracknummer (1–18) wählen
play(): Relais "Direito" (rechter Arm) blinkt 2× kurz als visueller Hinweis- DFPlayer spielt gewählten Track ab
- Solange Person im Erfassungsbereich: linker Arm (Esquerda) bewegt sich periodisch
- Person verlässt Bereich → Reset, Warte auf nächste Erkennung
Schaltplan
Siehe Bild: Verbindungen von Ultraschallsensor, DFPlayer, Relais und Arduino gemäß Pin-Belegung oben.
Herstellungsprozess
- Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Funktionaler 3D-gedruckter Roboterarm mit Arduino – Schritt-für-Schritt-Anleitung
- DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
- Berührungsloses Temperatur-Überwachungstor für schnelles Screening
- PiBot: Arduino-gesteuerter Klavierroboter für präzise Musikwiedergabe
- NeoPixel-Matrix Pong auf Arduino Nano: Neon-Pong selbst bauen
- Wetterstation mit Arduino & ThingSpeak IoT (DHT11 + ESP8266)
- DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau
- Leistungsstarker FM-Radio-Empfänger mit Arduino & TEA5767