Tidtagningssystem

Berätta om dina pågående projekt.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Tidtagningssystem

Inlägg av cjonash »

Icecap: Det var ingen dum tanke... Synd att larm-pinnen inte är ansluten på mina kort... :(
Får bli i version 2 då.
Användarvisningsbild
Icecap
Inlägg: 26632
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Tidtagningssystem

Inlägg av Icecap »

Inget en lite sladd inte kan fixa... Kom ihåg ett pull-up-motstånd bara.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Steg 4 - Leveranser

Inlägg av cjonash »

Nu har DHL varit här och levererat två lådor från Canada, innehållande 5 st break-out boxar och 4 st klock-lådor.
Gjorda i 2.5 mm stål, så det väger visserligen en del men å andra sidan så är det hållbart! Och, ännu viktigare, det ser hållbart ut!

Så här blev lådan till klockan:
box1.jpg
Och så här ser break-out boxen ut:
box2.jpg

Dessutom var posten här med paketet från Elfa:
elfa.jpg
Så nu återstår bara montering av kretskort, och så montering i lådorna...
Och så lite mjukvara såklart...
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Tidtagningssystem

Inlägg av cjonash »

Icecap skrev:Inget en lite sladd inte kan fixa... Kom ihåg ett pull-up-motstånd bara.
Så sant, så sant. Och pull-up finns praktiskt nog inbyggt i ATMEGA-kontrollern.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Steg 5 - Montering

Inlägg av cjonash »

Nu när deadline för det här projektets första del börjar närma sig, har det blivit hög tid att bygga ihop klockan.

Så här ser kortet ut när alla komponenter är ditlödda, och kortet monterats i lådans botten:
kort3.jpg
D-subkontakter och banankontakter monterade och kablar lödda:
kablar.jpg
Och så här blev då slutresultatet när det gäller hårdvaran:
monterad.jpg
Sist på schemat för ikväll var att testa mot det redan existerande pc-programmet som jag skrivit för Alge klockor.
Här har jag testat att den löpande tiden fungerar (om än utan att jag ställt klockan rätt), samt att alla ingångar skickar sina triggers (loggen till höger):
program.jpg

Nu återstår att göra färdigt koden till mikrokontrollern (saknas funktioner i protokollet för att ställa vissa parametrar, bl.a. ställa tiden), och ett nytt program till PC:n för att kunna ställa tider mm.

Finns det intresse för källkoden till klockan och pc-programmet? Tror att jag kan publicera det här isåfall.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Tidtagningssystem

Inlägg av Lennart Aspenryd »

Ja
Det är alltid kul att studera hur andra har gjort. Har för mig att du sa att tiotusendelen inte går att maska bort. Men den delen är väl inte med i en skönhetstävling.
Jag har ju lite annorlunda behov, men man vet aldrig!
Tackar för infon så långt. Så får du hojta till, när du vet vart det skall köras!
Jag som knappt ser på TV , än mindre någon reklamkanal!

Det är väl inte du som hittat på detta med reklam i Ishockeyn?
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Tidtagningssystem

Inlägg av cjonash »

Nej, reklamen är inte mitt påhitt (däremot är den väl till viss del med och betalar min lön)... :)

Jag kan inte ta bort tiotusendelarna från protokollet, eftersom jag vill att det ska vara kompatibelt med Alge klockan. Behöver man inte den kompabiliteten kan man så klart ta bort dem.
Sen, även om det inte framgår så tydligt av bilden, så togs faktiskt även tusendelarna bort i den slalomtävling som det programmet kommer från. Men det gjordes ju helt på PC-sidan.

När vi fått tillåtelse att prata om, och visa bilder från inspelningarna av, programmet ska jag uppdatera med lite mer info. Tills dess kan jag tyvärr bara prata om tekniken.
Ska se om jag inte kan få upp lite källkod i morgon.
RadioDJ
Inlägg: 445
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

Re: Tidtagningssystem

Inlägg av RadioDJ »

Lite kod hade aldrig varit fel.
Jag har haft ett projekt liggande i huvudet på just en sådan har utrustning men inte kommit längre.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Tidtagningssystem

Inlägg av cjonash »

Nu har vi spelat in 3 av 6 program, och systemet har visat sig vara så pålitligt som jag hoppades på...

Här är en del av utrustningen innan vi börjat rigga den:
utrusting.JPG
Bl.a. består det av 7 grafikmaskiner (pc med decklink och/eller bluefish SDI kort), 6 st Lenovo Thinkpad Tablets, två laptops, givetvis klockan, och sen en hel del kabel och adapters. Tyvärr kan jag inte visa bilder från den färdiga riggen, men en massa kablar blev det...

Strax kommer också lite källkod för den intresserade.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Källkod del 1

Inlägg av cjonash »

Här kommer så äntligen källkoden...

Till att börja med är det koden till själva klockan, som alltså är ett arduino projekt:
digisport_timing_firmware.zip
Klockan pratar ju seriellt över RS232 med PC:n, och här följer en kort presentation av protokollet.
Hastigheten på serieporten är 19200 baud.

<cr> = Ascii tecken 13 (Carriage Return)
<space> = Blanksteg

Klockan skickar varje 1/10 sekund den aktuella tiden, i formatet "hh:mm:ss.t<cr>".

Varje gång en ingång aktiveras, skickas ett event i formatet "<space>####<space>Cx<space>hh:mm:ss.tttt<space>00<cr>".
#### är ett löpnummer som ökas för varje event (startar med 0001, 0002 osv). Cx indikerar vilken ingång (C0 - C7) som eventet avser (C8-C9 är två virtuella ingångar, se nedan).

Sedan finns ett fåtal kommandon man kan skicka tillbaka till klockan:

"TRx<cr>"
Detta kommando får klockan att skicka ett event på samma sätt som om en ingång aktiverats. x kan vara 0-9, där 8 och 9 är två virtuella ingångar som bara kan aktiveras med detta kommando.

"IMxy<cr>"
Med det här kommandot kan man ställa om en ingång skall vara N.C. eller N.O, dvs om den skall reagera på brytande eller slutande kontakter. x motsvarar ingång (0-7) och y är 1 (N.C) eller 0 (N.O). Senast satta värde sparas i EEPROM och laddas igen vid nästa uppstart.

"IDx#####<cr>"
En ingång måste vara oaktiv en viss tid innan den reagerar för en ny trigg (för att undvika dubbeltriggar med t.ex. fotoceller), och den tiden kan sättas med det här kommandot. X motsvarar ingången (0-7) och ##### tiden i millisekunder. Standard är 50 ms, och senast satta tid sparas i EEPROM. Notera att alla 5 siffor måste anges, så t.ex. 50 ms skrivs som 00050.

"GIM<cr>"
Det här kommandot får klockan att skicka en sträng bestående av den aktuella ingångstypen för varje ingång (det som sätts med IM kommandot ovan). Returdatat är en sträng med formatet "#GIMx,x,x,x,x,x,x,x<cr>" där varje x är 1 eller 0 för ingång 0 till 7.

"GID<cr>"
Fungerar på samma sätt som GIM men skickar värdet på delaytiden istället. Returdata är "#GIDx,x,x,x,x,x,x,x<cr>".

"GSI<cr>"
Skickar en sträng som innehåller systeminformation. Returdata startar med "#GSI" och följs av en text och avslutas med <cr>.

"SThhmmss<cr>"
Sätter tiden på klockan till angivet värde.

"SYhhmmss<cr>"
Sätter tiden på klockan till angivet värde, och stoppar klockan. Den kommer börja räkna när nästa aktivering kommer på ingång 0. Används om man vill synka flera klockor till samma tid. Notera att medans den är i synkläge skickas ingen data från klockan.


I min nästa post kommer källkoden för PC programmet.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Källkod del 2

Inlägg av cjonash »

När det gäller PC programmet så är det skrivet i Delphi, version 2007.
Det är, ska sägas redan nu, inte speciellt välkommenterat och delar av det är inte så snyggt kodat heller. Eftersom det skrevs ihop under väldigt kort tid, och dessutom innehåller en del kod kopierat från tidigare projekt, så finns det plats för en hel del förbättringar...

Tyvärr är det så att jag använt en tredjepartskomponent för kommunikationen med serieporten, och den använder en dll som inte får distribueras tillsammans med källkoden (den ska distribueras i en end-user version som är skyddad med lösenord), så den kan jag inte inkludera här. Koden mot den är dock med, och den kan relativt enkelt ersättas med en annan lösning, alternativt finns den på den här sidan (både som trial och för köp): http://www.marshallsoft.com/ Den heter WSC.

Här är källkoden, inklusive en kompilerad version men utan dll-filen:
Clock Interface.zip
I sin nuvarande version så fungerar programmet också som ett Active-X (COM) objekt som andra program kan koppla upp sig mot. Det är så vi läser data från klockan.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Tidtagningssystem

Inlägg av cjonash »

Nu har det här projektet utvecklats lite till, den här gången för att passa som ett tidtagnings- och signalsystem för vattenrutschbanor...
Det är ännu inte färdiginstallerat, men elektroniken är byggd och programvaran (nästan) färdig.

En av de första sakerna som behövde åtgärdas var att korten nu behövde diskreta utgångar också, utöver den seriella kommunikationen.
Samtidigt önskade jag lägga till lysdioder på alla in- och utgångar för att underlätta injustering och felsökning vid installationen. Till sist så behövde RS232 porten bytas ut mot en RS422, och när jag ändå höll på så fick kortet en anslutning för att kunna programmera mikrocontrollern utan att ta ut den (med hjälp av bootloadern).
Jag gjorde ett nytt schema, med tillhörande layout och skickade som förra gången till Euro Circuits. Och bråttom var det så klart, både med konstruktionen och med tillverkningen...

Dessvärre innebar denna stress att det smög sig in två fel i schemat! Det ena var ett rent slarvfel, och det andra orsakades av dålig påläsning i databladen. Och dessa fel kom följaktligen också med på layouten och de levererade korten, och upptäcktes först när jag byggt klart och skulle testa det första kortet!

Här är det felaktiga schemat:
dstiming2_incorrect.pdf
Och det felaktiga kortet:
layout_incorrect.pdf
Det som är fel är dels att fel stift är anslutet på utgångarna till optokopplarna (stift 5 ska vara anslutet istället för stift 6), och dels så kan inte PCF8574 driva båda ULN2803 utan att ha pull-up motstånd på de 8 utgångarna. Visst gick det att fixa med lite motstånd monterade på baksidan av kortet, och med ett avklippt ben på optokopplarna ihop med en lödbrygga på undersidan, men det ser ju inte så vackert ut.

Jag beställde och fick 10 kort, varav ett är monterat, så de övriga 9 finns omonterade om någon är intresserad. Jag skänker bort dem till den eller de som kan ha någon användning för dem!

Nytt schema och ny layout gjordes lite snabbt, nu med alla anslutningar på rätt ställe. Dessutom lade jag till en RS422 ingång också (den förra versionen hade bara en utgång eftersom det här projektet egentligen inte behövde kunna prata tillbaka med kortet). Nu gick beställningen till Malmö Mönsterkort istället, eftersom jag råkade jobba i Malmö under den här tiden och då kunde spara in transporttiden...

To be continued...
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Tidtagningssystem

Inlägg av Lennart Aspenryd »

Spännande!
Jag är tacksam för att du vill ge så mycken bakgrund, säkert nyttigt för många av oss. :vissla:
Och visst är jag intresserad av kort, jag har ju inte distanser där man måste byta rs232 mot rs422.
Skickar pm säger Lasp
Varför kör du RS422 istället för RS485 Den är väl säkrare på distans?
RadioDJ
Inlägg: 445
Blev medlem: 7 november 2005, 16:18:15
Ort: Helsingborg

Re: Tidtagningssystem

Inlägg av RadioDJ »

Jag kan också tänka mig att ta några kort.
Kommer du att släppa källkoden även till detta??
cjonash
Inlägg: 613
Blev medlem: 20 maj 2011, 08:53:58
Ort: Göteborg

Re: Tidtagningssystem

Inlägg av cjonash »

Lasp och RadioDJ, jag skickar tre kort till er var, om ni ser till att jag får er adress i PM.
Källkoden får ni såklart också, dock kräver den dubbelriktad kommunikation för att alla finesser skall fungera, och de här korten har bara enkelriktad RS442 eller dubbelriktat TTL så någon form av adapter kan behövas (beroende på vad ni ska göra).

Källkoden, lite mer info och lite bilder kommer så småningom... Behöver bara få lite tid över...
Skriv svar