Aller au contenu


Photo
* * * * - 2 note(s)

Moveo Bcn3d


122 réponses à ce sujet

#101 Forthman

Forthman

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 382 messages
  • Gender:Not Telling
  • Location:Montauban (82)

Posté 14 décembre 2019 - 11:25

Donovandu88, j'espère que t'es bien payé pour tes formations :crazy:



#102 Phil2P

Phil2P

    Membre

  • Membres
  • 44 messages
  • Gender:Male

Posté 15 décembre 2019 - 03:51

 

L'horloge dans l'application sert à faire communiquer le téléphone et le robot tous les certains nombres de secondes.

Vaut mieux utiliser l'émulateur comme ça les modifications apparaîtrons en temps réel.

C'est mieux d'avoir un module bluetooth qui fonctionne dans les deux sens.

 

 

 

Qu'entends-tu par "sans apprentissage"?

Bonjour,
Je vois deux façons de "commander" un bras :

1) entrer des "waypoints" (les coordonnées des points de passage de la pince) dans un repère lié à la base du bras.
OU
2) emmener le bras dans les positions successives voulues et enregistrer les coordonnées articulaires (angle de rotation des différentes articulations) correspondantes.

En disant, "sans apprentissage, je voulais savoir si tu pouvais commander ton bras par la première méthode et ainsi imposer un déplacement de la pince de 100 mm sur l'axe des X, par exemple.


Merci,

Philippe



#103 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 16 décembre 2019 - 08:04

Voila j'ai fait ca sous forme de case à cocher..
Quand je coche la case 1 j'enregistre toutes les coordonnées sous forme de tag avec TinyDb pareil quand j'ai choisi les autres coordonnées avec les sliders je coche la case 2 pareil pour la numero 3. Quand je clic sur effacer il vide le cache et decoche toutes les 3 cases... C'est le bouton play qui me pose des doute... Quand je clic dessus j'envoie la trame...

Cela veut dire que je dois tout le temps entrer les coordonnées sur les 3 cases sinon j'aurais des trous dans ma trame ? Cela pose problème d'avoir 3 coordonnées dans la trame pour le code sur l'arduino déjà que suis pas super fort en soft ?

Je pourais faire 3 trames différentes selon les cases que j'aurais coché sur l'appli mais après comment faire lors de la lectures sur l'arduino vu que la trame aura une longueur variable ?

Image(s) jointe(s)

  • 20191216_195602.jpg
  • 20191216_195543.jpg
  • 20191216_195512.jpg


#104 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 16 décembre 2019 - 08:21

J'ai commencé l'appli je voudrais pouvoir enregistrer différentes coordonnées avec l'aide des slider pour créer des séquences et choisir le nombre de fois ou jouer la séquence
Tu peux me donner des pistes stp ?

Il faut stocker les differentes coordonnées mais comment faire au niveau des trames ?

 

Les trames tu peux les stocker dans une variable tout simplement ou alors les écrire dans un fichier txt pour les récupérer plus tard.

 

 

Donovandu88, j'espère que t'es bien payé pour tes formations :crazy:

 

Va falloir que je réfléchisse à mon taux horaire  :dance2:  

 

 

Bonjour,
Je vois deux façons de "commander" un bras :

1) entrer des "waypoints" (les coordonnées des points de passage de la pince) dans un repère lié à la base du bras.
OU
2) emmener le bras dans les positions successives voulues et enregistrer les coordonnées articulaires (angle de rotation des différentes articulations) correspondantes.

En disant, "sans apprentissage, je voulais savoir si tu pouvais commander ton bras par la première méthode et ainsi imposer un déplacement de la pince de 100 mm sur l'axe des X, par exemple.


Merci,

Philippe

 

1) Je peux faire ce que tu dis grâce à la cinématique inverse avec des coordonnées en X, Y et Z

2) Avec mon application et des sliders, j'apprends au bras les mouvements qu'il devra reproduire.

 

 

