frequence ou vitesse

JRTEC

Senior Member
Bonjour

S il vous plait un picaxe est il capable de calculer une frequence ou mieux une vitesse d avancement en km/h a partir de la lecture d un capteur sur une roue mais ceci sur un periode de l ordre d une demi seconde ? ou bien de faire cela en parallele d une autre fonction ?

Je pense que le dernier point n est pas possible

Je suis sur un 20M2
 

PieM

Senior Member
Bonjour

S il vous plait un picaxe est il capable de calculer une frequence ou mieux une vitesse d avancement en km/h a partir de la lecture d un capteur sur une roue mais ceci sur un periode de l ordre d une demi seconde ? ou bien de faire cela en parallele d une autre fonction ?

Je pense que le dernier point n est pas possible

Je suis sur un 20M2
A priori oui, mais: il faudrait plus de renseignements!

quel capteur avec quel signal, et quelle fréquence en fonction de la vitesse.
quelle gamme de vitesses, et quelle résolution sur cette gamme. (ex: 0 à 400 km/h à 2 km/h de résolution ...)

le problème viendra de faire ça en // d'autre chose.
Si le signal consiste en des impulsions, selon le type il est possible d'utiliser une info analogique par intégration RC du signal.
Sinon, peut être qu'avec une interruption bien que le M2 ne soit pas top pour ça.
Faut voir... Tu peux donner des précisions ?
 

JRTEC

Senior Member
Bonsoir et merci pour votre reponse

Le capteur sera d un type resemblant a celui ci : capteur cylindrique de proximite switch NPN NO DC 6-36V 1-10mm http://www.ebay.fr/itm/181846998621?_trksid=p2055119.m1438.l2649&ssPageName=STRK:MEBIDX:IT ou similaire ( suivant ce que j ai en stock

Ce captteur sera monte sur un moyeu de roue , la roue faisant environ 2 m de perimetre ( un etalonnage sera necessaire dans mon programme ) avec au choix soit 1 ou 5 impulsion par tour de roue mais vu mes exigences je pense etre sur 5 impulsion tours ( cela correspont au nombre de gougons )

La vitesse d evolution sera je dirai en 5 et 20 km/h ( soit entre 1.38m/s a 5.55 m/s soit pour une roue de 2 de perimetre 0.7 tour/s a 2.77 tour /s )

la resolution serai bien bien entre 0.5 a 1 km/h

Voila en quelques mots

Maintenat soyons fou ( un peu ) ce signal pourrai etre remplacer par un module gps de ce type : http://www.ebay.fr/itm/GY-NEO6MV2-NEO-6M-GPS-Module-Board-with-Antenna-for-Arduino-Raspberry-Pi-/142233250679?hash=item211dc32b77:g:ubUAAOSwa~BYa-a9 mais la je n ai utilise cela avec un picaxe

le but final etant de recuperer une vitesse reele
 
Last edited:

PieM

Senior Member
A priori c'est jouable.
Le switch en NPN est facilement interfaçable car en collecteur ouvert avec une R de pullup sur 5V. Il mesurera donc le temps de passage entre deux goujons.
Dans cette gamme de vitesse avec 5 impulsions/tour, ça donne des pulses de 288 ms à 72ms. Comme on mesure une période, ce n'est bien sûr pas linéaire. mais c'est calculable.
la résolution mini (à la plus haute vitesse) serait de l'ordre 0.25 km/h
par contre comme la mesure est bloquante, il ne faut pas mesurer en permanence si le Picaxe a autre chose à faire.

Une solution comptage (donc fréquence) en tâche de fond serait possible mais sur 28X2 et demanderait une actualisation toutes les 5s pour avoir la même résolution.

Coté GPS, c'est un module NEO6M avec une précision sur la vitesse de 0.1m/s. il génère les trames principales NMEA, dont VTG qui donne Vitesse et Cap magnétique sur une laison UART 9600 bauds.
Pas de soucis donc de ce coté là.
 

PieM

Senior Member
Bonjour.

Piem, on doit pouvoir faire mieux.
Tu te souviens, du gradateur, avec un bête 08M2, en mode interruptif ?
On descendait à l'aise à 20ms, sans autre tâche.
Ça laisse de la marge ... pour faire autre chose.
Oui, mais là on est lié au temps entre deux passages sur le détecteur. Et je ne suis pas certain qu'un rafraichissement fréquent soit bien utile dans cette appli.
De toute façon, quand un GPS coûte 2 fois moins cher que le capteur de proximité, je ne sais pas si le jeu en vaut la chandelle...
 

JRTEC

Senior Member
Bonjour

Alors si je comprends bien l idee du gpss n est pas farfelue ?

Comment faire digerer cette info au picaxe au niveau du soft ?

Merci par avance
 

PieM

Senior Member
Bonjour

Alors si je comprends bien l idee du gpss n est pas farfelue ?

Comment faire digerer cette info au picaxe au niveau du soft ?

Merci par avance
Ben non! avec bien sûr les temps de démarrage propre aux GPS, à chaud et à froid mais ça ne devrait pas être critique...
Le picaxe va recevoir une chaine de caractères comme celle-ci:

$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K*48


VTG Track made good and ground speed
054.7,T True track made good (degrees)
034.4,M Magnetic track made good
005.5,N Ground speed, knots
010.2,K Ground speed, Kilometers per hour
*48 Checksum

Il suffit d'extraire ensuite la partie qui intéresse, les 5 caractères après le M N ici
 
Last edited:

JRTEC

Senior Member
[/FONT]Il suffit d'extraire ensuite la partie qui intéresse, les 5 caractères après le M N ici
Rires ! euh oui et ben je lui ai dis a mon picaxe mais on parle pas mle meme langue , pas sur qu il m ai compris
 

PieM

Senior Member
Rires ! euh oui et ben je lui ai dis a mon picaxe mais on parle pas mle meme langue , pas sur qu il m ai compris
Dis, compte tenu de tes réalisations passées je ne pense pas que ça pose problème ! tu sais leur causer aux picaxes.
Je vais jeter un oeil sur la doc de ce GPS. De toute façon, j'en ai commandé un car vu le prix, ça va me résoudre un problème très simplement.
Donc on sera dans la même galère.
 

JRTEC

Senior Member
Dis, compte tenu de tes réalisations passées je ne pense pas que ça pose problème ! tu sais leur causer aux picaxes.
Je vais jeter un oeil sur la doc de ce GPS. De toute façon, j'en ai commandé un car vu le prix, ça va me résoudre un problème très simplement.
Donc on sera dans la même galère.
oula je me fait engueuler !! rires

Il faut que je regarde comme il faut

J ai toujours eu des tuteurs tres competants

Maintenant je sais envoye un message vers un afficheur style Max7219 mais franchement extraire un partie dans un message recu la je vois pas trop

Merci de votre patience
 

JRTEC

Senior Member
Moiaussi j en ai commander un


Cependant en revenant sur le capteur npn , j aimerai bien connaitre la methode pour determine le temps entre impulsions

Par le passé j ai vu comment on comptabilise et traduise des impulsions ( projet jalonnage , qui bose toujours d ailleurs ) , mais la methode du temps entre les impulsions me semble plus realiste et surtout plus precise

Alors pourquoi j ai besoin de temps pour faire autre chose , en partant de cette vitesse lue , je veux faire un regulation de debit derriere

En calibrage , en plus de Xcm par impulsion, je veux traduire une equivalence de position d un volet egale a kg par minutes , ca je vois comment faire , et apres avoir rentre une volante de Kg/ha , reguler une position du volett par rapport a la vitesse
 

PieM

Senior Member
Moiaussi j en ai commander un (bienvenue au club)
Cependant en revenant sur le capteur npn , j aimerai bien connaitre la methode pour determine le temps entre impulsions
Par le passé j ai vu comment on comptabilise et traduise des impulsions ( projet jalonnage , qui bose toujours d ailleurs ) , mais la methode du temps entre les impulsions me semble plus realiste et surtout plus precise

Alors pourquoi j ai besoin de temps pour faire autre chose , en partant de cette vitesse lue , je veux faire un regulation de debit derriere

En calibrage , en plus de Xcm par impulsion, je veux traduire une equivalence de position d un volet egale a kg par minutes , ca je vois comment faire , et apres avoir rentre une volante de Kg/ha , reguler une position du volett par rapport a la vitesse
Le principe est d'utiliser la fonction pulsin.
le capteur npn donnant une info 0 lors du passage d'un goujon, on va mesurer le temps entre deux passage à 0 donc la durée du pulse haut: soit : pulsin pinx, 1, (periode en 10µs)
le pulse haut étant au maxi de 288ms conduit à un résultat compris entre 28800 et 7200 pour 5 à 20km/h
La vitesse étant l'inverse, il suffit de considérer:

