Les tests continuent d'etre concluant en RF . Bien sur il se glisse maintenant quelques bug du à mon programme je pense .Mais comme je n'en suis pas sûr, je me tourne vres vous.
Je me focalise aujourd'hui , sur les tests à fond ; afin d'être certains que la communication passe bien et ainsi , pouvoir emmener la voiture à la maison ce week end pour enfin passé à la programmation.
Pour le moment j'en suis rendu la .
test en RF condition réel ( voiture + télécommande ) . Pour faire mes tests , j'ai mis la sonde de l'oscillo sur une sortie du 14M2 de reception comme si je voulais allumer une led mais sans les pauses .
Le Tx et le Rx sont eloignés de 2/3 mètres .Le Rx à son antenne .
Question hard, quand j'émet (CàD que la broche ENable passe à 1), cela allume une led , ainsi je vois quand j'emets. J'ai un BP sur la télécommande branché sur une broche , et un interrupteur à levier branché aussi sur une entrée .
Voici le programme de réception :
Code:
#PICAXE 14M2
'#################################################################################
'########################## Programme Recepteur ############################
'#################################################################################
'######################## Configuration ########################
dirC.0=0 'declare C.0 en entrée DATA
inputtype %0000000100000000 'met la broche C.0 en mode TDS
'######################## Initialisation ########################
setfreq m4
hi2csetup i2cmaster, %10100000, i2cfast_4, i2cbyte ' met le 14M2 en mode maitre
'####################################################################################################
' Programme Principal
'####################################################################################################
do
high B.1
RFin C.0,b0,b1,b2,b3,b4,b5,b6,b7 ' Enregistre les données du RX
hi2cout 0,(b0,b1,b2,b3,b4,b5,b6,b7)
low B.1
loop
La sonde de l'oscillo est branchée sur la broche B.1 . Et j'observe a l'oscillo des pics j'émets courts qui passent a zéro . Quand le RFin est bloqué la courbe reste à l'état haut . Ainsi même éloigné je vois la courbe a l'oscillo, et ainsi je peux savoir si la transmission passe.
A l'émission:
Code:
#PICAXE 20M2
'#################################################################################
'######################## Programme Emetteur V4.0 ###########################
'#################################################################################
'########################## configuration ################################
' B_ pour Broche, c'est le nom ou est branché le composant
' E_ pour Etat, c'est la valeur de la broche
' V_ pour variable, ou est enregistrée l'Etat de la broche
'b0 à b7 pour les infos envoyés
'b8 flag_EN
'b9 V_TOR
symbol B_BP = PinB.5
symbol B_EN = B.6
symbol B_DONNEE = B.7
symbol B_Inter = PinC.1
symbol flag_EN = b8
symbol V_TOR = b9
symbol V_Joystick = W13
dirsB = %11000000 'declare B.7 et B.6 en sortie
'########################## Initialisation ################################
setfreq m4
V_TOR = b0
'#################################################################################
'########################## Programme Principal ############################
'#################################################################################
do
readadc C.3,b1 ' potar Av/ar Vhl/cam
readadc B.0,b3 ' Potar Dr/Ga Vhl
readadc C.7,b5 ' Potar Dr/Ga cam
bit0 = B_Inter ' Activation de l'emetteur Vidéo
bit1= B_BP ' Activation du mouvement camera
V_Joystick = b1+b3+b5 ' Calcul de la position des joysticks
if V_Joystick < 370 or V_Joystick > 380 or V_TOR<> b0 then ' on verifie qu'une commande est appuyée ou u nchangement d'etat d'un TOR
if flag_EN = 0 then ' A chaque nouvelle activation on marque une pause de 80ms pour stabilisé le Tx
high B_EN
pause 80 ' pause de 80ms
flag_EN = 1 ' Met le flag d'activation a 1
end if
V_TOR = b0 ' Sauvegarde des TOR
time = 0 ' remise a zéro du timer
else
if time > 1 then ' Si les commandes sont au PM, pendant plus de 1s on eteind
low B_EN
flag_EN = 0 ' Raz du flag
end if
end if
rfout B_DONNEE,(b0,b1,b2,b3,b4,b5,b6,b7) 'envoi des données par RF
loop
j'observe quelques bugs dans certains conditions. Commençons par la ou tout va bien .
Dés que je touche à peine a une commande joysticks ( je sors de la plage morte), je relâche immédiatement, ca fonctionne à 100%, il y a une émission de 1s , c'est parfait .
Quand je manipule les joysticks longtemps , pas de problème , ça fonctionne aussi dans 100% des cas . A part quelques petit loupés de temps en temps genre une trame de manqué en 30 secondes ; Mais c'est trés minime , et largement acceptable .
Maintenant ca se corse. Mais je pense pas que cela viennent de la transmission radio, car quand je manipule les joysticks ca focntionne parfaitement et tout le temps.
dans 90% des cas que , je bascule par exemple, l'interrupteur a levier ( qui me sert a allumer mon emetteur vidéo), tout ce passe bien , j'ai une detection d'un changement d'etat, et une transmission part pour une seconde. Mais dans le cas contraire, aucune transmission n'est emises, pourtant l'emetteur emet( je le vois grace a la led qui s'allume) mais je ne recois rien (RFin est bloqué) , mon signal reste à l'etat haut. Je pense que cela est dû , à un probléme de timing ; A savoir ou en est le programme quand je bascule l'inter . Car en fait le basculement de l'inter est extremement bref, et peut etre qu'il loupe l'info de changement d'etat, mais alors il ne devrait pas emettre.
Pourtant s'il emet c'est qu'il as vu un changement d'etat alors pourquoi je recois rien ?
Ce cas reste particulier est assez rare , mais pas négligeable . Voyez vous un bug ou un creux dans mon programme qui pourrait faire ce symptome .
Je sais pas si j'ai été super clair ? .
Modif : je précise que ce petit bug était déjà existant avec l'ancienne télécommande, j'avais parfois du mal a eteindre l'emetteur vidéo , il fallait que je me reprenne a deux fois . Ca confirme qu'il ne s'agit probablement pas d'un probléme de liaison RF