Bonjour à tous et merci de vos conseils.
C'est vrai un Arduino est un puissant contrôleur mais un contrôleur qui ne sais pas communiquer, qui ne remonte pas les anomalies. Il envoie des commandes à un DRV8825 sans se soucier de savoir si la commande est exécutée correctement. Vers le haut, c.a.d. mon PC, aucun interface vers un langage de haut niveau, par exemple REXX.
Heureusement, mon pacemaker n'est pas fabriqué sur base Arduino.
En dépit de ces lacunes j'ai trouvé et réalisé une solution pour remplacer un plateau diviseur et tailler des engrenages dans un environnement d'amateur mais surtout pas de production.
Après mures réflexions, j'ai fait très simple :
Voilà pour la logique.
La liaison USB PC <==> Arduino sert à charger le programme dans le contrôleur et éventuellement à suivre le déroulement des opérations avec un moniteur série.
Le crash switch bloque la rotation de la broche quand la fraise est engagée.
Les communications homme-machine se font par 5 boutons poussoir :
-
- Marche le point zéro est enregistré et on peut tailler le premier espace inter-dent
- Avant avancer d'une dent
- Arrière reculer d'une dent
- Raz retour au point de départ
- Arrêt on a terminé.
Il y a deux programmes pour faire tourner cet ensemble :
-
- Sur le contrôleur, un croquis qui va interpréter les boutons poussoir pour gérer la broche. Ce croquis doit être personnalisé en fonction du nombre de dents à réaliser, à savoir, copier/coller de 2 lignes qui définissent la roue à tailler.
- Sur le PC, un programme de calcul et fabrication des 2 lignes de code Arduino pour des roues de 6 dents à 139 dents. La limite supérieure peut être modifiée. Les résultats sont stockés dans une bibliothèque, prêts pour le copier/coller.
Comme premier essai j'ai taillé une roue de 135 dents module 0,27 après avoir compilé le croquis personnalisé pour 135 dents :
int table[] = {222, 222, 222, 222, 223, 222, 222, 223, // 222, 222, 222, 223}; //step table
int Dents = 135 ; // nombre de dent
très compliqué ! Mais plus simple que de changer un plateau...
Lors de la taille en 3 passes, j'ai constaté que appuyer sur un bouton était beaucoup plus confortable et sûr que de passer à la dent suivante avec un alidade ou une manivelle (tour Schaublin).
Par ailleurs, avec la division numérique toutes les divisions sont possibles.
Durant cet essai, mon PC était connecté et un moniteur série était activé. Je n'ai pratiquement pas regardé l'écran.
Résultat brut avant ébavurage
Amélioration potentielles
La réduction mécanique dépend des divers roues qui entrent dans la construction. La réduction '
électronique' avec le DRV8825 permet d'utiliser des micro-step.
Pour les puristes, on peut calculer l'erreur maximum dues aux arrondis lors du calcul du nombre de step du moteur. Plus il y a de dents à tailler, plus l'erreur va croître.
Si cette erreur est trop grande
aux yeux de l'utilisateur, il peut décider d'utiliser les micro-step de 2 à 32 en activant les pins MS0, MS1, MS2 et MS3 et fabriquer la table des steps dans ce sens.
Sur l'Arduino la somme des steps permet de calculer le niveau de micro-step et initialiser correctement les pin MS0 à MS3.
Dans la version actuelle de mon croquis et du générateur de saut, on peut travailler en full step ou demi step.
Point final