periode = periode/ 100 (soit 288 à 72)
calculer 14400 / periode donne la vitesse en 1/10 de km/h

en résumé:

pulsin pinx, 1, periode
periode= periode/ 100
vitesse = 14400 / periode

La seule chose est que le passage à 0 va durer très peu de temps , lié à la zone sensible du capteur et au Ø du goujon.
l'idéal serait d'avoir des cibles plus grandes qu'une simple tête de goujon... peut être.

La vitesse mini mesurable avec les 5 goujons sera de 2.3 km/h. en dessous on passe sur le timeout de la fonction pulsin, donc un résultat = 0 à detecter avant de faire le calcul !

Pour ta régulation, cette mesure te prenant au maxi 300 ms, je pense qu'ajouté au temps de traitement de la régulation, ça devrait tenir la route, la réactivité n'étant pas critique je pense.
A remarquer que plus la vitesse sera grande, la mesure dure moins longtemps, donc la réactivité va dans le bon sens.

Tu parles de Xcm/impulsion; ce n'est plus le même problème!
Si c'est la distance parcourue qui t’intéresse, nul besoin de mesurer une vitesse.
entre deux impulsions 1 -> 0 tu sais ce que tu a parcouru.
Donc le montage consiste à utiliser une entrée interruption du picaxe qui débouche sur un compteur.

A remarquer que les deux mesures sont possibles simultanément !
 
Last edited:

PieM

Senior Member
bonjour

ca y est j ai recu le mien

c est pas tres gros
Bonjour
Moi aussi...

premières remarques:
Il est équipé d'un régulateur 3.3V donc il peut être alimenté en 5V.
Mais ses entrées sorties sont donc en 3.3V
Il a également une batterie intégrée contrairement à ce que dit la doc.

Donc, si la sortie TX est compatible avec une entrée TTL du Picaxe, il faut limiter la tension sur RX par un diviseur de tension.
De base, la liaison est en T4800.
Je donnerai un petit programme pour tester la bête....
 

jojojo

Senior Member
Reçu itou.

Beau matos, pour le prix.
Dans un premier temps, pour moi, l'idée est une jolie horloge, avec la précision du césium ...
 

PieM

Senior Member
Petit programme qui vous affiche l'heure, la latitude, longitude, et la vitesse pour ce GPS:

Rich (BB code):
; *******************************
; ***** GPS NEO6  *****
; *******************************
#Picaxe 14M2
#Terminal 9600

symbol baud_out = T4800_8
symbol baud_in = T4800_8
symbol UART_in = B.4
symbol UART_out = C.0
setfreq m8

