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

Servomotor-Grafik

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Adafruit 16-Kanal-PWM-Servomotor-Controller
× 3
SG90 Micro-Servomotor
× 36
5 Volt 30 Watt Schaltnetzteil
× 1
Servomotor-Kabelverlängerungen
× 1
24 Zoll x 48 Zoll Steckbrett
× 1
Eis am Stiel, auf 3 1/4 Zoll geschnitten
× 36
Ultraschallsensor - HC-SR04 (Generic)
Diese Komponenten sind optional - nur erforderlich, wenn Sie die interaktive Funktion hinzufügen.
× 5

Notwendige Werkzeuge und Maschinen

Lötkolben (generisch)
Heißklebepistole (generisch)

Apps und Onlinedienste

Arduino-IDE

Über dieses Projekt

Das Video unten zeigt die Aktion, während 36 Servomotoren ein elektronisches Kunstwerk schaffen. Hinter den Kulissen arbeiten ein Arduino Uno und drei 16-Kanal-PWM-Servocontroller. Die ursprüngliche Inspiration dafür war eine viel größere Version mit 450 Servos, die ich in einem Museum für moderne Kunst gesehen habe. Aber auch diese kleine Version mit nur 36 Servos bietet einige interessante Effekte.

Es gibt eine optionale Funktion, die ich im Video nicht gezeigt habe, aber sie kann hinzugefügt werden, um die Anzeige interaktiv zu gestalten. Es ist rein optional und die Software funktioniert auch ohne es. Bei dieser Option werden fünf Ultraschall-Abstandssensoren entlang der Rückseite des oberen Randes zum Display montiert. Wenn Sie Ihre Hand über den mittleren Sensor legen, geht der Uno in den interaktiven Modus, und alle Servos versuchen, Ihrer Hand zu folgen, wenn Sie sie über den Distanzsensoren bewegen. Wenn Sie Ihre Hand einige Sekunden lang entfernen, kehrt das Programm zur Anzeige zurück. Auch hier können Sie diese Option hinzufügen, wenn Sie möchten. Wenn Sie dies nicht tun, funktioniert die Software auch ohne sie einwandfrei.

Hardware

Wie Sie sehen können, wurde dieses Projekt auf einem 24 "x 48" Stück Peg Board gebaut. Die Breite wurde auf 32 Zoll reduziert. Servos sind 4 Zoll voneinander entfernt montiert und mit Heißkleber an der Rückseite des Steckbretts befestigt. Auf 3 1/4 Zoll gekürzte Eisstiele werden an den Wellen der Servos befestigt, wiederum mit Heißkleber.

Die SG90-Servomotoren sind das einzige kostspielige Element in diesem Projekt. Sie können ein 8er-Set für 20 US-Dollar bei Amazon erhalten. Trotzdem müssen Sie 100 US-Dollar in Servos investieren. SG90s sollen alle 180-Grad-Servos sein, aber die meisten schaffen es nicht ganz. Ein paar fallen viel zu kurz und sollten entsorgt werden. Wenn Sie 5 Sätze von 8 kaufen, sollten Sie 36 Artikel finden, die mindestens 160º reisen.

Die Servos müssen auf ihre minimale Position (Position bei PWM 150) eingestellt werden und die Popsicle-Sticks müssen in dieser minimalen Position horizontal und von vorne gesehen nach rechts zeigend montiert werden. Ich habe ein kleines Programm bereitgestellt, mit dem Sie sicherstellen können, dass sich die Servos in dieser Mindestposition befinden:SetServosToMinimum.

Das Foto oben zeigt das Layout der Rückseite. Die drei PWM-Controller sind auf der linken Seite der Servos montiert. Ganz rechts befindet sich die 30-Watt-5-Volt-Versorgung. Der Arduino wird separat über ein USB-Netzteil mit Strom versorgt. Ich mache das nur so, damit ich das USB-Kabel abziehen und über ein USB-Verlängerungskabel an meinen Computer für Programmänderungen anschließen kann. Es sieht ein bisschen komisch aus, aber ich finde es praktisch.

