Pages: 1 [2]   Go Down
Author Topic: -Aide- Sculpture et arduino sur Télécran  (Read 1445 times)
0 Members and 1 Guest are viewing this topic.
France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3017
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Là pas bon
Code:
motorA.step((oldx - x)*10,FORWARD,SINGLE);
 motorB.step((oldy - y)*10,FORWARD,SINGLE);
 
 oldx = x;           //<----- là tu mets oldx = x
 oldy = y;
 
 delay(500);
 Serial.println(oldx-x);   // <--- donc là comme oldx et x sont égaux la différence est nulle

Là bon
Code:
motorA.step((oldx - x)*10,FORWARD,SINGLE);
 motorB.step((oldy - y)*10,FORWARD,SINGLE);

 Serial.println(oldx-x);   // <--- là oldx vaut la valeur de x à la précédente itération
 
 oldx = x;
 oldy = y;
 
 delay(500);
 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

"Oui, mais un affichage de contrôle à mettre juste après motorA.step"

Code:
motorA.step(oldx - x,BACKWARD,SINGLE);
 motorB.step(oldy - y,FORWARD,SINGLE);
 
 Serial.println(oldx);
 
 oldx = x;
 oldy = y;
 delay(500);
}

OK merci fdufnews je saisis mieux l'importance de l'ordre des éléments désolé de vous tendre les nerfs de la sorte  smiley-sweat
le moniteur retourne ces valeurs : 0.00
0.02
0.03
0.05
0.07
0.09
0.10
0.12
0.14
0.16
0.17
0.19
0.21
0.22
0.24
0.26
0.28
0.29
0.31
etc.
Par contre je me posais la question du coefficient multiplicateur, je ne vois pas trop où l'appliquer car avec 512 pas pour un tour comment vais-je pouvoir sortir quelque chose avec des valeur comme celle-ci?
Je me suis permis de tester aussi ça  smiley-grin
Code:
motorA.step((oldx - x)*1000,BACKWARD,SINGLE);
 motorB.step(oldy - y,FORWARD,SINGLE);
 
 Serial.println(oldx);
 
 oldx = x*1000;
 oldy = y;
 delay(500);
}
et cette fois les valeurs sont plus élevés 0.00
17.45
34.90
52.34
69.76
87.16
104.53
121.87
139.17
156.43
173.65
190.81
207.91
224.95
241.92
258.82
275.64
292.37
Mais cela semble être très ralenti et pas de mouvement du moteur même minime enfin peut être que je veux aller trop vite
merci en tout cas
Logged

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3017
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Les équations que tu utilises
Code:
  x = a * sin(radians(t)) + (t * c + (360 - t) * cc) / 360;
  y = b * sin(radians(t)) * cos(radians(t)) + (t * d + (360 - t) * dd) / 360;
x =
     a * sin(radians(t))                        <-------- pour variant de 0 à 360  sin(t) est compris entre -1 et +1 et comme a = 1 ce terme est donc compris entre -1 et +1
  + (t * c + (360 - t) * cc) / 360;        <-c=0 et cc=0 donc ce terme est nul

Au bout du compte x compris entre -1 et +1.
Pour y je te laisse faire la calcul

Si tu veux un mouvement notable il faut jouer sur a, b, c, cc, d et dd pour modifier la forme.
a et b vont dilater la forme alors que le autres termes vont jouer sur son positionnement.
Au passage, les variables cc et dd ne sont pas initialisées ce qui fait qu'à la première itération de la boucle elles pourraient avoir une valeur quelconque.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Les équations que tu utilises
Code:
  x = a * sin(radians(t)) + (t * c + (360 - t) * cc) / 360;
  y = b * sin(radians(t)) * cos(radians(t)) + (t * d + (360 - t) * dd) / 360;
x =
     a * sin(radians(t))                        <-------- pour variant de 0 à 360  sin(t) est compris entre -1 et +1 et comme a = 1 ce terme est donc compris entre -1 et +1
  + (t * c + (360 - t) * cc) / 360;        <-c=0 et cc=0 donc ce terme est nul

Au bout du compte x compris entre -1 et +1.
Pour y je te laisse faire la calcul

Si tu veux un mouvement notable il faut jouer sur a, b, c, cc, d et dd pour modifier la forme.
a et b vont dilater la forme alors que le autres termes vont jouer sur son positionnement.
Au passage, les variables cc et dd ne sont pas initialisées ce qui fait qu'à la première itération de la boucle elles pourraient avoir une valeur quelconque.

J'étais véritablement d'une grande naïveté  smiley-small merci de ton éclaircissement fdufnews
Pour Y je dirais =0 vu les valeurs données à t,d et dd

Par contre tout ceci constitue un nombre important de variable, et je ne pourrais pas empiriquement m'amuser à tester des valeurs.
Comment puis-je savoir en prenant en compte la mécanique d'un télécran quelles valeurs appliquer à telle variables?

En fait je m'interroge sur la facilité d'être véritablement créatif avec arduino lorsque l'on ne bénéficie pas d'une formation initiale poussée
Rien est facile évidement mais je crois que nous ne pourrons pas encore pendant très longtemps nous passer de vos savoir faire et conseils merci

« Last Edit: July 14, 2013, 01:10:56 pm by Dante235 » Logged

france
Offline Offline
God Member
*****
Karma: 8
Posts: 708
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il faut compter combien de tours de moteurs il faut pour traverser tout l'écran, séparément dans les deux sens X et Y.
Les équations du Lemniscate sont prévues pour une courbe de largeur 2a selon X horizontal, donc il y aura juste une règle de 3 pour agrandir la courbe.

Commence par tracer un simple rectangle avant de passer à plus compliqué.
Logged

Christian

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3017
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
En fait je m'interroge sur la facilité d'être véritablement créatif avec arduino lorsque l'on ne bénéficie pas d'une formation initiale poussée
Sans vouloir être offensant ce n'est pas un problème d'Arduino. Tu aurais rencontré le même problème si tu avais voulu réaliser ce système par un automate mécanique.
Le passage d'une équation mathématique à un système réel n'est pas toujours trivial.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut fdufnews
Non ce n'est pas offensant  smiley-surprise et je ne considère pas non plus que ce soit un problème d'arduino, je crois que cet outil est ce qui est arrivé de mieux ces dernières années pour des gens comme moi qui ont certaines idées et souhaite les matérialiser. En fait par interrogation je voulais plutôt préciser que l'apparente facilité des petits exercices et tutoriels que l'on peut trouver sur internet nous (les grands débutants) place parfois dans une perception plutôt simpliste du problème, du fait même d'une méconnaissance des bases initiales de l’électronique, la programmation etc. Ce qui me faisait donc dire tout l'intérêt de venir casser les pieds aux spécialistes que vous êtes smiley-wink
Je suis plutôt un spécialiste de la chose imprimé, numérique et traditionnelle et je côtoies assez régulièrement des artistes pour bien comprendre d'une certaine manière ce que tu veux dires par "Le passage d'une équation mathématique à un système réel n'est pas toujours trivial"

Je vais donc suivre les conseils de Christian_R en commençant par un rectangle et progresser plus doucement.

Votre monde me fascine parce que en partie grâce à arduino il n'est plus si éloigné que ça du mien  smiley-wink

Logged

Pages: 1 [2]   Go Up
Jump to: