Air-Hockey mit Roboter-Gegner

Pünktlich zur Winterolympiade hat der Maker Jose Julio einen Mini-Air-Hockey-Tisch mitsamt Robotergegner gebaut. Dazu verwendet er einen Arduino Mega 2560 und Bestandteile seines RepRap-3D-Druckers.

In Pocket speichern vorlesen Druckansicht 27 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Olaf Göllner

Der Air-Hockey-Robotor benötigt mit seinem kompakten Aufbau nur wenig Platz.

Für die Winterabende hat sich Jose Julio einen Air-Hockey-Tisch mitsamt Spielroboter gebaut. Über ein RAMPS-Arduino-Shield, der eigentlich für den 3D-Drucker RepRap gedacht ist, wird der Roboter mit Hilfe von Schrittmotoren bewegt. Die Position des Puck wird dabei mit einer Kamera verfolgt, die von einer Playstation3-Konsole stammt.

Für den Luftstrom des Air-Hockey-Tisches sind zwei leistungsfähige PC-Lüfter im Einsatz. Da ein Hockey-Duell keine GCode-Daten benötigt, ist auch die Software entsprechend modifiziert -- sogar eine Einstellung der Schwierigkeitsgrades ist möglich.

Die PS3-Eye-Kamera verfügt über eine Auflösung von 320 × 240 Bildpunkten bei einer Bildrate von 60 Hertz und ist mit einem Rechner verbunden. Dieser erkennt die Puck-Bewegung mit Hilfe der Bildverarbeitungs-Bibliothek OpenCV. Für die Erkennung ist der Puck grün markiert. Anhand der Daten gibt der Rechner dann an den Arduino Mega Befehle zur Steuerung der Motoren und damit des Schlägers weiter.

Drei NEMA17-Motoren sorgen für schnelle Spielmanöver.

Die Tischgröße beträgt 100 × 60 Zentimeter, ein RAMPS-Arduino-Shield kümmert sich um die Ansteuerung der A4988-Treiber-Platinen für die drei Schrittmotoren (NEMA17). Zwei Motoren sorgen für die Bewegung der Y-Achse und ein Motor ist für die X-Achse vorgesehen, um den Puck zum Gegner zurückzustoßen. Die Spielmaterialien sind ebenfalls mit dem RepRap-Drucker gefertigt.

Für den Nachbau steht auf GoogleDocs eine detaillierte Anleitung nebst Bauteilliste zum Download bereit. Die 3D-Modelle für den 3D-Druck und der notwendige Quellcode für den PC und Arduino befinden sich in einem Github-Repository. (ogo)