Table des matières

Réalisation d'un controleur pour capteur de position angulaire optique

Objectif

Pour le pendule de Furuta, mesurer les positions angulaire des 2 axes est très important. Pour obtenir des mesures efficace des capteurs optiques, nous faisons le choix de réaliser un contrôleur avec un microcontrôleur esp32.

Dépôt

Url github du dépôt Le projet est compatible avec les 2 IDE :

Features

Tests

Construction d'un simulateur pour faire des tests :

Limitations:

Documentation de la communication SPI

Version initiale

La version initiale de la communication nécessite 2 dialogues SPI pour récupérer les informations du contrôleur :

Commande

La commande timing comporte 4 Octets :

Payload

La payload comporte 50 Octets :

Pour 2 capteurs avec 10 périodes par capteur, la payload mesure 4 + 2 x (2 + 2 x 10) + 2 = 50 Octets. Le hash CRC16 est calculé sur les Octets 2 à 47. (Les octets 0-1 sont le CRC16 lui meme, les 2 derniers octets 48-49 ne sont pas utilisés).

Version "API"

Quelques modification sont introduites pour la version API puisque le nombre de Capteurs et de Périodes est paramétrable. Seule la payload est modifiée.

Payload

La payload comporte un nombre d'octets variable, fonction du nombre de capteur et du nombre de périodes stoquées par capteur :

Pour 2 capteurs avec 10 périodes par capteur, la payload mesure 4 + 2 x (2 + 2 x 10) + 2 = 50 Octets. Le hash CRC16 est calculé sur tous les Octets exceptés les 2 premiers et les 2 derniers. (Les 2 premiers octets sont le CRC16 lui même, Les 2 derniers octets ne sont pas utilisés, car ils contiennent le temps de construction de la payload, calcul du CRC16 compris).

Qu'est-ce qui fonctionne

Qu'est-ce qui reste à faire