MODELLJERNBANEFORENINGEN I NORGE (MJF) - forum

  New Posts New Posts RSS Feed - Programmeringssporet
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Programmeringssporet

 Post Reply Post Reply Page  123 7>
Author
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Topic: Programmeringssporet
    Posted: 12 desember 2013 at 12:27
En  byggeblogg med et litt anderledes fokus.

Jeg har vært passiv bruker av forumet siden det ble opprettet.  Modeljernbane har jeg drevet med i 40 år.  Digitalforsøkene ble startet for ca 20 år siden.  Etter noe eksperimentering med selvbygde sentraler og to digitale N-Skala lok, endte jeg opp med to Roco H0 Startset med DB BR 80 lokomotiver(http://www.worldrailfans.info/Articles/Europe/GBR80.shtml ).  Noen ekstra skinner, og det ble en grei to spors rundbane anlegg med kryss og sidespor.  Noe senere ble også hovedanlegget klargjort for digital kjøring.  Lenz PC interface, og to nye ROCO startsett ble også innkjøpt.  Samtidig startet digitalisering av bl.a. Lima, Heljan og ROCO lok.  Som mange vet, støtter ikke de enkle ROCO sentralene programmeringsspor  -  kun programmering på hovedsporet, og ingen støtte for utlesing av konfigurasjonen (CV).

I 2007 begynte jeg å bygge moduler med FREMO grensesnitt.  Programmeringssporet er plassert på en av disse modulene   Denne modulen er en snumodul som står i den ene enden av anlegget.  Modulen følger ikke FREMO standarden på andre punkter enn grensesnittet.   Hele modulen, bortsett fra FREMO grensesnittet, benytter Trix skinner.


Hittil har programmeringen blitt gjort ved at et rele kopler fra resten av anlegget når jeg har behov for å programmere lokomotiver på programmeringssporet.  I denne bloggen vil jeg skrive om hva som skjer på og ved programmeringssporet, og hvilke tekniske løsninger jeg velger.  Jeg har også tenkt å ta dere med både langs hovedlinjen og inn på noen sidelinjer der også andre interessante løsninger benyttes.  I dette første innlegget kommer her et bilde av programmeringssporet med mitt første H0 digitallok : Roco DB BR 80 fra startsett .  På bildet er det også to midlertid plasserte krettskort : et Vellemann (http://www.velleman.eu/)  kort for optisk spordeteksjon, og også et Arduino kort  (http://no.wikipedia.org/wiki/Arduino) som benyttes for blokkdetektering.  Vellemann kortet er koplet til PC serie port via en Optokopler.  Arduino kortet har USB.

Her er også et bilde av ferdig loddede kretskort som jeg skal teste ut på programmeringssporet, (http://www.merg.org.uk/merg_resources/cbus-dcc.php ), og en Raspberry PI (http://no.wikipedia.org/wiki/Raspberry_Pi ).


Neste blogginnlegg vil inneholde mere om disse kretskortene, og hvordan de er tenkt benyttet.



Edited by programmeringssporet - 18 desember 2013 at 01:46
Back to Top
Thobbe View Drop Down
Veteran
Veteran
Avatar

Joined: 17 september 2012
Location: Norge
Status: Offline
Points: 122
Post Options Post Options   Thanks (0) Thanks(0)   Quote Thobbe Quote  Post ReplyReply Direct Link To This Post Posted: 12 desember 2013 at 14:12
Jeg er skikkelig interessert i blokkdeteksjon med arduin. Men jeg skjønner ikke noen ting som helst av programmering...

Dette ser skikkelig spennende ut!


Edited by Thobbe - 12 desember 2013 at 14:12
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 13 desember 2013 at 00:34
Hei Thobbe,

For å komme igang med Arduino.  Start her :

http://arduino.cc/en/Guide/Windows

Etter at du har fått blink eksemplet til å fungere, kan du teste ut DigitalSerialRead.

Ved å kombinere disse to eksemplene, har du en en-blokks spordetektor.
Du trenger også noen komponenter pr detektor.  For DCC kan du f.eks. bruke disse :

4n25 (Ikke kjøp mange av denne - det er enklere med firedoble optokoplere)
https://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?item=75-205-90&toc=0&q=4n25

brolikeretter
https://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?item=70-001-74&toc=0&q=brolikeretter

motstand
https://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?item=60-243-38&toc=0&q=motstand+10k

Når du har fått dette til å fungere - kan jeg vise deg hvordan du enkelt utvider til f.eks. 8 blokker.
Videre utbygging er litt mere komplekst.  Jeg har 24 detektorer pr. Arduino, men det er av historiske årsaker - En Arduino kan sikker greie mange tusen blokker.

Her er min eksempelkode : (Ikke testet fordi jeg ikke har tilgang til Arduino . der jeg er i dag)

/*
Enkel detektor, sjekker status på pinne 2
Tenner intern LED (også Pinne 13) eller slukker avhengig av Pinne 2
Sender også ut en 0 eller 1 til PC via USB port
*/
  // setup kjøres en gang og brukes til initsiering av pinner og serie port:
void setup() {               
  // Sett pinne 13 til UT (Pinne 13 er også intern LED:
  pinMode(13, OUTPUT);
  // Sett opp serieport (USB og Pinne 0 og 1) Hastighet 9600:
  Serial.begin(9600);
  // Sett opp detektor pinne 2 til INN:
  pinMode(2, INPUT);
 
}
// Etter at setup er kjørt, vil prosessoren gjenta loop så lenge den kjører
void loop() {
  //Les sensorpinnen (2) og legg resultatet i variabelen sensorValue:
  int sensorValue = digitalRead(2);
  //Send resultatet til PC via Serie Port / USB:
  Serial.println(sensorValue, DEC);
  // Tenn, eller Slukk LED på pinne 13, avhengig av sensorValue :
  if (sensorValue==0) digitalWrite(13, LOW); else digitalWrite(13, HIGH);
  // vent 1/10 sekund, og gjenta etterpå :
  delay(100);             
}
Back to Top
einjen View Drop Down
Veteran
Veteran
Avatar

Joined: 17 september 2005
Location: Norway
Status: Offline
Points: 1335
Post Options Post Options   Thanks (0) Thanks(0)   Quote einjen Quote  Post ReplyReply Direct Link To This Post Posted: 15 desember 2013 at 00:13
Heisann.

Jeg har, helt uavhengig av denne tråden, kjøpt dette startsettet for noen dager siden:
http://www.robonor.no/mage/default/arduino/kits/arduino-inventors-kit.html

Skal brukes til å styre LED-tavle.

Kan det brukes til MJ-formål også?
--

Einar Næss Jensen

Words of wisdom are easily spoken, but they are cheap talk

http://einarblog.homemade.no/einarblog
Back to Top
bkv1 View Drop Down
Veteran
Veteran


Joined: 19 desember 2010
Location: Norge
Status: Offline
Points: 247
Post Options Post Options   Thanks (0) Thanks(0)   Quote bkv1 Quote  Post ReplyReply Direct Link To This Post Posted: 15 desember 2013 at 11:20
Hei interedssant blogg.

Har nylig begynt å spekulere rundt autmasjon og blokkstyring til min N-skala bane. Kan Arduino spille noe rolle her? Jeg har tenkt i retning RFID for å holde styr på hvilke blokker som er opptatt, men er i tvil om dette er en god ide.
Hilsen Bjørn


Edited by bkv1 - 15 desember 2013 at 11:26
Hilsen Bjørn

N-skala, Peco 55, Digikeijs DR5000, JMRI. Tysk diesel nyere tid
Back to Top
Thobbe View Drop Down
Veteran
Veteran
Avatar

Joined: 17 september 2012
Location: Norge
Status: Offline
Points: 122
Post Options Post Options   Thanks (0) Thanks(0)   Quote Thobbe Quote  Post ReplyReply Direct Link To This Post Posted: 15 desember 2013 at 17:04
Jeg tror.hvertfall det finnes billigere metoder enn rfid. Men jeg har vært inne på tanken selv. Da vil man jo kunne se hvor hvert enkelt tog befinner seg, og ikke bare om et sporfelt r belagt eller ikke.
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 16 desember 2013 at 22:01

16. Desember 2013

Hyggelige og nyttige kommentarer på bloggen.  Siden det er mest spørsmål rundt Arduino, vil jeg fokusere på dette denne gangen.  Vil først nevne at jeg også har gjort noe eksprementering med Arduino og RFID.  Tanken min rundt dette er å ha lesere ved utkjøring fra stasjoner,  for å automatisk registrere togsammensetning.  For øyeblikket tror jeg ikke jeg går videre med dette, fodi det  trolig er enklere å løse dette i programvare ved at styringen har full oversikt over alle vogner til enhver tid, og å benytte optiske vogn eller akseltellere for å være sikker på hvor mange og derved hvilke vogner som er med i toget.  I fremtiden kan det vel også være aktuelt med DCC dekodere, med tilbakemelding  i alle vogner.

Først en oversikt over bruksområder for Arduino på en modeljernbane: (se også http://www.siliconvalleylines.com/downloads/ModelRailroadingWithArduino.pdf)

Jeg utvikler / benytter Arduino på følgende områder :

·         DCC analysator 2 mikrosekunders oppløsning , kun positive eller negative pulser.  Realtime inn i database for senere analyse.   Jeg Kommer med mere  informasjon i et senere blogginnlegg.

·         Block Detector.  Strømdetektering, Se litt info lenger opp.  Kommer senere med mere info.

·         Ultralyd avstandsmåling – et 1 times prosjekt, se mere nedenfor i dette innlegget.

 

Planer – som kan implementeres med Arduino kort, Arduino prosessor eller med andre prosessorer (f.eks. Microchip PIC):

·         Amperemeter DCC og andre kilder

·         Spenningsmåler DCC

·         DCC programmerer

·         Relestyring

·         Ledstyring

·         LCD Display styring

·         Pulsmotorstyring ( http://modelrail.otenko.com/arduino/controlling-your-trains-with-an-arduino )

·         DCC decoder.

·         Servostyring.

 

 

Andre :

·         OpenLCB/NMRAnet Developer and Early Adopter Kit.  Eksperimentsett for NMRAnet / OpenLCB (http://nmranet.org/ )

·         DCC Command Station (http://www.oscale.net/en/simpledcc )

·         Rfid http://blog.arduino.cc/category/wireless/rfid/

 

 

Ultralyd avstandsmåling – Et  godt eksempel på hvor effektivt det er å utvikle enkle løsninger med Arduino.

Jeg var en tur hos Kjell og Company( http://www.kjell.com/ ) i Sverige i helgen. De har i det siste fått et bedre utvalg av Arduino kort og tilbehør (http://www.kjell.com/Sok?query=arduino) .  Jeg kjøpte bl.a. en Ultralyd sender og mottager (http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/avstandssensor-p87891) til SEK  49.90.  I dag brukte jeg en time på å teste denne ut.  Tanken er å sette den i enden av programmeringsporet, for å måle avstand til Lokomotivet, og bruke dette til å beregne hastigheten.  Målet er en helt automatisert beregning av dekoderens hastighetsparametre.  I løpet av en time i dag fikk jeg programmert Arduino kortet, koplet til sensor og gjort noen tester på arbeidsbenken.  Det ser ut til at deteksjon med avstand fra 4 – 20 cm fungerer bra.  Har testet med DB BR 215 Diesellok og DB BR 80 damplok, både forfra og bakfra.  Tror jeg skal få til lengre avstander med en mere nøyaktig/fastmontert plassering av sensoren.

 

Har også gjort en liten endring i  det medfølgende eksempelet for å få høyere oppløsning.  Her er status etter dagens arbeid.

 

/*

Tilkopling :

Sensor:                 Arduino:

VCC                        5 V

Trig                         Digital input 4

Echo                      Digital input 2

Gnd                       GND

*/

 

 int inputPin=2; //ECHO pin

 int outputPin=4; //TRIG pin

 

 void setup()

 {

   Serial.begin(9600);

   pinMode(inputPin, INPUT);

   pinMode(outputPin, OUTPUT);

 }

 

 void loop()

 {

   digitalWrite(outputPin, HIGH); //Trigger ultrasonic detection

   delayMicroseconds(10);

   digitalWrite(outputPin, LOW);

   float distance = pulseIn(inputPin, HIGH); //Read ultrasonic reflection

   distance=distance/58;

   Serial.println(distance); //Print distance 

   delay(100);

 }

 

 

Har også fullført MERG kortene. Og gjort den første utlesingen av CV’er fra et lokomotiv.  Mere om dette neste gang.



http://programmingtrack.no-ip.org/locodb/DB2151298.pdf



Edited by programmeringssporet - 16 desember 2013 at 22:27
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 27 desember 2013 at 13:26
Har lastet ned og installert gratisprogrammet Fritzing (http://fritzing.org)
Dette har jeg brukt for å dokumentere en enkel blokkdetektor for DCC med Arduino.
Her kommer resutatet:






Edited by programmeringssporet - 27 desember 2013 at 14:12
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 02 januar 2014 at 02:03
Hvorfor denne Bloggen ?

Hvorfor leker vi med tog ?  Eller hvorfor leker vi i det hele tatt.  Det er vanlig å dele lek for barn inn i tre grupper :
1) Funksjonslek, hvor det viktigste er at muskler og sanser er i funksjon
2) Fiksjonslek (eller illusjonslek)  leke far, mor og barn, leke butikk, leke tog osv.). Her spiller      fantasien en stor rolle.
3)  Konstruksjonslek, (bygge med klosser, grave i sand, klippe og klistre, modellere, tegne, skrive, snekre, sy osv.

Modelljernbane dekker de to siste gruppene.  Det som har vært viktigst for meg er muligheten til å lære nye ting.  Det begynte med å forstå basis EL-teknikk, senere elektronisk styring, Digitale kretser, og programmering.  Norge har et stort behov for teknisk kompetanse fremover, og der er satt igang flere initiativer for å få til dette.  Et av dem er ”Lær Kidsa Koding”. ( www.kidsakoder.no).  Utfordringen med hobbyprogrammering, blir for mange hva skal man lage ?  Styring av modelljernbane er løsningen – og kanskje den viktigste grunnen til at 10 åringen bør drive med modelljernbane ?

Hva skal så til for å komme igang med elektronikk ? 
Da jeg begynte med dette måtte man sette sammen elektroniske kretser med transistorer og motstander, eller integrerte kretser.  I dag inneholder de aller fleste elektroniske styringer, minst en microprosessor/mikrokontroller.  Denne kontrolleren erstatter mange separate komponenter og integrerte kretser, men de har vært ganske kompliserte å programmerer.  Her kommer Arduino inn som en viktig løsning. 

Arduino er et lite kort med en microkontroller som den viktigste komponenten.  Arduino ble laget for å gjøre det mulig for ikke-teknikere å lage kontrollerkretser. De fleste versjonene av Arduino har  en USB tilkobling.  Denne koples til PC, for strømforsyning,  nedlasting av programmer og tilbakemeldinger.  Og alt dette får man for omtrent kr 200.  Selve prosessoren koster under kr 50 – slik at det er mulig å lage ganske rimelige løsninger med Arduino.  Ofte er det fornuftig å prototype på et Arduino kort, og senere bygge løsningene med en separat prosessor. 

De fleste startet med et Led-blink program.  Det kan lett utvides til trafikklysstyring,  belysningsstyring, signalstyring eller enkel togstyring.  De enkle Arduino kortene er laget med en ganske enkel 8-bits. prosessor med begrenset kapasitet, så etterhvert som logikken blir mere kompleks må man videre. 

Alternativet kan være Arduino Mega, som har en kraftigere prosessor (ATmega2560) med mere minne, flere I/O porter og bl.a. 4 Serieporter (Com porter).   Andre alternativer er Chipkit Uno32 (Pic basert 32 bits controller) eller Arduino Due som en 32bit CortexM3 ARM microcontroller – og da har vi prosessorytelse som en middels smart Phone.  Disse to siste kortene har tre ulemper i forhold til de to første:
1.    De kjører på 3 Volt – istedenfor 5 Volt, gjør tilkopling litt vanskeligere,
2.    De er litt dyrere. (kr 150 – 500).
3.    Prosessoren kan ikke tas ut av kortet.  Feilkopling som fører til  ødelagt prosessor gjør derfor kortet ubrukelig.  Det blir også dyrt/vanskelig å lage en ”produksjonsversjon” av løsningen med en løs prosesser.

Sparkfun har en nyttig side for å velge Arduino kort : https://www.sparkfun.com/arduino_guide

Microchip lager også mikrokontrollere.  Disse kan også programmeres ganske enkelt (Assembly, C, Basic, JAL), men krever litt investering i programmeringsutstyr. Og ganske kompleks oppsett av utviklingsmiljø på PC’en.  Dette er teknologien som er benyttet av mange d.i.y. DCC sentraler :
TMW - http://www.webring.org/l/rd?ring=modelrailroading;id=20;url=http%3A%2F%2Ftmw.dreamhosters.com%2F
MiniDCC - http://www.trainelectronics.com/miniDCC/index.htm
NanoX - http://usuaris.tinet.cat/fmco/nanox_en.html#nanox_orig
MERG - http://www.merg.org.uk/

TMW, var den første jeg bygget – den er idag uaktuell, fordi nyere alternative har mere funksjonalitet.  MiniDCC har jeg aldri prøvd fordi den ikke dekker mine behov (PC grensesnitt).

NanoX skal jeg bygge en dag.  Den er glimrende for de som benytter ROCO lokmaus II, eller Multimaus.  Kan bygges i flere alternative versjoner med PC interface og feedback, og utlesing av CV variable.  Veldig rimelig løsning for å oppnå noe av det samme som ROCO z21, men den krever noe mere arbeid og PC programvare som JMRI eller Rocrail.  Det eneste vesentlig argumentet for z21/Z21, som jeg ser det, er de nye Kamera Lokomotivene som ROCO kommer med.

MERG – Er en komplett løsning for modelljernbanestyring.  Den er distribuert over mange forskjellige kort – slik at man kan bygge kun det man har behov for.  Mitt behov i første omgang er å kunne programmere og lese ut CV variable, resten av modelljernbanen min styres med ROCO Lokmaus II/ Multimaus, og Lenz PC interface.  For programmeringssporet trenger man en DCC sentral. Og et PC interface.  Skjema, byggebeskrivelse, og Print Layout ligger klart for nedlastning fra http://www.merg.co.uk/index.php .  Medlemmer av MERG kan også kjøpe ferdige byggesett.  Etter litt rask hoderegning, kom jeg til at det var like rimelig å melde seg inn, og bestille byggesettene. (medlemmer kan også kjøpe komponentene til rimelige priser). 

Medlemsskapet kostet 25 Pund.  En uke etter at jeg hadde registert meg, og betalt, fikk jeg tilgang til å bestille byggesettene http://www.merg.co.uk/kits.php .  Jeg bestilte

-    Kit 81: RS232 Interface (CAN-RS) 10,50 Pund.
-    Kit 91: DCC Command Station with CBUS Interface 26,80 Pund.

Frakt kostet 3,50 Pund.  Totalt ble det under kr 650 (400 for pakken og 250 for medlemskapet) levert hjem i postkassen.

Alternativene jeg vurderte, var å kjøpe en Lenz Digitalsentral, SPROG II (http://www.sprog-dcc.co.uk/) .eller å bygge en SPROG I (http://www.sprog-dcc.co.uk/oldsprog/sprog.htm ), men valgte til slutt å gå for MERG CBUS, fordi den kan brukes til så mye mere.

Byggingen av settene gikk fort, ca 30 minutter pr. sett.  Testprosedyren før montering av controller tok ca en time.  Deretter ble det litt stop,  før jeg forstod at neste skritt var å installere JMRI (http://www.jmri.org/ ).  Installerte denne på en Windows PC, og koplet til via en USB – Serieport Adapter.  Started DecoderPro3, og konfiguerte denne for MERG.  Fungerte ikke til å begynne med, før jeg forsto at Baud rate måtte endres fra 57000 til 115200. 






Hvis man setter inn ”Jumper 7” på ”Command Station”, vil den innebygde boosteren aktiveres. Da vil den gule LED2 Lyse.  Ved å slå av og på DCC strømmen i DecoderPro på PC, fikk jeg derved en visuell kontroll på om DecoderPro kommuniserte med ”Command Station”.  Neste skritt var å fjerne ”Jumper 7” slik at den ble konfigurert for programmeringssporet.  Da var det bare å sette igang å lese ut dekoder konfigurasjonene mine.  Jeg tenkte å starte med å gi et av DB BR80 lokkene mine æren av å være først ute med dette, men fikk ikke kontakt – på tide å ta service på det lokket igjen.  Prøvde da å lese ut fra et DB BR 215, og det fungerte fint.

Neste skritt var å installere JMRI på en Raspberry PI, og det gikk også greit – mere om Raspberry PI og JMRI neste gang.







Edited by programmeringssporet - 02 januar 2014 at 02:11
Back to Top
ses View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 09 november 2006
Location: Norway
Status: Offline
Points: 3922
Post Options Post Options   Thanks (0) Thanks(0)   Quote ses Quote  Post ReplyReply Direct Link To This Post Posted: 02 januar 2014 at 09:12

Interessant innlegg!

Du spør i starten om "hvorfor leker vi i det hele tatt." Hvis man er interessert i å fordype seg i dette kan jeg anbefale klassikeren på området, nederlenderen Johan Huizingas Homo Ludens fra 1938, som fortsatt gis ut i nye oversettelser og utgaver. En dansk oversettelse (Huizinga, J. (1963). Homo ludens: om kulturens oprindelse i leg.  København: Gyldendal) hvis man ikke vil/kan lese den i engelske eller tyske oversettelser, og kan sikkert fås tak i på et bedre bibliotek.

Svein S
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 03 januar 2014 at 00:54
Originally posted by ses ses wrote:

Interessant innlegg!

Du spør i starten om "hvorfor leker vi i det hele tatt." Hvis man er interessert i å fordype seg i dette kan jeg anbefale klassikeren på området, nederlenderen Johan Huizingas Homo Ludens fra 1938, som fortsatt gis ut i nye oversettelser og utgaver. En dansk oversettelse (Huizinga, J. (1963). Homo ludens: om kulturens oprindelse i leg.  København: Gyldendal) hvis man ikke vil/kan lese den i engelske eller tyske oversettelser, og kan sikkert fås tak i på et bedre bibliotek.



Hyggelig med tilbakemelding !

Lek i form av rollespill, er vel kanskje det vi kaller trafikkspill ?

Her kommer en ganske kortfattet oppskrift på hvordan installere JMRI på Raspberry Pi :
Jeg kobler sjelden Skjerm, tastatur og mus til Raspberry Pi.
hvis du gjør det kan du hopper over pkt 4,7 og 10


1.    Last ned Raspian fra 20 Desember 2013 :
http://www.raspberrypi.org/downloads
unzip

2.    Lag boot image på SD kort . 
Her kommer oppskrifte for å lage fra en  Linux PC .  Oppskrifter for Windows PC’er finnes på nettet.
Du må være sikker på navnet til SD brikken.  På min Linux PC ble det sde.  Bruk fdisk for å sjekke.  Hvis du gjør feil – er det stor sjangse for at Linux installasjonen blir overskrevet/ødelagt.
fdisk /dev/sde
dd bs=1M if=2013-12-20-wheezy-raspbian.img of=/dev/sde

3. Sett SD kortet  i Raspberry Pi
kople til nettverk og strøm.  Alle LED’ene skal tenne i løpet av kort tid..  Hvis kun en rød lyser, mangler nettverk.

4.   Logg inn via SSH
  Hvis di bruker Windows som desktop – kan du laste ned putty fra : http://www.putty.org/

5.    Konfigurer Raspberry Pi :

Sudo raspi-config
Kjør valgene 1,2,3,4

ââââââââââ⤠Raspberry Pi Software Configuration Tool (raspi-config) ââââââââââââ Setup Options                                                               
â                                                                              â
â    1 Expand Filesystem              Ensures that all of the SD card s      
â    2 Change User Password           Change password for the default u      
â    3 Enable Boot to Desktop/Scratch Choose whether to boot into a des      
â    4 Internationalisation Options   Set up language and regional sett      
â    5 Enable Camera                  Enable this Pi to work with the R      
â    6 Add to Rastrack                Add this Pi to the online Raspber       
â    7 Overclock                      Configure overclocking for your P       
â    8 Advanced Options               Configure advanced settings             
â    9 About raspi-config             Information about this configurat       
â                                                                             
â                                                                             
â                     <Select>                     <Finish>                   
â                                                                             
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ


6.    Installer RXTX. JMRI er utviklet I Java. Java er allerede installert på Raspberry. 
RXTX gir serieport støtte for JAVA.
sudo apt-get update
sudo apt-get install librxtx-java


7.     Installer og start  VNC Server (Hvis du ikke har koplet til Skjerm, tastatur og mus).

sudo apt-get install tightvncserver
tightvncserver
vncserver :0 -geometry 1920x1080 -dept 24


8.    Download JMRI for Linux

http://jmri.sourceforge.net/download/index.shtml#prod-rel


9.    Pakk ut JMRI

tar -zxvvf JMRI.3.6-r24520.tgz


10. Logg inn med VNC

Logg inn til Raspberry med VNC (Hvis du bruker Windows, som arbeidstasjon, kan du laste ned vnc fra : http://www.realvnc.com/products/open/4.1/winvncviewer.html

11. Start DecoderPro
cd JMRI
./DecoderPro3


Har også montert sammen MERG kortene - og Raspberry Pi.


På bildet ser vi den grønne platen hvor hele styringen er montert.  Den består av, fra Høyre :
  1. Summer for Merg Sentralen
  2. Merg DCC Sentral
  3. to Serieport grensesnitt for MERG Cbus.
  4. to Raspberry Pi
  5. En Zotac mini PC (X86 basert CPU) som kan benyttes til bl.a. å kjøre Windows programvare.

Zotax'en er ikke skrudd fast - fordi jeg er usikker på om jeg trenger den - men det er greit å vita at jeg har plass.

Andre ting i bildet er, et midlertlig programmeringsspor - denne gangen med en Pico DB BR 218
Marklin Trafo, og TRIX analog kontroller, er midlertidig strømforsyning for MERG kortene.

Det sorte krysset til venstre for Trix kontrolleren, er CAN bus plugger med T-ledd og terminator.  Tenker å bruke disse pluggene der det er behov for å trekke CAN bussen mellom forskjellige Moduler/seksjoner
Pluggene.  De er egentlig laget for CAN buss i båter (NMEA 2000), men de bør fungere like bra i modelljernbane sammenheng, selv om de er vanntette. ( http://www.maretron.com/products/cabling.php )

Den store Blå boksen helt øverst er en dobbel USB - RS 232 overgang, som skal koples til LENZ / Roco styringen.





Edited by programmeringssporet - 03 januar 2014 at 01:22
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 06 januar 2014 at 22:47
Har fått noen meldinger om installasjonsproblemer.

Her kommer en automatisert oppskrift på hvordan installerer JMRI på Raspberry Pi:
Lisens : http://jmri.sourceforge.net/COPYING
Denne erstatter pkt. 6,7,8, og 9 i oppskriften over :

wget programmingtrack.no-ip.org/setup.sh
. ./setup.sh

Den tar 15 - 20 minutter å kjøre.  Svar Y når den spør, og oppgi et passord (VNC) når den spør om det.
Hvis den feiler, kan den kjøres på nytt.
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 11 januar 2014 at 22:55
Programmeringssporet fjernet.

Programmeringsporet er tatt opp, og lagt opp ned på arbeidsbenken.  Årsaken er lodding av ledninger.  En av de geniale tingene med Trix skinner, er at det er tilkopling til begge skinnestrenger under skinnen.  Marklin  / Trix har egne kabelsko som passer, men jeg foretrekker å lodde ledningene direkte til koblingspunktene.  På bildet under, på den nederste skinnen har jeg loddet på en brun ledning.   En annen fin ting med Trix skinnene, er at det er ordentlig kopling mellom skinnene, og derfor ikke behov for skinnelasker.  Det jeg syntes er aller mest genialt med skinnene, er hvor lett det er å kople strøm til skinnekrysset i sporveksler.  På sporvekselen under, kan dere se en svart kontakt til venstre, som flyttes mellom to posisjoner i trepins pluggen avhengig av om man ønsker strøm i skinnekrysset.  Ganske ironisk at det er Marklin / trix  som har løst tilkopling til skinnekrysset for to-skinne drift på den enkleste måten.

Programmeringssporet er nå delt i fire elektriske blokker.  Etter sporskifter, er det først en sikkerhetsblokk på 10cm, som er en avkoblerskinne, deretter en blokk på 30cm, en blokk på 1,5 cm og til slutt en blokk på 30 cm.  Alle blokkene er issolert for blokkdetektor på begge skinnestrengene.

Blokken på 1,5 cm er for å detektere om hvert enkelt hjul tar opp strøm.  På bildet under ser dere også en liten IR detektor. (Kemo B215, kan bl.a. kjøpes på www.conrad.de)  Denne skal jeg benytte som akseldektor, plassert midt på 1,5 cm blokken,  jeg vil da få kontroll på hvor mange akslinger lokomotivet har, og om de har et godt strømopptak på hvert jul.

Status nå er at sporveksel med strømkopling til skinnekryss og motor er montert.  Programmeringssporet er også tilbake på plass, og IR detektor er plassert.   Neste steg er kopling av kjørestrøm via detektor og rele, for skille mellom programmeringsstrøm (fra Merg DCC) og kjørestrøm (fra ROCO 10761).






Edited by programmeringssporet - 11 januar 2014 at 23:02
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 18 februar 2014 at 15:37
Fremgang siste måned på programmeringssporet

Kan rapportere om fremgang på to områder :  programvare og maskinvare.

 

På maskinvaresiden, har jeg valgt å benytte en Arduino Uno for kontroll av programmeringssporet.  Den skal :

1.       Styre rele for kopling mellom kjørestrøm og programmeringsstrøm.

2.       Sporbelegg deteksjon, 4 blokker , med detektering på begge skinnestrenger.

3.       To , eller flere optiske detektorer.

4.       Ultralyd avstands / hastighetsmåling.

Jeg gjør også noen forsøk med lydmåling, for å se om jeg kan måle støyforskjeller  med forskjellige dekoderinstillinger.

En Arduino Uno, har 13 Digitale inn/ut porter og 6 analoge innganger.  To av de digitale portene går til seiekommunikasjon, slik at det kun er 11 ledige.  Jeg trenger flere.  Jeg har derfor valgt å teste ut en I2C basert I/O Expander.  Microchip MCP 230008 (http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en021393 )har jeg liggende, og de kan skaffes fra flere leverandører.  Priser fra ca. USD 1 – NOK 30.  Jeg har aldri brukt disse så en prøveoppstilling ble laget.



Adafruit har et Arduino bibliotek for MCP230008 og et eksempelprogram (https://github.com/adafruit/Adafruit-MCP23008-library ) .  Det fungerte på første forsøk.  Nå er det bare litt lodding som står igjen for å få blokkdetektoren til å fungere.

 

Programvare tar ofte litt lengre tid enn planlagt.  Status nå er at jeg benytter JMRI på Raspberry Pi for å lese lokomotivkonfigurasjonen, samtidig som min egen programvare  logger ved siden av.  De første testene på en web applikasjon er oppe å kjører  

http://programmingtrack.no-ip.org/dynamic.php?system=ENGINEDB&page=10000&id=0

Men her er det fortsatt mye å gjøre, både på feilhåndtering, layout og funksjonalitet.  Første skritt er å lese CV’er for å identifisere hvilket lok som er satt på programmeringssporet.  Neste skritt er å kunne endre adresser fra Nettbrettet.  Deretter skal det lages programvare for å kjøre automatiske målinger av start, stop, og hastighet, og så kommer det første store målet, som er å automatisere innstillingene av Cvene for motorkontroll – basert på de automatiske kjøretestene.



Edited by programmeringssporet - 19 februar 2014 at 13:31
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 20 februar 2014 at 16:37


Og her er loddingen påbegynt.  Bildet viser Arduinoen oppe til høyre -  Hovedkortet til Venstre.

Øverst på hovedkortet, skal jeg lodde inn en sokkel for Arduino Prosessoren,  når prototypingen av programvaren er ferdig.

MCP23008 er plassert omtrent på mitten av kortet, og Nederst er det sokler for 2, 4-doble optokoplere.

 

I denne testoppkoplingen, har jeg koplet til 5 V via en 3k3 motstand for å drive optokopleren.

Den som jeg var usikker på, var om MCP230008’erns interne Pullup motstander på 100k var tilstrekkelige til å trekke signalet opp (tidligere har jeg brukt en 10k motstand for dette) .  Det ser ut til å fungere bra.

Nå under testingen brukes den gule LED’en på Arduinoen for å se at detektoren fungerer.  Arduinoen er programmert med denne Sketchen.  (Kan kun sjekke en detektor – Pinne 10 på MCP230008)

 

#include <Wire.h>

#include "Adafruit_MCP23008.h"

// Basic pin reading and pullup test for the MCP23008 I/O expander

// public domain!

// Connect pin #1 of the expander to Analog 5 (i2c clock)

// Connect pin #2 of the expander to Analog 4 (i2c data)

// Connect pins #3, 4 and 5 of the expander to ground (address selection)

// Connect pin #6 and 18 of the expander to 5V (power and reset disable)

// Connect pin #9 of the expander to ground (common ground)

 

// Input #0 is on pin 10 so connect a button or switch from there to ground

Adafruit_MCP23008 mcp;

 void setup() {

mcp.begin(); // use default address 0

mcp.pinMode(0, INPUT);

 mcp.pullUp(0, HIGH); // turn on a 100K pullup internally

pinMode(13, OUTPUT); // use the p13 LED as debugging

}

void loop() {

 // The LED will 'echo' the button

digitalWrite(13, mcp.digitalRead(0));

}



Edited by programmeringssporet - 20 februar 2014 at 16:38
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 27 mars 2014 at 10:11
Fremgang siste måned på programmeringssporet

Jeg har eksperimentert videre med Ultralyd avstandsmåleren.  På gulvet detekterer den et H0 lokomotiv med opp til 3,2 meters avstand.  Installert på programmeringssporet detekterer den opp til 22 centimeter.  Det er egentlig ikke noe stort problem fordi det er de siste centimeterene før stopp, og rett etter start som er viktig, men jeg har en mistanke om at det er hodet på en bolt som reflekterer signalet.  Skal forsøke å se om jeg kan bli kvitt denne.

Kortet for styringen av programmeringssporet er funksjonellt ferdig.  Først ble det en testoppkopling for å teste relestyring, som brukes for å veksle mellom kjørestrøm fra Roco sentralen, og programmering via MERG kontrolleren.



De  siste komponentene er  loddet på  kortet.  Nå gjenstår det bare å legge til sokkel  for Arduino prosessoren og tilkopling av ledninger, men dette vil jeg vente med inntill kortet med programvare er ferdig.  Jeg har derfor fullført testingen av kortet :


Etter dette har jeg montert alt sammen midlertidig ved siden av programmeringssporet, og koplet opp en USB kabel mellom Arduinoen  og Raspberry Pi.  Med denne oppkoplingen kan jeg teste ut kortet sammen med omkringliggende komponenter, og ha et godt miljø for utvikling av programkoden på kortet:  Jeg utviker på Raspberry PI, via en VNC klient, og laster ned v.h.a. USB kabelen, slik at det bare tar noen sekunder å teste nye versjoner av programkoden.

 

Arduino programkoden har allerede gjennomgått flere revisjoner.  Den første versjonen var for å teste relestyringen, ved at den slo av og på releet hvert 5 sekund.  Neste versjon sjekket alle de 8 spordetektorene ved å sende statusen til en terminalemulator en gang pr. Sekund.  Deretter ble det en versjon for å teste Ultralyd avstandsmålingen.  Nå er jeg igang med den endelige versjonen.  Den fungerer ved at det sendes en kommando til Arduinoen, som returnerer med et svar.  Kommandoer som er implementert i dag er:

  • Q01VM
    • Query 01 Version Major
    • Returnerer versjonsnummeret for programvaren.  Svarer med:   M01P2
  • Q01VS
    • Query 01 Version Subversions
    • Returner releasenummer for programvaren       : M0123
  • Q01U1
    • Query 01 Ultrasonic 1
    • Skal returnere informasjon fra Avstandsmåleren
  • Q01TA
    • Query 01 Track All
    • Returner svaret fra alle spordetektorer.  Det kan også spørres om hver enkelt med meldingen Q01Tn,  hvor N=0 – 7.

 

Utviklingen av programkoden på Raspberry har også gjort fremskritt.  Et av de første behovene er å finne ut hvilken Decoder type, som er installert i hvert enkelt lokomotiv.  De fleste decoderprodusenter benytter CV 7, software version number på en fornuftig måte.  Utfordringen min er at jeg har ganske mange dekodere fra ESU, som er ganske forskjellige, men hvor ESU har lagt inn samme verdi i CV 7.  Dette gjelder så forskjellige dekodere som,  LokPilot v. 2 3 og 4,  Loksound dekodere,  ROCO 10745 (fabrikkinstallert i mange ROCO startsett) i forskjellige versjon, og mange av dekoderne som selges som Bachmann 3-Function decoder  36-553.  Etter lesing av manualer, fra dekoderleverandørene og JMRI dokumentasjonen, samt egen testing har jeg laget denne tabellen (fortsatt ikke helt komplett)



Hele tabellen ligger her:

http://programmingtrack.no-ip.org/EsuRocoBachmannCVlist20140324.xls

 

Programkoden er kommet så langt at den klarer ved hjelp av å lese ut forskjellige CV’er, og om nødvendig forsøke å skrive til noen CV’er,  å finne ut om det er en basic decoder (ESU, Roco eller Backmann), og hvem av dem det er,  eller om det er en av de mere avanserte dekoderene.  Det gjenstår  fortsatt funksjonalitet for  å finne forskjeller mellom Lokpilot 2,3,3 og LokSound.  Tilsvarende funksjonalitet for Lenz og Zimo kommer senere.

                                                                                                                                                                    

Etter at jeg har funnet ut hvilken dekoder som er i loket, har jeg også laget funksjonalitet for å identifisere om loket har vært innom programmeringssporet før, og eventuelt programmerer CV’er fra en liste.  Måten jeg benytter er å sjekke dekodertype, hvis denne støtter lange adresser benyttes denne for å identifisere loket.  For NSB lok benytter jeg lokets 3 (med en null foran) eller 4 sifrede nummer,  for tyske lok benytter jeg typenummeret f,eks 218, og legger til kontrollsifferet, slik at jeg får 4 sifre.  Det gjenstår å se hvor mange kolisjoner jeg får.  For de dekoderene som støtter det, vil jeg benytte et løpenummer i CV 106 (User identification) .

Hensikten med alt dette, er å kunne ta vare på historikk på CV’er, for å kunne sammenlikne kjøreegenskapene for de ulike lokene, med ulike dekodere.  Når programmeringssporet, er ferdig med sensorer vil jeg få en automatisert dokumentasjon av dette.

Status i dag :

http://programmingtrack.no-ip.org/dynamic.php?system=ENGINEDB&page=10000&id=0

Til slutt har jeg også funnet dokumentasjon på hvordan styre vendeskiver med Arduino:

http://www.rmweb.co.uk/community/index.php?/topic/78578-dcc-controlled-peco-turntable-project/






Edited by programmeringssporet - 27 mars 2014 at 10:30
Back to Top
Dag Cato View Drop Down
FREMO-forummedlem
FREMO-forummedlem
Avatar

Joined: 01 november 2004
Location: Norway
Status: Offline
Points: 874
Post Options Post Options   Thanks (0) Thanks(0)   Quote Dag Cato Quote  Post ReplyReply Direct Link To This Post Posted: 27 mars 2014 at 12:27
Hei Programmeringssporet.
Det er interessant å lese framskrittene dine.
Jeg har endelig skaffet meg en liten Pi og når jeg får litt luft i timeplanen skal jeg prøve å få den til å kjøre JMRI frittstående.
Men et spørsmål. Det du holder på med nå virker det nesten som du kan gjøre via JMRI?
Hvorfor da lage alt fra scratch?
Fordi JMRI savner funksjonalitet du trenger eller enkelt greit fordi du kan og det er gøy?

MVH
DC
MVH

DC



Steinsnes? Hvilken Steinsnes?
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 29 mars 2014 at 00:32
Hei DC,

Veldig hyggelig med tilbakemeldinger – er ofte vanskelig å selv vurdere om det man skriver er av interesse for andre.

                                                                                                                                                           

Det enkle svaret er vel at jeg gjør det fordi det er gøy, men hvis jeg skal forsøke å forsvare det litt, kan jeg utdype :

 

JMRI er en glimrende CV editor for å lese og skrive CV verdier.  Jeg har koplet opp JMRI i parallell til egenutviklet programvare slik at jeg kan lese ut og skrive, og se hvilke kommandoer som blir generert over serieporten.

Mine viktigste argumenter for å lage en egen programmerer, er :

1.      I JMRI kan man lese ut og lagre CV’er på (XML) filer, slik at man manuelt kan se hvilke endringer man har gjort, eller legge tilbake gamle instillinger.  Jeg vil istedenfor filer, lagre innstillingene i en database (MySQL) slik at jeg kan ta ut rapporter, sammenlike, og gjøre mere komplekse operasjoner  som f.eks. resette dekoder til fabrikkinstillinger og deretter programmere inn gamle verdier for f.eks. CV1, lange adresser, ol, uten å gjøre dette som manuelle steg i JMRI)

2.      Jeg ønsker å autmatisk sette parametre for styringen,  både CV i lokket, men også parametre i styringsprogrammet for å oppnå jevneste og mest mulig forbildetro, hastighet, aksellerasjon og bremsing.  JMRI har en automatisk hastighetsmåler som måler tiden mellom to punkter, og derved beregner konstant hastighet for toget (eller egentlig gjennomsnitlig).  Jeg håper å få til en nøyaktig måling av retardasjon og akselerasjon v.h.a. Ultralyd avstandsmåling.  Denne målingen vil jeg gjøre fra enden av programmeringssporet, og når jeg/eller programmet er fornøyd med profilen, vil jeg lagre den, og benytte den under kjøringen senere.

3.      JMRI DecoderPro er en PC applikasjon, som ikke kan benyttes på nettbrett.  Jeg lager grensesnitt slik at det kan brukes på PC, iPad, iPhone, Android etc.  I tillegg tror jeg at jeg vil kople til en enkel fjernkontroll (type TV) med enkle funksjoner, som f.eks:

·        0 – Identifiser Lok på programmeringsspor.

·        1 – Les og lagre alle CV’er i lokket.

·        2 – Tildel og programmer en midlertidig unik adresse for loket, slik at det kan prøvekjøres.

·        3 -  Kjør testprogram for lokomotiv,  for å grovinstille CV’er

·        4 – Kjør avansert testprogram for fininstiing av CV’er

 

Andre ting jeg har sett at jeg kan lage bedre enn JMRI er dekodertype identifisering.  JMRI kan f.eks. ikke skille mellom ESU dekodere som f.eks. Lokpilot, Loksound, Basic, Roco 10745 i forskjellige varianter, og Bachmann 3-function.

Mine viktigste argumenter for å lage et eget styringssystem, er:

 (her er jeg litt på tynn is fordi jeg ikke har sett mye på alternative løsninger) :

1.      Da jeg begynte med dette for ca. 30 år siden fantes det ikke noe alternativ.  Den gangen så jeg litt på CMRI, men valgte å lage egne blokkkontrollere med DC styring under MS-DOS.  Dagens versjon av styringen er laget i løpet av de siste 15 årene, men støtter fremdeles scriptene som jeg laget for 30 år siden.

2.      Ambisjonsnivået er relativt høyt. F.eks. lag en tidtabell hvor lokaltoget starter fra utgangstasjonen hver time (mellom 06:00 og 23:00), og returner klar til innsats nesten to timer senere. (slik at det er behov for minimum to togsett).  Det betyr at jeg ikke kan lage script for hvert enkelt tog, men lage generelle script for å kjøre etter tidtabellen, og andre script som finner ut hviket materiell som skal brukes i denne avgangen.  Andre funksjoner, eller separate programmer er f.eks. togekspeditør på en stasjon (må løse komfikter i forhold til sporbruk ved forsinkelser/ekstratog), lokfører som kjører toget etter signalene/rutetabellen, og signalstyring / linjeblokk.  Alle programmene kommuniserer via TCP/IP, slik at de kan kjøres på en eller flere PC’er.  Jeg kan også velge hvilken funksjon jeg selv vil utføre manuelt.  (Neida jeg er ikke ”helt” ferdig med alt enda).

3.      Ønsker å automatisere skiftebevegelser og samenstilling av godstog (Her er jeg avhengig av bedre kontroll med lokegenskapene –  ref. Egen programmerer)  f.eks. er en av de viktigste kundene et aluminiumsverk (samme produksjonsnivå/produkter som Årdal Verk), som har behov for levering av riktig mengde Aluminium oksid og  Kull (for anodeproduksjon), og transportkapasitet for ferdige aluminiumsprodukter. (20000 – 200000 Tonn pr. År avhengig av årstall) og Anoder.  (10 femtitals vogner med last på 10 tonn hver, per dag – eller nyere vogner med 80 tons kapasitet på 2000 tallet)

4.      Ønske om norske signalbilder og stillverk.  Ved å selv lage programvaren, kan jeg få norske signalbilder uten avansert elektronikk, men overlate kompleksiteten til programvaren.

 

 

Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 04 juni 2014 at 09:53
Status Juni 2014 Dette  handler om timing

Ultralydavstandsmåleren er installert, og ser ut til å fungere greit i avstandsområdet 4 – 21 cm.  Jeg kan derfor måle hvor langt lokomotivet kjører etter en stop kommando.

Arduino programmet er nå i tredje versjon.  Den første versjonen sjekket spordetektorene og rapporterte status.  Opprinnelig hadde jeg tenkt å installere en optokopler for vekselstrøm, slik at både positive og negative DCC pulser kunne detekteres.  Følsomheten viste seg å være for dårlig på denne, slik at jeg byttet  til to andre  som jeg hadde liggende. TLP521-4, er en 4 dobbel optokopler som fungerte bedre, men den har kun en diode pr. Kanal, slik at den kun detekterer den ene fasen av DCC signalet.  En les vil derfor fungere 50 prosent av gangene.

Neste versjon av programmet gjorde derfor et hundre les for hver av de 8 kanalene, slik at sjansen for at det blir detektert er over 99 prosent.  Problemet som nå oppstod er at en les totalt tar 450 millisekunder for 8 detektorer.

Den tredje versjonen av programmet, har fått 20 konfigurasjonsvariable.  Et av dem sier hvor mange ganger det skal leses, før det konkluderes med at sporet er tomt.  Ved å lese 9 ganger blir sansynligheten: 50 + 25 + 12,5 + 6,25 +3 ,12 + 1,56 +  0,78 + 0,39 + 0,19 = 99,8 prosent.  I praksis ser det ut til at sansynlighetene er over 90 prosent.  Og der er godt nok, hvis jeg detekterer ofte nok,  slik at feildeteksjon kan korrigeres fort nok.





Diagrammet viser litt om dette.  På toppen viser det av en les fra Arduinoen tar mellom 25 og 76 millisekunder.  Dagens versjon gjør tre les : Henter spordeteksjonsstatus for alle 8 spor(Q01TA),  Henter distanse i cm for Ultralydmåleren (Q01U1) , og den tredje henter desimal cm fra Ultralydmåleren (Q01CW).  Dette tar tilsammen 200 millisekunder, slik at jeg burde kunne lese 4 – 5 ganger i sekundet.  Jeg har opså lagt inn debugginginformasjon som forteller meg at hver enkelt les over I2C tar 460 mikrosekunder.  Hvis jeg klarer å redusere denne tiden til under 116 mikrosekunder, kan jeg synkronisere lesen med DCC signalet for å oppnå sikker detektering.  For øyeblikket kjører jeg I2C bussen med 100khz frekvens på kontrollsignalet.  Arduinoen støtter også 400khz, slik at det skal være mulig å å komme ned mot 120 mikrosekunder.  Tror også at det er mulig å optimalisere ytterligere ved å erstatte AdafruitMCP23008 library, med mere effektiv kode.   Dette er foreløpig ikke prioritert fordi det fungerer nogenlunde ok med dagens implementasjon.  Andre alternative løsninger er å sette inn en kondensator etter opptokopler,  eller bruke en mere avansert krets istedenfor MCP23008, enten en Arduino eller en PIC prosessor.  Etter at jeg har optimalisert I2C trafikken (som i dag tar ca. 50 millisekunder) kan jeg gå løs på USB optimasliseringen.  I dag tar en les 25 millisekunder, ved å øke hastigheten fra 9600 Baud til 116000 Baud, vil nok også denne tiden gå ned.

Programvaren på Raspberryen er også forbedret ved at den måler tider og kan brukes til å konfigurere Arduinoen.  Her har jeg oppdaget en eller annen feil som gjør at jeg kun klarer å lese status 1 gang pr sekund, istedenfor 4 – 5 ganger i sekundet.  Så dette må jeg prioritere å finne ut av.

 






Edited by programmeringssporet - 06 juni 2014 at 23:26
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 06 juni 2014 at 23:29
Lokomotiv Test 01

Dette er en enkel test som kjører det testede lokomotivet forover i 20 sekunder, ut av programmeringssporet på hastighetstep 4 med spedstepmode 14.  Stopper lokomotivet, og kjører tilbake inn i programmeringssporet og stopper når den innerste spordetektoren oppdager lokomotivet.  Ved å kjøre testen mange ganger og sjekke avstanden med Ultralydmåleren for jeg ut statistikk over hvor nøyaktig kontrollen er.  Det har etterhvert begynt å fungere, men stopposisjonen er ganske unøyaktig – sansynligvis bl.a. fordi jeg kun leser ut sensorene en gang per sekund.  Her er en liten tabell, over avstanden i centimeter, Ultralydsensoren har målt for de siste testene:

149        Test001StopPosition        13

150        Test001StopPosition        3

151        Test001StopPosition        5

152        Test001StopPosition        18

153        Test001StopPosition        19

154        Test001StopPosition        18

155        Test001StopPosition        3

156        Test001StopPosition        15

157        Test001StopPosition        6

158        Test001StopPosition        12

 

Ikke impoenerende presisjon her, men et greit utgangpunkt.  For hver kjøring får jeg også ut en rapport om hastigheter og responstider under testen.  Her er et eksempel fra den siste kjøringen :

KMHSensor002001

0,00

KMHSensor003001

46,35

KMHSensor003002

43,85

KMHSensor004001

58,88

KMHSensor004002

56,38

KMHSensor004003

0,00

KMHSensor006005

0,00

KMHSensor007005

30,90

KMHSensor007005

30,90

KMHSensor007006

29,23

KMHSensor008005

39,25

KMHSensor008006

37,58

KMHSensor008007

0,00

Test001StopPosition

12,00

Test001StopPosition

12,00

TestrunMessages

441,00

TestrunMessagesSec

8,48

TestrunSec

52,00

TestrunUltrasonic

59,00

TestrunUltrasonicSec

1,18

TimerSensor002001

0,00

TimerSensor003001

2,00

TimerSensor003002

2,00

TimerSensor004001

2,00

TimerSensor004002

2,00

TimerSensor004003

0,00

TimerSensor006005

0,00

TimerSensor007005

3,00

TimerSensor007005

3,00

TimerSensor007006

3,00

TimerSensor008005

3,00

TimerSensor008006

3,00

TimerSensor008007

0,00

UltraSpeed001[164854:6.0:19.0:13.0]

9,40

UltraSpeed002[164855:0.0:13.0:13.0]

0,00

 

Forklaringer til tabellen :

TimerSensor002001 – Tidsforbruk fra spordetektor 002 til  001.  Her er en svakhet ved at den kun beregner hele sekunder.

 

KMHSensor003001 – Hastighetsmåling fra spordetektor 003 til 001.  Unøyaktig fordi den benytter TimerSensor  (Uten desimaler)

 

Test001StopPosition – Ultralydmålerens avstandsmåling I hele cm.

UltraSpeed001[164854:6.0:19.0:13.0]

9,40

-         Hastighetsberegninger pr sekund fra  20 cm  til stopp.  I Eksempelet over

o   164854 klokkeslett

o   6.0 – Centimeter, kjørt siste sekund.

o   19.0:13.0 – Hvor lokomotivet kjørte fra og til på dette sekundet.

-        Vi ser derfor at lokomotivet bråstoppet her. Og det stemmer lokomotivet ble kjørt i skiftemodus.

TestrunSec – Hele testen tok 52 sekunder.

TestRunMessages – 441 meldinger gjennom systemet i løpet av testen.

TestrunMessagesSec  -8,48 meldinger pr. Sekund

TestRunUltra – 59  avstandsmålinger i løpet av testen.

TestrunUltraSec – 1,18  avstandsmålinger pr. Sekund – Derfor er unøyaktigheten i alle målinger på nesten et sekund.  -  Så her er det bare å jobbe videre med å få opp frekvensen.


Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 23 juni 2014 at 22:46
En  programfeil er fikset, slik at jeg nå får 4 målinger pr. Sekund, og da blir noyaktigheten bedre  Stopposisisjonen blir 21 – 22 cm.  Neste forbedring blir å også se på milimeteravstander her.

258        Test001StopPosition        22

259        Test001StopPosition        21

260        Test001StopPosition        21

261        Test001StopPosition        22

Har også forbedret analyseprogrammet til å regne med microsekunder, slik at tidene blir mere nøyaktig.

Her er rapporten for kjøring nr 260:

Vi ser av TestrunUltrasonicSec at vi leser ut detektor og avstander nesten 4 ganger i sekundet.  Vi ser også av TestrunMessagesSec at det går nesten 30 meldinger pr. Sekund (mot tidligere 8).  Noen nye måleparametre er kommet til :

TestrunBackendResponseMax     97 millisekunder  – Lengste responstiden fra kortet .

TestrunSocketResponseMax      261 millisekunder – Lengste responstid for TCP/IP pakker – her må det gjøres forbedringer

 

TestrunDccMessages          7 – Meldinger sendt til Roco sentralen / Lenz interfacet

TestrunDccMessagesError   0 -  Error Status fra Roco sentralen / Lenz interfacet

TestrunDccMessagesOk      7 – OK status fra Roco sentralen / Lenz interfacet

 

Av en eller annen grunn har jeg ”mistet” et måleparameter :

UltraSpeed001 – må finne ut hva som har hendt med denne.  Andre forbedringspotensiale er hastighetsmålingen mellom blokkene – og hvorfor får jegnegativ hastighet – tror årsaken kan være en feilkopling av blokkene.

 

 

 

 

 

KMHSensor002001                          -22.13280922200384

KMHSensor003001                          18.58940065368651

KMHSensor003002                          16.820897225768025

KMHSensor004001                          29.39840015737303

KMHSensor004002                          26.641563788341905

KMHSensor004003                          16.413954481672526

KMHSensor006005                          -682.5388177608281

KMHSensor007005                          16.965907762041148

KMHSensor007006                          16.027296992780073

KMHSensor008005                          17.749610682756636

KMHSensor008006                          16.975522859413246

KMHSensor008007                          21.4086326620066

Test001StopPosition                       21

TestrunBackendResponseMax     97

TestrunDccMessages                      7

TestrunDccMessagesError            0

TestrunDccMessagesOk                 7

TestrunMessages                            928

TestrunMessagesSec                      27.47894588631593

TestrunSec                                        33.77131

TestrunSecOld                                  34

TestrunSocketResponseMax         261

TestrunUltrasonic                            131

TestrunUltrasonicSec                     3.906173358120538

TimerSensor002001                        -0.226415

TimerSensor003001                        4.9871

TimerSensor003002                        5.213515

TimerSensor004001                        4.005769

TimerSensor004002                        4.232184

TimerSensor004003                        1.526506

TimerSensor006005                        -0.007342

TimerSensor007005                        5.464323

TimerSensor007006                        5.471665

TimerSensor008005                        6.634692

TimerSensor008006                        6.642034

TimerSensor008007                        1.170369

Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 06 august 2014 at 00:41
Raspberry Pi og JMRI

Oppstart etter sommerferie, begynte med korrupt SD brikke på en av Raspberry’ene.  Dette er den tredje SD brikken som er ødelagt i løpet av et år hos meg (fordelt på 5 Raspberry Pi).  Backup er ikke så dumt, alternativt, som jeg gjør er å ikke lagre viktig informasjon på SD brikken, og ha automatiserte rutiner for å reinstallere.  Jeg har derfor forbedret den automatiske installasjonsprosedyren for JMRI, og samtidig oppgradert til siste versjon av JMRI, 3.8.  Denne har jeg lagt inn i min automatiske installasjonsprosedyre.  Hvis noen vil prøve er kommandoene :

wget programmingtrack.no-ip.org/setup010308.sh
. ./setup010308.sh

Resten er som før – se blogg 6 Januar 2014

Programmmeringssporet

For å få mere nøyaktige malinger, startet jeg feilsøking I grensesnittet mot Roco sentralen.  Etterhvert fant jeg så mange programmeringsfeil (som jeg selv har laget for 8 år siden), at jeg konkluderte med at det var på tide å programmere dette på nytt.   Har nå ferdig en prototype som fungerer mye bedre, men foreløpig kun støtter 14 Step, lokomotivkontroll.  Rapporten fra den siste testen viser at maksimal responstid for TCP/IP meldinger nå er nede i omtrent 0,1 sekund.  Alle målinger blir derfor mye mere nøyaktig.   Det kan man bl.a se på hastighetsmålingene.  Here er rapporten for kjøring nr 388.  

KMHSensor002001

19.24

KMHSensor003001

34.58

KMHSensor003002

36.23

KMHSensor004001

34.52

KMHSensor004002

35.78

KMHSensor004003

34.29

KMHSensor006005

18.22

KMHSensor007005

34.27

KMHSensor007006

36.09

KMHSensor008005

31.80

KMHSensor008006

32.89

KMHSensor008007

25.09

Test001StopPosition

7.00

Test001StopPosition

7.00

TestrunBackendResponseMax

90.00

TestrunDccMessages

7.00

TestrunDccMessagesError

0.00

TestrunDccMessagesOk

0.00

TestrunMessages

789.00

TestrunMessagesSec

27.84

TestrunSec

28.34

TestrunSecOld

29.00

TestrunSocketResponseMax

119.00

TestrunUltrasonic

117.00

TestrunUltrasonicSec

4.18

TimerSensor002001

0.26

TimerSensor003001

2.68

TimerSensor003002

2.42

TimerSensor004001

3.41

TimerSensor004002

3.15

TimerSensor004003

0.73

TimerSensor006005

0.28

TimerSensor007005

2.71

TimerSensor007006

2.43

TimerSensor008005

3.70

TimerSensor008006

3.43

TimerSensor008007

1.00

UltraSpeed001[141950,32:1.0:19.0:20.0]

-13.04

UltraSpeed002[141950,79:0.0:19.0:19.0]

0.00



Edited by programmeringssporet - 06 august 2014 at 00:49
Back to Top
Dag Cato View Drop Down
FREMO-forummedlem
FREMO-forummedlem
Avatar

Joined: 01 november 2004
Location: Norway
Status: Offline
Points: 874
Post Options Post Options   Thanks (0) Thanks(0)   Quote Dag Cato Quote  Post ReplyReply Direct Link To This Post Posted: 06 august 2014 at 09:51
Hei,
lurer på hvordan du stenger ned RPien din? Kutter du bare strømmen eller tar du en kontrollert avslutning?
Det er mye skriverier på nett om ødelagte minnekort ved ukontrollert avslutning.
MVH

DC



Steinsnes? Hvilken Steinsnes?
Back to Top
einjen View Drop Down
Veteran
Veteran
Avatar

Joined: 17 september 2005
Location: Norway
Status: Offline
Points: 1335
Post Options Post Options   Thanks (1) Thanks(1)   Quote einjen Quote  Post ReplyReply Direct Link To This Post Posted: 06 august 2014 at 10:58
hvilken linux-variant har du brukt når du installerer JMRI på Rasberryen?
--

Einar Næss Jensen

Words of wisdom are easily spoken, but they are cheap talk

http://einarblog.homemade.no/einarblog
Back to Top
einjen View Drop Down
Veteran
Veteran
Avatar

Joined: 17 september 2005
Location: Norway
Status: Offline
Points: 1335
Post Options Post Options   Thanks (0) Thanks(0)   Quote einjen Quote  Post ReplyReply Direct Link To This Post Posted: 06 august 2014 at 16:07
Tenkte jeg skulle forsøke setup-skriptet ditt, men får ikke til å koble til serveren/DNS du har angitt.
--

Einar Næss Jensen

Words of wisdom are easily spoken, but they are cheap talk

http://einarblog.homemade.no/einarblog
Back to Top
Dag Cato View Drop Down
FREMO-forummedlem
FREMO-forummedlem
Avatar

Joined: 01 november 2004
Location: Norway
Status: Offline
Points: 874
Post Options Post Options   Thanks (0) Thanks(0)   Quote Dag Cato Quote  Post ReplyReply Direct Link To This Post Posted: 06 august 2014 at 19:50
Raspbian
MVH

DC



Steinsnes? Hvilken Steinsnes?
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 07 august 2014 at 00:11
Hei Einar og Dag Cato,

 

Jeg kjører Raspian (2014-06-20-wheezy-raspbian.zip) fordi den er den eneste som støtter Hardfloat i Java.  Før denne støtten kom, var ytelsen enda dårligere.

Forrige gang SD kortet ble korrupt startet det med at ”sudo shutdown”  ikke fungerte, slik at jeg måtte ta strømmen, men jeg tror at SD kortet allerede var korrupt, og årsaken til at shutdown, og mange andre kommandoer ikke fungerte.

Generelt er det ikke å anbefale å ta strømmen på en Raspberry uten å stoppe den først.  Dette er nok årsaken til mange korrupte SD kort, men jeg har også opplevd at jeg etter å ha gjenbrukt et tidligere korrupt SD kort, fikk en ny crash etter kort tid -  dette skyldes trolig at kortet var utslitt.  For å unngå å miste data ved crash, benytter jeg en  USB minnepinne for lagring av data. Eksempel :

mkdir /mnt/sda0

mount /dev/sda0 /mnt/sda0

cd /mnt/sda0

 

For å frigjøre

umount /mnt/sda0

Har enda ikke opplevt korrupt minnepinne,  etter å ha kjørt en applikasjon på Raspberry  i snart to  år som logger en ny fil hvert 15. sekund. (Ikke MJ relatert) – men har brukt opp to SD kort på denne maskinen.

 

Har også planer om å teste ut med en USB SSD disk for å kjøre mySql.

....

” Tenkte jeg skulle forsøke setup-skriptet ditt, men får ikke til å koble til serveren/DNS du har angitt.”

Hvis du får opp bildene i bloggen skal du også få tak i installasjonsscriptet.  Er det på arbeidsstasjonen din, eller på Raspberry du ikke får tilgang ?

Hvis det kun er på Raspberryen, har du kanske vært inne å endret nettverksoppsettet til statisk IP ? og ikke fått DNS riktig ?  Det jeg har valgt å gjøre, er å kjøre Raspberryen med dynamisk IP (default), og etter installasjon, gå inn i Router boksen, og reservere IP adresse for Raspberryen.  Fordelen med dette er at ved en nyinstallasjon får Raspberryen samme ip adresse.

 

Vedlagt begge scriptene – hvis du fortsatt ikke får tilgang.

http://programmingtrack.no-ip.org/setup010308.sh

exec > >(tee logfile.txt)

sudo apt-get update

sync

sync

sudo apt-get install librxtx-java

sudo apt-get install tightvncserver

sync

sync

wget programmingtrack.no-ip.org/JMRI.3.8-r26527.tgz

wget programmingtrack.no-ip.org/startVNC.sh

sync

sync

tar -zxvvf JMRI.3.8-r26527.tgz

sync

sync

#tightvncserver

sync

sync

vncserver :0 -geometry 1920x1680 -depth 24 -dpi 96

http://programmingtrack.no-ip.org/startVNC.sh

# sudo apt-get install tightvncserver

#tightvncserver

vncserver :0 -geometry 1920x1080 -depth 24 -dpi 96

Back to Top
einjen View Drop Down
Veteran
Veteran
Avatar

Joined: 17 september 2005
Location: Norway
Status: Offline
Points: 1335
Post Options Post Options   Thanks (0) Thanks(0)   Quote einjen Quote  Post ReplyReply Direct Link To This Post Posted: 07 august 2014 at 09:42
Hei. Får ikke tak i skriptet hverken fra hjemme eller jobb.
Ikke nettsiden heller.


Einar
--

Einar Næss Jensen

Words of wisdom are easily spoken, but they are cheap talk

http://einarblog.homemade.no/einarblog
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 05 september 2014 at 22:22
Avsporinger

På tur i Europa i sommer, fant jeg ut at tilbudet til Roco på startsett med hvit z21 var for godt til å ikke slå til.  Slik ser det ut under bordet nå :



Jeg er fortsatt ikke helt fornøyd med presisjonen på stopp.  Jeg vil derfor finne ut hva som skjer, ved å lage en dekoder hvor jeg kan få tilbakemelding når en kommand er mottatt av dekoder på skinnene.  Har derfor laget et eksperimentkort og montert dette på en godsvogn - mere om dette kommer senere.



For de av dere som ikke har klart å laste ned oppsettet mitt:  Dette skylder en feil hos ISP, som nå er rettet (Beklager at det tok tid - Server står geografisk ganske langt fra der jeg normalt er)


Edited by programmeringssporet - 05 september 2014 at 22:24
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 06 september 2014 at 21:02

Hvordan gjøre enkle ting vanskelig.

 

Første forsøket med z21 gikk ikke veldig bra.  Jeg pakket opp startsettet, koplet opp z21 boksen og ruteren som fulgte med.  For å oppgradere firmware til siste versjon lastet jeg også ned siste versjon av z21 Maintenance tool på PC’en.  For å oppgradere måtte jeg også kople den medfølgende ruteren til nettet mitt.  Koplet til strømmen på begge enhetene og forsøkte å få kontakt fra PC’en.  Og det fungerte selvfølgelig ikke.  Adressen til z21 skal være 192.168.0.111, men den svarte ikke engang på ping.  Dagen etter gjorde jeg et nytt forsøk.  Jeg hadde nå en mistanke om at noen hadde pakket opp settet før jeg kjøpte det, og endret adressene, både på router og z21 boksen fordi de kjørte med feil oppsett.  Istedenfor 192.168.0.x nett, var router satt opp med LAN range på 192.168.1.x nett.  Hadde ikke lyst til å forsøke å endre router oppsettet, men etter en stund gikk det et lite lys opp for meg :  192.168.0.x nettet var jo den samme adressa rangen jeg benytter på nettet mitt.  Tok derfor bort den medfølge routeren og koplet z21 boksen rett i den andre routeren,  og da fungerete alt.  Så anbefalt fremgangsmåte for å sette opp z21 boksen, bør derfor være :

 

  1. Kople opp z21 og medfølgende router uten å kople routeren til hjemmenettverket.
  2. kople opp PC mot router og forsøke å pinge 192.168.0.11.
  3. hvis hjemmenettverk ikke kjører på 192.168.0.x adresser kan den medfølgende router koples til     hjemmenettet.   Hvis hjemmenettet kjører på 192.168.0.x, sjekk om det er noen devicer som har adressen 192.168.0.111,  hvis ikke er det bare å kople z21 rett inn i hjemmerouteren, men pass på at dhcp range ikke overlapper med 192.168.0.111

 

Mitt router oppsett er :

Router Ip address 192.168.0.1

Ip Subnet mask 255.255.255.0

DHCP 192.168.0.200 – 192.168.0.253

 

Status på z21 boksen min nå er at den er opp i nettverket – men ikke koplet til anlegget.  Har testet ut å kjøre lok med iPad (uten at noe fysisk lok kjører) og det fungerer.  JMRI har foreløpig ikkeordentlig støtte for z21, men det er på vei i de siste utviklingsversjonene.  Protokollen som benyttes mot z21 er basert på å pakke inn det gamle Lenz serieport grenssnittet inn i UDP pakker.  Jeg har laget et lite testprogram som kopler seg opp, og gjør enkle kommandoer som ”Track Power on/off” etc.

 

Utfordringen min nå er at jeg har tre potensielle DCC sentraler, og jeg må bestemme med for hvilke jeg vil benytte for kjøring og programmering :  Roco LokMaus II/Multimaus,  z21 eller MERG ?

 

Her er oppsettet mitt som det er i dag :

 




Edited by programmeringssporet - 23 juli 2016 at 05:59
Back to Top
 Post Reply Post Reply Page  123 7>

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.05
Copyright ©2001-2022 Web Wiz Ltd.

This page was generated in 0,157 seconds.