Voila j'ai fait ca sous forme de case à cocher..
Quand je coche la case 1 j'enregistre toutes les coordonnées sous forme de tag avec TinyDb pareil quand j'ai choisi les autres coordonnées avec les sliders je coche la case 2 pareil pour la numero 3. Quand je clic sur effacer il vide le cache et decoche toutes les 3 cases... C'est le bouton play qui me pose des doute... Quand je clic dessus j'envoie la trame...

Cela veut dire que je dois tout le temps entrer les coordonnées sur les 3 cases sinon j'aurais des trous dans ma trame ? Cela pose problème d'avoir 3 coordonnées dans la trame pour le code sur l'arduino déjà que suis pas super fort en soft ?

Je pourais faire 3 trames différentes selon les cases que j'aurais coché sur l'appli mais après comment faire lors de la lectures sur l'arduino vu que la trame aura une longueur variable ?

 

Tes trois trames différentes, c'est pour faire une suite de mouvements ou c'est pour avoir trois mouvements enregistrées séparément?



#105 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 16 décembre 2019 - 08:27

J'aimerai faire une suite de mouvement et comme toi choisir le nombre de fois qu'il faut la jouer

#106 Phil2P

Phil2P

    Membre

  • Membres
  • 44 messages
  • Gender:Male

Posté 16 décembre 2019 - 08:30


1) Je peux faire ce que tu dis grâce à la cinématique inverse avec des coordonnées en X, Y et Z

2) Avec mon application et des sliders, j'apprends au bras les mouvements qu'il devra reproduire.

 

Peux tu m'expliquer comment, à partir des coordonnées en X, Y et Z, tu peux commander individuellement les différents stepper pour atteindre cette configuration ?

 

Merci

Philippe



#107 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 16 décembre 2019 - 08:40

J'aimerai faire une suite de mouvement et comme toi choisir le nombre de fois qu'il faut la jouer

 

J'enregistre des suites de trames dans un fichier texte que j'ouvre par la suite en définissant le nombre de répétition.

Essayes de les enregistrer pour commencer.

 

Peux tu m'expliquer comment, à partir des coordonnées en X, Y et Z, tu peux commander individuellement les différents stepper pour atteindre cette configuration ?

 

Merci

Philippe

 

Il faut que tu te tourne vers la Cinématique inverse pour comprendre tous ça.

Je te laisse étudier ce cours, c'est avec celui-ci que j'ai tous appris : http://www.mon-club-elec.fr/mes_docs/math/bras_5_servos/math_bras_5_servos.pdf



#108 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 16 décembre 2019 - 08:46

J'enregistre des suites de trames dans un fichier texte que j'ouvre par la suite en définissant le nombre de répétition.
Essayes de les enregistrer pour commencer.
 

 
Il faut que tu te tourne vers la Cinématique inverse pour comprendre tous ça.
Je te laisse étudier ce cours, c'est avec celui-ci que j'ai tous appris : http://www.mon-club-elec.fr/mes_docs/math/bras_5_servos/math_bras_5_servos.pdf

C'est fait je peux enregistrer toutes les coordonnées avec TinyDb ...
J'ai un stockage de 3 jeu de postions pour tous les axes
Mais je peux le faire sur un fichier texte aussi comme ca j'apprend
Par contre tu stock toutes les valeurs dans un seul fichier à la suite ou alors chaque jeu de coordonnées dans un fichier distinct ?
Il faut separer les valeures avec une virgule ?
C'est surtout pour l'envoie que ca pose problème admettons que une fois tu stock 4 mouvement et la fois d'après que 2 comment adapter la trame ?

#109 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 16 décembre 2019 - 09:48

Ma trame comporte à chaque fois les coordonnées de tous les axes.
Par exemple : 36,54,0,0,24,180,f
36 = Rotation 1
54 = Bras 1
0 = Bras 2
0 = Rotation 2
24 = Bras 3
180 = Position Servo moteur pince
f = fin de trame
Je les stocks dans un fichier texte, à la suite.
L'application se charge de couper les trames à chaque "f" pour avoir "un paquet de coordonnées"

#110 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 16 décembre 2019 - 10:23

