Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

FPGA/SoC-gesteuerter Roboterarm mit Digilent Cora Z7

Robotik wurde in der Weltraumforschung, zu militärischen Zwecken, im intelligenten Heim und in der industriellen Automatisierung eingesetzt. Industrielle Steuerung, Kommunikation, maschinelle Bildverarbeitung, maschinelles Lernen, Mensch-Maschine-Schnittstellen sowie Cybersicherheit können beim Bau von Robotern wichtige technologische Überlegungen sein. Xilinx SoCs, FPGAs und Versal ACAPs ermöglichen einen modularen Ansatz für die Robotik, indem sie eine gemeinsame eingebettete Hardware- und Softwareplattform bieten. 

Adam Taylor, ein Experte für Design und Entwicklung eingebetteter Systeme, entwickelt einen FPGA-gesteuerten Roboterarm.

Design-Übersicht

Adam verwendet sechs Servomechanismen unter der Kontrolle von Digilent Cora Z7 (184-0484) , Zynq SoCs Entwicklungsplattform und Servoschild. Die Steuerung erfolgt entweder über ein einfaches Softwareinterface oder über zwei zweiachsige Joysticks Digilent Pmod JTSK2 (134-6484) , um die direkte Steuerung zu ermöglichen.

Wie man den Roboterarm baut

Als erstes müssen Sie herausfinden, wie Sie die Servoposition steuern wollen. Die meisten Servos verwenden eine PWM-Wellenform mit 60Hz. In der 16,66 ms Periodendauer der 60Hz-Wellenform wird das Signal zwischen 0,5 ms und 2,5 ms lang sein. Die Dauer des "High"-Signals treibt das Servo in einem Bewegungsbereich zwischen 0 und 180 Grad an. Die Ansteuerung eines Impulses von 0,5 ms treibt die 0-Grad-Position an, während 2,5 ms eine 180-Grad-Position ergeben. Die 90-Grad-Position wird also beibehalten, indem das Signal 1,5 ms lang angesteuert wird. Eine Erhöhung oder Verringerung der Impulsbreite um 13,9 us führt daher zu einer Bewegung des Servos um 1 Grad. Das PWM-Schild liefert 6V Leistung und führt die Pegelumsetzung des PWM-Signals durch.

image_HBzkqmAFRB_db61ca572a8c566f86f38945f044d92318683913.jpg

Jetzt benötigen wir ein Hardware-Design, um Pmod JSTK2 und den PWM-Schild mit Cora Z7 zu verbinden. Dies kann in Xilinx Vivado durchgeführt werden. Das Design enthält die folgenden IP-Blöcke:

  • Zynq PS – das ist das Zynq-Verarbeitungssystem
  • Pmod Joystick 2 – Interface zum Pmod
  • AXI IIC – in der PL implementiertes I2C-Interface

image_hh0Bk0hf68_b45eb3343dff5471ddf99b97390954841cd36813.jpg

Es wird eine Softwareanwendung mit modularem Ansatz erstellt, so dass der Benutzer diesen Roboterarm in verschiedenen Modi verwenden und ihn in Zukunft aufrüsten kann.

Adam entwickelt für jedes Gelenk eine Funktion, die beliebig aufgerufen und verwendet werden kann. Jedes Gelenk ist in der Lage, einen vorzeichenlosen 8-Bit-Wert aufzunehmen. Dieser 8-Bit-Wert wird dann von einer Impulsbreite von 90 Grad (1,5 ms) entweder addiert oder subtrahiert, um den gewünschten Winkel zu erhalten. Er stellt auch sicher, dass die Bewegungen der zwei Pmod JSTKs und dem Roboterarm aufeinander abgestimmt sind.

Die übrige Anwendungsstruktur der Software ist wie folgt:

  • Initialisierung des PWM-Schilds und der Pmod-Joysticks.
  • Führen Sie einen Selbsttest des Arms durch und positionieren Sie alle Servos auf 90 Grad.
  • Geben Sie einen Look ein, um Steuerbefehle über RS232 oder vom Joystick zu empfangen.

Vorführung

Der Benutzer kann ihn innerhalb des Bewegungsumfangs beliebig steuern.

 

Durchlaufen Sie alle Schritte und holen Sie sich den Quellcode auf der Projektseite.

awong hat noch keine Biografie verfasst...