Flitspaalmelder problemen

Postby schueler » Tue Jan 06, 2009 12:00 am

Hi,

Ik heb de flitspaalmelder gebouwd uit de Elektor november 2008.
Na wat akkefietjes werkt deze maar op een een of andere manier wil het niet waarschuwen als er een flitspaal in de buurt is. Nu heb ik drie GPS systemen naast elkaar gelegd om te vergelijken met als resultaat dat het eigenlijk allemaal wel klopt.

Als ik handmatig mijn huis locatie toevoeg aan de flitspaal lijst krijg ik wel een waarschuwing.

Zijn er andere bouwers van deze schakeling ook hier tegenaan gelopen of werkt het bij andere bouwers wel?

Graag reactie.


Ben

edit: betere foto van close-up LCD'
Attachments
DSC02618.JPG
DSC02628.JPG
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby buckfast_beekeeper » Tue Jan 06, 2009 12:00 am

Hallo Ben,

Wat is de nauwkeurigheid waarbinnen hij reageert? Ga je buiten en je nadert je coördinaat, binnen welke afstand geeft hij signaal. Bij een "gewone" gps denk ik dat er een marge van enkele meter wordt gerekend om zo verschillen op te vangen.

Uiteindelijk weet de gps niet of het flitspaal coördinaat het linkse rijvak is, het rechtse of net aan de voet van de paal.

Ik zou daar eens mee experimenteren.

mvg

Theo
buckfast_beekeeper
 
Posts: 820
Joined: Thu Jan 02, 2014 3:27 pm

Postby jaap57 » Tue Jan 06, 2009 12:00 am

Hoi Ben,

Je bent al verder dan ik want bij mij wordt er geen alarm gegeven. Nog op de flitspalen nog op mijn eigen adres dat ik in de database heb gezet.

De vraag is of de communicatie tussen EEPROM en MP wel goed verloopt. Op het schermpje wordt welliswaar keurig aangegeven dat er een x aantal punten is geladen, maarrrrr dat doet hij ook als de hele EEPROM niet in de schakeling zit.

Mijn probleem is dat ik die EEPROM niet kan controleren omdat ik voor dit type geen programmeer schakeling heb.

Welke firmware gebruik jij, die voor een gesorteerde of ongesorteerde database? Ik gebruik nog die voor de ongesorteerde omdat die minder eisen stelt.

Wat die detectieafstand betreft, Elektor heeft het over 500 meter in zijn artikel
jaap57
 
Posts: 117
Joined: Thu Jan 02, 2014 3:31 pm

Postby schueler » Tue Jan 06, 2009 12:00 am

jaap57..., maarrrrr dat doet hij ook als de hele EEPROM niet in de schakeling zit.


Dat kan zeker kloppen. Als er geen EEPROM in de schakeling zit lees de I2C bus 0xFF en dat is voor de software geen probleem. Er zit geen intelligentie in de software die checked of de waardes die die leest ook kloppen.
Ik kan even kijken of ik de software zo aan kan passen zodat het eerst even aantal waardes in de EEPROM laat zien.

Geef me even de tijd om dat te maken ( eind van de week ).

Ben
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Tue Jan 06, 2009 12:00 am

SchuelerGeef me even de tijd om dat te maken ( eind van de week ).


uhm...
wordt nog lastig.
demo versie van flowcode is verlopen.


Ben
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby jaap57 » Wed Jan 07, 2009 12:00 am

Hoi Ben,

Hopelijk heb je je flowcode weer aan de praat
Aan het begin van het programma staat een verhaal in het frans (waar ik vroeger op school tien jaar van heb mogen genieten) dat de laatste versie van de PC software de coordinaten om werkt naar een ander format. Wellicht dat de versie van de PCsoftware danwel de versie van de MP firmware niet bij elkaar passen.
Dat zou de problemen met het waarschuwings gedeelte van de Flitspaal misere kunnen verklaren.

Ziehier:


28/07/2008


Attention pour programmer directement sur la carte, il faut retirer le
circuit RC sur le Master Clear (MCLR/) du PIC (sinon le programmateur ne trouve
le PIC)

Version modifié, on utilise une mémoire I2C 24FC1025 (la fréquence de
lhorloge est de 1Mhz), memoire de 128k bit donc 131072 octets .
On n'écrit plus de FF sur la totalité de la mémoire (le nombre d'enregistrement
est stocké en EEPROM du PIC).


Version modifié, il n'y a plus de convertion dans les programmes de traitement
longitude et Latitude. la convertion est directement réalisée par le programme
de transfert du PC, on fait correspondre directement les positions des radars
avec les trames GPS(on respecte le même format).
Cette version est à utiliser avec la version 3 du programme VB (qui réalise le
changement de format en Longitude, Latitude des positions).


Exemple :
longitude radar 5.35361
Longitude GPS 5° 21'.21

Donc le PC chargera pour la longitude les valeurs suivantes dans la mémoire
SPI :

(5+128) (21+128) (21+128) ==> 133 149 149

latitude radar 43.3798
latitude GPS 43° 22'.78

Donc le PC chargera pour la longitude les valeurs suivantes dans la mémoire
I2C :

(43+128) (22+128) (78+128) ==> 171 150 206

On scrute la memoire 6 octets par 6 octets (sauf si la différence du
premier octet (donc degre longitude) avec le degre GPS en longitude
est égale à zéro, dans ce cas on va lire les cinq octets suivant pour
comparer la position), pour permettre une lecture de position mémoire
beaucoup plus rapide.

On écrit la mémoire par page de 127 octets (dans le programme transfert),
en plus on passe la vitesse de la liaison série à 115200 bauds pour une
mise à jour de la mémoire.

SPBRG = (20 000000/(115200*16))-1 = 10



Misschien kan iemand me uitleggen waarom er een getal (128) bij de coordinaten wordt opgeteld?'
jaap57
 
Posts: 117
Joined: Thu Jan 02, 2014 3:31 pm

Postby schueler » Thu Jan 08, 2009 12:00 am

jaap57Misschien kan iemand me uitleggen waarom er een getal (128) bij de coördinaten wordt opgeteld?


Dit kan ik je uitleggen... dit heeft te maken met 2's complement.
Of te wel 128 is eigenlijk -128 en 255 is -1.

Ik heb inmiddels een testje gedaan en en volgens mij worden de gegevens wel geschreven. De waardes worden inderdaad in de I2C EEprom geschreven en hoeveel punten er geschreven worden word in de interne EEprom van de PIC geschreven. Deze heb ik gecontroleerd en klopt.

Wat ik inmiddels ook gemerkt heb is dat ik bij het programmeren de interne EEprom steeds wiste. Ik gebruik een PICkit2 programmer en bij de programmeer software staat automatisch een vinkje bij het schrijven van de EEprom bij een programmering.
Erg vervelend...

Ik heb de files maar even toegevoegd zodat je het eventueel zelf kunt testen. Je zult zien dat ik het een en ander eruit heb gehaald omdat ik veel ruimte tekort kom...

Ben
Attachments

[The extension fcf has been deactivated and can no longer be displayed.]

[The extension hex has been deactivated and can no longer be displayed.]

schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Fri Jan 09, 2009 12:00 am

Ok, ik heb nu een kleine aanpassing gemaakt op de laatste test versie zodat het d gelezen I2C waardes uitspuwt naar de PC ( let op, hyper terminal op 4800baud!!! ).

Met mijn waardes:
5.22350, 51.25333, Num "[NB][VELDHOVEN-006]Nieuwe Kerkstraat ( N51.25333 E5.22350 )"
5.39201, 51.39809, Num "[NB][VELDHOVEN-003]Kempenbaan ( N51.39809 E5.39201 )"
5.39259, 51.39841, Num "[NB][VELDHOVEN-001]Kempenbaan ( N51.39841 E5.39259 )"
5.39906, 51.40071, Num "[NB][VELDHOVEN-002]Kempenbaan ( N51.40071 E5.39906 )"
5.41221, 51.42804, Num "[NB][VELDHOVEN-005]Heerbaan ( N51.42804 E5.41221 )"
5.41276, 51.42859, Num "[NB][VELDHOVEN-004]Heerbaan ( N51.42859 E5.41276 )"


staat er in de I2C EEprom in ieder geval:


133 141 169 179 143 147
133 151 180 179 151 216
133 151 183 179 151 218
133 151 222 178 152 132
133 152 201 179 153 196
133 152 204 179 153 199


vertaald:
voorbeeld: 133 - 128 = 5

5 13 41 51 15 19


maar uit de code lees ik ( dank U Google Translate!!! )
example:

Latitude 44 ° 26,208 worth 44.4368
Longitude 2 ° 40,866 worth 2.6811

44.4368

44 + 128 = 172 therefore AC
43 + 128 = 171 therefore AB
68 + 128 = 196 therefore C4

ACABC4 for latitude

2.6811

2 + 128 = 130 therefore 82
68 + 128 = 196 therefore C4
11 + 128 = 139 therefore 8B

82C48B for longitude

So the position in the memory is in hex:

82C48BACABC4


Lijkt me eigenlijk allemaal te kloppen....
Vreemd....
Ga maar weer verder zoeken.


Ben
Attachments

[The extension fcf has been deactivated and can no longer be displayed.]

[The extension hex has been deactivated and can no longer be displayed.]

schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Fri Jan 09, 2009 12:00 am

jaap57Mijn vraag is: Waar haalt het programma die 6 points vandaan?


De points zelf staan in de externe EEprom ( I2C EEprom )
Hoeveel points er in deze externe EEProm staan is weggeschreven in het interne EEprom van de PIC.

De waarde 6 die jij op je scherm krijgt komt dus uit de interne EEprom van de PIC.

jaap57Wordt daadwerkelijk het EEpromgeheugen gelezen of haalt de PIC dit uit zijn eigen geheugen waar in staat hoeveel punten hij geschreven heeft. In het laatste geval zegt dit dan niets over de werking van het lezen en schrijven naar de EEPROM...


Klopt helemaal als een bus.
Vandaar ook mijn reactie dat deze code niet echt duidelijk is voor niet Franstalige lezers ( Lees : "EEN RAMP!!!" ).

Ik ben bezig geweest om de I2C EEprom uit te lezen of in ieder geval de waarden die tijdens het checken van de database op het LCD te krijgen. Ik kan je vertellen dat dat voor een niet ervaren Flowcode gebruiker dat nogal wat strubbelingen kost. De week is nog niet om en probeer het nog voor mekaar te krijgen.


Ben
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby jaap57 » Fri Jan 09, 2009 12:00 am

Ondertussen flitspaalfile geladen, en nu geeft het display netjes 6 points bij het opstarten. Dat klopt want ik heb voor het testen even snel een kleine file gemaakt.

Mijn vraag is: Waar haalt het programma die 6 points vandaan?
Wordt daadwerkelijk het EEpromgeheugen gelezen of haalt de PIC dit uit zijn eigen geheugen waar in staat hoeveel punten hij geschreven heeft. In het laatste geval zegt dit dan niets over de werking van het lezen en schrijven naar de EEPROM...
jaap57
 
Posts: 117
Joined: Thu Jan 02, 2014 3:31 pm

Next

Return to 2008-11 Flitspaalmelder

Who is online

Users browsing this forum: No registered users and 1 guest