Driver de servo, contrôler par un Picaxe

dje8269

Senior Member
Bonjour à tous ,

Pour ceux qui suivent mes aventures . Je finalise la télécommande qui j'espere cette fois seras bonne pour les tests ;

En attendant, je reflechie et j'avance un peu sur la suite du projet ,et notamment sur la création de ma plaquette d'essai pour tester cette fameuse télécommande ;

Un point clef, se situe dans le pilotage des servo , avec un nouveau composant dédié a cela : le SD20

Actuellement sur ma plaquette de test j'ai mis le recepteur de télécommande, un 14M2 en maitre pour recuperer le RFin et ecrire sur l"esclave, un 20X2 en esclave pour la liaison i2C et envoyer les ordres . j'ai sur ma plaquette AXE091 trois led qui me serviront pour voir le focntionnement de la télécommande.

Je souhaite rajouté le SD20 sur cette plaquette , pour comprendre le focntionnement de celui-ci ; je raccorderai un servo pour les tests .

Mais avant tout j'ai quelques questions metaphysiques comme d'habitude .

Par exemple . une liaison I2C peut elle recevoir de µC et envoyer des infos sur un Autre ?

Dans mon cas : le 20X2 recoit les ordres par le 14M2 reception , mais il doit ( le 20X2) envoyé des ordres au SD20 en I2C aussi . En hard est cequ'un branchement comme cela est bon ?

Je sais pas si les R de 4.7K sont de nouveau nécessaire ?

J'ai respecté les note de la doc , le condo de decouplage sur l'alim , le mise a Vcc de servo 5 par une pullup de 4.7K.

Les trois diodes sont deja sur la plaquette d'essai d'origine( AXE 091) ; Vraiment super pratique cette plaquette , je la conseille a tout le monde.

Merci à vous

Plaque Rx d'essai.png
 

dje8269

Senior Member
Bon, en faisant mes branchements sur la plaque , je me suis posé encore des questions .

deja je pense que le 14M2 doit communiquer directement avec le SD20 et non en passant par le 20X2 . D'autant plus que les commandes PWM sont les priorités etant donné que c'est elle qui pilote le VHL .
Le 20X2 ne devras recevoir que les TOR a mon avis .

C'est donc l'adressage qui changeras . Donc le 20X2 n'as pas a avoir de relation avec le SD20 .
Je pense aussi qu'une seule rampe de pull up pour l'I2C est nécessaire ? mais j'ai un doute
 

MGU

Senior Member
Bonjour,

En fait, la même paire de résistances sert à tous les modules connectés sur le bus.

MM
 

dje8269

Senior Member
Bonjour Michel ,

Ok c'etait bien mon doute ! .

Donv quelques choses dans ce genre devrait le faire je pense. Un peu serré sur la plaque d'essai du AXE091 mais ca rentre avec un peu de bidouillage. Ainsi ce soir je vais bien pouvoir testé cette télécomande qui est finie !!!!

Edit du schéma ( rajout de l'oscillateur):

Sans titre.jpg
 

Attachments

Last edited:

BESQUEUT

Senior Member
Par exemple . une liaison I2C peut elle recevoir de µC et envoyer des infos sur un Autre ?
A ma connaissance, pas simultanément (genre Background I2C receive)
Selon la doc, ça peut marcher, mais ça peut aussi merder. C'est aussi ce que j'ai constaté en envoyant des paquets numérotés. De temps en temps, certains sont perdus...
Maintenant, c'est peut-être mon programme qui n'était pas bon...
Soit vous acceptez de perdre des paquets de temps en temps et le protocole est conçu en conséquence,
Soit ça doit être très fiable, et je ne peux que vous recommander de tester ça rigoureusement, avec des paquets numérotés.
 

PieM

Senior Member
Il m'avait semblé que certaines fonctions de sécurité, donc d'action sur des servos étaient faites par le 20X2 !?
Pour revenir à l'I2C, par principe, il ne peut y avoir qu'un seul maître actif à un instant. Même en supposant que 2 maîtres émettent les conditions de start simultanément pour l'accès au réseau, le conflit détecté fait que l'un des maîtres va se taire.
Concernant le SD 20 je doute qu'il fonctionne sans oscillateur! (résonateur ou Xtal + condos)
 

dje8269

Senior Member
ce thread ne parle que de la partie du Sd20 que je ne connais pas , même si tout va se recouper en effet .

Sur ma plaquette j'ai mis un 20X2 aussi , pour le coté esclave de la chose . mais peut être qu'il en sera ainsi sur le VHL aussi finalement tout dépendras du nombre de pin utilisées .

Concernant le SD 20 je doute qu'il fonctionne sans oscillateur! (résonateur ou Xtal + condos)
Il est même livré avec, mais je l'avais pas dans mes données , je viens de le rajouté . il s'agit d'un composant a trois pattes de 8Mhz .

Pour revenir à l'I2C, par principe, il ne peut y avoir qu'un seul maître actif à un instant. Même en supposant que 2 maîtres émettent les conditions de start simultanément pour l'accès au réseau, le conflit détecté fait que l'un des maîtres va se taire.
Merci pour ces précisions . Je pense qu'il n'y auras qu'un seul maitre pour le coup . On devine doucement l'architecture du VHL avec ma plaquette de test .......

le 14M2 en réception en Maitre . le SD20 en esclave gerant les 6 servos et le 20X2 en esclave pour gérer la sécurité de perte de com, les TOR et tout le reste ... .
 

PieM

Senior Member
On devine doucement l'architecture du VHL avec ma plaquette de test .......

le 14M2 en réception en Maitre . le SD20 en esclave gerant les 6 servos et le 20X2 en esclave pour gérer la sécurité de perte de com, les TOR et tout le reste ... .
Et la perte de com n'a pas de conséquence sur les servos ?
 

dje8269

Senior Member
Et la perte de com n'a pas de conséquence sur les servos ?
Ah ben si !!! Au minimum il doit arrêter le moteur ????!!!!

Mais la on dérive doucement sur le VHL ..... En tout cas ta remarque est trés judicieuse . et va compliqué un peu le schimlblic . Je pourrais éventuellement gère le moteur par le 20X2 plutot que le SD20 , mais bon c'est dommage !!! . Ou alors le 20X2 devrait pouvoir donne des ordres au SD20 aussi .... le 14M2 lui pourra rine faire vu qu'il sera bloqué par le Rfin . A cogiter !
 

PieM

Senior Member
Ah ben si !!! Au minimum il doit arrêter le moteur ????!!!!

Mais la on dérive doucement sur le VHL ..... En tout cas ta remarque est trés judicieuse . et va compliqué un peu le schimlblic . Je pourrais éventuellement gère le moteur par le 20X2 plutot que le SD20 , mais bon c'est dommage !!! . Ou alors le 20X2 devrait pouvoir donne des ordres au SD20 aussi .... le 14M2 lui pourra rine faire vu qu'il sera bloqué par le Rfin . A cogiter !

Si c'est dériver de parler de l'architecture de ton truc, je n'y comprends rien ! de quoi parle t-on exactement !
Qui a écrit:
je pense que le 14M2 doit communiquer directement avec le SD20 et non en passant par le 20X2 . D'autant plus que les commandes PWM sont les priorités etant donné que c'est elle qui pilote le VHL . Le 20X2 ne devras recevoir que les TOR a mon avis .
Alors tu fais comme tu le penses et basta. De toute façon pour ce que je connais des fonctions et calculs à assurer dans ton "VHL" je ne donne plus mon avis.
 

dje8269

Senior Member
de quoi parle t-on exactement !
Ben je comprends pas trop ta réaction !

j'avais ouvert ce post pour discuter du fonctionnement du SD20 afin de piloter des pwm avec un picaxe , qui aurait pus a servir a plusieurs personnes ;
Car oui je vais l'utilisé sur le VHL, mais je comptais ouvrir un post spécialement pour le VHL, quand la télécommande sera vérifié et au point .

Le schéma que j'ai posté c'est jsute ma plaque d'essai AXE091 que j'ai customisé pour testé la télécommande . sa se rapproche du VHL , et c'est fais exprés .
Qui a écrit:
je pense que le 14M2 doit communiquer directement avec le SD20 et non en passant par le 20X2 . D'autant plus que les commandes PWM sont les priorités étant donné que c'est elle qui pilote le VHL . Le 20X2 ne devras recevoir que les TOR a mon avis .
Oui c'est moi, mais c'était avant ta remarque sur le fait que si le 14M2 est bloqué ( car pas de com) alors qui donnera l'ordre au SD20 ? et effectivement ce ne peux etre que le 20X2 . Mais la on ne parle plus du SD20 mais de l'architecture du VHL . Et peut être que des personnes se moquent du VHL et veulent juste avoir des infos sur le SD20 et le pilotage de 20 pwm max avec !
 

dje8269

Senior Member
Bonjour ,

La télécommande est enfin finie et opérationnelle ; Ce week-end sera donc consacré au pilotage d'un SD20 .

Je l'ai donc placé sur ma plaquette d'essai en configuration proche du but final .

Voici le schéma de ma plaquette ;

Plaque Rx d'essai.jpg

Malheuresement je viens de lire sur la notice la commande de configuration avec plusieurs esclave .

Comme le dirais PieM , c'est marqué noir sur blanc . Mais souvent je comprends mal , voir pas du tout , alors avant de faire une co...rie , je prefere avoir votre avis .

Dans cette configuration le 14M2 est maitre et doit dialoguer avec 2 esclaves un 20X2 et le SD20 . Mais d'apres la notice, a la page hi2cout , il est indiqué que seul des X2 peuvent utilisés la commande newslave ..... si qui m'arrange pas car j'ai mis un 14M2 .

Ma question est :
est-ce qu'il possible de faire deux hi2csetup pour designer deux adresses slaves differents ? dans ce genre ?

Code:
[color=Green]'#################################################################################
'##########################    Programme Principal    ############################  
'#################################################################################[/color]
[color=Blue]do

RFin C.0[/color][color=Black],[/color][color=Purple]b0[/color][color=Black],[/color][color=Purple]b1[/color][color=Black],[/color][color=Purple]b2[/color][color=Black],[/color][color=Purple]b3[/color][color=Black],[/color][color=Purple]b4[/color][color=Black],[/color][color=Purple]b5[/color][color=Black],[/color][color=Purple]b6[/color][color=Black],[/color][color=Purple]b7          [/color][color=Green]' Enregistre les donn�es du RX[/color]

[color=Blue]hi2csetup i2cmaster[/color][color=Black], [/color][color=Navy]%10100000[/color][color=Black], [/color][color=Blue]i2cslow_4[/color][color=Black], [/color][color=Blue]i2cbyte    [/color][color=Green]' met le 14M2 en mode maitre avec slave %10100000[/color]
[color=Blue]hi2cout [/color][color=Navy]0[/color][color=Black],[/color][color=Blue]([/color][color=Purple]b0[/color][color=Black],[/color][color=Purple]b1[/color][color=Blue]) 

hi2csetup i2cmaster[/color][color=Black], [/color][color=Navy]%11000010[/color][color=Black], [/color][color=Blue]i2cslow_4[/color][color=Black], [/color][color=Blue]i2cbyte    [/color][color=Green]' met le 14M2 en mode maitre avec slave %11000010[/color]
[color=Blue]hi2cout [/color][color=Navy]4[/color][color=Black],[/color][color=Blue]([/color][color=Purple]b3[/color][color=Black],[/color][color=Purple]b4[/color][color=Black],[/color][color=Purple]b5[/color][color=Black],[/color][color=Purple]b6[/color][color=Black],[/color][color=Purple]b7[/color][color=Blue])    

loop[/color]
Si vous me confirmez que c'est pas possible et étant donné que je dois avoir un X2 pour dialoguer avec 2 esclaves , et en plus avoir la commande Rfin , je dois forcement passé par un 28X2 ? ( je vais en amener un a la maison pour ce week end au cas ou lol)
 

dje8269

Senior Member
Oui c'est possible.
Merci bien . J'ai bien fais de poser la question , car j'etais persuadé que ça n'allait pas être possible, au vu de la notice . Bon alors nickel je continue avec mon 14M2.
 

dje8269

Senior Member
Bonjour ,

Je cherche a comprendre le fonctionnement de cette petite bête .

Par exemple avec un programme qui utilise la commande servo et le servo directement branché sur le picaxe . ca fonctionne trés bien . Il avance tout doucement .

Code:
[color=Navy]#picaxe [/color][color=Black]20X2[/color]

[color=Green]'#################################[/color]
[color=Blue]setfreq m8
hi2csetup i2cmaster[/color][color=Black], [/color][color=Navy]%11000010[/color][color=Black], [/color][color=Blue]i2cslow_8[/color][color=Black], [/color][color=Blue]i2cbyte

high C.1
pause [/color][color=Navy]1000[/color]
[color=Blue]low C.1

servo B.0[/color][color=Black],[/color][color=Navy]150[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Navy]150[/color]
[color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color]
[color=Green]'################################# [/color]

[color=Blue]do

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]then[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]+[/color][color=Navy]1 [/color][color=DarkCyan]max [/color][color=Navy]255
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]>=[/color][color=Navy]199 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1[/color][color=Black]: [/color][color=Blue]end if
end if

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]then[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]-[/color][color=Navy]1 [/color][color=DarkCyan]min [/color][color=Navy]0
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]<= [/color][color=Navy]101 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color][color=Black]: [/color][color=Blue]end if
end if


servopos B.0[/color][color=Black],[/color][color=Purple]b0[/color]
[color=Blue]pause [/color][color=Navy]50[/color]

[color=Blue]loop[/color]
Maintenant quand je passe par le SD20 , je voudrais avoir le même effet . je branche donc le servo sur le SD20 a la broche 1 . et je passe pour l'i2C . Malheuresement avec une pause de 50ms , le servo fais n'importe quoi ou presque. je suis obligé d'augmenter le temps de pause , pour qu'il suive les consignes . Je suppose qu'il s'agit d'une relation de vitesse de communication que je n'arrive pas saisir . Si jamais vous avez une idée sur le pourquoi du comment je suis preneur :

Code:
[color=Navy]#picaxe [/color][color=Black]20X2[/color]

[color=Green]'#################################[/color]
[color=Blue]setfreq m8
hi2csetup i2cmaster[/color][color=Black], [/color][color=Navy]%11000010[/color][color=Black], [/color][color=Blue]i2cslow_8[/color][color=Black], [/color][color=Blue]i2cbyte

high C.1
pause [/color][color=Navy]1000[/color]
[color=Blue]low C.1[/color]


[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Navy]150[/color]
[color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color]
[color=Green]'################################# [/color]

[color=Blue]do

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]then[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]+[/color][color=Navy]1 [/color][color=DarkCyan]max [/color][color=Navy]255
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]>=[/color][color=Navy]254 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1[/color][color=Black]: [/color][color=Blue]end if
end if

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]then[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]-[/color][color=Navy]1 [/color][color=DarkCyan]min [/color][color=Navy]0
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]<= [/color][color=Navy]1 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color][color=Black]: [/color][color=Blue]end if
end if


hi2cout [/color][color=Navy]1[/color][color=Black],[/color][color=Blue]([/color][color=Purple]b0[/color][color=Blue])
pause [/color][color=Navy]200[/color]

[color=Blue]loop[/color]
Si vous voulez une vidéo, n'hésitez pas .
 

chimere322

Senior Member
Bonjour dje8269,

Le SD20 doit être configuré. Pour cela il faut modifié ses registres internes à l'aide de son propre IDE qui à son propre compilateur intégré. Pour en savoir PLUS

Sur le site de Selectronic: Le protocole est le même qu’une mémoire 24C02. Si ça peux aider...
 
Last edited:

dje8269

Senior Member
Le SD20 doit être configuré.
En fait , d'après ce que j'ai compris il est déjà configuré en mode standard au démarrage . Le mode standard correspond a un débattement de 1ms a 2ms , suivant une variable de 0 à 255 . Moi ca me va très bien pour les test . disons que le point milieu se situe a 127 .

Avec une pause de 300 ms cela fonctionne bien,ou plutot sans bug disons .
 

PieM

Senior Member
utilise le SD20 en mode fast.

La configuration du SD20, très limitée, se fait par les registres 21,22 et 23 qui servent à definir les limites des servos. Et cela se fait par I2C.
Oopic est un équivalent picaxe avec son langage objet. Rien à voir avec le SD20.
 

dje8269

Senior Member
utilise le SD20 en mode fast.
J'ai essayé , sans grand résultat !!! . J'ai vraiment l'impression qu'il y as une histoire de vitesse . En fait c'est un peu comme si le programme tournait plus vite que le SD20 ce qu iest probable vu qu'il ne fait que ca en test . mais alors la pause devrait palier a ce problème .

Je vais vous faire une vidéo pour bien vous rendre compte. Bien évident j'ai choisi le SD20 car je croyais que c'était l'outil idéal pour piloter 6 servos et éviter de le faire avec des picaxes . simple et pratique .

Allez je file vous faire une vidéo.

PS : j'ai essaye de mettre l'oscillateur dans les deux sens ? aucun changement ! sont il polarisés ?
 

dje8269

Senior Member
Voici un premier test sans pause ;

Code:
[color=Navy]#picaxe [/color][color=Black]20X2[/color]

[color=Green]'#################################[/color]
[color=Blue]setfreq m8
hi2csetup i2cmaster[/color][color=Black], [/color][color=Navy]%11000010[/color][color=Black], [/color][color=Blue]i2cfast_8[/color][color=Black], [/color][color=Blue]i2cbyte

high C.1          [/color][color=Green]' allume une led pour voir si y'as un reset[/color]
[color=Blue]pause [/color][color=Navy]1000[/color]
[color=Blue]low C.1[/color]


[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Navy]126[/color]
[color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color]
[color=Green]'################################# [/color]

[color=Blue]do

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]then      [/color][color=Green]' incremente la position[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]+[/color][color=Navy]1 [/color][color=DarkCyan]max [/color][color=Navy]255
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]>=[/color][color=Navy]250 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1[/color][color=Black]: [/color][color=Blue]end if
end if

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]then      [/color][color=Green]' decremene la position[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]-[/color][color=Navy]1 [/color][color=DarkCyan]min [/color][color=Navy]0
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]<= [/color][color=Navy]5 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color][color=Black]: [/color][color=Blue]end if
end if

hi2cout [/color][color=Navy]17[/color][color=Black],[/color][color=Blue]([/color][color=Purple]b0[/color][color=Blue])    [/color][color=Green]' envoi de l'info au SD20[/color]

[color=Blue]loop[/color]
Un autre test avec pause de 250 entre la MAJ et j'ai augmenté le pas de 5 en 5 pour que ce soit plus visible ;


Code:
[color=Navy]#picaxe [/color][color=Black]20X2[/color]

[color=Green]'#################################[/color]
[color=Blue]setfreq m8
hi2csetup i2cmaster[/color][color=Black], [/color][color=Navy]%11000010[/color][color=Black], [/color][color=Blue]i2cfast_8[/color][color=Black], [/color][color=Blue]i2cbyte

high C.1          [/color][color=Green]' allume une led pour voir si y'as un reset[/color]
[color=Blue]pause [/color][color=Navy]1000[/color]
[color=Blue]low C.1[/color]


[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Navy]126[/color]
[color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color]
[color=Green]'################################# [/color]

[color=Blue]do

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]then      [/color][color=Green]' incremente la position[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]+[/color][color=Navy]5 [/color][color=DarkCyan]max [/color][color=Navy]255
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]>=[/color][color=Navy]250 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1[/color][color=Black]: [/color][color=Blue]end if
end if

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]then      [/color][color=Green]' decremene la position[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]-[/color][color=Navy]5 [/color][color=DarkCyan]min [/color][color=Navy]0
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]<= [/color][color=Navy]5 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color][color=Black]: [/color][color=Blue]end if
end if

pause [/color][color=Navy]250[/color]
[color=Blue]hi2cout [/color][color=Navy]17[/color][color=Black],[/color][color=Blue]([/color][color=Purple]b0[/color][color=Blue])    [/color][color=Green]' envoi de l'info au SD20[/color]

[color=Blue]loop[/color]
Et un autre avec la commande servopos . ca fonctionne impeccable en augmentant le temps de pause on ralentis le servo .

Code:
[color=Navy]#picaxe [/color][color=Black]20X2[/color]

[color=Green]'#################################[/color]
[color=Blue]setfreq m8
hi2csetup i2cmaster[/color][color=Black], [/color][color=Navy]%11000010[/color][color=Black], [/color][color=Blue]i2cfast_8[/color][color=Black], [/color][color=Blue]i2cbyte

high C.1          [/color][color=Green]' allume une led pour voir si y'as un reset[/color]
[color=Blue]pause [/color][color=Navy]1000[/color]
[color=Blue]low C.1
servo B.0[/color][color=Black],[/color][color=Navy]150[/color]

[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Navy]126[/color]
[color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color]
[color=Green]'################################# [/color]

[color=Blue]do

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0 [/color][color=Blue]then      [/color][color=Green]' incremente la position[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]+[/color][color=Navy]5 [/color][color=DarkCyan]max [/color][color=Navy]255
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]>=[/color][color=Navy]199 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1[/color][color=Black]: [/color][color=Blue]end if
end if

If [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]1 [/color][color=Blue]then      [/color][color=Green]' decremene la position[/color]
[color=Purple]b0[/color][color=DarkCyan]=[/color][color=Purple]b0[/color][color=DarkCyan]-[/color][color=Navy]5 [/color][color=DarkCyan]min [/color][color=Navy]0
      [/color][color=Blue]if [/color][color=Purple]b0[/color][color=DarkCyan]<= [/color][color=Navy]101 [/color][color=Blue]then [/color][color=Black]: [/color][color=Purple]b1[/color][color=DarkCyan]=[/color][color=Navy]0[/color][color=Black]: [/color][color=Blue]end if
end if

servopos B.0[/color][color=Black],[/color][color=Purple]b0[/color]
[color=Blue]pause [/color][color=Navy]50[/color]
[color=Blue]loop[/color]
j'ai respecté l'ordre des séquences .

Première , avec SD20 sans pauses , le servo fait n'importe quoi ou presque
deuxième, avec SD20 pauses 250ms , et augmentation du pas a 5, au début tout va bien puis ca bug .
troisième avec le servopos et une pause de 50ms , parfait .....

On voit la led d'alimentation de la plaque scintiller , le résultat est pareil avec une alim séparée pour le servo .

http://www.dailymotion.com/video/x2bxf8z_sans-titre

[video=dailymotion;x2bxf8z]http://www.dailymotion.com/video/x2bxf8z_sans-titre[/video]
 
Last edited:

dje8269

Senior Member
Bon tout comme sur le fofo futura , je fais un petit up .

Mais je vais en //, cherché une issue de secours pour piloter convenablement 6 servos . Car ca ne me convient pas se fonctionnement
 

dje8269

Senior Member
Bonjour à tous ,

Voila pour le retour d'expérience de ce matin . Le SD20 fonctionne a merveille . Il s'agissait de l'alimentation qui ne suivait pas la conso du servo . Le pic apparemment est bien plus sensible que le picaxe , ou je sais pas quoi . Mais en branchant le servo sur une alim stab séparée , impeccable .

J'en ai même mis 4 sur 4 sorties différentes . parfait ;

La fréquence de rafraichissement ainsi que le pas joue énormément sur la conso . passant de 60mA quand le servo va doucement avec une fréquence basse . Quasi 500mA avec un gros pas et une fréquence élevé .

Donc pour résumé , il est important de bien attendre que le servo atteignent sa position avant de lui en donné une autre , si il force , si c'est dans le sens inverse , et il consomme , et il fait s'écrouler l'alim .

Je suis donc satisfait ce matin ; le projet va pouvoir avancé ....... car ce week end c'était au point mort .

de plus le serveur anglais doit avoir des problèmes car c'est dur de se connecter
 

PieM

Senior Member
dje8269 said:
Post 20
On voit la led d'alimentation de la plaque scintiller , le résultat est pareil avec une alim séparée pour le servo .
un autre forum:
et j'ai essayé sur une alim séparée pour le servo la led ne scintille plus , et le résultat reste le même .
:confused: :mad:
sans commentaire.
 

dje8269

Senior Member
Tu as raison,mais j'ai une explication .

en fait ce n'est pas le fait que l'alim soit séparée le problème mais le courant qu'elle peut débiter . et j'avais mis le servo sur alim separée OUI, mais sur piles , Tu sais, celle qui ne peuvent pas fournir beaucoup de courant. et avec des pics de 500mA mes pauvres piles étaient a la ramasse . Comme l'était l'émetteur !!!

PS: je suis en train de faire les test, de récupération vidéo .
 

BESQUEUT

Senior Member
en fait ce n'est pas le fait que l'alim soit séparée le problème mais le courant qu'elle peut débiter . et j'avais mis le servo sur alim separée OUI, mais sur piles , Tu sais, celle qui ne peuvent pas fournir beaucoup de courant. et avec des pics de 500mA mes pauvres piles étaient a la ramasse . Comme l'était l'émetteur !!!
A l'avenir pour éviter de perdre du temps (et d'en faire perdre à d'autres...) je vous suggère d'utiliser systématiquement un petit voltmètre en parallèle à chaque alimentation, et si possible un ampèremètre. On en trouve maintenant à des prix dérisoires et c'est bien utile. Pour mes montages "consommateurs", il m'arrive d'installer à demeure une résistance de 0,1 ohms (voire 0,01) en série sur l'alim. Je peux ainsi mesurer à tout moment le courant sans avoir besoin d'interrompre le circuit.

Autre remarque : quand on recommande l'utilisation d'alimentations séparées c'est en général pour éviter que les perturbations qui remontent d'un consommateur particulièrement "bruyant" ne viennent perturber un autre circuit spécialement "sensible", pas pour augmenter la puissance disponible !
La première chose à faire, AVANT de mettre sous tension, est de s'assurer que l'alimentation unique, ou les alimentations sont d'une tension ET d'une puissance (intensité) suffisantes pour les consommateurs envisagés. Si la consommation n'est pas connue, on commence par la mesurer !

Du coup, comme vous n'êtes plus un débutant, on oublie les fondamentaux, on cherche des subtilités, et on oublie de vérifier les bases. Je dois néanmoins reconnaitre que les symptômes évoqués m'ont immédiatement fait penser à une alim "à la ramasse" comme vous dites. Mais vous avez trouvé la solution tout seul (ce qui conforte votre devise soit dit en passant...)
 
Last edited:

dje8269

Senior Member
re-moi ,

Je rencontre un problème , seul un seul servo tourne. Après vérification hard , le servo fonctionne bien ( je l'ai placé sur une autre sortie du SD-20) . A l'analyseur par contre, je n'ai pas de signal PWM qui arrive sur la broche du servo .
Donc il ne peut pas prendre sa position .

Ma question est la suivante, Est ce qu'il est possible qu'une sortie du SD-20 soit H-S ? et une seule ?
 
Top