Bonjour,

Je souhaiterai commander ou asservir la position angulaire un système de sun-tracking, pivotant autour d’un seul axe de rotation, par l’intermédiaire d’un PC (pour coder, compiler et transférer le programme et pour afficher sur le PC la position angulaire réelle de mes éléments en rotation), d’un circuit de commande et de moteur. En faite il y a 12 dispositifs de tracking identiques couplés chacun à un seul moteur, mais leurs consignes de position angulaire de son pas les mêmes.
La rotation d’un élément est fonction de la course du soleil et de plusieurs paramètres fixés au préalable propre à chacun des douze éléments.
L’idée est qu’au départ on place tout les éléments dans une position de référence (ce qui impose une position angulaire à chaque arbre des moteurs) qui est prise pour « zéro ». Ensuite on demande à chaque moteur de pivoter d’un nombre « x » de degré par rapport à la position de référence.
Le nombre « x » de degré est égale à une fonction propre à chaque moteur, dépendant de l’horloge du PC et d’autre paramètre. Autrement dit, à tel jour de l’année et à tel heure de la journée les moteurs doivent avoir un positionnement angulaire précis.

Il y a deux vitesses de rotation :
- une pour le tracking : La vitesse de rotation des éléments entrainés par les moteurs son très lente (un demi-tour par jour). Par contre le couple est important quelques kilos pour un bras de levier d’un centimètre.
- Une pour le retour en position initiale.

J’ai pensé que le programme pourrait avoir la structure suivante (juste des phrases de description du programme):

Initialisation de la position de référence des moteurs :
La position actuelle de chacun des moteurs correspondent au dégré 0

Initialisation des paramètres des fonctions commandant la position angulaire de chaque moteur :
Paramètres moteur 1 :
a1 :=…
b1 :=…

Paramètres moteur 2 :
a2 :=…
b3 :=…

Etc.…

Commande en position angulaire de chaque moteur :
Boucle :
Position angulaire du moteur 1 = Fonction du temps moteur 1 ( horloge de l’ordinateur, paramètres moteur 1)
Position angulaire du moteur 2 = Fonction du temps moteur 2 ( horloge de l’ordinateur, paramètres moteur 2)
[…]
Position angulaire du moteur 12 = Fonction du temps moteur 12 ( horloge de l’ordinateur, paramètres moteur 12)
Temporisation de quelques secondes
Fin de la boucle

Important : la boucle est lue indéfiniment jusqu’à l’arrêt du programme par l’utilisateur.

Vous l’aurez compris à chaque pas de temps, définit par la temporisation, le programme calcul une nouvelle valeur de la position angulaire de chaque moteur par le biais de la fonction du temps (qui évoluent en fonction de l’horloge de l’ordinateur) et ordonne à chaque moteur ce se positionner en suivant cette valeur. En modulant la temporisation je devrais arriver à avoir un suivi plus ou moins fin.

Pour réaliser se projet, j’ai pensé utiliser des moteurs pas à pas avec une résolution inférieur à 1.8° en utilisant une gestion des « demi-pas » ou en utilisant un moteur couplé à un réducteur planétaire (pour gagner en couple).
En gros je veux un PC et un seule programme qui commande les 12 moteurs PAP. Entre les deux je ne sais pas trop quoi mettre comme circuit de commande. J’ai vu sur un forum que je pouvais utiliser une carte Arduino Duemilanove ou Mega et une carte contrôleur pour chaque moteur PAP.

Est-ce que la carte Arduino Duemilanove ou Mega peut accueillir 12 cartes contrôleurs ? Quelle carte controleur choisir ? Utilisant une carte Arduino, je devrai utiliser le logiciel Arduino pour l’écriture du programme. Est-ce les fonctionnalités du programme Arduino me permettent de réaliser le programme dessus ? Avec avez-vous une autre solution de commande pour mon projet ?
Comme écrit plus haut je voudrai également vérifier la position angulaire des éléments entrainés en rotation sur le PC. Quel capteur dois-je utiliser ? Quelle électronique dois-je utiliser pour faire afficher les mesures sur le PC ?

Voila, j’espère avoir été claire. Je vous remercie par avance pour votre aide.