Page Personnelle de Vincent Kerhoas Vincent Kerhoas - Professeur Agrégé

PRESENTATION DES DRIVERS

Back                  << Index >>

SCHEMA D’ENSEMBLE


SOURCES DU PROJET :


WORKSPACE_ROBOT


code main


ENVRIRONNEMENT DE DEVELOPPEMENT

IDE Eclipse


BROCHAGE

Selection des Broches

Configuration du Brochage –> stm32f4ss_hal_msp.c

HAL –> Hardware Abstraction Layer

Description of STM32F4xx HAL drivers


TIMER

Fonctionnement d’un Timer

Un Timer est un compteur qui s’incrémente à chaque front montant d’une horloge.
Cette horloge peut éventuellement être ralentie avec un diviseur de fréquence (Prescaler).
Le Compteur est remis périodiquement à zéro lorsque sa valeur courante de comptage atteint celle d’un registre de comparaison.

T=[(Presc_buff+1) * (Comp_Reg+1)]*T_CLK

Timer PWM (Pulse Width Modulation)

Pour générer un signal MLI (Modulation de Largeur d’Impulsion), il suffit de comparer la valeur courant de comptage à celle d’un registre (Duty), et de forcer à 0 ou à 1 une broche de sortie du microcontrôleur en fonction du résultat de cette comparaison.

Commande des Moteurs

code motorCommand

Commande des Servomoteurs

code servoCommand

Timer Interface Codeur

Afin d’asservir les moteurs en vitesse ou en position, il faut déjà connaître les mesures correspondantes.

Le Codeur incrémental

Mesure le la Position

Le comptage des fronts montants des signaux A et B issus du codeur incrémental permet de connaître la position du rotor du moteur.
La précision des codeurs étant de 1250 impulsions/tours, le OU EXCLUSIF entre A et B permet d’obtenir une précision de 2500 impulsions par tours.
le signal index déclenche une interruption de type EXTI permettant d’incrémenter une variable et de remettre à zéro le compteur dans le cas d’une mesure de position.

Mesure de la Vitesse

SENS DIRECT

SENS INVERSE

code quadEncoder


ADC (Analog to Digital Converter)

Stratégies d’utilisation de l’ADC

Les convertisseurs sont suffisamment rapides pour scruter la fin de conversion plutôt que de réagir à une interruption de fin de conversion qui prendrait plus de temps.

code captDistIR


SPI

Le Bus SPI

Rappel sur le fonctionnement du bus SPI

code drv_spi

CMU pixyCAM

How to talk to Pixy

code pixyCam


I2C

Le Bus I2C

Rappel sur le fonctionnement du bus I2C

code drv_i2c

Afficheur LCD

code screenLCD

Capteur de distance à Ultrasons SRF02

code captDistUltrason


LIAISON SERIE UART (RS232)

Le printf de la bibliothèque est pratique mais met du temps à s'exécuter et peut mettre à mal l'idée d'un contexte temps réel. On définit alors les fonctions term_printf, term_printf_stlink, term_printf_zigbee

code drv_uart

Back                  << Index >>