Ma trame comporte à chaque fois les coordonnées de tous les axes.
Par exemple : 36,54,0,0,24,180,f
36 = Rotation 1
54 = Bras 1
0 = Bras 2
0 = Rotation 2
24 = Bras 3
180 = Position Servo moteur pince
f = fin de trame
Je les stocks dans un fichier texte, à la suite.
L'application se charge de couper les trames à chaque "f" pour avoir "un paquet de coordonnées"


Bien comme ca je n'aurait besoin que d'un seul bouton pour enregistrer alors que avant je devais faire avec les cases à cocher... je fais ca demain et je vais essayer de trouver comment gerer3les decoupages au f et gérer les repetition des séquences

#111 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 16 décembre 2019 - 10:47

Ma trame comporte à chaque fois les coordonnées de tous les axes.
Par exemple : 36,54,0,0,24,180,f
36 = Rotation 1
54 = Bras 1
0 = Bras 2
0 = Rotation 2
24 = Bras 3
180 = Position Servo moteur pince
f = fin de trame
Je les stocks dans un fichier texte, à la suite.
L'application se charge de couper les trames à chaque "f" pour avoir "un paquet de coordonnées"


Tu utilises cette methode http://ai2.appinventor.mit.edu/reference/other/displaylist.html

Ou alors tu utilises l'outil fichier texte de l'onglet stockage ?

#112 Phil2P

Phil2P

    Membre

  • Membres
  • 44 messages
  • Gender:Male

Posté 16 décembre 2019 - 10:59

 

J'enregistre des suites de trames dans un fichier texte que j'ouvre par la suite en définissant le nombre de répétition.

Essayes de les enregistrer pour commencer.

 

 

Il faut que tu te tourne vers la Cinématique inverse pour comprendre tous ça.

Je te laisse étudier ce cours, c'est avec celui-ci que j'ai tous appris : http://www.mon-club-elec.fr/mes_docs/math/bras_5_servos/math_bras_5_servos.pdf

Merci, j'ai parcouru le document et j'ai compris !!
Il s'agit en fait du modèle Géométrique inverse (MGI).

Le Modèle Cinématique Inverse (MCI) permet de déterminer les vitesses de chacun des stepper à partir de la vitesse de l'effecteur imposée.

 

Est-ce que les calculs sont réalisés sur l'Arduino ?

 

Bonne soirée

Philippe



#113 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 17 décembre 2019 - 12:29

Ma trame comporte à chaque fois les coordonnées de tous les axes.
Par exemple : 36,54,0,0,24,180,f
36 = Rotation 1
54 = Bras 1
0 = Bras 2
0 = Rotation 2
24 = Bras 3
180 = Position Servo moteur pince
f = fin de trame
Je les stocks dans un fichier texte, à la suite.
L'application se charge de couper les trames à chaque "f" pour avoir "un paquet de coordonnées"

Voila c'est fait par contre impossible de rentrer les variables que j'avais attribué au valeur du slider j'ai du rentrer le texte directement dans le fichier de stockage
Par contre je galère pour la suite cad comment séparer, récupérer, choisir le nombre de fois à repeter la séquence et envoyer par bluetooth chaque trame

Image(s) jointe(s)

  • 20191217_001852.jpg
  • 157653892637599168397606319202.jpg


#114 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 17 décembre 2019 - 06:04

Tu utilises cette methode http://ai2.appinventor.mit.edu/reference/other/displaylist.html

Ou alors tu utilises l'outil fichier texte de l'onglet stockage ?

 

J'utilise "Fichier" de l'onglet Stockage.

 

 

Merci, j'ai parcouru le document et j'ai compris !!
Il s'agit en fait du modèle Géométrique inverse (MGI).

Le Modèle Cinématique Inverse (MCI) permet de déterminer les vitesses de chacun des stepper à partir de la vitesse de l'effecteur imposée.

 

Est-ce que les calculs sont réalisés sur l'Arduino ?

 

Bonne soirée

Philippe

 

Oui tout les calculs sont fait directement sur l'arduino.

 

Voila c'est fait par contre impossible de rentrer les variables que j'avais attribué au valeur du slider j'ai du rentrer le texte directement dans le fichier de stockage
Par contre je galère pour la suite cad comment séparer, récupérer, choisir le nombre de fois à repeter la séquence et envoyer par bluetooth chaque trame

 

