Programmation de la carte moteur

Voici une présentation de notre architecture logicielle.

En attribuant un maximum de fonctions aux périphériques du PIC, nous simplifions le code et optimisons le temps processeur utilisé par ces fonctions. Ce temps pourras être utile pour simplifier le debug en appelant des fonctions gourmandes comme sprintf.

 Début du cycle : Timer 1

Il sert à déclencher une interruption régulière (1 ms) qui marque le début du cycle de mesures.

 Compter les front : Timer 0

Son entrée est reliée à l’une des voies de la roue codeuse. On évite de le réinitialiser car entre la dernière lecture et la réinitialisation, on pourrait rater un front. À chaque lecture, on soustrait la précédente valeur lue pour connaître le nombre d’impulsion au cours du cycle. Le rebouclage naturel du compteur ne pose pas de problème car nous utilisons des variables de même taille et de même type (non signées).

 Changement de sens : INTx

L’interruption générée sur front montant ou descendant du signal en sortie de la bascule D indique un changement de direction de la rotation du moteur.
A chaque interruption le module est reconfiguré pour détecter un front inverse à celui qui vient d’être mesuré.
Le Timer 0 est remis à 0 et le sens d’avancement est inversé.

 Mesure du courant : AN0

L’entrée analogique lit la tension aux bornes de la résistance de puissance. Si l’asservissement en couple ne semble pas rentable ni faisable avec nôtre matériel, l’entrée analogique permettra de detecter un courant trop important traversant le moteur.

 Com’ avec le robot : Port I2C

L’I2C est le protocole de communication au sein de nos robots. C’est par lui que nous enverrons nos ordres à la carte. La liste des informations que la carte devra échanger avec le reste du robot n’est pas encore bien définie.

 Debug : Port Série

Le port série sert pour le debug et nos recherches. C’est par lui que nous recevons les valeurs qui nous servent pour nos expériences.

 L’asservissement

Une fois les variables mises à jour dans les interruption, un drapeau est positionné. Ce drapeau déclenche les calculs liés à l’asservissement qui sont dans la boucle principale (hors interruption).

Commentaires

Il n'y a pas de commentaires

Ajouter un commentaire

Forum sur abonnement

Pour participer à ce forum, vous devez vous enregistrer au préalable. Merci d’indiquer ci-dessous l’identifiant personnel qui vous a été fourni. Si vous n’êtes pas enregistré, vous devez vous inscrire.

Connexions’inscriremot de passe oublié ?

Copyright "POIVRON" 2011-2012, tous droits réservés
Administration du site