do

  serin UART_in, baud_in, ( "$GPRMC," ), b1,b2,b3,b4,b5,b6,b7,#w13,#w12,b8,#w11,#w10,b9,b10,b11,b12

  sertxd(b1,b2,":",b3,b4,":",b5,b6, b7, cr, lf )
  sertxd("lat:",#w13," ",#w12," ",b8, cr, lf )
  sertxd("lon:",#w11," ",#w10," ",b9, cr, lf )
  sertxd("Vit:",b10,b11,b12," ",cr, lf )

loop
Le mien ne donne pas la trame VTG.
essayez sur le votre ce programme et dites les trames reçues:

[code = rich]
; *******************************
; ***** GPS NEO6 *****
; *******************************

#Picaxe 14M2
#Terminal 9600

symbol baud_out = T4800_8
symbol
baud_in = T4800_8
symbol
UART_in = B.4
symbol
UART_out = C.0
setfreq m8


do
serin
UART_in, baud_in, ( "$GP" ), b1,b2,b3,
sertxd(b1,b2,b3,cr, lf )
loop

[/code]

l'heure est donnée sous la forme hhmmss (pas de 1/100 ni 1/1000)
la broche pps donne la seconde avec mieux que 0.1 ns

l'heure peut être juste sans que la position soit calculée.
faute de VTG, la vitesse est dispo sur la trame RMC, en noeuds.
 
Last edited:

PieM

Senior Member
Suite:

programme complet pour la vitesse donnée en m/h, avec validité de la réception, et de la vitesse:
La trame est enregistrée sur une interruption.

Code:
[COLOR=Green]; *******************************
; ***** GPS NEO6M  *****
; *******************************[/COLOR]
[COLOR=Navy]#Picaxe [/COLOR][COLOR=Black]14M2[/COLOR]
[COLOR=Navy]#Terminal [B]9600[/B][/COLOR]

[COLOR=Blue]symbol baud_out [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]T4800_8
symbol baud_in [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]T4800_8
symbol UART_in [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]C.0  [/COLOR][COLOR=Green]' vers Tx NEO6[/COLOR]
[COLOR=Blue]symbol UART_out [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]B.4  [/COLOR][COLOR=Green]' vers Rx NEO avec diviseur de tension 5V > 3V[/COLOR]

[COLOR=Blue]setfreq m8
setint [/COLOR][COLOR=Navy][B]%00000000[/B][/COLOR][COLOR=Black],[/COLOR][COLOR=Navy][B]%00000001 [/B][/COLOR][COLOR=Green]'interruption sur C.0 

'===================================================================[/COLOR]
[COLOR=Black]main:[/COLOR]

[COLOR=Blue]do
   if [/COLOR][COLOR=Purple]bit0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]1 [/B][/COLOR][COLOR=Blue]then gosub [/COLOR][COLOR=Black]traitement [/COLOR][COLOR=Green]' si trame recue en interruption[/COLOR]
[COLOR=Blue]loop[/COLOR]

[COLOR=Green]'---------------------------------------------------------------------[/COLOR]
[COLOR=Black]traitement:
   [/COLOR][COLOR=Blue]gosub [/COLOR][COLOR=Black]debug_aff [/COLOR][COLOR=Green]'option
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]17
   [/B][/COLOR]
[COLOR=Blue]if [/COLOR][COLOR=Purple]@bptr [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Red]"A" [/COLOR][COLOR=Blue]then [/COLOR][COLOR=Green]'si signal correct  
      
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]44 [/B][/COLOR][COLOR=Green]'debut de trame vitesse 
   [/COLOR][COLOR=Blue]if [/COLOR][COLOR=Purple]@bptr [/COLOR][COLOR=DarkCyan]<> [/COLOR][COLOR=Red]"," [/COLOR][COLOR=Blue]then 
      [/COLOR][COLOR=Green]'bptr= 44
      [/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]100
      [/B][/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]10 [/B][/COLOR][COLOR=DarkCyan]+ [/COLOR][COLOR=Purple]w0
      w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]+ [/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]1852 [/B][/COLOR][COLOR=Green]'calcul des noeuds en m/h
      [/COLOR][COLOR=Blue]peek [/COLOR][COLOR=Navy][B]48[/B][/COLOR][COLOR=Black], [/COLOR][COLOR=Purple]w1
      w1[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]w1 [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]185 [/B][/COLOR][COLOR=Green]'calcul des 1/10 noeuds en m/h
      [/COLOR][COLOR=Purple]w0[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]w1[/COLOR][COLOR=DarkCyan]+[/COLOR][COLOR=Purple]w0
      [/COLOR][COLOR=Blue]sertxd([/COLOR][COLOR=Red]" Vitesse en m/h: "[/COLOR][COLOR=Black],#[/COLOR][COLOR=Purple]w0   [/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]lf)
   else
      sertxd([/COLOR][COLOR=Red]" Vitesse nulle" [/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]lf)

   endif
else
   sertxd([/COLOR][COLOR=Red]" pas de signal correct!" [/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]lf)
endif
   setint [/COLOR][COLOR=Navy][B]%00000000[/B][/COLOR][COLOR=Black],[/COLOR][COLOR=Navy][B]%00000001 [/B][/COLOR][COLOR=Green]'rearmement interruption[/COLOR]
[COLOR=Blue]return[/COLOR]
[COLOR=Green]'----------------------------------------------------------------------[/COLOR]
[COLOR=Black]debug_aff:
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]10 [/B][/COLOR][COLOR=Green]' debut de trame RMC
    [/COLOR][COLOR=Blue]sertxd([/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]lf )
return

[B][U]interrupt:
   [/U][/B][/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]10
  [/B][/COLOR][COLOR=Blue]serin UART_in[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]baud_in[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]( [/COLOR][COLOR=Red]"RMC," [/COLOR][COLOR=Blue])[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc
bit0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]1[/B][/COLOR]
[COLOR=Blue]return[/COLOR]
 
Last edited:

MGU

Senior Member
Bonjour,

Je viens de commander le même GPS, et je ne pourrai tester ce code que dans ...quelques semaines.
Bizarre cette absence de la trame VTG, d'après la doc, elle est présente sur tous les NEO6.

Faut un pont diviseur 2/3 sur la liaison picaxe->NEO6, (évoquée précédemment #18)
(modif) Sauf qu'en regardant un peu, il n'y a pas de retour du picaxe vers le NEO6, l'entrée sur B.4 et le terminal sur C.0


MM
 
Last edited:

PieM

Senior Member
Bonjour,

Je viens de commander le même GPS, et je ne pourrai tester ce code que dans ...quelques semaines.
Bizarre cette absence de la trame VTG, d'après la doc, elle est présente sur tous les NEO6.

Faut un pont diviseur 2/3 sur la liaison picaxe->NEO6, (évoquée précédemment #18)
(modif) Sauf qu'en regardant un peu, il n'y a pas de retour du picaxe vers le NEO6, l'entrée sur B.4 et le terminal sur C.0


MM
Je ne trouve que les trames RMC,GGA,GSA,GSV sur mon exemplaire.
Il manque donc GLL et VTG.
Mais la plus importante est la RMC qui permet d'avoir l'essentiel des infos

l'envoi de données sur le NEO6 est nécessaire si on veut modifier certains paramètres, comme le débit série.
mais contrairement à la doc le mien semblait déjà configuré en 4800 bauds.

je vois que j'ai donné un mauvais programme en #22! je le supprime....
C.0 est conservé pour la réception de données laissant la place à une interruption éventuelle.
 

PieM

Senior Member
J'ai lu rapidement cette notice sur la norme NMEA, il y a à la fin une note sur l'UBlox qui expliquerait le problème des trames manquantes. Il faudrait passer en 9600 baud.
http://www.gpsinformation.org/dale/nmea.htm#nmea

MM
Oui, mais la configuration du bébé est tellement ardue que je préfère rester comme ça ! la RMC donne la vitesse en noeud ... je ne veux pas m'en faire d'autres!
Sur ce doc, la donnée heure RMC pour UBloc est fausse: seule est donnée hhmmss.

Depuis que ciel est un peu (!) dégagé sur le midi cet apm, je capte 10 satellites avec validation des données de position bien qu'étant en intérieur, avec 2 planchers béton au dessus de la tête avant le toit!
Mon tomtom ne sais pas faire!
 

PieM

Senior Member
Bonjour

Si je peux me permettre , le mien , celui ci : http://www.ebay.fr/itm/142233250679?_trksid=p2057872.m2749.l2649&ssPageName=STRK:MEBIDX:IT a je pense une interface integre RS232 TTL

et en fouillant j ai retrouve cela http://www.husstechlabs.com/Introduction to GPS and PICAXE.pdf mais je n arrive pas a tout comprendre
Oui, comme c'est également celui que j'ai, je ne vois pas pourquoi il faut chercher des complications!
D'autant plus que le EM-410 n'a pas les mêmes trames !
Que le schéma de connexion est faux ! (diviseur de tension monté à l'envers!!!)
Je répète que sur mon programme en #22, Txd du module est connecté directement a une entrée du picaxe (C.0) tandis que le Rxd du module est connecté à B.4 via un diviseur de tension. (bien que cette liaison ne soit pas nécessaire dans l'immédiat si on garde la config d'origine)
Quant au Vcc, il est alimenté en 5V , le module comportant un régulateur 3.3V.

Je signale que les messages envoyés toutes les secondes sont:

RMC, GGA, GSA, GSV, GSV,GSV (3 trames de GSV car 1 trame donne un maxi de 4 satellites)
puis 4 messages avec:
RMC, GGA, GSA
et ainsi de suite.

L'intérêt de se limiter à RMC, est qu'elle est la première trame envoyée. donc il n'y a qu'une seule trame à enregistrer pour avoir l'essentiel des données (y compris position, vitesse et cap).
pour avoir l'heure il n'y a que les 6 premiers bytes à enregistrer.
le prog que j'ai donné utilise une interruption:
elle est déclenchée par le premier start , et j'utilise RMC en qualifier.

Mais chacun est libre de faire compliqué... :)
 
Last edited:

JRTEC

Senior Member
bonjour

je ne desire pas faire complique , j essaye simplement de suivre

Je pensais que l indication TTL etait importante

je suis loin de toutes vos competences
 

PieM

Senior Member
bonjour

je ne desire pas faire complique , j essaye simplement de suivre
Je pensais que l indication TTL etait importante
je suis loin de toutes vos competences
TTL c'est l'indication de niveaux logiques en tension.
Moi je donne mon programme qui fonctionne avec ce capteur NEO6.
Mais personne n'est obligé de l'utiliser.
Il vaut mieux essayer de suivre le programme que j'ai donné plutôt que de chercher des infos qui ne concernent pas ce matériel et qui sont en plus erronées.
 

JRTEC

Senior Member
Bonjour

et merci pour toutes ses infos

D autres projets me viennent a l idee avec ce petit module , mais je me pose une question , avez une idee de la precision de ce module gps en geolocalisation ? de l ordre de 10 metres ? de 2 m ? de 20 cm ?
 

PieM

Senior Member
Bonsoir,
la précision donnée par le constructeur est de 5m.
Tabler plutôt sur 5 à 10m.
 

JRTEC

Senior Member
bonjour et merci de votre reponse

j ai repasser la doc je ne vois pas ou trouver cela

Si je comprends bien en GPS , pour gagner en precision il faut un nombre de cha,,els important ( je parle de 120 ) et ce module sur la descripption ebay je ne vois pas
 

PieM

Senior Member
Bonjour,
Il ne faut jamais se fier à la doc données sur ebay! incomplète, souvent trompeuse, et mal traduite.
Il faut se référer à la doc constructeur: ICI

Le nombre de canaux n'est pas le seul élément définissant la précision. L'état atmosphérique, les réflexions parasites, l'environnement, la géométrie des satellites, leur nombre, etc.
Un indicateur de DOP (dilution de précision liée au nb de satellites et leurs positions) est donné dans la trame GGA: plus la valeur est faible, meilleure sera la précision de positionnement.
 

JRTEC

Senior Member
Suite:

programme complet pour la vitesse donnée en m/h, avec validité de la réception, et de la vitesse:
La trame est enregistrée sur une interruption.

Code:
[COLOR=Green]; *******************************
; ***** GPS NEO6M  *****
; *******************************[/COLOR]
[COLOR=Navy]#Picaxe [/COLOR][COLOR=Black]14M2[/COLOR]
[COLOR=Navy]#Terminal [B]9600[/B][/COLOR]

[COLOR=Blue]symbol baud_out [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]T4800_8
symbol baud_in [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]T4800_8
symbol UART_in [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]C.0  [/COLOR][COLOR=Green]' vers Tx NEO6[/COLOR]
[COLOR=Blue]symbol UART_out [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]B.4  [/COLOR][COLOR=Green]' vers Rx NEO avec diviseur de tension 5V > 3V[/COLOR]

[COLOR=Blue]setfreq m8
setint [/COLOR][COLOR=Navy][B]%00000000[/B][/COLOR][COLOR=Black],[/COLOR][COLOR=Navy][B]%00000001 [/B][/COLOR][COLOR=Green]'interruption sur C.0 

'===================================================================[/COLOR]
[COLOR=Black]main:[/COLOR]

[COLOR=Blue]do
   if [/COLOR][COLOR=Purple]bit0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]1 [/B][/COLOR][COLOR=Blue]then gosub [/COLOR][COLOR=Black]traitement [/COLOR][COLOR=Green]' si trame recue en interruption[/COLOR]
[COLOR=Blue]loop[/COLOR]

[COLOR=Green]'---------------------------------------------------------------------[/COLOR]
[COLOR=Black]traitement:
   [/COLOR][COLOR=Blue]gosub [/COLOR][COLOR=Black]debug_aff [/COLOR][COLOR=Green]'option
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]17
   [/B][/COLOR]
