Mon objectif est de déterminer à quelle fréquence on doit rafraîchir un servo pour que le pilote ait le sentiment d'une bonne "réactivité".
Si vous posez la question à un pilote, il répondra probablement "la plus grande possible"
ce qui n'est pas une réponse, l'objectif étant en particulier de limiter l'usage de la bande de fréquence (duty cycle légal)
accessoirement de limiter l'échauffement de l'émetteur, et en tout état de cause de donner des limites à l'optimisation des programmes d'émission et de réception.
Dans ce genre de situation où les a-priori sont légions et la subjectivité la règle, seule la méthode des tests en double aveugle (double insu) permet d'obtenir des chiffres fiables.
Pour ceux que ça intéresse, voir par exemple stradivarius-la-fin-dun-mythe
et également le-mythe-stradivarius-ecorne
Si vous disposez d'un servo, d'un potentiomètre, d'un bouton poussoir et bien sur d'un Picaxe, vous pouvez faire le test vous-même et publier vos résultats.
Ce n'est pas une compétition ; simplement une mesure objective d'un sentiment subjectif.
Ouvrer le terminal et lancez le programme.
Le programme commence par un étalonnage pendant lequel vous pouvez mesurer au fréquencemètre ou à l'oscillo chacune des 8 fréquences utilisées (entre 1Hz et 60 hz environ)
Appuyez sur le bouton pour passer à la fréquence suivante.
Puis le programme vous propose 32 tests, chacun avec une fréquence tirée au hasard.
Notez sur un papier ou dans un tableur le N° du test et votre sentiment sur la réactivité, entre 0 et 7.
Appuyez sur le bouton pour passer au test suivant.
Après le 32 ième test, le programme vous révélera les 32 fréquences utilisées, à ajouter dans une 3 ième colonne de votre tableau.
Merci de publier les 3 colonnes pour analyse.
Pour ma part :
Les valeurs 0,1 et 2 (1, 2 et 4 hz) sont assez facile à repérer.
A 3 (8 hz) c'est un peu "mou" mais ça me semble utilisable.
Au delà (4,5, 6 et 7), impossible de distinguer les différentes fréquences : c'est réactif ; point.
A noter que le Picaxe est incapable de gérer simultanément un READADC et la commande SERVO : le servo tremble épouvantablement, même avec une alim séparée.
le problème est connu et documenté sur le forum anglais, sur lequel j'ai trouvé la solution : utiliser pulsout au lieu de servo.
A noter également que le READADC n'est pas la seule commande incompatible avec SERVO. Ça explique différents cas de tremblote du servo que j'ai pu voir dans différents threads...
Notons pour finir, que la commande RANDOM ne donne pas une séquence aléatoire mais une succession de nombres a peu près doubles du précédent. Donc quand on commence à zéro, et surtout quand on atteint zéro ou une valeur petite, on tombe sur une succession de nombres petits...
Des précautions très spécifiques doivent être prises pour obtenir une séquence satisfaisante.
Si vous posez la question à un pilote, il répondra probablement "la plus grande possible"
ce qui n'est pas une réponse, l'objectif étant en particulier de limiter l'usage de la bande de fréquence (duty cycle légal)
accessoirement de limiter l'échauffement de l'émetteur, et en tout état de cause de donner des limites à l'optimisation des programmes d'émission et de réception.
Dans ce genre de situation où les a-priori sont légions et la subjectivité la règle, seule la méthode des tests en double aveugle (double insu) permet d'obtenir des chiffres fiables.
Pour ceux que ça intéresse, voir par exemple stradivarius-la-fin-dun-mythe
et également le-mythe-stradivarius-ecorne
Si vous disposez d'un servo, d'un potentiomètre, d'un bouton poussoir et bien sur d'un Picaxe, vous pouvez faire le test vous-même et publier vos résultats.
Ce n'est pas une compétition ; simplement une mesure objective d'un sentiment subjectif.
Code:
' Reactivite
#PICAXE 40X2
#no_table
symbol Hasard=w27
symbol Position = W26 'Pulse width
symbol I=b1
symbol J=b2
symbol Freq=b3
symbol Angle=b4
symbol Nmax=b5
symbol N=b6
symbol Bouton=pinA.7
symbol Potar=D.1
symbol Aiguille=0
symbol Oscillo=b.7
setfreq m16
Hasard=31416
gosub etalonnage
do
sertxd(13,10,"Pour commencer, appuyer sur le bouton",13,10)
do
random hasard
loop while Bouton = 1
do
loop while Bouton=0
ptr=10
for i=1 to 32
random hasard
Freq=hasard//8
@ptrinc=freq
gosub Pilot2
next i
sertxd(13,10,"Reglages :",13,10)
ptr=10
for i=1 to 32
sertxd("Regl ",#i,":",#@ptrinc,13,10)
next i
loop
Pilot2:
sertxd("Test ",#i,13,10)
select case Freq
case 7: Nmax=0
case 6: Nmax=1 ' 64 hz
case 5: Nmax=2 ' 32 hz
case 4: Nmax=4 ' 16 hz
case 3: Nmax=8 ' 8 hz
case 2: Nmax=16 ' 4 hz
case 1: Nmax=32 ' 2 hz
case 0: Nmax=64 ' 1 hz
endselect
position=600
N=255
do
inc N
if N=Nmax then
N=255
readadc D.1,angle
position =angle*7/3+310
pulsout Oscillo,1000
endif
pulsout B.0,Position
pause 25
loop while Bouton = 1
do
loop while Bouton=0
Return
Pilotage:
servo Aiguille,150
sertxd("Test ",#i,13,10)
do
readadc D.1,angle
if angle>75 and angle<225 then
servo Aiguille,Angle
endif
select case Freq
case 7 ' 350 hz
case 6: pause 25 ' 64 hz
case 5: pause 55 ' 32 hz
case 4: pause 117 ' 16 hz
case 3: pause 240 ' 8 hz
case 2: pause 480 ' 4 hz
case 1: pause 980 ' 2 hz
case 0: pause 1980 ' 1 hz
endselect
pulsout Oscillo,1000
loop while Bouton = 1
do
loop while Bouton=0
return
Etalonnage:
for Freq=0 to 7
sertxd("Freq=",#Freq,13,10)
gosub Pilot2
next Freq
RETURN
Le programme commence par un étalonnage pendant lequel vous pouvez mesurer au fréquencemètre ou à l'oscillo chacune des 8 fréquences utilisées (entre 1Hz et 60 hz environ)
Appuyez sur le bouton pour passer à la fréquence suivante.
Puis le programme vous propose 32 tests, chacun avec une fréquence tirée au hasard.
Notez sur un papier ou dans un tableur le N° du test et votre sentiment sur la réactivité, entre 0 et 7.
Appuyez sur le bouton pour passer au test suivant.
Après le 32 ième test, le programme vous révélera les 32 fréquences utilisées, à ajouter dans une 3 ième colonne de votre tableau.
Merci de publier les 3 colonnes pour analyse.
Pour ma part :
Les valeurs 0,1 et 2 (1, 2 et 4 hz) sont assez facile à repérer.
A 3 (8 hz) c'est un peu "mou" mais ça me semble utilisable.
Au delà (4,5, 6 et 7), impossible de distinguer les différentes fréquences : c'est réactif ; point.
A noter que le Picaxe est incapable de gérer simultanément un READADC et la commande SERVO : le servo tremble épouvantablement, même avec une alim séparée.
le problème est connu et documenté sur le forum anglais, sur lequel j'ai trouvé la solution : utiliser pulsout au lieu de servo.
A noter également que le READADC n'est pas la seule commande incompatible avec SERVO. Ça explique différents cas de tremblote du servo que j'ai pu voir dans différents threads...
Notons pour finir, que la commande RANDOM ne donne pas une séquence aléatoire mais une succession de nombres a peu près doubles du précédent. Donc quand on commence à zéro, et surtout quand on atteint zéro ou une valeur petite, on tombe sur une succession de nombres petits...
Des précautions très spécifiques doivent être prises pour obtenir une séquence satisfaisante.
Last edited: