Nieuwe Code Flitspaalmelder

Postby schueler » Thu Apr 16, 2009 12:00 am

EDIT: Meest recente Flitspaalmelder versie 1.26b aan het einde van dit forum...
______________________________________________________


Ik heb me de afgelopen tijd flink bezig gehouden met de code van het project Flitspaalmelder. Je kunt er onder andere meer lezen in het onderwerp FlowCode geoptimaliseerd voor PIC16F876A ( Flitspaalmelder ). Over de aangeboden functies was ik niet tevreden en ik miste er een paar die ik graag erbij wilde hebben.
Tot mijn verbazing bleek dat na het compileren van de originele code de gebruikte PIC16F876A al vol te zitten.
Dit heeft twee oorzaken:
1) Flowcode kent alleen macro en geen functies. Een macro wordt telkens in de code gezet in plaats van dat deze aangeroepen wordt.
2) De code die de auteurs hebben geschreven was verre van efficiënt. Zo worden er onnodig loops en tellers gebruikt terwijl er een eenvoudige functie of methode voor is. Laten we het even op onwetendheid houden.

Ik zal er meteen even bij zeggen dat ik een hardware achtergrond heb en software als hobby bij doe. Ik schrijf dus geen perfecte code maar weet wel wat ik doe.

De code die ik hier voorstel is voor het bestaande print van Elektor.

De originele code laat op een display zien wat de snelheid en tijd is en wat de coördinaten zijn. De tijd is overigens alleen voor landen met UTC+1. De zomer en wintertijd werd geregeld aan de hand van de maanden ongeacht dat de datum goed was of niet.

De code hier gepresenteerd geeft de tijd, datum, snelheid, richting ( compass ,degrees ), hoogte en coördinaten aan.
Aangezien dit niet allemaal op 1 LCD past, uitgaande van de 2x16 die voorgesteld word, kun je keuzes maken via een menu.

De datum en tijd worden aangepast aan de hand van de gebruikte UTC+n en/of zomer-/wintertijd.


Modificaties:
Weerstand 10k van A.2 naar ground.
Weerstand 10k van A.4 naar ground.
Drukknop van A.2 naar Vdd.
Drukknop van A.4 naar Vdd.

A.1 heeft geen functie meer in deze code om compatibel te blijven met de originele code.


Bediening:

In normale mode
1 keer drukken op A4 -> wissel display info
wisselt tussen coördinaten op het scherm of datum/tijd/etc.

1 keer drukken op A2 -> Menu
Met A.2 kun je door het menu bladeren.
Met A.4 verander je de waarde van het menu item.

Als je ~4 seconde niets doet valt het automatisch terug. De waarde van het menu item dat geselecteerd is wordt dan niet opgeslagen. Door naar het volgende menu item te gaan word de vorige automatisch opgeslagen.



Menu:
2 [0]=MPH [1]=km/u

3 [0]=Winter time [1]=Summer time

4 [0 .. 24] (UTC -12 .. +12)

5 [0]=-N- [1]=Degrees

6 [0]=Compass [1]=Height



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 » Thu Apr 16, 2009 12:00 am

Foto's van verschillende opties
Attachments
Menu.jpg
Mph.jpg
Height.jpg
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Thu Apr 16, 2009 12:00 am

nog meer...
Attachments
Compass.jpg
Degrees.jpg
Coordinates.jpg
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby thijsbeckers » Fri Apr 17, 2009 12:00 am

Zoals altijd: mooi werk, Ben !
thijsbeckers
 
Posts: 1134
Joined: Thu Jan 02, 2014 10:37 am

Postby arjen h. » Fri Apr 17, 2009 12:00 am

En in de Elektor van Mei !
Het Elektor forum is voor de lezers; voor een vraag aan de redactie kun je het beste Elektor een email sturen.
arjen h.
Moderator
 
Posts: 1290
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Fri Apr 17, 2009 12:00 am

Hehe...

Heb het net gelezen ja ( tijdschrift lag op de mat toen ik thuis kwam... )

De versie van Elektor ( PIC16F876A ) ga ik nu in mijn Citroen C15 bouwen. Dan heeft die ook een computer aan boord met digitale snelheidsmeter hehehe