[COLOR=Blue]if [/COLOR][COLOR=Purple]@bptr [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Red]"A" [/COLOR][COLOR=Blue]then [/COLOR][COLOR=Green]'si signal correct  
      
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]44 [/B][/COLOR][COLOR=Green]'debut de trame vitesse 
   [/COLOR][COLOR=Blue]if [/COLOR][COLOR=Purple]@bptr [/COLOR][COLOR=DarkCyan]<> [/COLOR][COLOR=Red]"," [/COLOR][COLOR=Blue]then 
      [/COLOR][COLOR=Green]'bptr= 44
      [/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]100
      [/B][/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]10 [/B][/COLOR][COLOR=DarkCyan]+ [/COLOR][COLOR=Purple]w0
      w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]+ [/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]1852 [/B][/COLOR][COLOR=Green]'calcul des noeuds en m/h
      [/COLOR][COLOR=Blue]peek [/COLOR][COLOR=Navy][B]48[/B][/COLOR][COLOR=Black], [/COLOR][COLOR=Purple]w1
      w1[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]w1 [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]185 [/B][/COLOR][COLOR=Green]'calcul des 1/10 noeuds en m/h
      [/COLOR][COLOR=Purple]w0[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]w1[/COLOR][COLOR=DarkCyan]+[/COLOR][COLOR=Purple]w0
      [/COLOR][COLOR=Blue]sertxd([/COLOR][COLOR=Red]" Vitesse en m/h: "[/COLOR][COLOR=Black],#[/COLOR][COLOR=Purple]w0   [/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]lf)
   else
      sertxd([/COLOR][COLOR=Red]" Vitesse nulle" [/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]lf)

   endif
else
   sertxd([/COLOR][COLOR=Red]" pas de signal correct!" [/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]lf)
endif
   setint [/COLOR][COLOR=Navy][B]%00000000[/B][/COLOR][COLOR=Black],[/COLOR][COLOR=Navy][B]%00000001 [/B][/COLOR][COLOR=Green]'rearmement interruption[/COLOR]
[COLOR=Blue]return[/COLOR]
[COLOR=Green]'----------------------------------------------------------------------[/COLOR]
[COLOR=Black]debug_aff:
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]10 [/B][/COLOR][COLOR=Green]' debut de trame RMC
    [/COLOR][COLOR=Blue]sertxd([/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]lf )
