moi je parlais a travers les murs du batiment. Bref, une bonne antenne, un soft qui tient la route et ca devrait marcher...
-----
moi je parlais a travers les murs du batiment. Bref, une bonne antenne, un soft qui tient la route et ca devrait marcher...
J'utilise l'émetteur et récepteur en extérieur. Donc pas de cloisons, de portes, ets ...
Visiblement le fait de rajouter le 55h enfin AAh car je commence par le poids fort, 3 fois avant la synchro de 5 ms a l'air d'augmenter la portée.
A 20 mètres je capte bien. C'est la distance qu'il me faut.
Par contre j'ai des octets "faux" parfois .... Mon émetteur est programmé (pour les tests) de façon à m'envoyer 100 octets qui partent de 01 à 100 (dans l'ordre) et ce n'est pas toujours les bons.
Mes octets sont envoyés toutes les 4 secondes. Dans la config finale, ils seront envoyés environ toutes les 60 secondes.
Dernière modification par gillou026 ; 25/10/2011 à 15h01.
utilise une CRC ou fais de la mesure multiple. Le tout en soft. Et avec de la statistique... cela devrait ameliorer. Mais une chose est sure, la portée DOIT etre de loin superieure pour assurer une portee necessaire au fonctionnement normal. Exemple, porter a 50 metres avec 100% de requetes OK permettra de garder ce pourcentage quasi identique avec 30 metres si des conditions defavorables apparaissent: bruit de fond HF qui augmente, nouvelles trames etrangeres qui se manifestent, et aussi variation de la propagation des ondes par variation du temps...
La HF est regie par d'autres lois que celles qui disent 1+1=2....
Exemple en HF (a l'epoque le 27MHZ), il fallait 5 a 10W pour se parler confortablement entre deux points distancés de 30km. Et certains jours, il en fallait 100 car le bruit de fond montait. Et etrangement si on baissait a 1W on pouvait parler a des distances de 500, 1000, voir 5000km mais on ne pouvait plus se parler a courte distance...
C'est ca la radio. Que les geeks internet ne connaissent pas et ne connaitront jamais.
LOLLLL
Essai à 20 mètres à l'instant et j'ai eu 100% de bonnes réponses ... à l'air libre avec Emetteur et Recepteur en vue.
Mais faut que je sois sûr à 100% TOUT LE TEMPS ...
Je ne comprend pas pourquoi parfois j'ai un ou 2 bits qui se transforment ...
parceque tu ne fais qu'une mesure et qu'a ce moment un 0 peut devenir un 1 a cause d'un parasite.
Tu as les solutions, reste a les mettre en oeuvre... Et vue la difficulté, au lieu de transmettre 1 octet, tu transmet 10x le meme octet et tu fais une stat sur les 10 octets recus. Ton projet sera viable si pour 20 metres demandé, tu pourras avoir 50 metres en test SANS ERREUR.
Oui je pense qu'il va falloir envoyer le même octet plusieurs fois (bien que je sois un peu limité en temps car l'emetteur n'est pas fixe ... il reste très peu de temps "proche" de l'emetteur)
Mais en gros je dispose d'un quart de seconde .... donc de quoi envoyer une bonne dizaine d'octets.
Au niveau de la trame, il va falloir que je me resynchronise à chaque octet .. donc comment tu vois la chose ???
Est-ce que ceci pourrait marcher :
$AA $AA $AA $FF (5 ms) Octet $F(2.5ms) Octet $F(2.5ms) Octet $F(2.5ms) Octet $F(2.5ms) Octet $F(2.5ms) Octet
3 x $AA : pour réveiller le récepteur et son CAG
$FF (5 ms) pour la synchro de départ
$F (donc 2.5 ms) pour la resynchro
Deja abordé le systeme: tu scanne 9 fois ton meme bit toutes les 100µS a partir de ton premier 50µS du bit, tu auras 9 lectures stockees de ce bit, tu fais pareil pour chaque bit et apres, tu auras le temps de traiter les infos, statistiquer les donnees et avoir en 10ms de transmission 9 lectures de chaque bit.
j'espère que je vais avoir assez de RAM !!!!
ben ca te fera seulement 9 variables puisqu'on va affecter un bit sur 9 variables pour chacun des 8 bits
Petit compte rendu de ce que j’ai fait (qui pourra servir à ceux qui veulent se lancer là dedans)
Tout d’abord, j’ai codé mon octet avec du Manchester comme on me l’a conseillé.
Don côté émission, voici comment se compose ma trame :
L’émetteur envoi 20 bits 0 1 0 1 … de 250µs chacun pour le CAG (Contrôle Automatique de Gain du module Aurel récepteur).
Ensuite un bit à 1 qui dure 5 ms pour la synchro de mon récepteur qui va lire le premier code à partir du front descendant du bit de synchro.
Un bit de START de 1 ms
Mon octet (codé en Manchester). Chaque demi bit dure 500µs.
Codage : (1 : « 1 » pdt 500µ + « 0 » pdt 500µ) et (0 : « 0 » pdt 500µ + « 1 » pdt 500µ)
Un bit de STOP de 2 ms (qui sert de re-synchro côté réception)
Un bit de START de 1 ms
Mon octet (le même)
Etc …. J’envoi le même octet 5 fois.
Côté réception :
Je mémorise dans un tableau mes 5 octets qui sont censés être les mêmes … mais comme je l’ai dit, il arrive parfois qu’un bit change sans prévenir !!!!!!
Une fois mes 5 octets reçus, je compte combien j’ai de 1 ou de 0 pour le poids fort de chaque octet. Si j’ai plus de 1 que de 0 c’est que c’est 1, sinon c’est 0 ! LOL
Je met à jour le poids fort d’une variable en fonction du résultat trouvé précédemment.
Et je réitère l’opération sur les 7 autres bits.
Et voilà …
Ca marche impec …
J’ai augmenté considérablement ma portée (ce que je voulais) et j’ai sécurisé pas mal la transmission de mon octet.
UN GRAND MERCI à tout ceux qui ont contribué à faire avancer mon projet.
si tu es short sur la longueur de trame, tu peux faire presque pareil, sauf que tu envoie qu'un code, et tu joue sur le nombre de mesures sur chaque bit. Si ton bit fait 1ms, tu peux faire 9 mesures espacees entre 5 et 100µS, et ensuite tu fera ton test de departage pour savoir le niveau de ton bit
attention, en manchester, la moitié du bit est inversé par rapport a l'autre moitie. Mais tu peux faire 9 mesures sur les 450µS dans les 500µs de la premiere moitié de ton code manchester.
Heureux que ton projet ai pu avancer. Du coup, tu as la portee et la securisation du code. Que demander de plus...
L'échantillonnage de chaque bit rajouterai un plus mais avec ce que j'ai fait et les nombreux tests qui ont suivi ... le résultat est parfait.
Donc on va en rester là ....
Merci encore
Hello,
j'utilise les mêmes récepteur pour une télécommande d'appareil. J'ai remarqué que les signaux (si on envoie du RS 0-5V) sont tronçonnés et inutilisable.
J'ai développé un système d'envoi de fréquence avec des oscillateurs et filtres calibrés. Aussi, j'ai créé "maison" le protocole : "0" = 2400Hz, "1" = 3000Hz et "transmission" = 3500 Hz.
(le tout géré par un ATmega8 (TQFP32)
Avec ce système, on est sûr que l'information arrive à temps, le problème c'est le délai d'envoi, de l'ordre de 200ms.
Je dois faire un dossier avec mon travail, je te le transmettrais.
Par contre, je suis heureux de voir ce codage"manchester" à essayer !
ps: en PJ, tu peux voir la télécommande, je travail sur le circuit récepteur en ce moment même.
Cordialement, Weldod
@daudet : je suis passe de 8 m a environ 30 m.
Ce n'est pas encore les 100 m theoriques mais ca repond a mon besoin.
Je viens de faire tout une serie d'essai et c'est chaque fois nikel.
@weldod : ton codage a l'air bien mais le manchester est bon aussi.
Tres facile a utiliser.
Prochain boulot :
Faut que je trouve les accents sur mon nouveau portable. Lol
Je vais étudier ce codage et essayer de l'appliquer
Merci pour l'info !
Bonne journée et bon week-end !
l'avantage du manchester, c'est que quelque soit la vitesse choisie, la moyenne fixe quelque soit le nombre de 0 et de 1. Et pas besoin de traiter des frequences vocales par dessus.
Pour apporter un peu plus d'eau au moulin, je n'avais mit que 5 codes à la suite ... mais ça ne donne pas 100% de bons résultats.
J'ai donc mit 9 codes à la suite après la synchro et côté récepteur j'analyse donc mes 9 codes. Et là c'est 100% OK chaque fois ...