je reviens encore vers vous pour un petit coup de pouce,
je viens de réaliser un robot type delta, avec 3 servomoteurs.
Il fonctionne en cinematique inversée, à l'aide d'une bibliotheque que j'ai trouvé sur la toile.
jusque la tout va bien, je definis les points avec une syntaxe comme ceci:
DeltaMoveTo(coord X, coord Y, coord Z, vitesse).
le probleme est pour la creation d'un programme simple de prise et depose, pour les coordonnées il faut s'y reprendre à plusieurs fois en
"tatonnant "avec les valeurs des coordonnée pour positionner au mieux le robot.
J'ai donc "commencé" un systeme d'apprentissage de points, je pilote donc le robot en manuel avec un joystick pour X et Y et un autre potar pour le Z.
et la... je bloque completement. j'aimerai pouvoir memoriser des points (une dizaine).
j'aimerai bien faire de la maniere suivante:
demarrage.
test si le mode d'apprentissage est activé (bouton sur une entrée) --> je gère.
deplacement en manuel jusqu'au premier point (joystick) --> je gère.
appui sur un bouton pour valider ce point (simple bouton ou switch multiposition à definir) --> je gère plus lol
deplacement au 2 eme point en manuel...
validation point 2...
etc...(determiner l'ensemble des points necessaires au deplacement de l'objet).
desactivation du mode d'apprentissage.(et donc memorisation de tous les points ci dessus).
-passage en mode "production" et attente de depart cycle sur une entrée capteur "presence piece à deplacer"--> je gère
voila en gros il faut memoriser des coordonnées x, y, z et ajouter un point a chaque fois que necessaire..
si quelqu'un pourrai m'eclairer un peu ça serait tres sympa !!
j'aimerai me faire la main sur l'interface et avoir un truc assez fonctionnel (pas besoin d'ouvrir l'editeur arduino pour creer un programme), apres rajouter un ecran lcd pour avoir un affichage des coordonnées,des points du programme, etc...(à definir).
une fois que j'aurai une interface qui fonctionne simplement, je referai la partie mécanique pour une plus grande surface de travail,
avec des moteurs plus gros et un positionnement plus precis..
si vous voulez des videos , du code ou des 3D solidworks y'a pas de probleme.
La solution de l'eeprom est une trés bonne idée. Chaque arduino possède cet espace mémoire qui permet de stocker des informations en dur (même hors tension). Attention quand même à ne pas trop en abuser, une eeprom est garantit pour un certain nombre d'écriture. 100000 en moyenne pour les arduino.
Merci pour ces infos, je vais m'orienter vers cette direction alors.
mais comment procéder pour, lors d'un appui de bouton, créer un nouveau point avec ses coordonnées correspondantes?
et apres, comment recuperer ces infos.
je comprend les exemples basiques d'utilisation de l'EEPROM, mais j'ai du mal a associer ce fonctionnement à mon problème.
Il faut effectivement être astucieux sur le plan programmation.
A mon idée, il faut réserver le premier bit de l'eeprom pour comptabiliser les séquences enregistrées. Théoriquement cela fait 255 séquences enregistrables.
Au setup(), tu lis ce bit pour connaitre la dernière position de l'eeprom, soit 1 + 3x(Nbre de sequence), 0 est le premier bit, 3 pour X, Y, Z, etc.
Ex : si le byte 0 vaut 5, j'ai 5 séquences donc 1+(3x5) bytes utilisés = 16.
Ensuite, tu peux inclure dans ton programme le nombre de séquence et le rappelle de celle ci dans ton afficheur. L'enregistrement des coordonnées validées se faisant par bouton poussoir à la position et incémente le premier byte de l'eeprom.
Avec 2/3 equations il y a moyen de sortir un truc pas mal
Bien pensé zoroastre,
Expliqué comme ça, c'est plus clair.
Et peut-être même qu'il faudrait utiliser des variables tableau afin d’écrire/lire en une fois toutes les coordonnées afin de limiter les lectures/écriture sur l'EEprom de l'Arduino. (a moins d'utiliser celle I2C que tu mentionnais plus haut)
1 bouton permettrai le passage en mode apprentissage et un autre servirai a incrémenter le compteur et a enregistrer dans le tableau les 3 axes a chaque relevé de position.
La sortie du mode apprentissage écrirai l'ensemble du tableau dans l'EEprom.
Au démarrage, suite a un reset par exemple, une boucle irait lire en 1x toutes les données de l'EEprom et initialiserai la séquence de déplacement.
Re, bon le programme avance tant bien que mal, j'arrive à stocker les coordonnées de mes points à chaque validation par BP, reste plus qu'à recuperer ces infos pour faire dérouler le programme ...