return

[B][U]interrupt:
   [/U][/B][/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]10
  [/B][/COLOR][COLOR=Blue]serin UART_in[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]baud_in[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]( [/COLOR][COLOR=Red]"RMC," [/COLOR][COLOR=Blue])[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc
bit0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]1[/B][/COLOR]
[COLOR=Blue]return[/COLOR]
bonjour , ce soft est vraiment complet ??

j essaye de le realise sur une a essai

mais je ne comprends pas ou est branche l ecran que je presume en serial vu le code
 

MGU

Senior Member
Bonjour,

Avec sertxd, les valeurs s'affichent sur le PC, le câble branché, bien sûr...

MM
 

JRTEC

Senior Member
Suite:

programme complet pour la vitesse donnée en m/h, avec validité de la réception, et de la vitesse:
La trame est enregistrée sur une interruption.

Code:
[COLOR=Green]; *******************************
; ***** GPS NEO6M  *****
; *******************************[/COLOR]
[COLOR=Navy]#Picaxe [/COLOR][COLOR=Black]14M2[/COLOR]
[COLOR=Navy]#Terminal [B]9600[/B][/COLOR]

[COLOR=Blue]symbol baud_out [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]T4800_8
symbol baud_in [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]T4800_8
symbol UART_in [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]C.0  [/COLOR][COLOR=Green]' vers Tx NEO6[/COLOR]
[COLOR=Blue]symbol UART_out [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Blue]B.4  [/COLOR][COLOR=Green]' vers Rx NEO avec diviseur de tension 5V > 3V[/COLOR]

[COLOR=Blue]setfreq m8
setint [/COLOR][COLOR=Navy][B]%00000000[/B][/COLOR][COLOR=Black],[/COLOR][COLOR=Navy][B]%00000001 [/B][/COLOR][COLOR=Green]'interruption sur C.0 

'===================================================================[/COLOR]
[COLOR=Black]main:[/COLOR]

[COLOR=Blue]do
   if [/COLOR][COLOR=Purple]bit0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]1 [/B][/COLOR][COLOR=Blue]then gosub [/COLOR][COLOR=Black]traitement [/COLOR][COLOR=Green]' si trame recue en interruption[/COLOR]
