servo analog / digital

ludo0404

Senior Member
Essayer ça: (non testé)

Code:
[color=Navy]#picaxe [/color][color=Black]08M2[/color]
[color=Navy]#simtask [/color][color=Blue]all[/color]

[color=Green]'######'####################    configuration    ################################   [/color]
[color=Blue]symbol [/color][color=Purple]position1 [/color][color=DarkCyan]= [/color][color=Purple]b1[/color]
[color=Blue]symbol [/color][color=Purple]position2 [/color][color=DarkCyan]= [/color][color=Purple]b2[/color]
[color=Blue]symbol [/color][color=Purple]inter1 [/color][color=DarkCyan]= [/color][color=Purple]pinC.4[/color]
[color=Blue]symbol [/color][color=Purple]inter2 [/color][color=DarkCyan]= [/color][color=Purple]PinC.3[/color]
[color=Blue]symbol [/color][color=Purple]EN1 [/color][color=DarkCyan]= [/color][color=Purple]b11 [/color]
[color=Blue]symbol [/color][color=Purple]EN2 [/color][color=DarkCyan]= [/color][color=Purple]b12[/color]

[color=Blue]start0:[/color]
[color=Green]'##########################    Initialisation    ################################[/color]

[color=Purple]EN1 [/color][color=DarkCyan]= [/color][color=Navy]0     [/color][color=Green]' Au d�marrage on met le flag � 0[/color]
[color=Purple]EN2 [/color][color=DarkCyan]= [/color][color=Navy]0[/color]
[color=Purple]position1 [/color][color=DarkCyan]= [/color][color=Navy]75 [/color][color=Green]' On rentre la position d'origine[/color]
[color=Purple]position2 [/color][color=DarkCyan]= [/color][color=Navy]150
 [/color]
[color=Blue]servo C.1[/color][color=Black],[/color][color=Purple]position1[/color][color=Green]' On place le servo[/color]
[color=Blue]servo C.2[/color][color=Black],[/color][color=Purple]position2[/color]
[color=Blue]pause [/color][color=Navy]100[/color]

[color=Blue]servo C.1[/color][color=Black], [/color][color=Blue]off
servo C.2[/color][color=Black], [/color][color=Blue]off[/color]

[color=Green]'#################################################################################[/color]

[color=Blue]do

 if [/color][color=Purple]inter1 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=DarkCyan]and [/color][color=Purple]EN1 [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]then gosub [/color][color=Black]servo1up     [/color][color=Green]' Si l'inter est � 1 et que le flag � 0 cela signifie que c'est la premiere fois qu'on bascile l'inter
 [/color][color=Blue]if [/color][color=Purple]inter1 [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=DarkCyan]and [/color][color=Purple]EN1 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then gosub [/color][color=Black]servo1down   [/color][color=Green]' Si l'inter est � 0 et que le flag � 1 cela signifie que c'est la premiere fois qu'on bascile l'inter

 
   [/color][color=Blue]pulsout C.1[/color][color=Black], [/color][color=Purple]position1                 [/color][color=Green]' on positionne le servo avec pulssout pour la stabilit�
   [/color][color=Blue]pause [/color][color=Navy]18 [/color][color=Green]' pour ralentir la Mise � Jour[/color]
[color=Blue]loop
 [/color]
[color=Green]'=================================================================[/color]
[color=Black]servo1up:[/color]

[color=Blue]servo C.1[/color][color=Black],[/color][color=Purple]position1[/color]
[color=Blue]do while [/color][color=Purple]position1 [/color][color=DarkCyan]< [/color][color=Navy]100 [/color][color=DarkCyan]or [/color][color=Purple]inter1 [/color][color=DarkCyan]= [/color][color=Navy]1[/color][color=Green]' Tant qu'on a pas atteint la valeur on continue
   [/color][color=Blue]inc [/color][color=Purple]position1     [/color][color=Green]' On augmente de 1 la position
   [/color][color=Blue]pause [/color][color=Navy]10       [/color][color=Green]' on fais une pause pour ralentir
   [/color][color=Blue]servopos C.1[/color][color=Black],[/color][color=Purple]position1  [/color][color=Green]' On place le servo a sa nouvelle place[/color]
