Page Personnelle de Vincent Kerhoas
Vincent Kerhoas
Enseignant du Supérieur
Professeur Agrégé
Page Personnelle de Vincent Kerhoas

CONCEPTION ROBOTIQUE

L’objectif de ce projet est d’assembler quelques composants, et de programmer un microcontrôleur afin de concevoir un robot pilotable à distance, et capable de suivre une ligne de manière autonome.

PROJET SOURCE


WORKSPACE_F411_DXL_STM32CUBEIDE



Liste des Composants


Test des Moteurs Dynamixel

Les servomoteurs dynamixel regroupent :

La communication avec notre carte nucleo F411 se fait via une liaison de type RS232.
Le périphérique UART mis en jeu côté carte nucleo F411 est l’UART6

Effectuer le cablage indiqué dans le tutoriel dynamixel, et vérifier le bon fonctionnement des moteurs


Par défaut le périphérique UART2 est utilisé pour envoyer ou recevoir des caractères via le cable USB ( stlink ).
La réception d’un caractère côté carte déclenche une interruption, et par conséquent on passe par la fonction de callback HAL_UART_RxCpltCallback ( dans le fichier src/dev/drv_uart.c ).

Le buffer rec_buf2 est alors mis à jour.

Tester cette interruption en plaçant un point d’arrêt dans la fonction de callback, et en envoyant un caractère depuis un terminal RS232 côté PC ( gtkterm ou minicom )

Modifier le programme afin de contrôler les moteurs en fonction des caractères reçus.


Réception d’un caractère via liaison zigbee

La liaison zigbee est une liaison bas débit, courte distance, basse consommation.
Elle permet dans certains cas d’élaborer un réseau complexe.
Pour notre application, elle servira simplement à établir une liaison sans fil point à point.
Les modules xbee sont déjà configurés.
Côté PC il faudra bien entendu brancher un module Xbee via le socket USB ; la référence du fichier est alors /dev/ttyUSB0.

Cablage

Nous utilisons la carte seeed studio XBEE Shield afin de relier le module zigbee

Documentation XBEE shield

Positionner les cavaliers afin de relier les broches RX et TX du module XBEE aux broches PA9 ( UART1_TX ) et PB3 ( UART1_RX ) du microcontrôleur.

!!! FAIRE VERIFIER CE POINT PAR L’ENSEIGNANT AVANT TOUTE MISE SOUS TENSION.

Modifier le programme afin de contrôler les moteurs en fonction des caractères reçus via la liaison zigbee.


Suivi de Ligne

Le capteur grove suivi de ligne retourne une information binaire quand il y a une ligne noire ou pas.
Côté carte, l’acquisition de l’information du capteur correspond donc à une entrée logique, comme un bouton poussoir.

Documentation Grove line finder

Le raccordement de ce capteur à la carte se fera via la carte Grove Base Shield.

Modifier le fichier stm32f4xx_hal_msp.c afin de configurer l’une des broches en tant qu’entrée pour récupérer l’information du capteur.

REMARQUE : respecter le branchement sur la photo ci dessus, et considérer alors PA0 comme entrée logique.

La lecture de l’état logique du capteur sera faite avec la fonction HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) (_stm32f4xx_hal_gpio.h )

Modifier le programme afin de pouvoir basculer le contrôle du robot en mode autonome suivi de ligne.