Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Interaktives Servo-Motor-Projekt mit Arduino und HC-SR04-Sensoren

Komponenten und Zubehör

Arduino UNO × 1
Adafruit 16-Kanal PWM Servo-Motor-Controller × 3
SG90 Mikro-Servomotor × 36
5 Volt 30 Watt Schaltnetzteil × 1
Servo-Motor-Kabelverlängerungen × 1
24 × 48 Zoll Lochplatte (Pegboard) × 1
Eisstäbchen, auf 8,25 cm zugeschnitten × 36
Ultraschallsensor HC-SR04 (Generic) (optional – nur für Interaktivität nötig) × 5

Benötigte Werkzeuge und Maschinen

Apps und Online-Dienste

Über dieses Projekt

Das Video unten zeigt 36 Servomotoren, die ein elektronisches Kunstwerk erschaffen. Im Hintergrund arbeiten ein Arduino Uno und drei 16-Kanal-PWM-Servo-Controller. Die ursprüngliche Inspiration war eine viel größere Installation mit 450 Servos in einem modernen Kunstmuseum – doch auch diese kleinere Version mit 36 Servos erzeugt faszinierende Effekte.

Eine optionale Funktion, die im Video nicht gezeigt wird, macht die Anzeige interaktiv: Fünf Ultraschall-Entfernungssensoren werden an der oberen Rückseite montiert. Wenn man die Hand über den mittleren Sensor hält, wechselt der Uno in den interaktiven Modus, und alle Servos folgen der Handbewegung über den Sensoren. Wird die Hand einige Sekunden entfernt, kehrt das Programm zur normalen Show zurück. Diese Option ist rein freiwillig – die Software funktioniert auch ohne sie einwandfrei.

Hardware

Das Projekt wurde auf einer 24 × 48 Zoll großen Lochplatte (auf 32 Zoll Breite zugeschnitten) aufgebaut. Die Servos sind im Abstand von 4 Zoll (ca. 10 cm) mit Heißkleber auf der Rückseite befestigt. Eisstäbchen (8,25 cm lang) werden ebenfalls mit Heißkleber an den Servowellen angebracht.

Die SG90-Servos sind der kostspieligste Teil. Ein 8er-Set kostet ca. 20 € (Amazon), also ca. 100 € für 36 Stück. Zwar sind SG90s als 180°-Servos spezifiziert, doch viele erreichen das nicht ganz. Einige fallen deutlich ab und sollten aussortiert werden. Kauft man 5 Sets (40 Servos), lassen sich meist 36 gute Exemplare mit mindestens 160° Hub finden.

Die Servos müssen auf ihre Minimalposition (PWM 150) eingestellt werden, wobei die Eisstäbchen in dieser Stellung horizontal nach rechts zeigen (von vorne betrachtet). Ein kleines Testprogramm (SetServosToMinimum) hilft dabei, alle Servos korrekt auszurichten.

Interaktives Servo-Motor-Projekt mit Arduino und HC-SR04-Sensoren
Rückseitige Anordnung: Links die drei PWM-Controller, rechts das 30-W-Netzteil. Der Arduino wird separat über USB versorgt, um einfaches Umprogrammieren zu ermöglichen.

Die optionalen Ultraschallsensoren sind entlang der oberen Kante montiert (Heißkleber + Eisstäbchen). Die kleine Lochrasterplatine unter dem Uno verteilt Strom und Masse an alle Sensoren.

Software

Verwendet wird die Adafruit PWM Servo Driver Library für die 16-Kanal-Controller (über Arduino Library Manager oder GitHub installierbar). Die Software läuft wahlweise mit oder ohne Ultraschallsensoren und zeigt eine ca. 3-minütige Show mit verschiedenen Effekten, die sich dann wiederholt. Bei installierten Sensoren wird der interaktive Modus aktiv, sobald eine Hand über dem mittleren Sensor erkannt wird.

Kern der Steuerung sind zwei Tabellen: curPos (aktuelle Servoposition ÷ 3) und tarPos (Zielposition ÷ 3). Die Division durch 3 erlaubt die Speicherung in einem Byte und entspricht der Schrittweite von 3 PWM-Einheiten.

Im setup() werden alle Servos auf eine vertikale Referenzposition gefahren und beide Tabellen entsprechend initialisiert. Danach werden Bewegungen durch Ändern der tarPos-Werte ausgelöst.

Die Hauptroutine goToTargets() bewegt die Servos in 15er-Schritten auf ihre Ziele zu. Zwei Parameter steuern die Geschwindigkeit: reps (Vielfache von 15 Schritten) und mydelay (zusätzliche Wartezeit in ms pro Aufruf).

Der optionale interaktive Modus wird durch trackRoutine realisiert. Sie wird aufgerufen, wenn goToTargets() ein Objekt über dem mittleren Sensor detektiert. Die Routine lässt alle Servos der Handbewegung folgen und kehrt nach einigen Sekunden ohne Erkennung zur normalen Show zurück.

Code

ServosArt Software für Arduino Uno

Keine Vorschau verfügbar – nur Download.

Schaltpläne

Verbindung von Arduino Uno und Servos über drei 16-Kanal-Controller:

Interaktives Servo-Motor-Projekt mit Arduino und HC-SR04-Sensoren

Anschluss von 5 Ultraschallsensoren für die Handverfolgung:

Interaktives Servo-Motor-Projekt mit Arduino und HC-SR04-Sensoren

Herstellungsprozess

  1. Raspoulette: Solar-betriebenes autonomes Hühnerklappen-System Prototyp
  2. Simple Pi Robot: 2-WD Autonomer Rover mit Raspberry Pi bauen
  3. Professionelle Fanuc-Servomotor-Reparaturservices
  4. Professionelle Siemens Servomotor Reparatur – Schneller, zuverlässiger Service
  5. Expertenleitfaden: Servomotor Reparatur & Fehlersuchtipps
  6. MOSMusic: Musik-synchronisierte Lichtsteuerung mit CoolMOS MOSFET & Arduino
  7. Linearmotoren verstehen: Von elektrischer Energie zur präzisen Linearbewegung
  8. Warum Planetengetriebe die Servomotor-Leistung verbessern
  9. Servopressen: Funktionsprinzip, Bauarten & Vorteile gegenüber Hydraulik/Exzenter
  10. Servomotoren: Funktionsweise und Bedeutung