Ecriture Programmation de 2 moteurs pas a pas bipolaire pour laser

Bonjour a tous je suis nouveau dans le forum mais surtout débutant en ce qui concerne Arduino et la programmation de ce micro contrôleur (et oui j’ai 50 balais j’ai fait de l’électronique en tant que professionnel dans les années 80 et a par les transistors et les quelques circuits intégré de l’époque il ni avait pas grand chose en micro contrôleur) donc ma question ou plutôt ma demande d’aide est la suivante :

Je souhaite faire fonctionner 2 moteurs pas a pas bipolaire afin de commander deux miroirs pour un laser de façon a écrire du texte en projection (POV persistance rétinienne)
Pour la partie électronique pas de problème c’est fait.

J’ai récupérer et modifié le programme pour faire fonctionner tout ça, (je n’ai pas encore vu pour les séquences laser, je le ferai plus tard.

Mon problème est que je souhaiterai faire un saut de ligne (vertical) quand la valeur de la ligne horizontalel est atteinte du genre (si la ligne horizontal a une valeur de X alors la ligne vertical = N+1. Je ne sais pas si je suis clair mais je joins le programme en pièces jointe que j’ai essayé de détailler.

Merci d’avance a tout ceux et celle qui pourrons m’aider

PS je ne suis pas très a l’aise avec l’anglais alors si vous pouviez éviter les liens dans cette langue (ou dans une autre parce que le chinois c’est pas mieux lol)se serai cool.

_2_moteurs_pas_a_pas_vers5_a_verifier.ino (7.83 KB)

Salut !

J'ai bien compris ce tu voulais faire (comme une machine à écrire qui quand elle arrive au bout de la ligne fait un "Chling!"). Mais du coup je ne vois pas bien où tu bloques. Au final tu énonces parfaitement l’algorithme :

ptit: je souhaiterai faire un saut de ligne (vertical) quand la valeur de la ligne horizontalel est atteinte du genre (si la ligne horizontal a une valeur de X alors la ligne vertical = N+1.

le problème que je vois pour le moment c'est que ton code est très "light" (si je peux me permettre !). Je ne sais pas ce que tu as prévu (transmission des données à l'arduino ? Gestion vectorielle ? ... ) mais bon niveau codage, c'est du lourd car il y plein de modélisation mathématique à faire. Dans un premier temps je te conseille tout d'abord de faire tout simplement une gestion par coordonnée. Tu envois un X et un Y et hop le laser pointe au bon endroit. Après il sera plus simple d'appliquer des fonctions mathématiques (cercles, carré ...) avant de passer enfin au texte, qui englobe beaucoup de paramètres (mise en mémoire des caractères, espacement, retour à la ligne etc ...)

ptit: faire fonctionner 2 moteurs pas a pas bipolaire afin de commander deux miroirs pour un laser de façon a écrire du texte en projection (POV persistance rétinienne)

La persistance rétinienne nécessite un balayage très rapide de toute la figure à dessiner. Le moteur pas à pas est une technologie plutôt lente; des mécanismes à galvanomètre seraient bien plus réactifs.

Merci pour vos réponses Effectivement je suis débutant dans la programmation Arduino alors j'ai du modifier de l'existant il me reste encore un peu de logique de programmation me venant d'un lointain GWBASIC ce qui explique peut être cela. je désirai écrire du texte avec un "tir" laser. Comme tu dis "comme une machine écrire" avec en fin de ligne horizontal faire un saut de ligne vertical. Je n'ai pas besoin de faire une image géante je pense plutôt à une ligne d'une dizaine de caractères.

Pour le déplacement de la trame j'avais pensé que le balayage pourrait être assez rapide avec 2 moteurs pas a pas (si bien entendu je me limite dans le déplacement du faisceau)car j'utilise les deux moteurs pas a pas d'un laser de spectacle (du genre de ceux des boites de nuit). D'origine ils sont capables de créer des figures assez grande et fluides du style étoiles cercles ellipses...

Je ne cherche pas a créer ce qui existe déjà dans le laser de spectacle certain laser (laser ILDA)sont pilotables par ordinateur et peuvent reproduire du texte des images et du show programmé, non juste à n'en approcher un peu, avec seulement quelques caractères de texte.

J'ai déjà survoler ce qui ce fait à ce sujet mais je n'ai pas trouver le programme a mettre dans l'arduino (mega) c'est toujours des présentation mais sans le code, et vu que je ne suis pas très calé en anglais ça bloque un peu.

J’essaie donc d'avancer dans mon projet avec mes maigres connaissances et votre précieuses aide. Je compte m'attaquer a la gestion du tir laser et la je pense que ça va être plus compliqué encore car il va falloir faire appel a des sous routines pour stoker les caractères appelé je pense ?

J’avance, mais je n’arrive toujours pas a incrémenter mon pas vertical d’un pas uniquement ??? qui peut m’ecriri la fonction ou au moins m’expliquer mes erreurs merci d’avance

_2_moteurs_pas_a_pas_vers7_4.ino (9.93 KB)

Déjà il n'y aucune accolade pour tes boucle for, donc elle boucle sur du vide à chaque fois ...

Il y a eu en septembre dernier un topic qui parlait de "galva" pour laser. http://forum.arduino.cc/index.php?topic=124128.0

Je ne sais pas s'il te sera utile car il y a eu beaucoup de difficulté de compréhension entre ce que voulait faire l'auteur et ce que certains ont compris. Je dis certains car en ce qui me concerne j'avoue que je n'ai pas compris. J'ai bien vu (difficilement) qu'il y avait un cahier des charges à respecter mais je n'ai pas réussi à traduire ce cahier des charges en actions et chiffres clairs et précis.

Néanmoins notre auteur avait soulevé un sujet important : la sécurité et les normes à respecter imposées par la réglementation.