Inhaltsverzeichnis:
- Schritt 1: Was ist ereignisgesteuerte Programmierung?
- Schritt 2: Logischer Fluss der ereignisgesteuerten Programmierung
- Schritt 3: Ereignis-Ersteller
- Schritt 4: Ereignisprozessor
Video: Ereignisgesteuerte Programmierung in FTC - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
In diesem Jahr hat unser Team viel Arbeit mit der ereignisgesteuerten Softwareentwicklung für unseren Roboter geleistet. Diese Programme haben es dem Team ermöglicht, autonome Programme und sogar wiederholbare Tele-Op-Ereignisse genau zu entwickeln. Da die erforderliche Softwarearbeit komplex ist, haben wir uns entschieden, unser Wissen über die Entwicklung von ereignisgesteuertem Code für FTC-Roboter zu teilen.
Schritt 1: Was ist ereignisgesteuerte Programmierung?
Im Allgemeinen ist ereignisgesteuerte Programmierung laut Techopedia die Entwicklung von Programmen, die auf Benutzereingaben reagieren. In diesem Sinne gelten viele Programme als ereignisgesteuert, einschließlich des Tele-Op-Programms eines Teams, das auf Eingaben von einem von Menschenhand gesteuerten Controller angewiesen ist, um eine Aktion auszuführen. In Bezug auf die Arbeit, die unser Team geleistet hat, geht es bei der ereignisgesteuerten Programmierung jedoch darum, Software aus verschiedenen Eingaben zu erstellen; mit anderen Worten, wir dokumentieren Ereignisse basierend auf den Eingaben von Controllern und Sensoren, dann können wir diese Ereignisse in die Warteschlange stellen und die Datei verwenden, um das aufgezeichnete Ereignis erneut auszuführen.
Diese Methode zur Entwicklung von Programmen für unseren Roboter hat mehrere Vorteile:
- Es ermöglicht uns, genaue autonome Programme zu erstellen. Da wir die Software während der Veranstaltung in Echtzeit erstellen, sind die gesammelten und verwendeten Sensorwerte sehr genau, da sie direkt aus der ursprünglichen Veranstaltung stammen.
- Es ermöglicht uns, schnell autonome Programme zu erstellen. Das Erstellen autonomer Programme ist so einfach wie das Aufzeichnen einer Reihe von Ereignissen und das Anpassen des Ereignisses nach Bedarf.
- Es ermöglicht uns, automatische Prozesse für Tele-Op zu erstellen. Bei wiederholten Aktionen im Tele-Op ermöglicht uns die ereignisgesteuerte Programmierung, diese Aktionen aufzuzeichnen und das Ereignis während der fahrergesteuerten Spielperioden einer Taste zuzuordnen. Diese automatisierten Ereignisse können durch Sensoren beeinflusst werden, um ihre genaue Ausführung zu ermöglichen.
Schritt 2: Logischer Fluss der ereignisgesteuerten Programmierung
Im Folgenden wird der logische Ablauf eines ereignisgesteuerten Programms dargestellt: Rot steht für das Anlegen eines Ereignisses und Blau für den Aufruf des Ereignisses. Um ein Ereignis zu erzeugen, wird eine Folge von Eingaben durch Roboteraktionen aufgenommen und als Ereignisse aufgezeichnet; diese Ereignisse werden in eine Datei geschrieben. Zum Aufrufen eines Ereignisses wird diese Datei gelesen und die Eingaben werden an einen Ereignisprozessor gesendet, um den Dateicode in eine Roboteraktion umzuwandeln.
Schritt 3: Ereignis-Ersteller
Ereignisersteller werden verwendet, um Aktionen oder „Ereignisse“basierend auf einer Vielzahl von Sensoren und Schaltflächen zu dokumentieren. Während der Roboter Aktionen auf dem Feld ausführt, erstellt eine Ereigniserstellerklasse parallel Ereignisse für jede dieser Aktionen und verweist auf das in einer Ereignisklasse klassifizierte Ereignis. Nach der Erstellung wird das Ereignis in eine Warteschlange von Ereignissen in der Ereignisklasse gestellt: Das erste Ereignis nimmt den ersten Platz ein, dann nimmt das zweite Ereignis den ersten Platz ein und schiebt alle Ereignisse darunter nach unten, und dies wird fortgesetzt, bis das Programm stoppt. Wenn das Programm gestoppt wird, werden die Ereignisse in eine für Menschen lesbare Formatdatei ausgegeben, z. B. eine JSON-Datei. Diese Datei kann verwendet werden, um autonome Routinen besser zu verbessern.
Der obige Beispielcode richtet die Parameter für das Ereignis ein, das in diesem Fall ein Abbiegen mit einem IMU-Sensor ist. Wir stellen das Ereignis dann in die Ereigniswarteschlange ein. Schließlich kürzen wir das Ereignis, das im Wesentlichen das Ereignis zurücksetzt, damit wir es verwenden können, um zukünftige Ereignisse in die Warteschlange zu stellen.
Schritt 4: Ereignisprozessor
Ereignisklassen nehmen die von Menschen lesbare Datei, die in der Ereigniserstellerklasse erstellt wurde, und führt aus, was jedes Ereignis in der Warteschlange vorgibt, indem sie Methoden aufrufen, die in einer Ereignisprozessorklasse beschrieben sind. Die Ereignisprozessorklasse teilt dem Roboter dann mit, welches Ereignis wiedergegeben werden soll. Egal, ob es sich um ein einfaches "Vorwärtsfahren"-Ereignis oder um ein komplexes Ereignis voller Entfernungen, Wendungen und Strafen handelt, der Prozessor wird jedes ihm zugewiesene Ereignis wiederholen. Dieser Prozess ist während der Autonomie sehr nützlich, da ein Team Sensoren und Tele-Op-Aktionen vor dem Abgleich aufzeichnen und dann die Ereignisse in Autonomie einfach wiederholen kann. Dieser Vorgang wird Memory Replay genannt. Dies ermöglicht, dass ein autonomes Programm über eine einzige Datei zu 100 % konfigurierbar ist. Sobald der Ereignisersteller und -prozessor eingerichtet ist, kann ein Team einfach autonome Routinen über die menschenlesbare Datei ändern.
Das obige Beispiel beginnt zunächst damit, die JSON-Datei auf ein Ereignis zu überprüfen und dann dieses Ereignis mithilfe einer case-Anweisung zu überprüfen, um zu sehen, um welche Art von Ereignis es sich handelt, in diesem Fall eine Abbiegung mithilfe eines IMU-Sensors. Sobald es anhand des IMU-Ereignisses erkennt, dass es an der Reihe ist, befasst es sich mit der Verarbeitung des Ereignisses, was normalerweise das Ausführen des Codes umfasst, von dem das Ereignis stammt, indem Variablen des Ereignisses verwendet werden, um das zuvor ausgeführte Ereignis zu replizieren.
Empfohlen:
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i
So richten Sie die Programmierung in C/C++ ein.: 5 Schritte
So richten Sie die Programmierung in C/C++ ein.: C und C++ sind beliebte Programmiersprachen, die einen schnellen Zugriff auf die Erstellung von Formeln und die Lösung komplexer Probleme mit minimalem Ressourcenaufwand ermöglichen. Das Problem besteht darin, einen Weg zu finden, das Programm zu kompilieren und ausführbar zu machen. Eine Ihrer Optionen könnte sein
Programmierung des Open DSKY: 5 Schritte (mit Bildern)
Programmierung des Open DSKY: Willkommen zu unseren laufenden Instructables zur Programmierung Ihres Open DSKY. Stellen Sie sicher, dass Sie wiederkommen, da dieses Instructable weiter wachsen wird, da wir ständig neues Programmiermaterial produzieren und veröffentlichen. Also folgen Sie ihm, mögen Sie es und bevorzugen Sie es. Diese Videoserie
So fügen Sie Meldungsfelder in der Batch-Programmierung hinzu: 3 Schritte
So fügen Sie Nachrichtenfelder in der Batch-Programmierung hinzu: Wollten Sie schon immer eine grafische Oberfläche für Ihre Batch-Dateien hinzufügen, wie Sie es in VBScript können? Ich habe sicher. Aber jetzt können Sie mit diesem fantastischen Programm namens MessageBox
Programmierung in Scratch.: 4 Schritte
Programmieren in Scratch.: Dieses Tutorial zeigt Ihnen einige Programmiermöglichkeiten, die beim Programmieren Ihres eigenen DDR-Spiels nützlich sind