De andere is nog in opbouw, dat is dan de PIC18F2520. Hierover ben ik nog niet tevreden. Ik wil graag de interne PLL werkend krijgen en dat lukt ook wel maar dan werkt de UART niet meer op en één of andere manier...
Hier heb ik al een post gezet in dit forum. Tot nu toe nog geen reacties helaas...


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

Postby schueler » Sun Apr 19, 2009 12:00 am

Even wat foto's van de Fastrax UC322 module op de Flitspaalmelder...
De module werkt op 5V maar de IO is zowel voor de input als voor de output 1.8V CMOS.
Dit betekend dat voor de TxD een level shifter gemaakt moet worden wat je bij mij onder de module kunt zien zitten.
( ... waar de lijm zit )


Ben
Attachments
Flitspaalmelder-Fastrax.jpg
Fastrax-UC322.jpg
Fastrax-level-shift.jpg
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Sun Apr 19, 2009 12:00 am

Mijn verontschuldigingen voor diegene die mijn code "GPS_Radar_20090415_2145_GB.fcf" en "GPS_Radar_20090415_2145_GB.hex" hebben gedownload. Er bleek een foutje te zitten in de lattitude omzetting waardoor er nooit een flitspaal gedetecteerd zou worden.
Bij deze de nieuwe code en ik heb de oude code meteen even vervangen in mijn eerste post.

Ik heb tevens gebruik gemaakt om de code iets op te vijzelen...
Als de Flitspaalmelder word aangezet zal, wanneer er een satelliet wordt gezien, de tijd op het display gezet worden. Dit hoeft overigens niet de juiste tijd te zijn ivm welke satelliet je ontvangt f zo... weet niet precies waarom.
Wanneer er een FIX is zal de juiste tijd en de rest werken.

Dit heb ik gedaan omdat ik een Fastrax module ( UC322 ) wil gebruiken in plaats van de EM406. Om te kijken of het überhaupt data geeft wilde ik weten of de tijd doorgegeven werd.
Vandaar...
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 » Mon Apr 27, 2009 12:00 am

De resultaten met de Fastrax UC322 zijn bedroevend. Het duurt erg lang voordat ie een FIX heeft. Zelfs in de openlucht. De Sparkfun EM406 module is wat dat betreft veel sneller. Mede door zijn backup batterij vind hij met behulp van de hot start binnen een paar seconde een FIX. Een cold start duurt bij mijn niet langer dan 30 seconde wat bij de Fastrax meerdere minuten in beslag neemt....

Ik raad de Fastrax dus niet aan om te gebruiken...
Voor mij betekend dit dus alsnog een EM406 bij Sparkfun bestellen...

Ben

edit: Deze test van mij is niet juist geweest en wil ik bij deze corrigeren. Door een foutieve opstelling kon de Fastrax ook niet goed werken en zal de test opnieuw doen.
schueler
 
Posts: 1433
Joined: Thu Jan 02, 2014 10:40 am

Postby schueler » Sat May 09, 2009 12:00 am

Ik heb de laatste twee weken niet veel van me laten horen... Ik ben er druk bezig geweest om de code om te zetten naar C code.
Ik heb het project nu in MPLAB van Microchip zelf geschreven.
Hiervoor gebruik ik dan wel de compiler van H-Tech en dan wel de pro versie ( 45 dagen evaluatie ).
De reden hiervoor is dat ik de code meteen zo geschreven heb zodat je de PIC16F876A als de PIC18F2520 kunt gebruiken.
Beide heb ik nu werkend op één klein dingetje na.....
Op een één of andere manier wil het I2C stuk niet stabiel werken ( lees eigenlijk niet ). Ik heb de code van H-Tech C zelf geprobeerd aan de praat te krijgen maar zonder resultaat. Inmiddels wat code gevonden op internet wat ook zou moeten werken dus ik zal daar een mee experimenteren....

Hopelijk heb ik dit weekeinde even tijd om het te testen.

De code is nu zoals ik het wil hebben inclusief een nette menu ( geen nummertjes maar tekst!!! ) en de versnelde zoekalgoritme.
En dan is de PIC16F876A nog maar 67% gevuld!!!!


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

Next

Return to 2008-11 Flitspaalmelder

Who is online

Users browsing this forum: No registered users and 1 guest