[color=Blue]loop  
servo C.1[/color][color=Black], [/color][color=Blue]off[/color]
[color=Purple]EN1 [/color][color=DarkCyan]= [/color][color=Navy]1           [/color][color=Green]' Une fois le servo &#65533; sa position On met le flag a 1[/color]
[color=Blue]return            [/color][color=Green]' On retourne au programme principal

'=================================================================[/color]
[color=Black]servo1down:[/color]

[color=Blue]servo C.1[/color][color=Black],[/color][color=Purple]position1[/color]
[color=Blue]do while [/color][color=Purple]position1 [/color][color=DarkCyan]> [/color][color=Navy]75 [/color][color=DarkCyan]or [/color][color=Purple]inter1 [/color][color=DarkCyan]= [/color][color=Navy]0

   [/color][color=Blue]dec [/color][color=Purple]position1     [/color][color=Green]' On descend de 1 la position
   [/color][color=Blue]pause [/color][color=Navy]10       [/color][color=Green]' on fais une pause pour ralentir
   [/color][color=Blue]servopos C.1[/color][color=Black],[/color][color=Purple]position1  [/color][color=Green]' On place le servo a sa nouvelle place
   [/color]
[color=Blue]loop  
servo C.1[/color][color=Black], [/color][color=Blue]off[/color]
[color=Purple]EN1 [/color][color=DarkCyan]= [/color][color=Navy]0           [/color][color=Green]' Une fois le servo &#65533; sa position On met le flag a 0[/color]
[color=Blue]return            [/color][color=Green]' On retourne au programme principal


'##########################################################################[/color]
[color=Blue]start1:

do
    if [/color][color=Purple]inter2 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=DarkCyan]and [/color][color=Purple]EN2 [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]then gosub [/color][color=Black]servo2up     
    [/color][color=Blue]if [/color][color=Purple]inter2 [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=DarkCyan]and [/color][color=Purple]EN2 [/color][color=DarkCyan]= [/color][color=Navy]1 [/color][color=Blue]then gosub [/color][color=Black]servo2down
 
               [/color][color=Green]' on positionne le servo avec pulssout pour la stabilit&#65533;
   [/color][color=Blue]pulsout C.2[/color][color=Black], [/color][color=Purple]position2
   [/color][color=Blue]pause [/color][color=Navy]18[/color]
[color=Blue]loop
 [/color]
[color=Green]'=================================================================[/color]
[color=Black]servo2up:[/color]

[color=Blue]servo C.2[/color][color=Black],[/color][color=Purple]position2[/color]
[color=Blue]do while [/color][color=Purple]position2 [/color][color=DarkCyan]> [/color][color=Navy]125 [/color][color=DarkCyan]or [/color][color=Purple]inter2 [/color][color=DarkCyan]= [/color][color=Navy]1

   [/color][color=Blue]dec [/color][color=Purple]position2     [/color][color=Green]' On diminue de 1 la position
   [/color][color=Blue]pause [/color][color=Navy]10       [/color][color=Green]' on fais une pause pour ralentir
   [/color][color=Blue]servopos C.2[/color][color=Black],[/color][color=Purple]position2  [/color][color=Green]' On place le servo a sa nouvelle place
      [/color]
[color=Blue]loop  [/color][color=Green]' Tant qu'on a pas atteint la valeur on continue[/color]
[color=Blue]servo C.2[/color][color=Black], [/color][color=Blue]off[/color]
[color=Purple]EN2 [/color][color=DarkCyan]= [/color][color=Navy]1           [/color][color=Green]' Une fois le servo &#65533; sa position On met le flag a 1[/color]
[color=Blue]return            [/color][color=Green]' On retourne au programme principal