[COLOR=Blue]loop[/COLOR]

[COLOR=Green]'---------------------------------------------------------------------[/COLOR]
[COLOR=Black]traitement:
   [/COLOR][COLOR=Blue]gosub [/COLOR][COLOR=Black]debug_aff [/COLOR][COLOR=Green]'option
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]17
   [/B][/COLOR]
[COLOR=Blue]if [/COLOR][COLOR=Purple]@bptr [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Red]"A" [/COLOR][COLOR=Blue]then [/COLOR][COLOR=Green]'si signal correct  
      
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]44 [/B][/COLOR][COLOR=Green]'debut de trame vitesse 
   [/COLOR][COLOR=Blue]if [/COLOR][COLOR=Purple]@bptr [/COLOR][COLOR=DarkCyan]<> [/COLOR][COLOR=Red]"," [/COLOR][COLOR=Blue]then 
      [/COLOR][COLOR=Green]'bptr= 44
      [/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]100
      [/B][/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]10 [/B][/COLOR][COLOR=DarkCyan]+ [/COLOR][COLOR=Purple]w0
      w0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]@bptrinc [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]+ [/COLOR][COLOR=Purple]w0 [/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]1852 [/B][/COLOR][COLOR=Green]'calcul des noeuds en m/h
      [/COLOR][COLOR=Blue]peek [/COLOR][COLOR=Navy][B]48[/B][/COLOR][COLOR=Black], [/COLOR][COLOR=Purple]w1
      w1[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]w1 [/COLOR][COLOR=DarkCyan]- [/COLOR][COLOR=Navy][B]48 [/B][/COLOR][COLOR=DarkCyan]* [/COLOR][COLOR=Navy][B]185 [/B][/COLOR][COLOR=Green]'calcul des 1/10 noeuds en m/h
      [/COLOR][COLOR=Purple]w0[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Purple]w1[/COLOR][COLOR=DarkCyan]+[/COLOR][COLOR=Purple]w0
      [/COLOR][COLOR=Blue]sertxd([/COLOR][COLOR=Red]" Vitesse en m/h: "[/COLOR][COLOR=Black],#[/COLOR][COLOR=Purple]w0   [/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]lf)
   else
      sertxd([/COLOR][COLOR=Red]" Vitesse nulle" [/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]lf)

   endif
else
   sertxd([/COLOR][COLOR=Red]" pas de signal correct!" [/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]lf)
endif
   setint [/COLOR][COLOR=Navy][B]%00000000[/B][/COLOR][COLOR=Black],[/COLOR][COLOR=Navy][B]%00000001 [/B][/COLOR][COLOR=Green]'rearmement interruption[/COLOR]
[COLOR=Blue]return[/COLOR]
[COLOR=Green]'----------------------------------------------------------------------[/COLOR]
[COLOR=Black]debug_aff:
   [/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]10 [/B][/COLOR][COLOR=Green]' debut de trame RMC
    [/COLOR][COLOR=Blue]sertxd([/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]cr[/COLOR][COLOR=Black],[/COLOR][COLOR=Blue]lf )
return

[B][U]interrupt:
   [/U][/B][/COLOR][COLOR=Purple]bptr[/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]10
  [/B][/COLOR][COLOR=Blue]serin UART_in[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]baud_in[/COLOR][COLOR=Black], [/COLOR][COLOR=Blue]( [/COLOR][COLOR=Red]"RMC," [/COLOR][COLOR=Blue])[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc[/COLOR][COLOR=Black],[/COLOR][COLOR=Purple]@bptrinc
bit0 [/COLOR][COLOR=DarkCyan]= [/COLOR][COLOR=Navy][B]1[/B][/COLOR]
[COLOR=Blue]return[/COLOR]
Bonjour

J a essaye ceprogramme sans grand succes

Cependant j ai un message disant pas de signal correct

vue message gps.JPG

A votre avis , defaut de montage ? composant en defaut ? ou bien simplement le fait d etre dans une maison et il faut que je sorte ?

En #24 vous dites que le programme de #22 est mauvais et que vous le supprimer

Je presume que celui que je vois en ligne aujourd hui en #22 est corrigé

Par avance merci
 
Top