Sie können auch die optionalen Ultraschall-Abstandssensoren sehen, die oben am Display angebracht sind. Heißkleber und zusätzliche Eis am Stiel wurden verwendet, um sie zu montieren. Das kleine Prototyping-Board, das Sie unter dem Uno sehen, dient einfach dazu, alle Ultraschallsensoren mit Strom und Masse zu versorgen.

Software

Ich verwende die PWM-Servotreiberbibliothek von Adafruit, um die 16-Kanal-Servocontroller zu handhaben. Sie müssen diese also von Adafruit beziehen und in den Arduino-Bibliotheken installieren. Meine Software kann unverändert mit oder ohne die optionalen Ultraschallsensoren verwendet werden. Es präsentiert eine Vielzahl von Effekten in einer Show, die etwas mehr als drei Minuten dauert, bevor sie wiederholt wird. Wenn die optionalen Sensoren installiert sind, wechselt es in den interaktiven Modus, wenn eine Hand auf den mittleren Sensor gelegt wird.

Es gibt eine Menge Zeug in der Software. Ich werde hier nicht versuchen, das Ganze zu erklären, aber ich werde Ihnen eine kleine Info darüber geben, wie es funktioniert. Ich habe zwei Tische. Die Tabelle curPos speichert die aktuelle Position jedes Servos geteilt durch drei. Die tarPos-Tabelle speichert die gewünschte Position jedes Servos geteilt durch drei. Sie werden aus zwei Gründen durch 3 geteilt. Erstens können sie in einem Byte gespeichert werden, und zweitens bewege ich die Servos immer in Schritten von 3 Schritten.

Der Uno kennt anfangs nicht die Positionen jedes Servos, daher setzt die Setup-Routine alle Servos in eine vertikale Position und stellt alle curPos- und tarPos-Variablen so ein, dass sie dieser vertikalen Position entsprechen. Von dort können wir die Servos dann in andere Positionen bewegen, indem wir die gewünschten Positionen in tarPos ändern.

Eine Subroutine namens goToTargets() ist der primäre Weg, um die Servos zu bewegen. Wir steuern, wohin die Servos gehen, indem wir die Ziele auf tarPos setzen. Dann können wir mit der goToTargets-Routine steuern, wie schnell sie dorthin gehen. Es hat zwei Möglichkeiten, die Geschwindigkeit zu steuern. Es bewegt die Servos in 15-Schritten-Schritten zu ihren Zielen, wobei die Wiederholungseingabe in das Unterprogramm Ihnen ein Vielfaches von 15 Schritten ergibt. Die andere Eingabe ist mydelay, die jedem Aufruf von goToTargets nur eine Verzögerung in Millisekunden hinzufügt.

Es gibt viele andere Dinge, aber im Grunde sind alles andere nur verschiedene Setups und Implementierungen der verschiedenen vorgestellten Effekte.

Die optionale interaktive Funktion wird von einer Unterroutine namens trackRoutine gehandhabt. Es wird aufgerufen, wenn die goToTarget-Routine ein Objekt (Ihre Hand) irgendwo über dem mittleren Ultraschallsensor sieht. Es versucht, alle Servos dazu zu bringen, der Bewegung Ihrer Hand zu folgen, wenn sie sich über die Sensoren bewegt. Wenn es einige Sekunden lang keine Hand erkannt hat, kehrt es zurück und das reguläre Programm wird fortgesetzt.

Code

  • ServosArt-Software für Arduino Uno
ServosArt-Software für Arduino UnoArduino
Keine Vorschau (nur Download).

Schaltpläne

Zeigt, wie Uno und Servos über drei 16-Kanal-Controller verbunden werden Verbindet 5 Ultraschall-Abstandssensoren mit Uno, damit Servos Handbewegungen verfolgen können.

Herstellungsprozess

  1. Raspoulette-Prototyp
  2. Einfacher Pi-Roboter
  3. Experten für die Reparatur von Fanuc-Servomotoren
  4. Sachkundige Reparatur von Siemens Servomotoren
  5. Tipps für die Reparatur und Fehlerbehebung von Servomotoren
  6. MOSMusic
  7. Was ist ein Linearmotor?
  8. Die Schönheit des Planetengetriebes für Servomotoren
  9. Eine Einführung in die Servopresse
  10. Was ist ein Servomotor?