'=================================================================[/color]
[color=Black]servo2down:[/color]

[color=Blue]servo C.2[/color][color=Black],[/color][color=Purple]position2[/color]
[color=Blue]do while [/color][color=Purple]position2 [/color][color=DarkCyan]< [/color][color=Navy]150 [/color][color=DarkCyan]or [/color][color=Purple]inter2 [/color][color=DarkCyan]= [/color][color=Navy]0

   [/color][color=Blue]inc [/color][color=Purple]position2     [/color][color=Green]' On augmente de 1 la position
   [/color][color=Blue]pause [/color][color=Navy]10       [/color][color=Green]' on fais une pause pour ralentir
   [/color][color=Blue]servopos C.2[/color][color=Black],[/color][color=Purple]position2  [/color][color=Green]' On place le servo a sa nouvelle place
   [/color]
[color=Blue]loop 
servo C.2[/color][color=Black], [/color][color=Blue]off[/color]
[color=Purple]EN2 [/color][color=DarkCyan]= [/color][color=Navy]0           [/color][color=Green]' Une fois le servo &#65533; sa position On met le flag a 0[/color]
[color=Blue]return            [/color][color=Green]' On retourne au programme principal

'##########################################################################[/color]
Whou !! les servo partent dans tous les sens !!! sans même les signaux activés !:p

J'ai réessayé avec mon premier code pour etre sur que tout le circuit est correctement remi en ordre et ca marche.....

On est bien d'accord, je suis avec les ana maintenant hein !
 

dje8269

Senior Member
La methode de PieM est pourtant pas mal . il utilise le pseudo multi tache . Je ne suis pas assez pechus pour savoir exactement ce qui se passe et comment ca se passe ; mais c'est certainement un probléme avec les pauses ;

car le multitache je crois excecute une ligne de la tache 1 puis une de la tache 2 . Mais lors des pauses je sais pas exactement ce qu'il se passe ;

Attendons le retour de PieM ; sinon je referais un programme biscornu comme d'hab lol
 

ludo0404

Senior Member
lol

ca marche on attend le retour de Piem.

Les programmes biscornus c'est comme les légumes biscornus ca se consomme quand même !
 

PieM

Senior Member
Je pense qu'il y a une incompatibilité entre les cde servo et le multitâche.
Mais je n'ai pas de quoi tester.
Essayez de remplacer touts les servopos par des pulsout séparés de 15 ms.

Les pauses sont sans effet sur le multitâche.

Je ne pense pas que le problème de simultanéïté avec des mouvement ralentis dans les deux sens soit soluble sans le multitache.
Sinon, la solution est d'utiliser un 08M2 par servo.
 

dje8269

Senior Member
Les pauses sont sans effet sur le multitâche.
est ce que le multi tache a des effets sur les pauses ?

Je ne pense pas que le problème de simultanéité avec des mouvement ralentis dans les deux sens soit soluble sans le multitache.
effectivement cela risque d'être plus que délicat, voir impossible , car quid si un inter s'arrête quand les deux bougent . Mais comme j'aime bien les truc biscornus je vais y réfléchir lol.
 

dje8269

Senior Member
Je ne pourrais pas finir ce soir a mon avis le nouveau programme. surtout que j'écoute notre super président en même temps, alors j'avance pas vite lol .
 

ludo0404

