Ein hölzerner Roboter, der Schach spielen kann


    Sie haben wahrscheinlich eine Reihe von Projekten auf Arduino gesehen, die über jedes Smartphone gesteuert wurden. Bei solchen Projekten handelte es sich in der Regel um ein solches Bild: eine Maschine mit einem Bluetooth-Modul, an die Befehle (oder ähnliches) vom Joystick-Emulator des Telefons gesendet werden. Es gab viele solcher Dinge, und mir fiel eine solche Idee ein. Und was ist, wenn Arduino Ihnen hilft, sich für eine Weile von Ihrem Smartphone zu trennen, es aber weiterhin zu spielen? So entstand das Projekt eines Schachroboters, dessen „Gehirn“ und „Augen“ im Android-Smartphone konzentriert sind. Lesen Sie mehr - unter dem Schnitt.


    Gesamtansicht


    [Hayrez]

    Diese gesamte Komposition ist eine Holzkiste, auf der ein Schachbrett, ein Manipulator und eine beleuchtete Halterung angeordnet sind, auf der das Telefon ruht. Nach dem Spiel werden alle oben aufgeführten Elemente in dieser Box entfernt und können problemlos überall hin transportiert werden, z. B. in einem Rucksack.

    Das Funktionsprinzip ist wie folgt. Oberhalb der Platine ist ein Telefon mit einer speziellen Anwendung auf einer speziellen Halterung installiert, die mithilfe eines Computer-Vision-Systems die aktuelle Position der Teile auf der Platine aufzeichnet. Aufgrund der Tatsache, dass das System alle Bewegungen im Auge behält, ist es nicht erforderlich, visuell zu bestimmen, welche Figur sich im Käfig befindet. Es reicht aus, die Tatsache seiner Präsenz und Farbe zu kennen.
    Nachdem eine Bewegung von einer Person aufgezeichnet wurde, wird diese Information übertragenSchach-Engine , die entscheidet, welchen Kurs er beantworten muss.
    Als nächstes die Berechnung der Winkel für die Positionen, die der Roboter einnehmen muss, um eine Bewegung auszuführen. Danach werden diese Informationen per Bluetooth an das Paddle gesendet. Der Manipulator kann diese
    Informationen nur annehmen und sich bewegen.

    Ich hoffe, dass der Leser dieses Artikels hier etwas Interessantes findet. Vielleicht möchte jemand dieses Projekt wiederholen oder etwas Ähnliches tun. Ich möchte gleich sagen, dass es kein Tutorial geben wird, da das Kopieren dieser Arbeit einfach gemäß den Anweisungen nicht Schritt für Schritt funktioniert, da es viele Feinheiten gibt, die nur bei der Implementierung verstanden werden können. Wenn Sie sich die Zeichnungen des Manipulators ansehen möchten oder andere Fragen haben, schreiben Sie in einem persönlichen Text auf GT oder VK , ich werde auf Anfrage kostenlos antworten.

    Software-Teil

    Diese gesamte Komposition wird von einer kleinen Android-Anwendung gesteuert. Viele Aufgaben fallen ihm zu: Das Bestimmen von Teilen auf dem Brett, das Berechnen von Ecken für den Manipulator, das Arbeiten mit einer Schach-Engine sowie ein paar Sprachnachrichten des Roboters wie "Ich setze dir einen Scheck ein!" Bei all dem passt die Anwendungsoberfläche jedoch in einen Bildschirm.


    Das Sichtsystem ist ziemlich einfach. Aus Sicht des Telefons gibt es keinen besonderen Unterschied, sagen wir, der König und das Pferd - visuell sehen beide Figuren wie schwarze und weiße Kreise aus. Daher lernt das System die Position, die es gesehen hat, nicht immer wieder neu kennen, sondern merkt sich die Reihenfolge aller gemachten Bewegungen. Und es ist sehr einfach, die gemachte Bewegung zu bestimmen: Wenn das Programm zu einem bestimmten Zeitpunkt feststellt, dass die Figur in einer Zelle verschwunden ist und in einer anderen Zelle erscheint, wird dies als Bewegung betrachtet. So funktioniert es.
    Diese Vision wird ausschließlich über die Android-API implementiert, ohne OpenCV oder ähnliches zu verwenden. Es ist nicht ganz richtig, der Grund hier ist ein persönliches Interesse, alles praktisch von Grund auf zu realisieren.


    Manipulator

    Es dauerte eine Menge kreativer Suchvorgänge, um mit einer solchen Konstruktion eines Manipulators zu arbeiten, der seine Arbeit mit vielen billigen chinesischen TowerPro sg-90-Servoantrieben, die ich besitze, ausreicht, die nicht von hoher Qualität sind. Daher sind beide Arme des Manipulators in Form von Parallelogrammen ausgeführt, so dass das System zum Erfassen von Figuren immer in einer vertikalen Position bleiben kann. Dies macht es wiederum unnötig, einen weiteren Servoantrieb hinzuzufügen, daher wird das System weniger Fehler haben, es kann leicht sein und mehr oder wenigerzuverlässig. Da die Zahnräder ebenfalls aus Holz bestehen, ist es schwierig, die höchste Qualität ihrer Arbeit zu erreichen. Um das Spiel auszugleichen, führt der Manipulator vor jeder Bewegung eine seitliche Bewegung aus, um jeden Punkt von einer Seite anzufahren.

    Was die Leistung betrifft, bezieht sein Roboter ihn von zwei Boards aus der üblichen Gebühr für das Telefon, die sich sicher im Gehäuse befinden. Eine Ladung führt den Controller selbst zusammen mit dem Bluetooth-Modul, die andere direkt an die Mechaniker. Um die Beleuchtung herzustellen, wurde das LED-Licht demontiert. Wie sich herausstellte, befinden sich zwei Platinen darin: Die LEDs befinden sich auf einer, der Stromrichter auf der anderen. Eine ist an der Halterung montiert, die andere ist im Gehäuse der Box untergebracht. Die gesamte Leistung wird in einer kleinen Buchse an der Seite des Kastens angezeigt:


    Ein weiteres Bild zeigt den Arbeitsbereich des Manipulators für den darauf markierten roten Punkt. Für die Nullachse beträgt der Winkelbereich 180 °.


    Ich habe es nicht geschafft, einen solchen Roboter sofort herzustellen, einige Prototypen funktionierten sehr schlecht und andere waren für einen anderen Job geeignet. Ein Roboter in einem Video gibt beispielsweise Zucker in einen Becher und rührt die Möwe um.


    System zum Erfassen von Figuren

    Meines Erachtens verdient besondere Aufmerksamkeit die Gestaltung des Systems der Erfassungsfiguren. Die naheliegendste Entscheidung war hier, zwei Backen unter Servosteuerung in die entgegengesetzte Richtung zu bewegen. So etwas wie:

    Wie aus der Figur ersichtlich ist, ist es für einen Satz von nicht ganz großen Figuren mit einem Fußdurchmesser von 18 mm erforderlich, einen Käfig eines Schachbretts fast doppelt so groß zu machen, und die Größe des Bretts stellt sich auch als unangemessen groß heraus. Nach einigen erfolglosen Implementierungen dieser Option stieß ich auf eine so ungewöhnliche Sache ("flexibler Spannzangengriff"), und es sieht so aus:

    Das heißt, es handelt sich um einen flexiblen hohlen Kern mit einer kleinen federnden Metallklaue am Ende, die sich schließt, wenn sie an den Seiten gedrückt wird. Und ohne Druck öffnet sich die Klaue sofort. Nachdem ich einen solchen Griff gebrochen hatte, machte ich auf dieser Grundlage mein eigenes System von packenden Figuren. Die Metallklaue drückt den an der Zahnstange angebrachten Ring durch einen Servoantrieb.


    Ergebnisse

    Die Arbeit an dem Projekt wird fortgesetzt und die Ergebnisse verbessern sich allmählich. Im Moment kann der Roboter ein Spiel spielen, das nicht durch die Anzahl der Züge begrenzt ist, sowohl für Schwarz als auch für Weiß. In diesem Fall treten keine Fehler in der Arbeit der Mechaniker oder des Programmteils des Systems auf. Er spielt übrigens nicht sehr stark bis zum dritten Rang, er kann leicht durch den Austausch der Schachmaschine wiederhergestellt werden. Ich habe diesen Roboter auf der Archimedes-2016 gezeigt, wo er mit verschiedenen Leuten praktisch ohne Pause gespielt hat, ohne 6 Stunden hintereinander anzuhalten und diese Testfahrt mit Würde zu überstehen.

    Das ist alles, ich hoffe, Sie haben sich für dieses Projekt interessiert. Natürlich hat es seine Nachteile, vor allem die Implementierung. Es gibt also noch viel zu tun, was zu verbessern und was zu entwickeln ist. Ich freue mich über Ratschläge, Fragen und Anregungen in den Kommentaren.

    Jetzt auch beliebt: