Télécommande voiture RC + caméra

dje8269

Senior Member
pour essayer, remplace tes rfout/rfin par des serout serin (sans préambule) avec et sans PAUSE sur TX
Ok , mais j'ai pas tout compris .

A place de rfin et RFout , je met des SEin Serout , qu'est ce que je mets comme message . C'est à dire sans préambule ?

C'est bon comme cela ? ????

Code:
'##########################    Initialisation    ################################	

setfreq m4

for b8 = 0 to 2		'test de reset
high B_EN
pause 100
low B_EN
pause 100
next

'#################################################################################
'##########################    Programme Principal    ############################	
'#################################################################################

do

random w0
random w1
random w2
random w3


Serout B_DONNEE,N2400_4,(#b0,#b1,#b2,#b3,#b4,#b5,#b6,#b7,13)



loop
Et pour le recepteur:
Code:
'####################################################################################################
'					Programme Principal
'####################################################################################################
do

high B.1

Serin C.0,N2400_4,b0,b1,b2,b3,b4,b5,b6,b7		' Enregistre les données du RX

low B.1
pause 100

'sertxd ("b1=",#b1,13,10)

'hi2cout 0,(b0,b1,b2,b3,b4,b5,b6,b7)		' Envoi des données au scratchpad du 20X2 esclave

loop
 
Last edited:

dje8269

Senior Member
Sans pause sur le TX .
Ca fonctionne parfaitement . clignotement rapide et stable .

Avec pause :
ça fonctionne aussi parfaitement . clignotement rapide et un tout petit peu moins stable ; C'est a dire que j'ai l'impression qu'il y as des temps un peu plus longs parfois . je pense que c'est du au pause qui se font en même temps ou en décalés . Mais ca reste ridicule, et presque invisible . Il faut vraiment faire attention .

Résumé avec serin/serout, même sans pause sa fonctionne parfaitement .

Alors docteur ? c'est grave ?

PS : je suis en train d'espérer de voir la fin du tunnel ........
 

PieM

Senior Member
Je pense qu'il y a un gros problème avec RFOUT / RFIN. Si en pratique l'implémentation du codeur décodeur est donnée pour 2400 bauds, en pratique il ne faut pas espérer plus de 60 octets par seconde, semble t-il. RFIN semblerait avoir quelques difficultés à se synchroniser...
En pratique, il faudrait donc essayer d'avoir une fréquence de lecture RFin plus grande que celle de RFout. Ce qui veut dire pas de pauses sur la boucle du RX, et une pause mini sur le TX. Enfin, c'est une supposition qui n'engage que moi.

Donc:
revenir sur RFIN/RFOUT
pas de pause 100 sur RX ou mini pour la led
pause 100 sur TX avec une led pour visualiser l'émission rfout
tester avec des variables aléatoires

si tout fonctionne:

revenir à la liaison UHF
 

dje8269

Senior Member
Ok je pense avoir compris .

Donc je reste en filaire , et je test avec rfin et out . je donne les résultats après mangé .

Je croise les doigts , pour que ce soit ca ! .

A dans une heure environ
 

dje8269

Senior Member
Re voilou ,

Bon je pense qu'on est sur la bonne voix ..... enfin j'espère .

voila ce que j'ai essayé ;

revenir sur RFIN/RFOUT
pas de pause 100 sur RX ou mini pour la led
J'ai mis une mini pause de 30ms pour voir la led clignotée, quand même .


Code:
'####################################################################################################
'					Programme Principal
'####################################################################################################
do

high B.1

RFin C.0,b0,b1,b2,b3,b4,b5,b6,b7		' Enregistre les données du RX

low B.1
pause 30

'sertxd ("b1=",#b1,13,10)

'hi2cout 0,(b0,b1,b2,b3,b4,b5,b6,b7)		' Envoi des données au scratchpad du 20X2 esclave

loop
cote émetteur : Avec une pause de 100ms ca fonctionne impeccable, la led clignote vite , à peine le temps de voir qu'elle s'éteint ( normal avec 30ms d'extinction on est à la limite de la persistance rétinienne)

Code:
'#################################################################################
'##########################    Programme Principal    ############################	
'#################################################################################

do

random w0
random w1
random w2
random w3


rfout B_DONNEE,(b0,b1,b2,b3,b4,b5,b6,b7) 	'envoi des données par RF

pause 100

loop
Je vais testé en diminuant la pause de 100 ms.

Est ce que ça confirme ta théorie PieM ? Car je n'ai pas trop compris le truc de l'implémentation du codage
 

dje8269

Senior Member
Je vais testé en diminuant la pause de 100 ms.
Résultat je pense confirme un peu plus ton explication .

Avec une pause coté TX de 20ms ça déconne . avec une de 25ms ou plus ça marche impeccable ( toujour avec la pause de 30ms en reception) . Il y a donc bien un rapport de synchronisation je pense .

Avant de refaire tous les changements pour remettre en UHF . j'attends ta validation ....... avec impatience
 

PieM

Senior Member
Résultat je pense confirme un peu plus ton explication .

Avec une pause coté TX de 20ms ça déconne . avec une de 25ms ou plus ça marche impeccable ( toujour avec la pause de 30ms en reception) . Il y a donc bien un rapport de synchronisation je pense .

Avant de refaire tous les changements pour remettre en UHF . j'attends ta validation ....... avec impatience
OK! continue...
 

dje8269

Senior Member
Nickel , c'est parti .

Je repasse en UHF , et refais des test , j'espère la voir clignotée rapidement et sans bug ; Je reprends espoir petit à petit
 

jojojo

Senior Member
Ben ...

Suis pas d'accord. RFIN/RFOUT ne doivent JAMAIS poser de problème de synchro !

Par contre, je serais curieux de voir l'allure des signaux à l'oscillo ...

J'ai déjà eu ce genre de soucis. RFIN est TRES sensible à la "propreté du signal". J'avais résolu ça, par l'adjonction de deux portes trigger(4093), en série, en sortie de RX.

A tester, à mon avis.
 

dje8269

Senior Member
Hummmmm...... c'etait trop beau .

En UHF , ca déconne .

j'ai essayé avec differentes pauses sur le TX , allant de aucune pause à 100ms de pause. le clignotement n'est pas très stable des fois avec de grosses pauses .

Mode dégouté "ON"
 

dje8269

Senior Member
Par contre, je serais curieux de voir l'allure des signaux à l'oscillo ...
Zut j'en ai pas . Il faudrait attendre que je retourne au travail pour ca .

J'avais résolu ça, par l'adjonction de deux portes trigger(4093), en série, en sortie de RX.
Re-Zut je peux pas essayé ca à la maison non plus ! .

Âpres, ça me dépasse alors peut être que je vais dire une bêtise (ne m'en tenez pas rigueur hein ...) . Mais je comprends pas un truc .

D'après les tests effectués se serait donc la transmission qui serait mauvaise et/ou la réception qui ne serait pas conforme ou trop rapide .

Mais alors pourquoi ça fonctionne avec des 0 et des 255 . Si le Rfin est sensible il devrait aussi être sensible a ça non ?
 

GM39

Senior Member
Mais alors pourquoi ça fonctionne avec des 0 et des 255
Ces deux séquences ont la particularité de produire un signal périodique une fois codé manchester. C'est le cas également avec $AA et $55 avec une fréquence moitié.
Le spectre est moins large qu'avec une séquence quelconque. Y'aurait-il un problème d'impédance sur les e/s, je n'y crois guère.

Il semble y avoir plusieurs problèmes qui se superposent, regarde à tout hasard dans la doc du RX pour voir s'il y a des préconisations particulières, en attendant d'avoir un oscillo.
 

dje8269

Senior Member
Page 3 de la DS , y'as ecrit ca :

RXD (pin 9)
Digital output from the internal data slicer. The data is true data, i.e. as fed to the transmitter.
Output is “open-collector” format with internal 10kΩ pull-up to Vcc (pin 7).
RXD est la pin ou sorte les données pour aller sur le picaxe . dois je coprendre qu'il faut une resistance de pull up ? car actuellement la broche est relié directement au picaxe sans resistance .
 

PieM

Senior Member
Par contre, je serais curieux de voir l'allure des signaux à l'oscillo ...
Moi je veux bien, mais faudrait expliquer pourquoi on a déjà un problème en filaire !

Merci également de faire les test en UHF en éloignant emetteur et récepteur.

L'entrée RFIN est sur une entrée trigger du picaxe.
 
Last edited:

dje8269

Senior Member
Moi je veux bien, mais faudrait expliquer pourquoi on a déjà un problème en filaire !
+1 sur ce coup

Merci également de faire les test en UHF en éloignant emetteur et récepteur.
Je fais ca tout de suite
En m'eloignant c'est pareil . environ 2/3 metres ( sinon je vois plus la led ) .

Avec $AA a toutes les variables ca deconne aussi
 

GM39

Senior Member
Page 3 de la DS , y'as ecrit ca :



RXD est la pin ou sorte les données pour aller sur le picaxe . dois je coprendre qu'il faut une resistance de pull up ? car actuellement la broche est relié directement au picaxe sans resistance .
Elle est interne
 

dje8269

Senior Member
Oups pardon effectivement internal , j'ai lus external ....... . je sais pas pourquoi . je continu mes investigations sur la DS

L'entrée RFIN est sur une entrée trigger du picaxe.
Oui Oui je l'ai configurée comme tel dans le programme

Code:
'########################  Configuration  ########################

dirC.0=0				'declare C.0 en entrée DATA

inputtype %0000000100000000 	'met la broche C.0 en  mode TDS
Page 5 de la DS, il y a un tableau avec une catégorie que je ne comprend pas trop.

Il s'agit de la partie dynamic timing qui semble intérressante . un copier collé bousille la mise en forme ; je peux pas vous le mettre .

PS : je posséde le RX3A de 10kbps . sur la DS ne pas tenir compte du TX car je possède le TX3H et non le TX3A
 
Last edited:

GM39

Senior Member
Page 5 de la DS, il y a un tableau avec une catégorie que je ne comprend pas trop.

Il s'agit de la partie dynamic timing qui semble intérressante .
Cela correspond au 10-30ms de la doc du TX (page 4)

Tu as essayé les $aa et $55 en attendant ?
 

PieM

Senior Member
la sortie RX digitale étant déjà filtrée, essaye en configurant l'entrée rfin en mode TTL.

@GM39 Les $aa n"ont rien donné ...
il y a bien un pb de timing avec les données sur ce RX...

faudra essayer en mode SEROUT / SERIN pour voir.
 
Last edited:

PieM

Senior Member
J'ai une autre idée de test :
envoyer des 0 pendant les 85ms (ou 100) d'initialisation puis envoyer des valeurs aléatoires
je ne comprends pas: l'initialisation de la transmission est gérée par le codage Manchester....
 

dje8269

Senior Member
Désolé j'ai dus m'absenter quelques heures ;

Donc je reprends ici :

la sortie RX digitale étant déjà filtrée, essaye en configurant l'entrée rfin en mode TTL.
Ça à l'air de fonctionner moins bien, mais rien de bien flagrant . Les pauses ont l'air d'être plus fréquentes .

faudra essayer en mode SEROUT / SERIN pour voir.
Si j'ai bien compris, j'ai effectué le même test que tout à l'heure en filaire . en remplaçant les RFin/out par des SERin/out .
Le résultat était plutôt inattendu je dois l'avoué .

En allumant seulement le RX , la led clignote toute seule très très vite ; je suppose que le récepteur ramasse tout les parasites ?
Quand j'allume le Tx , la led clignote nickel aussi, sans ralentissement ni pauses . Mais bon le résultat est peut être tronqué .

envoyer des 0 pendant les 85ms (ou 100) d'initialisation puis envoyer des valeurs aléatoires
Ca mange pas de pain d'essayer ca aussi c'est le reste n'est pas concluant

Je file vite prendre une douche et je fais le test de GM39
 
Last edited:

dje8269

Senior Member
envoyer des 0 pendant les 85ms (ou 100) d'initialisation puis envoyer des valeurs aléatoires
Je ne sais pas comment faire cela .... ou alors j'ai pas tout compris !! Pourrait tu m'en dire plus !
 

dje8269

Senior Member
Bonjour à tous,

derniére matinée de test possible car je pars en vacances ensuite . Ben oui avec tout le travail faut bien que je me repose lol .

Sinon j'ai fais énormément de test au niveau du timing sans trouvé quelques qui fonctionne a tous les coups ; Mais j'ai l'impression , qu'il y a un espéce de rapport avec le temps ;

En effet avec une pause 30ms a la réception , quand je met une pause 25 ms a l'émission ca fonctionne presque pas mal, disons que les pauses sont moins fréquentes et courtes . quand je met une pause de 50 ms a l'emission , la les pauses sont plus fréquentes et plus longues .

Cela reste qu'une impression car c'est délicat de visualiser cela avec une led qui bat la cadence super vite .

a propos de ca , j'ai mis 30ms de pause a la réception car sinon je ne vois pas la led clignotée , n'auriez vous pas une solution pour diminuer voir supprimer ce temps de pause a la réception, e tvoir lsi le RFin bloque ou non . Surtout que je ne peux pas brancher le cordon de programmation sur le 14M2 réception.
 

GM39

Senior Member
Je ne sais pas comment faire cela .... ou alors j'ai pas tout compris !! Pourrait tu m'en dire plus !
Fais le simplement avec une boucle for, avant le do loop, ça n'a pas besoin d'être bien précis, il suffit que ça dure au moins 100ms
 

dje8269

Senior Member
Ok je viens d'essayer ca :
la led fais quand même des pauses .

C'était bien essayé
Code:
'#################################################################################
'##########################    Programme Principal    ############################	
'#################################################################################

high B_EN

for b8 = 0 to 30
b0=0
b1=0
b2=0
b3=0
b4=0
b5=0
b6=0
b7=0
next

do

random w0
random w1
random w2
random w3

rfout B_DONNEE,(b0,b1,b2,b3,b4,b5,b6,b7) 	'envoi des données par RF

pause 25


loop
 
Last edited:

GM39

Senior Member
non ce n'est pas tout à fait ça

8 octets plus le reste à 2400 ça fait plus de 25ms donc 4 boucles suffisent :
Code:
for b10=0 to 3
  rfout B_DONNEE,(b0,b1,b2,b3,b4,b5,b6,b7)
next b10
les variables sont à 0 à l'init
 

dje8269

Senior Member
@GM39 :
Test effectué , Rien de plus qu'à l'habitude .

Par contre a force de faire des test ...... . je pense que PieM est dans le vrai ; En effet , voila plusieurs fois, qu'a certaines valeurs les datas passent super bien. j'ai fais des tests puis je suis revenu au test que j'avais noté et qui fonctionnait bien . a chaque fois c'est parfais !!! .

Il y a forcement une relation de temps qui rentre en jeu . Je m'explique . j'ai essayé énormément de combinaisons de temps de pause, en émission et en réception . Les tests ont montrés qu'avec un temps de pause de 20ms a la réception( je vois la led seulement scintillé très rapidement). et avec un temps de pause avec le Rfout de 15ms , ca fonctionne parfaitement sans aucun raté ou alors si faible que je peux pas les voir . mais disons que c'est parfait , je peux pas trop chipoter .

Quand je change seulement une seule variable de temps aussi bien au TX au RX ca fonctionne beaucoup moins bien( pauses aléatoires plus ou moins longues). je vous fais une petite vidéo pour essayer de vous montrer mais je suis pas sur que ça se voit bien .

Le problème c'est que je n'arrive pas à trouver pas la relation de ces temps ; car il va falloir que j'ajuste si on est à la milli-secondes pret , suivant le programme .
 

dje8269

Senior Member
je vous fais une petite vidéo pour essayer de vous montrer mais je suis pas sur que ça se voit bien .
Désolé la vidéo ne donne vraiment rien de bon , vous ne verrez pas grand chose . Il faudrait que j'augmente le temps de pause, mais ca va re-déconné .

C'es tquand même bizarre car ca fonctionne vraiment bien avec 20ms pour le Rx et 15 ms pour le TX .
 

GM39

Senior Member
Surtout que je ne peux pas brancher le cordon de programmation sur le 14M2 réception.
Il y a une façon simple de l'ajouter sans modifier ton circuit. Tu intercale un support tulipe sur lequel tu as soudé tous ce qu'il faut.
 

dje8269

Senior Member
Bonsoir à tous,

Je me tourne une fois de plus vers vous , car je suis à la recherche d'une facon de verifié ma liaison radio , plus efficacement qu'avec une led qui clignote . Si c'est faisable bien sur !?

Je pensais utilisé le strachpad ( car ce'st possible de brancher le 20X2 via le cordon) , et une fonction "sertxd" pour l'affichage , car je n'ai pas de led pouvant etre allumée la dessus . Je pensais faire un petit programme par exemple qui incremeterais une variable à chaque reception et l'affiché avec le sertxd , comme ca je verais si y'as des pauses sur l'ecran avec le sertxd .

Pourquoi faire me direz vous ?

En fait avec 15ms de pause en réception et 20 ms en emission de pause ca marche du tonnerre . Le problème c'es qu'en rajoutant le programme des deux cotés , j'aurais perdus ces temps de pause idéal et parfait( car je sais pas si le programme et/ou le Tx et le Rx le prendrons comme une pause ou non . . je souhaiterais donc pouvoir tester ma réception même après avoir injecter mon programme pour voir la "qualité" de la réception .

Pensez vous que c'est jouable, intéressant de penser comme ca , ou une autre piste pour éviter les déconvenues a chaque changement de programme ?
 

dje8269

Senior Member
Bonjour à tous ,

Alors voila , j'ai décidé d'arrivé progressivement au but . Afin de déceler les erreurs éventuelles au fur et à mesure .

je me concentre tout d'abord sur l'émetteur.

Échange des randoms par les readadc . Impeccable , ca fonctionne parfaitement .

Alors j'ai essayé de passer de "setfreq m4" à "setfreqm32" en changeant les temps de pause en fonction (pause de 15ms en 120ms par exemple).
ca ne fonctionne pas . avec "setfreq m32" j'ai essayé de 100ms à 140ms par palier de 5ms . sans succès aucune, ne fonctionne parfaitement .

Je suis donc repassé a "setfreq m4" . tous re-fonctionne parfaitement.

Alors j'ai essayé l'ajout de la fonction Enable du Tx par l'interrupteur . en rajoutant simplement ceci . normalement il ne devrait pas y avoir de problème, sauf si ça me dérègle le temps de pause ;

Code:
do

if B_Inter = 1 then

		high B_EN
		
	else
		Low B_EN
	
end if

readadc C.3,b1
readadc B.3,b3
readadc C.7,b5
readadc B.0,b7

rfout B_DONNEE,(b0,b1,b2,b3,b4,b5,b6,b7) 	'envoi des données par RF

pause 15

loop
Ça fonctionne parfaitement 19/20 . Mais de temps en temps, quand j'enclenche l'inter pour activer le Tx de façon particulière ( ON/OFF/ON très vite je l'éteins et le rallume très vite), le récepteur mais plusieurs secondes avant de recevoir quelques choses . c'est assez étrange , mais à la limite pas très grave en soi .
 
Top