Senior Member
J'ecoute aussi mais d'une seule oreille (c'est largement sufisant lol)

T'inquiette pas rien de pressé. C'est deja super sympa de prendre du temps pour ca ! :D
 

dje8269

Senior Member
Petite questions en passant ;

Dans ton cahier des charges tu marque

inter c3 et c4 ouvert = les servo en c1 et c2 position 0 (150)
est ce que les deux servos au demarrage doivent avoir cette position ? 150 correspond au milieu ! . car dans l'ancien programme au démarrage les deux servos n'ont pas la même position .
 

ludo0404

Senior Member
en effet dans le premier programme ils ne sont pas tous les deux à 150 mais finalement il sera plus simple pour la prod d'avoir des servo à la même position.

Donc l'un se déplacera à 175 et l'autre à 125....
 

dje8269

Senior Member
Encore une question les servo doivent ils être ralentis, dans les deux sens ?

je veux dire : quand ils partent en position ( autre que celle d'origine) et quand il reviennent ?

Car je me rends compte que dans le premier programme , il se mettend en position "doucement" mais si l'inter est re appuyé entre temps ils reviennent vite à leur position .
Et niveau programe c'est pas la même chose ;

Que desire tu ?
 

ludo0404

Senior Member
Avec mon programme ils reviennent à 0 doucement (dans la réalité en tout cas) et va en position 1 doucement même si le deuxieme inter c'est fermé.
le servo 2 attends que le servo 1 soit à 0 pour aller en position 1

pourquoi le programme dit l'inverse ?

Deux cas de figure possible pour le résultat recherché :

1) - l'inter du servo 1 se ferme on fait aller le servo doucement en position 1
- l'inter du servo1 s'ouvre = le servo1 revient doucement à sa postion 0
- l'inter du deuxieme servo s'ouvre pendant la course du 1er servo = on fait revenir le servo 1 doucement et en même temps on fait aller le servo 2 doucement jusqu'en position 1

ou


2) - l'inter du servo 1 se ferme on fait aller le servo doucement en position 1
- l'inter du servo1 s'ouvre = le servo1 revient doucement à sa postion 0
- l'inter du deuxieme servo s'ouvre pendant la course du 1er servo = on fait revenir le servo 1 rapidement à 0 et une fois à 0 on fait aller le servo 2 en position 1 rapidement

et vis et vers ca pour le servo 2....

C'est compréhensible ce que je dit ?
 

ludo0404

Senior Member
le top c'est la solution 1)

que le servo 1 revienne en 0 doucement en mm temps que le servo 2 va en position 1 doucement....
 

dje8269

Senior Member
C'est compréhensible ce que je dit ?
Je bloque sur plusieurs points ;

le premier: est ce vraiment nécessaire que les deux servos bougent en même temps ; je ne cherche pas a simplifier le travail, mais le servo prend sa position relativement vite ( même quand on dit doucement) genre 1/2 secondes non ? donc le fait que l'autre se mettent en position en même temps fais gagner juste une demi seconde environ .

Après y'a pas de problème c'est juste pour être certains que ce soit utile ?

Le deuxième : les servos devront-il toujours être en opposition de phase ? je veux dire par la, quand l'un se ferme l'autre peut s'ouvrir ,et quand l'un s'ouvre l'autre peut se fermer . Ou alors i lse peut ( physiquement parlant) que les deux se ferment en même temps ou s'ouvre en meme temps ? Niveau programme et organisation ca change pas mal de truc .
 

dje8269

Senior Member
Le probléme est delicat ; car quand un servo va en position et qu'on doit le faire revenir , et en meme temps faire aller en position l'autre ;

car si le déclenchement ce passe au milieu le premier servo doit revenir de la moitié de se position et le deuxième doit atteindre entièrement sa position ; ca risque d'être chaud les marrons
 

ludo0404

Senior Member
le premier: est ce vraiment nécessaire que les deux servos bougent en même temps ; je ne cherche pas a simplifier le travail, mais le servo prend sa position relativement vite ( même quand on dit doucement) genre 1/2 secondes non ? donc le fait que l'autre se mettent en position en même temps fais gagner juste une demi seconde environ
Après y'a pas de problème c'est juste pour être certains que ce soit utile ?
En moto à vitesse soutenu 1/2 seconde c'est énorme... C'est une bonne amélioration du programme en effet mais si on y arriva pas, ce n'est pas non plus primordial (du moins pour cette première version)

Le deuxième : les servos devront-il toujours être en opposition de phase ? je veux dire par la, quand l'un se ferme l'autre peut s'ouvrir ,et quand l'un s'ouvre l'autre peut se fermer . Ou alors i lse peut ( physiquement parlant) que les deux se ferment en même temps ou s'ouvre en meme temps ? Niveau programme et organisation ca change pas mal de truc .
Physiquement et techniquement impossible que les deux inter soient fermés en mm temps... c'est soit l'un soit l'autre. C'est ca que tu demandais ?


Autre chose :

Si l'inter se ferme pas assez longtemps pour faire aller le servo à sa position final, il faut que ce servo revienne à 0 dés l'ouverture de l'inter, il ne faut pas qu'il aille jusqu'en position 1...
 

dje8269

Senior Member
Physiquement et techniquement impossible que les deux inter soient fermés en mm temps... c'est soit l'un soit l'autre.
Pas les deux inter, mais les deux servos . c'est dur a expliquer .

par exemple y'a-t-il une configuration ou les deux servo reviennent a leur position d'origine en même temps ? cela implique qu'il sont dans leur position active en même temps et je crois que c'est pas possible, vu que les deux inter ne peuvent pas etre actif en même temps .

C'est un truc de fou !
 

ludo0404

Senior Member
lol

Je comprends mieux.... Alors non en effet, on ne demandera pas au deux servo de revenir à 0 en même temps !
 

dje8269

Senior Member
Est ce qu'en pratique ca donne ca ;

valeur initiale des servo les phares eclairent en face . si on se penche a droite ; le phare de gauche eclair toujours tout droit , mais le phare de droite lui tourne a droite pour eclairer le virage .
Pareil a gauche . on se penche a gauche , le phare de droite éclaire tout droite et le phare de gauche tourne a gauche pour éclairer le virage a gauche .

Maintenant dans un virage gauche/droite rapide ;

disons premier virage a droite ; donc le phare de gauche éclaire tout droit et celui de droite éclaire a droite ; on passe brutalement sur la gauche . Le phare gauche tourne a gauche pour eclairer le virage, et le phare droit reviens de sa position a droite pour éclairer tout droit! ;

J'ai bon dans le raisonnement !
 

dje8269

Senior Member
C'est exactement ca !
Ok, je suis content car la , maintenant je sais a quoi m'en tenir, et je vois ce qu'il faut faire

je pense que c'est faisable , mais long à écrire, car il faudrait un sous programme par combinaison a mon avis .
On pourras peut être simplifier ca par la suite;
 

dje8269

Senior Member
Je touche au but !!!! je finirais certainement demain.

très honnêtement c'est du lourd la ! .

le respect de toutes les conditions devraient être respectées .rien ne m'échappe.

Car plusieurs cas de figure arrive je suppose ; comme des virages rapides

gauche/droite /gauche ;
ou droite/centre (on remet la moto tout droit) / droite . deux virages droites serrés avec u n rapide retour à plat .

Mais avec 6 routines je devrais réussir a le faire grâce à un jeu de conditions bien biscornu, mais prenant tout les possibilités en compte.

- le phare droit tourne a droite
- le phare gauche tourne a gauche
- le phare droit reviens au centre
- le phare gauche reviens au centre
- le phare droit reviens au centre et le phare gauche tourne a gauche
- le phare gauche reviens au centre et le phare droit tourne a droite .

Allez bonne nuit
 

dje8269

Senior Member
Grgrgrgrgrgrgrgrgr

Erreur :

Alors non en effet, on ne demandera pas au deux servo de revenir à 0 en même temps !
Et si ..... Lol ; certes c'est pas evident a voir mais c'est possible d'apres mon cahier des charges .

Imaginons la moto faire un droite / gauche rapide .

Virage a droite :
- le phare droit tourne a droite , le phare gauche bouge pas et éclaire tout droit

Paf virage a gauche :
- Le phare droit reviens au centre , le phare gauche tourne a gauche.

re-par la moto se redresse:
dans cette configuration : si le virage à gauche est extrêmement furtif . on se retrouve avec :
le phare gauche qui a commencé a tourné a gauche sans finir sa course , et le faire droit qui était en train de revenir au centre et qui n'as pas encore finis .

Il faut donc que les deux reviennent au centre en même temps . certes pas longtemps , mais si on veut un programme bien fait, sans bug, il faut le prendre en compte . C'est ce que j'ai fais pas de soucis lol .

Ps : j'ai bientôt finis. mais tu va galérer pour les essais ; car y'en as des configurations
 

ludo0404

Senior Member
lol

J'habite au pied de la montagne, je vais pouvoir bien tester ca !

Punaise ca en fait des parametres à prendre en compte.

En tout cas si c'est possible, c'est magique !
 

BESQUEUT

Senior Member
Pourquo ic'est pas directement le picaxe qui interprete ?
donc c'est un souhait de vouloir que les servos fonctionne en tout ou rien ? Si la moto se penche que de moitié , les servo tourneront quand même a fond ? c'est bien ca ?
Je reste dubitatif sur le fonctionnement de cette carte qui interprète seulement un gyromètre (et non pas un gyroscope...)
Néanmoins, il semble que les essais soient satisfaisants. Si ce n'est pas top secret, j'aimerais bien connaitre l'algorithme utilisé.
Si j'ai bien compris, il y a 3 cas possibles :
2 inters ouverts : moto verticale
1 inter fermé : moto penchée d'un coté
Le cas 2 inters fermés est interdit par programme.
C'est bien ça ?
Pour la mode "proportionnel", est-il prévu d'intégrer l'analyse au Picaxe ou bien de modifier la carte d'analyse de l'inclinaison pour donner un signal proportionnel ?
 

BESQUEUT

Senior Member
Et si !

Imaginons la moto faire un droite / gauche rapide .

Virage a droite :
- le phare droit tourne a droite , le phare gauche bouge pas et éclaire tout droit

Paf virage a gauche :
- Le phare droit reviens au centre , le phare gauche tourne a gauche.
Déjà à ce stade on fait deux choses en même temps.
Inutile de traiter les cas avec 4 positions (donc 3 changements de cap) : ils peuvent tous se décomposer en une succession de cas avec 2 changements de cap, ce qui est bien assez complexe.
 

dje8269

Senior Member
Le cas 2 inters fermés est interdit par programme.
a mon avis, les deux inter fermés sont interdis par des lois physiques plutot que par programme , la moto ne peut pas penché des deux coté en même temps .
 

ludo0404

Senior Member
Je reste dubitatif sur le fonctionnement de cette carte qui interprète seulement un gyromètre (et non pas un gyroscope...)
Gyro 3 axes, c'est tout ce que je sais

Néanmoins, il semble que les essais soient satisfaisants. Si ce n'est pas top secret, j'aimerais bien connaitre l'algorithme utilisé.
Dans les essais, ca fonctionne hyper bien même....
L'algorythme est la resultante de 1 an d'enregistrement sur divers parcours, avec divers moto, je ne connais pas moi même cette algo détenu par un autre ingé....

Si j'ai bien compris, il y a 3 cas possibles :
2 inters ouverts : moto verticale
1 inter fermé : moto penchée d'un coté
Le cas 2 inters fermés est interdit par programme.
C'est bien ça ?
oui c'est ca....
 

BESQUEUT

Senior Member
Mais avec 6 routines je devrais réussir a le faire grâce à un jeu de conditions bien biscornu, mais prenant tout les possibilités en compte.

