Hé! Vous semblez être en United States, souhaitez-vous utiliser notre site English ?
Switch to English site
Skip to main content

Bras robotique contrôlé par FPGA/SoC en utilisant le Cora Z7 de Digilent

La robotique a été mise à contribution dans le cadre de l'exploration spatiale lointaine, des applications militaires, des applications de maison intelligente et de l'automatisation industrielle. Le contrôle industrielle, les communications, la vision par ordinateur, l'apprentissage automatique, les interfaces homme-machine, la cybersécurité et la sécurité peuvent être des considérations technologiques importantes lorsque l'on crée des robots. Les SoC, FGPA et Versal ACAP de Xilinx permettent une approche modulaire de la robotique en fournissant une plate-forme logicielle et matérielle intégrée commune.  

Adam Taylor, expert dans le domaine de la conception et du développement de systèmes intégrés, crée un bras robotique contrôlé par FPGA. 

Aperçu de la conception

Adam utilise six servos contrôlés par le Cora Z7 de Digilent, une plate-forme de développement SoC Zynq et un servo bouclier. Le bras sera contrôlable soit par le biais d'une interface logicielle simple, soit en utilisant deux Pmod JTSK2 de Digilent, un joystick biaxial  afin de permettre un contrôle direct.

Comment construire le bras robotique

La première chose à faire est de déterminer comment vous allez contrôler le servopositionneur.  La plupart des servos utilisent une forme d'onde MLI de 60 Hz. Au cours de la période de 16,66 ms de la forme d'onde de 60 Hz, le signal sera élevé entre 0,5 ms et 2,5 ms. La durée du signal « élevé » entraînera le servo dans une amplitude de mouvement comprise entre 0 et 180 degrés. Une impulsion de 0,5 ms entraîne la position 0 degrés, tandis qu'une impulsion de 2,5 ms entraîne la position 180 degrés. Par conséquent, pour maintenir la position 90 degrés, il faut générer un signal élevé pendant 1,5 ms. Aussi, l'augmentation ou la réduction de la largeur d'impulsion de 13,9 us fait bouger le servo de 1 degré. Le bouclier MLI fournit 6 V de puissance et effectue la conversion de niveau sur le signal MLI. 

image_HBzkqmAFRB1_836b78c7b5a332ac9ed1ac0b454f5332a86cd204.jpg

Nous avons maintenant besoin d'une configuration matérielle afin d'interfacer le Pmod JSTK2 et le boucier MLI avec le Cora Z7. Cela peut être réalisé avec l'outil Vivado de Xilinx. La configuration contient les blocs IP suivants

  • Zynq PS – c'est le système de traitement Zynq
  • Le joystick Pmod 2 – interface du Pmod
  • L'interface AXI IIC - I2C écrite dans le langage de programmation

image_hh0Bk0hf681_8446b3fe69db525e95ef948dc488ce3eb9241826.jpg

Une application logicielle d'approche modulaire est créée afin que l'utilisateur puisse se servir de ce bras robotique selon plusieurs modes et l'améliorer par la suite.

Adam développe une fonction pour chaque joint qui peut être appelé et utilisé comme on le souhaite. Chaque joint est capable de représenter une valeur non signée de 8 bits. Cette dernière est ensuite soit ajoutée à, soit soustraite d'une largeur d'impulsion (1,5 ms) de 90 degrés afin d'obtenir l'angle souhaité. Il s'assure également que le mouvement des deux JSTK Pmod et du bras robotique sont alignés. 

Le reste de la structure de l'application logicielle consiste à :

  • Initialiser le bouclier MLI et les joysticks Pmod.
  • Effectuer un auto-test du bras et à positionner tous les servos à 90 degrés.
  • Entrer un look pour recevoir les commandes via RS232 ou les recevoir du joystick.

Démonstration

L'utilisateur peut le contrôler comme il le souhaite dans les limites de l'enveloppe de mouvement

Suivez toutes les étapes et obtenez le code source sur la page du projet.

 

awong n'a pas encore rempli le champs " à propos de moi" ...
DesignSpark Electrical Logolinkedin