Il me semble que je remet le texte dans une variable que je divise ensuite en liste à tous les "f".



#115 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 17 décembre 2019 - 06:16

J'utilise "Fichier" de l'onglet Stockage.
 
 

 
Oui tout les calculs sont fait directement sur l'arduino.
 

 
Il me semble que je remet le texte dans une variable que je divise ensuite en liste à tous les "f".


Oui effectivement j'ai vu la fonction diviser du texte mais quand j'enregistre plusieures coordonnées dans mon fichier texte et que je divise ce texte j'obtient tout à la suite entre parenthèse avec des virgules mais je ne parvient pas vraiment à isoler les trames les une des autres

#116 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 17 décembre 2019 - 06:30

Je t'envoie en message privé le fichier MIT App Inventor 2 de mon Application pour que t'y jette un coup d’œil, tu auras plus facile.



#117 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 17 décembre 2019 - 06:35

Je t'envoie en message privé le fichier MIT App Inventor 2 de mon Application pour que t'y jette un coup dil, tu auras plus facile.


Merci beaucoup !!!

#118 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 21 décembre 2019 - 10:37

J'aimerai simplifier l'application en envoyant des commandes du type enable, disable...

Quand j'envoie la trame j'aimerai stocker les positions de chaque axes dans un tableau...

J'ai un bouton qui compte chaque sequences enregistrées et chaque sequence est du coup envoyée avec un identifiant pour ensuite prendre place dans le casier du tableau correspondant

String trame = ""; 
int Rot_1[10], Bras_1[10], Bras_2[10], Rot_2[10], Bras_3[10], Rot_3[10], Pince[10];
const int Enable_Pin =8;

void setup()
{
  Serial1.begin(9600);
  delay(20);
  pinMode(Enable_Pin, OUTPUT);
}

void loop()
{
 
    if (Serial1.available() > 0) {
    trame = Serial1.readString();  

    if (trame == "enable") {
    digitalWrite(Enable_Pin, LOW);
    }
    
    else if (trame == "disable") {
    digitalWrite(Enable_Pin, HIGH);
    }

    else if ( trame == "reset") {
    int Rot_1[10]={0};
    int Bras_1[10]={0};
    int Bras_2[10]={0};
    int Rot_2[10]={0};
    int Bras_3[10]={0};
    int Rot_3[10]={0};
    int Pince[10]={0};
      
    }

    if (trame == "run") { 
    //mouvements
    }
     
    if (trame.startsWith("A")) {
    trame.substring(1, trame.length()); 
    trame = Serial1.readStringUntil(',');
    Rot_1[0] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Bras_1[0] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Bras_2[0] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Rot_2[0] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Bras_3[0] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Rot_3[0] = trame.toFloat();
    trame = Serial1.readStringUntil('f');
    Pince[0] = trame.toFloat();                    
    }

    if (trame.startsWith("B")) {
    trame.substring(1, trame.length()); 
    trame = Serial1.readStringUntil(',');
    Rot_1[1] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Bras_1[1] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Bras_2[1] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Rot_2[1] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Bras_3[1] = trame.toFloat();
    trame = Serial1.readStringUntil(',');
    Rot_3[1] = trame.toFloat();
    trame = Serial1.readStringUntil('f');
    Pince[1] = trame.toFloat();                    
    }
    
    }}

Et quand j'envoie "Run" j'aimerai ressortir toutes les positions stockées dans les tableaux pour piloter les moteur.... Vous pensez que c'est faisable ou je perd mon temps ??





#119 Donovandu88

Donovandu88

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 680 messages
  • Gender:Male

Posté 23 décembre 2019 - 02:09

En gros, tu veux stocker tout sur l'Arduino?



#120 Vinchator

Vinchator

    Habitué

  • Membres
  • PipPip
  • 210 messages
  • Gender:Male
  • Location:Swiss

Posté 24 décembre 2019 - 09:09

En gros, tu veux stocker tout sur l'Arduino?


Oui
Tu en penses quoi ?



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users