- le phare droit tourne a droite
- le phare gauche tourne a gauche
- le phare droit reviens au centre
- le phare gauche reviens au centre
- le phare droit reviens au centre et le phare gauche tourne a gauche
- le phare gauche reviens au centre et le phare droit tourne a droite .
Il y a 9 cas théoriques, dont 1 est trivial (le premier) et un impossible (le 5) :
___Gauche___________Droit
1) Immobile_________Immobile
2) Va à gauche_______Immobile
3) Revient au Centre__Immobile

4) Immobile_________Va à droite
5) Va à gauche_______Va à droite
6) Revient au Centre__Va à droite


7) Immobile_________Revient au Centre
8) Va à gauche_______Revient au Centre
9) Revient au Centre__Revient au Centre

Il vous manque donc le cas N°9, et le compte est bon.
 
Last edited:

PieM

Senior Member
ludo said:
2) - l'inter du servo 1 se ferme on fait aller le servo doucement en position 1
- l'inter du servo1 s'ouvre = le servo1 revient doucement à sa postion 0
- l'inter du deuxieme servo s'ouvre pendant la course du 1er servo = on fait revenir le servo 1 rapidement à 0 et une fois à 0 on fait aller le servo 2 en position 1 rapidement

et vis et vers ca pour le servo 2....
ça c'est plus facile .
Ce qu'il faut bien comprendre, c'est qu'il n'est pas possible d'avoir deux routines servo avec ralentissement dans la même boucle.
et comme deux boucles ne peuvent être simultanées sauf avec une tache annexe non compatible avec la commande servo...

Avoir un servo qui revient rapidement simultanément à l'autre qui va en position lentement, par contre, ne pose pas de problème.

l'inter du deuxieme servo s'ouvre pendant la course du 1er servo = on fait revenir le servo 1 ra
je pense qu'il faut lire : l'inter du deuxieme servo se ferme ...
 

ludo0404

Senior Member
Avoir un servo qui revient rapidement simultanément à l'autre qui va en position lentement, par contre, ne pose pas de problème.
On peut essayer comme ca alors, ca fait parti des possibilités que j'envisageais....

Par contre :

inter 1 se ferme = servo 1 va en position 1,
inter 1 s'ouvre = servo un reviens lentement si inter 2 ne c'est pas fermé....
 

BESQUEUT

Senior Member
a mon avis, les deux inter fermés sont interdis par des lois physiques plutot que par programme , la moto ne peut pas penché des deux coté en même temps .
Si j'ai bien compris, les "inters" sont commandés par la carte. J'espère que ce sont des transistors et non des relais...
Il faut être certain que le logiciel ne peut fermer les deux inters en même temps (cause physique : secousses, changements très rapides, ou bug...)
Sans quoi on se retrouve coté Picaxe avec une situation non gérée...
 

ludo0404

Senior Member
Si j'ai bien compris, les "inters" sont commandés par la carte. J'espère que ce sont des transistors et non des relais...
Il faut être certain que le logiciel ne peut fermer les deux inters en même temps (cause physique : secousses, changements très rapides, ou bug...)
Sans quoi on se retrouve coté Picaxe avec une situation non gérée...
Non pas de relais

j'ai même secoué la carte de droite à gauche, les led qui indique que le changement de direction est capté ne s'allume jamais en même temps....
Ca c'est ancré dans le code... Aucun risque de ce coté la
 

BESQUEUT

Senior Member
2) - l'inter du servo 1 se ferme on fait aller le servo doucement en position 1
- l'inter du servo1 s'ouvre = le servo1 revient doucement à sa postion 0
- l'inter du deuxieme servo s'ouvre pendant la course du 1er servo = on fait revenir le servo 1 rapidement à 0 et une fois à 0 on fait aller le servo 2 en position 1 rapidement
D'après ce que vient de dire PieM, on peut faire deux mouvements rapides en même temps.
donc, on n'est pas obligé d'attendre que le servo 1 soit à zéro pour démarrer le servo 2.

Sinon, il faut synthétiser les commandes servos et là tout devient possible.
 
Top