Le projet qui consiste à développer un contrôleur pour commander un servo moteur à l'aide une interface I2C : Le moteur se rend à la position demandée par le message I2C.
Le Servo Moteur I2C est composé d'un servo-moteur HS-422 (ou équivalent) et d'une carte de développement Nucléo 64 F072RB. On pourra utiliser la carte LPC1768 (ou n'importe quelle autre carte I2C) pour jouer le rôle du Contrôleur I2C.
Code de départ pour le contrôleur maitre.
Le Servo Moteur I2C reçoit des commandes d'écriture, codées sur 8 bits signés, via son bus I2C. Ensuite, il génère le signal PWM nécessaire pour commander le moteur.
Lorsque le périphérique reçoit des commandes en écriture, il doit réagir de la manière suivante :
- De
-90
à+90
: Positionner le moteur à la position demandée en ° 126
: Démarrer le signal PWM et aller à la position centrale127
: Arrêter le signal PWM- Toutes les autres valeurs ne font rien
Le Servo Moteur I2C reçoit également des commandes de lecture via son bus I2C. Dans ce cas, il doit renvoyer sont état sous forme de chaîne de caractères ASCII :
"-90"
à"+90"
si le moteur est en fonctionnement"OFF"
si le PWM est désactivé
Ajouter une commande qui permet de changer l'adresse I2C du périphérique.
- Au démarrage, le périphérique répond à l'adresse
0x23
. - On envoie une nouvelle commande en indiquant sa nouvelle adresse.
- La périphérique répond maintenant à cette nouvelle adresse jusqu'au prochain redémarrage ou jusqu'au prochain changement d'addresse.
Pour vérifier le bon fonctionnement, exécuter la séquence de test suivante avec une pause de 1 s
entre chaque action :
- Arrêter le signal PWM
- Démarrer le signal PWM et aller à la position centrale
- Aller à la position -90°
- Demander l'état du moteur
- Aller à la position -45°
- Aller à la position +45°
- Aller à la position 0°
- Demander l'état du moteur
- Aller à la position +90°
- Aller à la position +135° (Le moteur ne devrait pas bouger)
- Demander l'état du moteur
- Aller à la position 0°
- Arrêter le signal PWM
- Demander l'état du moteur
Il faudra utiliser un analyseur logique ou un oscilloscope pour confirmer l'arrêt du signal PWM.