Print Page | Close Window

Programmeringssporet

Printed From: MJF Forum
Category: MJ-Weblogger
Forum Name: Weblogger
Forum Description: Personlige dagbøker for bygging av kvart- halv eller trekvartferdige prosjekter. Her gjelder spesielle regler som du kan lese om i øverste innlegg inne på dette delforumet.
URL: http://forum.mjf.no/forum_posts.asp?TID=8269
Printed Date: 26 april 2024 at 22:59
Software Version: Web Wiz Forums 12.05 - http://www.webwizforums.com


Topic: Programmeringssporet
Posted By: programmeringssporet
Subject: Programmeringssporet
Date 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" rel="nofollow - 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/" rel="nofollow - http://www.velleman.eu/ )  kort for optisk spordeteksjon, og også et Arduino kort  ( http://no.wikipedia.org/wiki/Arduino" rel="nofollow - 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" rel="nofollow - http://www.merg.org.uk/merg_resources/cbus-dcc.php ), og en Raspberry PI ( http://no.wikipedia.org/wiki/Raspberry_Pi" rel="nofollow - http://no.wikipedia.org/wiki/Raspberry_Pi ).


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




Replies:
Posted By: Thobbe
Date 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!


Posted By: programmeringssporet
Date 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);             
}


Posted By: einjen
Date 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" rel="nofollow - 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" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: bkv1
Date 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


-------------
Hilsen Bjørn

N-skala, Peco 55, Digikeijs DR5000, JMRI. Tysk diesel nyere tid


Posted By: Thobbe
Date 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.


Posted By: programmeringssporet
Date 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" rel="nofollow - 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" rel="nofollow - 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/" rel="nofollow - http://nmranet.org/ )

·         DCC Command Station ( http://www.oscale.net/en/simpledcc" rel="nofollow - http://www.oscale.net/en/simpledcc )

·         Rfid http://blog.arduino.cc/category/wireless/rfid/" rel="nofollow -  

 

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/" rel="nofollow - 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" rel="nofollow - 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" rel="nofollow - 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" rel="nofollow - http://programmingtrack.no-ip.org/locodb/DB2151298.pdf



Posted By: programmeringssporet
Date 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:






Posted By: programmeringssporet
Date 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.







Posted By: ses
Date 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


Posted By: programmeringssporet
Date 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.





Posted By: programmeringssporet
Date 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.


Posted By: programmeringssporet
Date 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).






Posted By: programmeringssporet
Date 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" rel="nofollow - 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" rel="nofollow - 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://10.0.0.139:81/dynamic.php?system=ENGINEDB&page=10000&id=0" rel="nofollow - http://programmingtrack.no-ip.org/dynamic.php?system=ENGINEDB&page=10000&id=0" rel="nofollow - 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.



Posted By: programmeringssporet
Date 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));

}



Posted By: programmeringssporet
Date 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" rel="nofollow - 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" rel="nofollow - 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/" rel="nofollow - http://www.rmweb.co.uk/community/index.php?/topic/78578-dcc-controlled-peco-turntable-project/






Posted By: Dag Cato
Date 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?


Posted By: programmeringssporet
Date 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.

 

 



Posted By: programmeringssporet
Date 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.

 






Posted By: programmeringssporet
Date 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.




Posted By: programmeringssporet
Date 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



Posted By: programmeringssporet
Date 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



Posted By: Dag Cato
Date 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?


Posted By: einjen
Date 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" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: einjen
Date 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" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: Dag Cato
Date Posted: 06 august 2014 at 19:50
Raspbian

-------------
MVH

DC



Steinsnes? Hvilken Steinsnes?


Posted By: programmeringssporet
Date 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" rel="nofollow - 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" rel="nofollow - http://programmingtrack.no-ip.org/startVNC.sh

# sudo apt-get install tightvncserver

#tightvncserver

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



Posted By: einjen
Date 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" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: programmeringssporet
Date 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)


Posted By: programmeringssporet
Date 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 http://en.wikipedia.org/wiki/User_Datagram_Protocol" rel="nofollow - 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 :

 




Posted By: programmeringssporet
Date Posted: 10 oktober 2014 at 01:51

Arkitekturvalg

 

Jeg har nå tre forskjellige Digital Sentraler :

  1. Roco Lokmaus II/Multimaus
  2. Roco Z21
  3. Merg CBUS-DCC ( http://www.merg.org.uk/merg_resources/cbus-dcc.php" rel="nofollow - http://www.merg.org.uk/merg_resources/cbus-dcc.php )

 

Hvem av dem jeg skal bruke er ikke et strategisk valg, men noe jeg kan endre på når jeg måtte ønske. Det som er viktigere, er  å bestemme meg for om jeg ønsker å benytte DCC som styringssystem, og på hvilke områder jeg vil gjøre det.  Det er helt klart at analog likestrøm (og vekselstrøm) ikke er aktuelt, men det er greit å ha mulighet til prøvekjøring av analoge lok på deler av anlegget.  Det som er mere spennene er å se på alternative måter å styre lokomotivene på.  Det mest interessante er hvis man kan få dem autonome (selvstyrende).  Google har laget autonome biler som er ute å kjører på veiene allerede, og det eksperimenteres med autonome seilbåter som skal seile over atlanteren ( http://www.microtransat.org/tracking.php" rel="nofollow - )

Det å få et tog på en modeljernbane til å være autonomt, er en mye enklere oppgave.  Den eneste utfordringen er plassen inne i et H0 lokomotiv.  Jeg har derfor vurdert å kjøpe et G-Skala startset, og montere en Raspberry Pi inn i lokomotivet.  Andre alternative platformer, er også litt for store for H0:

Arduino og Arduino board-kompatible :

  • Arduino UNO - 75 x 53 x 15 mm
  • Arduino Yún - 68.6 mm × 53.3 mm
  • ChipKit uno32  - 75 x 53 ?
  • FRDM-K64F - 75 x 53 ?

Alternativt ikke compatible kort:

  • STM32F4  - 97 x 66 mm

Bortsett fra fysisk størrelse er det også forskjellige prosessorer og programvare på de forskjellige kontrollerene.  En standard Arduino er lite aktuell fordi den har liten kapasitet, men det som gjør den interessant er miniversjonene av denne, men da er prosessoren loddet fast. .  Yun, har to prosessorer, en som kjører Arduino og en prosessor som kjører Linux, så den er interessant, men har to ulemper : høy pris og ikke mulig å bytte brikker – fordi de er loddet fast.

 

De andre kortene har høyere ytelse og er basert på ARM prossessorer (ARM prosessorer sitter i stort sett alt av moderne mobiltelefoner og nettbrett - både Apple iOS og Android. Raspberry Pi har også ARM) Det er kun Chipkit som har ARM prosessoren i en standard 28 Pin DIP utførelse - slik at den kan taes ut og plugges inn i et egenutviklet kort, og de har en miniversjon: Fubarino® Mini 5.1 cm x 1.9 cm, men her er også prosessoren loddet fast.  STM32F4 og Freescale FRDM-K64F, er andre spennende ARM løsninger, men også her er det fastloddede prosessorer og litt for store kort, men prisen er lav, ca kr 200.-.   FRDM-K64F er også veldig spennende fordi den er referanseimplementasjon av ARM’s IoT(Internet of Things) mbed plattform ( https://mbed.org/" rel="nofollow - https://mbed.org/ ).

Jeg tror jeg bestiller en FRDM-K64F for testing.  Det er nok litt for tidlig å plassere styreprosessoren i H0 lok, så foreløpig fortsetter jeg med å bygge det som et autonomt lok, men med styreprosessoren som en ekstern Raspberry PI.  Senere kan jeg vurdere Raspberry Pi Compute Module – når denne kommer ned i en akseptabel pris.

 

Spørsmålet blir da kommunikasjonen til Loket.  Her er DCC nesten det opplagte valget, men jeg har misstanke om at jeg har utfordringer med responstider / forsinkelser. Om dette skyldes støy p.g.a. dårlig kabling eller kontaktproblemer må jeg finne ut av. 

Det er interessant at Marklin har valgt infrarødt for ”myworld”, men enda mere interessant at ROCO har valgt wifi for Roco Next Generation ( http://www.roco.cc/en/specials/next/index.html" rel="nofollow - http://www.roco.cc/en/specials/next/index.html ) .  Her ser det ut som om systemet er basert på at lesebrettet kommuniserer direkte med lokomotivet via wifi uten å ha noe elektronikk (DCC sentral) imellom, og det blir tilgjengelig til jul i år ? – noen som vet ?.   Det er ganske tydelig at det er en begynnende trend bort fra DCC til mere generelle industristandarder (IoT)  – selv om jeg, og dere andre neppe kommer til å bytte ut alle DCC dekoderene vi har i dag.



Posted By: programmeringssporet
Date Posted: 10 oktober 2014 at 22:53

Bluetooth

Og her er lenker til info om Bluetooth Smart styring - bl.a. fra Bachmann :

http://bluerailtrains.com/intro.cfm" rel="nofollow - http://bluerailtrains.com/intro.cfm

http://resources.bachmanntrains.com/ihobby2014/html5/index.html?page=1" rel="nofollow - http://resources.bachmanntrains.com/ihobby2014/html5/index.html?page=1

http://www.bluetooth.com/Pages/Bluetooth-Smart-Devices-List.aspx" rel="nofollow - http://www.bluetooth.com/Pages/Bluetooth-Smart-Devices-List.aspx


Posted By: bkv1
Date Posted: 12 oktober 2014 at 11:10
Originally posted by Dag Cato Dag Cato wrote:

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.

Hei.
Det med å slå av Rpi riktig, har jeg syntes var tungvint når den ikke er koblet til skjerm/tastatur. Da måtte jeg ha med lap-topen min. Nylig lastet jeg imdlertid ned  JuiceSSH til min Android telefon. Med den kan jeg lett logge meg på Rpi og kjøre shutdown -h now. Hvis man betaler noen kroner kan man vistnok også lage scripts som gjør påloggingen og nedstengningen i en enkelt operasjon, men dette har jeg ikke prøvd ennå.
-Bjørn


-------------
Hilsen Bjørn

N-skala, Peco 55, Digikeijs DR5000, JMRI. Tysk diesel nyere tid


Posted By: bkv1
Date Posted: 12 oktober 2014 at 20:50
Takk for scriptene. Det var lett å installere JMRI og vnc på Rpi. Nå har jeg satt opp JMRI til å kjøre "faceless" og jeg får forbindelsen med appen Engine Driver på min androidtelefon. Det går fint å kjøre tog med telefonen, men den er for liten til å kontrollere sporvekslene  med ved hjelp av de grafiske panelene. Dertil må det nok anskaffes et nettbrett. Har noen her erfaring med bruken av Engine Driver og JMRI paneler? Hvilken størrelse bør nettbrettet ha?  Vil et av de billigste merkene gjøre jobben?

-Bjørn


-------------
Hilsen Bjørn

N-skala, Peco 55, Digikeijs DR5000, JMRI. Tysk diesel nyere tid


Posted By: einjen
Date Posted: 13 oktober 2014 at 17:11
Internet of things vil nok innta MJ også, ja. 
Kult. Det betyr at snart kan vi få togene våre hacket.

-------------
--

Einar Næss Jensen

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

http://einarblog.homemade.no/einarblog" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: programmeringssporet
Date Posted: 13 oktober 2014 at 17:28
Marklin Pensemotor 74490 / 74491 – Den endelige løsningen.

Marklin pensemotor problemer er blitt diskutert både her og andre steder de siste årene.  Min forståelse av problemet er at Marklin har montert en endebryter som er laget for opp til 0.5 Ampere i en veksel som bruker omtrent 1.5 Ampere.  Derfor blir bryteren brent opp.  Den eneste varige løsningen på dette problemet er å kople ut bryteren.  Jeg gjør det på følgende måte :



Åpne motoren ved å bøye opp taggene :




Ta ut innholdet.



Lodde over begge de to sorte bryterene.


Sette den sammen igjen – og bøye over taggene.


 

Da har vi en motor som fungerer – men uten beskytelse for overbelastning.  Det hadde jeg igrunnen også før modifiseringen.  Den siste gangen jeg brant opp en motor var årsaken at det stod et lokomotiv på vekselen, slik at den ikke la over, og til slutt brant opp.  For å unngå at pulsene blir for lange, har jeg lagt inn et hallelement som måler strømforbruket. 



https://www.sparkfun.com/datasheets/BreakoutBoards/0712.pdf" rel="nofollow - https://www.sparkfun.com/datasheets/BreakoutBoards/0712.pdf

https://www.sparkfun.com/products/8883" rel="nofollow - https://www.sparkfun.com/products/8883



En arduino er koplet til denne.  Arduinoen styrer et relee som må være inne for å gi strøm til sporskiftemotorene og dekoder.  Kontinuerlig innkopling eller mange pulser over en kort periode, kopler ut releet, tenner en rød LED og sender en melding til PC styringen, som forsøker å rette opp feilen, eller stopper alle togene om nødvendig.






Posted By: programmeringssporet
Date Posted: 14 oktober 2014 at 15:50
Hei,

Hvordan starter du JMRI faceless på Raspberry ?

Jeg har kun brukt JMRI til CV programmering, men er også interessert i hvordan PanelPro fungerer.  Er det mulig å eksportere "panelene" ?  Da kan jeg evt. prøve dine på iPhone, iPad 1,2 ,  iPad mini og Galaxy Tab 10.2.  Tror kanskje utfordringen med de rimeligste Android brettene, er ufølsom skjerm ?

m.v.h.

"Programmeringssporet"




Posted By: programmeringssporet
Date Posted: 14 oktober 2014 at 15:55
Originally posted by einjen einjen wrote:

Internet of things vil nok innta MJ også, ja. 
Kult. Det betyr at snart kan vi få togene våre hacket.


Ja,

En av de tingene jeg er usikker på er hva jeg skal tillate når jeg kommer utenifra.  Det er ok å starte opp noen Raspberry's og DCC sentraler,  men tror ikke jeg vil lage funksjonalitet for å sette på kjørestrøm og styre sporveksler når jeg ikke er innenfor brannmuren.

Foreløpig har jeg løst dette ved at jeg har to webservere,  en innenfor med full funksjonalitet, og en i DMZ som det blir kopiert informasjon til, men som ikke kan styre, og som kun inneholder f.eks. de lokomotivdefinisjonene som jeg syntes det er ok å publisere.  Det er vel ingen god ide å legge hele MJ samlingen fritt tilgjengelig på nett ?


Posted By: bkv1
Date Posted: 15 oktober 2014 at 20:00
Originally posted by programmeringssporet programmeringssporet wrote:

Hei,

Hvordan starter du JMRI faceless på Raspberry ?

Jeg har kun brukt JMRI til CV programmering, men er også interessert i hvordan PanelPro fungerer.  Er det mulig å eksportere "panelene" ?  Da kan jeg evt. prøve dine på iPhone, iPad 1,2 ,  iPad mini og Galaxy Tab 10.2.  Tror kanskje utfordringen med de rimeligste Android brettene, er ufølsom skjerm ?

m.v.h.

"Programmeringssporet"


Hei
 

JMRI startes facelss ved å kjøre programmet JmriFaceless som ligger sammen med DecoderPro og de andre, men først må du lage en konfigurasjon. Det kan du gjøre med DecoderPro. Du må sette programmet opp til å kjøre igang web-server og WiiThrottle ved oppstart, og til å åpne panelfilen. I tillegg må du selvsagt sette opp forbindelsen til MJ-anlegget under connections. 

Decoderpro lager en konfigrasjoinsfil som heter DecoderProConfig2.properties. Den må du kopiere til JmriFacelessConfig3.properites.

Når JmriFacess er startet opp får du tilgang til kjørekontroll og paneler fra apper på android og ios eller fra JMRIs webserver på pi-en som du får forbindelse med på port 12080 . Det skal visst være mulig å bruke DecoderPro/PanelPro som klienter også, men det har jeg ikke fått til.

20.10.2014: Rettelse: Du får ikke tilgang til panelene når du kjører faceless


-------------
Hilsen Bjørn

N-skala, Peco 55, Digikeijs DR5000, JMRI. Tysk diesel nyere tid


Posted By: einjen
Date Posted: 17 oktober 2014 at 10:54
Intel Edison er en ny og interessant utviklingsplatform som sikkert kan finne sitt bruksområde i MJ-verdenen:
https://www.sparkfun.com/news/1589" rel="nofollow - https://www.sparkfun.com/news/1589


-------------
--

Einar Næss Jensen

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

http://einarblog.homemade.no/einarblog" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: programmeringssporet
Date Posted: 29 oktober 2014 at 15:58
Originally posted by bkv1 bkv1 wrote:

Originally posted by Dag Cato Dag Cato wrote:

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.

Det med å slå av Rpi riktig, har jeg syntes var tungvint når den ikke er koblet til skjerm/tastatur. Da måtte jeg ha med lap-topen min. Nylig lastet jeg imdlertid ned  JuiceSSH til min Android telefon. Med den kan jeg lett logge meg på Rpi og kjøre shutdown -h now. Hvis man betaler noen kroner kan man vistnok også lage scripts som gjør påloggingen og nedstengningen i en enkelt operasjon, men dette har jeg ikke prøvd ennå.
-Bjørn


Hei,

Hei.

Takk for info om å kjøre headless.

Jeg har et lite program som kjører kontinuerlig på Raspberry, og venter på beskjed om å kjøre poweroff via tcp/ip (socket)  - må bare lage en Android klient til den først,  eller kanskje bare lage en liten web-server ?.   Mere om dette kommer nok.

En alternativ løsning er å kople en trykkbryter til GPIO




Posted By: programmeringssporet
Date Posted: 29 oktober 2014 at 16:04
Originally posted by einjen einjen wrote:

Intel Edison er en ny og interessant utviklingsplatform som sikkert kan finne sitt bruksområde i MJ-verdenen:
https://www.sparkfun.com/news/1589" rel="nofollow - https://www.sparkfun.com/news/1589


Hei,

Ja de var kule, og de er det plass til inne i et H0 lok.  Skal se om jeg skal bestille noen, men har ikke funnet noen som har på lager til en ok pris (med tillegskort).  Jeg har litt mere lyst til å test ut MBED platformen. (Edison er vel bare en tradisjonell Atom CPU på et minikort ? -  et itx kort koster omtrent det samme ?)  Det ligger to FRDM-K64F og venter på med i Strømstad


Posted By: programmeringssporet
Date Posted: 29 oktober 2014 at 16:41
Dekoder

Her går det fremover :




Hensikten med denne er å teste ut selvbygde enkle funksjonsdekodere for vogner og å gjøre analyser av DCC signalet.  Kortet er baser på denne dekoderen :



http://usuaris.tinet.cat/fmco/home_en.htm

Endringene jeg har gjort er at jeg ikke har installert D5, fordi jeg ikke forstod hva den skulle gjøre.  Senere har jeg forstått at denne er der for å gjøre det mulig å legge til en kondensator i strømforsyningen til prosessoren, men den er altså ikke nødvendig.

IC4 har jeg ikke installert enda fordi jeg kun har behov for LED utganger.
IC2 har jeg satt opp med en 20-pins sokkel istedenfor 8-Pin.  JEg får derfor mye mere fleksibilitet i valg av prosessor.

For å teste denne kretsen koplet jeg opp 4 led. og satt inn en bryter for å teste at strømforsyningsdelen fungerte både med likestrøm og DCC signal.

Neste skritt var å laste inn et JAL ( http://www.justanotherlanguage.org/" rel="nofollow - Just Another Language ) program ble programmert inn i prosessoren, og LED'en blinket:

include 12f629                    -- target PICmicro
-- This program uses the intern oscillator at 4 MHz
pragma target clock  4_000_000     -- oscillator frequency
-- configuration memory settings (fuses)
pragma target OSC  INTOSC_NOCLKOUT -- Internal oscillator
pragma target WDT  disabled        -- no watchdog
pragma target MCLR internal        -- make MCLR pin available I/O
--
enable_digital_io()                -- disable analog I/O (if any)
alias   led      is pin_A0
pin_A0_direction =  output
forever loop
   led = on
   _usec_delay(250000)
   led = off
   _usec_delay(250000)
end loop


Tilsvarende testet jeg med Microchip PIC 16f690 (20 pins prosessor)


include 16f690                      -- target PICmicro
-- This program uses the internal oscillator at 8 MHz
pragma target clock 8_000_000       -- oscillator frequency
-- configuration memory settings (fuses)
pragma target OSC  INTOSC_NOCLKOUT  -- internal oscillator
pragma target WDT  disabled         -- no watchdog
pragma target MCLR external         -- reset externally
enable_digital_io()                 -- make all pins digital I/O
OSCCON_IRCF = 0b111                 -- set internal oscillator for 8 MHz
alias   led      is pin_A0
pin_A0_direction =  output
forever loop
   led = on
   _usec_delay(250_000)
   led = off
   _usec_delay(250_000)
end loop


Neste skritt var å laste inn DCC dekoderprogramvaren i prosessoren, og teste dette.  Jeg ble litt overasket da LED'ene tente etter at jeg hadde satt Lokmausen til adresse 3 og endret til 28 speedstep og trykket på knappen til frontlys. Ved å endre retningen på loket slukket LED1 og LED2 ble tent.  Det fungerte akkurat som det skulle.


Jeg har også laget et lite kort med to 6n137 optokoplere :





http://www.mynabay.com/dcc-monitor/16-arduino-dcc-monitor-2" rel="nofollow - http://www.mynabay.com/dcc-monitor/16-arduino-dcc-monitor-2  

Hensikten er å kople utgangene fra dekoderen til en Arduino som gir feedback til PC styringen via USB, slik at jeg kan måle responstider i DCC systemet.



Posted By: programmeringssporet
Date Posted: 17 november 2014 at 15:22
Er det mulig ?

Jeg har hatt en mistanke om at problemene med dårlig respons på hastighetsendringer, har skyltes kvaliteten på DCC signalet på sporet.  Dette rene signalet kommer ut av ROCO DCC sentralen min :





Det ser ut som om signalet på skinnene er slik :


Hvis dette er riktig, må jeg si at jeg er imponert av at dekoderene er istand til å forstå dette i det hele tatt.  Det er ihvertfall sikkert at jeg må forske mere på årsaker, og hva jeg kan gjøre for å hindre dette.

Årsaken er sansynligvis likeretterbroene som jeg benytter for å få et spenningsfall i spordeteksjonskretsen.  Jeg har googlet litt, og det ser ut som om det er viktig å benytte raskere dioder på DCC signaler




Posted By: programmeringssporet
Date Posted: 18 desember 2014 at 00:18
En liten oppdatering

Det forvrengte DCC signalet i forrige post, skyltes feil på en diodebro. Da denne ble rettet ble signalet bra igjen.  Konklusjon :  Jeg må fullføre målevognen, slik at jeg kan sjekke DCC signalet overalt på anlegget.

Jeg har kommet videre med programvaren.  Web Serveren er laget på nytt fra bunnen av, for å få ned resursforbruket.  Den siste versjonen, viser den samme infoen som den gamle (Lokomotiver, dekodere og CV verdier).  Den eneste forskjellen er at den nye bruker mindre resurser på server, og den viser realtime data.

Jeg har også laget en "light" versjon av denne, som jeg bruker til å slå av Raspberry'ene mine.  Hvis noen vil prøve den, er fremgangsmåten, (anbefaler backup før du starter) :

1.  logg inn på raspberryen med brukernavnet pi, og vær sikker på at du står i /home/pi
2.  Last ned med  kommandoen > wget programmingtrack.no-ip.org/setupController.sh
3.  kjør innstallasjonsskriptet       > . ./setupController.sh
4.  kjør sudo reboot,  etter at installasjonen er ferdig.

Hvis alt har gått bra, skal du nå kunne kontrollere Raspberry'en fra en web browser på port 8000, eks:



Knappen Poweroff, stopper Raspberryen, reboot, omstarter Paspberryen og stop, stopper kun webserver.  Etter at du har valgt poweroff eller reboot får du opp dette bildet :


Home knappen virker ikke før Raspberryen er omstartet


Posted By: programmeringssporet
Date Posted: 28 januar 2015 at 01:06
Elektrifisering av programmeringssporet

Etter litt sparkling rundt programmeringssporet, ser det nå ut som om jeg er kvitt reflekser ved ultralydavstandsmålingene.  Neste utfordring er å montere kjøreledning uten at dette påvirker ultralydmålingen. 

Det ser ut som om at NMJ ikke kommer med topline EL14 i år.  Jeg må derfor gå løs på Limaene mine.  Først må et understell tilpasses.  Jeg kommertilbake med mere info, når jeg får prøvekjørt det :




Posted By: programmeringssporet
Date Posted: 02 februar 2015 at 21:18
Stor nyhet i dag er Raspberry Pi 2 B :

http://www.raspberrypi.org/raspberry-pi-2-on-sale/" rel="nofollow -  Viktigste nyhet er mere RAM (1GB) og ny 4 kjerners CPU, med mellom 1.5 og 6 ganger bedre ytelse, avhengig av applikasjon.  Da bør det la seg gjøre å kjøre JMRI med ok ytelse ?  Jeg har bestilt et par stykker for å  se hvordan de fungerer (prisen er den samme som før (USD 35).  Det er allerede produsert 100000 eksemplarer, så ventetiden blir kanskje ganske kort.

Hovedbryter.

Programmeringssporet er på en modul som har ganske kompleks strømopplegg.  I dag er det flere strømforsyninger fra Roco og TRIX, en 8 volts strømforsyning til Ethernet Router og to micousb strømforsyninger for Raspberry Pi.  I hvilemodus er kun Raspberryene og Router tilkoplet strøm.  Kun disse enhetene har et strømforbruk på omtrent 40 Watt.  Mye av dette ligger nok i de tre 200V adapterene.

For å redusere kabelsalaten, og strømforbruket, har jeg satt meg et mål om at det kun skal gå to kabler inn til modulen :  En ethernet kabel og en 220 Volt tilkopling.  Ut av modulen, skal det kun gå DCC signal til neste modul (Fremo).  Jeg ønsker ikke å ha eget WI-FI nett i modulen. 

Ved hjelp av ”Power over Ethernet” (PoE) kan jeg få en ganske god løsning:  På modulen går Ethernet inntaket rett inn i en Linksys PoE Splitter

( http://www.tp-link.com/en/products/details/?model=TL-POE10R" rel="nofollow - http://www.tp-link.com/en/products/details/?model=TL-POE10R )



Denne har en utgang som gir 9 Volt, og forsyner en Arduino med Ethernet kort,  og en Ethernet Switch.  (Brun/Gule ledninger på bildet) Disse enhetene vil derfor alltid være tilkoplet strøm.  Strømforbruket er ca 5 watt.

På Arduinoen har jeg laget en liten WebServer som styrer utgang 4 (Orange ledning) , og er koplet til en transistor, som driver et rele (Blå Ledninger) , som fungerer som hovedbryter (220Volt) for resten av modulen (bl.a. Raspberry, Digitalsentraler, Can Bus,  og andre transformatorer).

Neste skritt er å sette opp 8 releer, som skal styrer via CAN Bussen, for å styre strøm til de forskjellige enhetene (DCC skinnestrøm,  DCC pensestyring, Signaler, LYS, etc).  Når alt dette er klart,  kan jeg fjernstarte anlegget fra en web Browser : Først hovedbryteren, som også starter Raspberryene, hvor jeg kan styre de forskjellige releene (også dette fra en web browser).



Posted By: programmeringssporet
Date Posted: 03 februar 2015 at 15:22
Strømforbruk - stand by

Da har jeg testet litt mere.
Selve PoE injektorer har et forbruk på 4 Watt.
Poe + Ethernet Switch (D-Link Green 5 port) 7 Watt - når det ikke er trafikk på nettet.
Poe + Ethernet Switch + Arduino med Eth. kort : 11 Watt.

Hvis totalpris for strøm  settes til kr 1 per kilowatt time - koster dette omtrent 100 kroner pr. år.
(og det meste av dette går nok til varme i vinterhalvåret)


Posted By: SveinR
Date Posted: 03 februar 2015 at 15:56
Med den nye B+ modellen, kan den overklokkes mer en den gamle?
Var det som var litt "problemet" med A og B utgavene, det var litt trege til å kjøre programmer med GUI

-------------
Mvh

-SveinR



Det finnes en skiftetraktor til alt



Posted By: programmeringssporet
Date Posted: 03 februar 2015 at 23:00
Originally posted by SveinR SveinR wrote:

Med den nye B+ modellen, kan den overklokkes mer en den gamle?
Var det som var litt "problemet" med A og B utgavene, det var litt trege til å kjøre programmer med GUI


Det ser ikke ut som om jeg får tak i en ny Raspberry før neste uke.  Her er noen ytelsestester :

http://learn.adafruit.com/introducing-the-raspberry-pi-2-model-b?view=all" rel="nofollow - https://learn.adafruit.com/introducing-the-raspberry-pi-2-model-b?view=all

Basert på denne testen,  tror jeg at bl.a. JMRI vil gi en mye bedre brukeropplevelse.


Posted By: SveinR
Date Posted: 03 februar 2015 at 23:19
takk.. Den må nok handles. Har en ide om å kjøre RocRail på den.

-------------
Mvh

-SveinR



Det finnes en skiftetraktor til alt



Posted By: einjen
Date Posted: 04 februar 2015 at 11:39
Hvor har dere bestilt den nye raspberryen?

-------------
--

Einar Næss Jensen

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

http://einarblog.homemade.no/einarblog" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: trulss
Date Posted: 04 februar 2015 at 11:49
Originally posted by einjen einjen wrote:

Hvor har dere bestilt den nye raspberryen?


http://no.rs-online.com/web/" rel="nofollow - http://no.rs-online.com/web/


-------------
Truls Slevigen


Posted By: programmeringssporet
Date Posted: 05 februar 2015 at 21:02
Rs-online, er utsolgt, jeg bestilte en Intel Edison istedenfor, samt noen I/O kretser og drivere (MCP23008/23017 og ULN2803) for å komme over kr 500 / gratis frakt.  Ble levert på to dager.

www.kjell.com har på lager - har reservert en i Strømstad.

www.digitalimpuls.no har jeg også bestilt - de sier de får dem på tirsdag

www.elfa.se har ikke - men søsterselskapet reichelt.de har dem

komplett.no - sansynligvis 16 Mars

teknikmagasinet - kommer i neste katalog, sier de



Posted By: programmeringssporet
Date Posted: 15 februar 2015 at 19:16
Fremgang

Da er ny Raspberry Pi 2 installert.  Oppstartstiden på JMRI/DecoderPro er gått fra ca 40 sekunder til 14,  og brukergrensesnittet er mye raskere (på den gamle var det mere eller mindre ubrukelig).  Det føles omtrent som å kjøre på Laptoppen min (Win7 64 bit - Intel Core i5).

Et par utfordringer :
Det er raspbian fra 30 Januar 2015, som fungerer - denne fungere også på den gamle.  SD brikken kan flyttes frem og tilbake - men Raspberry 2, er micro SD - så for meg betyr det nye SD brikker (med adapter passer de også i den gamle)

Jeg har originalversjonen av Raspberry (B - ikke B+).  Jeg tilpassset et gammelt kabinett - men det er nok lurere å kjøpe et nytt. (samme som B+)

Det er utfordinger med Serieporten i Java (RXTX) ved overgang til ARM7.  Her er løsningen :

http://groups.yahoo.com/neo/groups/jmriusers/conversations/topics/114689" rel="nofollow - http://groups.yahoo.com/neo/groups/jmriusers/conversations/topics/114689

EL14.

I dag kom vinkelsliperen frem :



Understellet kommer fra en Piko DR BR 119 http://www.conrad.com/ce/en/product/404385/Piko-H0-59930-H0-diesel-locomotive-BR-119-Deutsche-Reichsbahn-BR-119-DR-Upper-headlight" rel="nofollow - http://www.conrad.com/ce/en/product/404385/Piko-H0-59930-H0-diesel-locomotive-BR-119-Deutsche-Reichsbahn-BR-119-DR-Upper-headlight
som jeg fikk tak i ganske rimelig i Berlin forrige sommer.  Jeg har kappet ut ca 1 cm av rammen på hver side av motoren - dette gikk greit med en baufil.

Problemet var en kant som måtte fjernes.  På bildet under er den slipt bort på alle 3 delene, som jeg skal bruke, men ikke på de to delene som ikke skal brukes.



Og slik ser det ut når de dyttes inn i lokomotivet :






Posted By: programmeringssporet
Date Posted: 18 februar 2015 at 00:32
Huskeliste for å kjøre JMRI på Raspberry Pi 2, B  :

X / vnc:  ("GDBus.Error.org.freedesktop.policykit1.error.failed: can not determine user of subject".)


sudo vi /etc/xdg/autostart/lxpolkit.desktop

Siste linje skal endres til (legge til :
LXDE;)
NotShownIn=GNOME;KDE;LXDE;

Fikse RXTX / Java Serieport - ved å benytte ARM6 bibliotek på ARM7:
sudo cp -v /home/pi/JMRI/lib/linux/armv6l/* /home/pi/JMRI/lib/linux/armv7l/


Posted By: einjen
Date Posted: 18 februar 2015 at 23:20
takk! Får min raspberry i morgen

-------------
--

Einar Næss Jensen

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

http://einarblog.homemade.no/einarblog" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: programmeringssporet
Date Posted: 28 februar 2015 at 14:15
Hovedbryter fungerer greit - neste skritt er releer for styring av DCC, pensemotorer etc.
For dette er det satt opp 8 releer - som styres av et CAN-Bus interface.


Releene er (fra venstre)
1. DCC til Programmeringssporet
2. DCC til andre spor
3. Velge innebygget DCC sentral (Roco eller Merg) - eller ekstern DCC sentral (ikke koblet opp)
4. Velge mellom Roco eller Merg DCC sentral
5. DCC til pensemotorer/AUX
6. CAN-BUS styring av pensemotorer (ikke ferdig oppkoplet)
7. CAN-BUS styring av avkoplingskinner (ikke ferdig oppkoplet)
8. 12 Volt til andre funksjoner (Ikke ferdig oppkoplet)

Nederst til høre er CAN-BUS grensesnittet - som styrer releene.  På denne måten kan jeg styre alt fra programvare, bl.a. fra JMRI, men også fra andre styrings og overvåkningskort.  Foreløpig er hele modulen programvarestyrt.  Det er ingen bryterpaneler på modulen, men jeg har valgt å lage et lite overvåkningspanel som skal vise den viktigste statusen.  Det kan være nyttig å se status - hvis kommunikasjonen er nede.  Under er et prøveoppsett med 8 LED for å vise status.  Ved normal drift vil grønne og gule lysdioder lyse.  De røde skal kun blinke når en pensemotor eller avkoplingskinne er aktivert.


dddsd


Posted By: programmeringssporet
Date Posted: 05 mars 2015 at 00:18

Fra programmeringssporkontroller til stasjonskontroller

 Erfaringen med programmeringssporkontrolleren er god.  Den fungerer stort sett som forutsatt.  Jeg planlegger derfor å etse et kretskort til denne.  Før dette vil jeg utvide funksjonaliteten til å bli en total stasjonskontroller.  De viktigste funksjonene blir :

1.     1.  Signalstyring : Lys og semafor.  Viktig funksjon er myk blinking av LED ved hjelp av PWM (Pulse-Width Modulation) og programvarestyrt lysstyrke.

2.     2.  Sporvekselstyring: Kun driver for servo – andre alternativer via ekstern funksjonalitet (DCC Accessory decoder el).

3.     3.  Tilbakemelding på fysisk posisjon for sporveksler.  Det skal være støtte for fysisk bryter og spenningsdetektor av hjertestykke.

4.     4.  Sporfeltdetektor: Basert på diode-drop og optokopler.

5.     5.  Punktdeteksjon basert på Infrarød stråle.

6.     6.  Avstands/hastighetsmåler med Ultralyd.

7.     7.  Mulighet for rele for å kople inn programmeringsspor

8.     8.   Mulighet for å plugge inn en SPROG klone.

9.     9.  Støtte for å legge sporveier.

10.  10. Tilkopling til lokalt stillverk, fysisk eller virtuelt (iPad?), via USB, RS232/485, CAN, ethernet – eller direkte tilkoplet ?

11.  11. Mulighet for fjernstyring fra f.eks. JMRI, via USB, RS, RS232/485, CAN eller ethernet ?

 

I utgangspunket skal jeg bruke en eller flere Arduino kort pr. Stasjon.  Større stasjoner kan også styres av en egen Raspberry Pi.  En Arduino har kun 14 utganger. Av disse er det kun 6 som har PWM støtte.  En arduino kan derfor koples direkte til 6 lamper, siden jeg ønsker myk blinking og myk overgang fra grønt til rødt/hvitt signal.  Øvrige innganger/utganger kan brukes til spordeteksjon etc.  Dette blir litt begrenset.  Fra tidligere har jeg god erfaring med MCP23008 for spordeteksjon.  Den kan også brukes til utganger, men støtter ikke PWM.  Jeg har derfor bestilt et kort med 16 PWM utganger ( http://www.adafruit.com/product/815" rel="nofollow - http://www.adafruit.com/product/815 ).  Dette kortet kan brukes både til LED og servostyring.  Kortet koster omtrent kr 120.- levert i Norge.  Jeg har også bestil noen løse kretser til kr 19.-,  som jeg vil bruke når jeg etser et eget kort.

I dag kom kortet.  Jeg laget derfor et lite testoppsett – som jeg skal bruke for å teste ut LED styringen.  Første skritt var å lodde på soklene.


 

Deretter skrudde jeg sammen kortene og en signalmast i et testoppsett – Dette skal jeg bruke for å teste konseptet og lage programvaren til Arduinoen.  Blir det vellykket, må jeg finne ut hvor mye en Arduino klarer.  Teoretisk kan det koples opp 62 kort – som tilsammen kan styre 992 LED / servoer, men jeg antar at Arduinoen får litt pusteproblemer før dette.  En nyttig funksjon er at kortet støtter både 3,3 volt og 5 volt, slik at alternative Arduinokort eller Raspberry Pi, kan benyttes istedenfor.  Grensesnittet er I2C. Bildet viser testoppsettet uten testledninger.




Posted By: programmeringssporet
Date Posted: 25 mars 2015 at 23:59
Nytt forsøk

Jeg gjør et nytt forsøk på å øke interessen for Arduino for modelljernbanestyring i Norge.
Nå vil jeg bruke en Arduino for å styre signaler fra Skala Design.  I en annen tråd ble det uttrykt ønske om kunne kople opp signaler uten å lodde egne kort.  Det enkleste blir da å kople signalet rett på Arduinoen.  Alle utgangene på Arduino kan styre ut 5 eller 0 Volt.  Første forsøket ble å teste hvordan signalet fungerer med 5 Volt.  Denne koplingen ble laget :



Sort ledning fra signalet (felles +) koples til 5Volts pinnen på Arduinoen.
Rød Ledning koples til digitalutgang 3
Grønn Ledning koples til digitalutgang 5

På bildet kan man se at utgangene 3,5,6,9,10 og 11 er merket med en liten strek.  Denne indikerer at utgangen kan PulsViddeModuleres (PWM).  Derved kan lysstyrken i signalet også stilles.  Dette bruker jeg til å få den typiske norske myke blinkingen.  I tillegg bruker jeg den for å få en myk overgang fra rødt til grønt signal, samt at det nye lyset tener før det gamle er helt slukket.  Dette kan også brukes til å velge mellom dag og nattsignaler

Jeg har laget et lite testprogram for å se hvordan dette fungerer.  Ved oppstart tennes rød lampe - etter  10 sekunder begynner denne å blinke mykt.  Hvert tredje sekund endrer signalbildet mellom rødt (blinkende) og grønt (fast).  Også denne overgangen er myk.  Her er dagens versjon av testprogrammet (nye versjoner kommer etterhvert som de bli ferdige):

int ledCnt=25;
// red, green, control
int ledPins[25]   = {3,5,13};
int ledBlink[25] = {1,0,1};
int ledMode[25]  = {2,2,0};
int ledOn[25]    = {1,0,1};
int ledOnNew[25] = {0,0,0};
int transitionValues[20] =    {0,1,2,3,4,5,6,7,8,9,10, 15, 20, 30, 40, 75,100,150,200,255};
int transitionValues0ff[20] = {0,1,1,1,2,5,6,7,8,9,10,100,150,200,255,255,255,255,255,255};
int statusCheckCnt=0;
int controlType=0;
boolean statusRed=true;
boolean debugBlinkValue=false;

void setup()  {
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  delay(5000);
  for (int i = 0; i < ledCnt; i = i + 1){
    if (ledPins > 0){
      if (ledPins<100){
        pinMode(ledPins[0], OUTPUT);
      }
    }
  }
 
  sod();
  delay(10000);
  Serial.println ("End Init");
 
}

void loop()  {
  boolean dig=true;
  while (dig){
    blinker(400,20,200,10);
    //delay(400);
    statCheck(50,350,18);
  }
}
void statCheck(int pred, int td, int d){
  delay (pred);
  statusCheckCnt++;
  if (statusCheckCnt<3){
    delay(td);
  }
  else{
    statusCheckCnt=0;
    if (statusRed) green();else red();
    transition(td,d);
  }
}
 
void blinker(int offTD, int offD, int onTD, int onD){
  Serial.println ("----------------------------- OFF ");
  blinkOff2(offTD,offD);
  Serial.println ("----------------------------- ON");
  blinkOn2(onTD,onD);
}
void sod(){
  int i=0;
  Serial.println ("SOD");
  for (i = 0; i < ledCnt; i = i + 1){
    int v=ledOn;
    if (v==1) v=255;
    setLed(i,v);
  }
  Serial.println ("SOD - Finished");
}
void green(){
  Serial.println ("Green");
  ledOnNew[0]=0;
  ledOnNew[1]=1;
  ledOnNew[2]=1;
  statusRed=false;
}
void red(){
  Serial.println ("Red");
  ledOnNew[0]=1;
  ledOnNew[1]=0;
  ledOnNew[2]=1;
  statusRed=true;
}
 
void transition (int td, int d){
  unsigned long time = millis();
  int i=0;
  int j=0;
  Serial.println ("Transition start");
  for (i = 1; i < 20; i = i + 1) {
    int ii=20-i-1;
    for (j = 0; j < 3 ; j = j + 1){
      if (ledOnNew[j]==1){
        if (ledOn[j]==0){
          setLed(j,transitionValues);
        }
      }
      if (ledOnNew[j]==0){
        if (ledOn[j]==1){
          setLed(j,transitionValues0ff[ii]);
        }
      }
    }
    delay(d);
  }
  for (i = 0; i < ledCnt; i = i + 1){
    ledOn=ledOnNew;
  }
 
  unsigned long time2=millis();
 
  int dt = time2 - time;
  dt=td - dt;
  Serial.print ("Transition:");
  Serial.print(dt);
  Serial.print("/");
  Serial.println (td);
  if (dt>0) delay (dt);
}
 

void blinkOn2(int td,int d){
  unsigned long time = millis();
  int i=0;
  Serial.println ("ON2");
  for (i = 1; i < 20; i = i + 1) {
    blinkValue(transitionValues,d);
  }
  unsigned long time2=millis();
  Serial.println (time2-time);
  int dt = time2 - time;
  dt=td - dt;
  Serial.println (dt);
  if (dt>0) delay (dt);
}
void blinkOff2(int td,int d){
  int i=0;
  unsigned long time = millis();
  Serial.println ("OFF2");
  for (i = 18; i >= 0; i = i - 1) {
    blinkValue(transitionValues0ff,d);
  }
  unsigned long time2=millis();
  Serial.println (time2-time);
  int dt = time2 - time;
  dt=td - dt;
  Serial.println (dt);
  if (dt>0) delay (dt);
}
 

void blinkValue(int bb,int d){
  int b=255-bb;
  if (debugBlinkValue){
    Serial.print("Blink value:");
    Serial.print(bb);
    Serial.print(":");
    Serial.print(b);
    Serial.println ("");
  }
  int i;
  for (i = 0; i < ledCnt; i = i + 1) {
    if (ledOn == 1){
      if (ledBlink == 1){
        if (ledMode == 0){
          if (bb==0) digitalWrite(ledPins,LOW); else digitalWrite(ledPins,HIGH);
        }
        if (ledMode == 1){
          if (bb==0) digitalWrite(ledPins,HIGH); else digitalWrite(ledPins,LOW);
        }
        if (ledMode == 2){
          analogWrite(ledPins, b);
        }
      }
    }
  }
  delay(d);
}
   
void setLed(int i,int v){
  if (debugBlinkValue){
    Serial.print ("SetLED:");
    Serial.print (i);
    Serial.print (":");
    Serial.print (v);
    Serial.println ();
  }
  if (ledMode == 0){
    if (v==0) digitalWrite(ledPins,LOW); else digitalWrite(ledPins,HIGH);
  }
  if (ledMode == 1){
    if (v==0) digitalWrite(ledPins,HIGH); else digitalWrite(ledPins,LOW);
  }
  if (ledMode == 2){
    v=255-v;
    analogWrite(ledPins, v);
  }





Posted By: Svein_H
Date Posted: 26 mars 2015 at 17:53
Regner med det kanskje er tråden min du tenker på?Smile Må innrømme at det ser spennende ut dette du holder på med nå, så selv om jeg kanskje ikke "løper og kjøper" en Arduino med en gang skal jeg hvertfall følge med på det du gjør fremover!Thumbs Up


-------------
H0, norsk på 50-tallet en gang
http://www.hjemstad.no" rel="nofollow - Min hjemmeside


Posted By: programmeringssporet
Date Posted: 30 mars 2015 at 01:31
Jeg opdaget nettopp at kodeeksempelet mitt fra forrige innlegg - ble ødelagt da jeg posted det på forumet:

Eksempel :
(test[1] == 2)

Ble endre til:
(test == 2)

Jeg har derfor lagt ut programmet som  en zip fil - denne kan lestes ned her :

http://programmingtrack.no-ip.org/sw/arduino/Controller02080001.zip" rel="nofollow - http://programmingtrack.no-ip.org/sw/arduino/Controller02080001.zip

Denne kan pakkes ut slik at du får en fil Controller02080001.ino

Funksjonalitet til denne nye versjonen er som før, men hvis du kopler en bryter mellom Digital Pinne 2 (til høyre for den røde ledningen) og Gnd/Jord (til høyre for sort ledning) - får du mulighet til å styre rød / grønn.  Hvis bryter er lukket når Arduinoen blir slått på, starter den automatisk i denne modusen,  ellers vil den starte i testmodus - og gå over til rødt, når du slår bryter på og deretter av. Signalet lyser grønt når bryter er lukket.  Det er også mulig å kople en spordetektor (f.eks http://forum.mjf.no/forum_posts.asp?TID=9074&title=alternativer-til-skala-design-signalstyring" rel="nofollow - BD-20 fra NCE )  til pinne 4 (mellom rød og grønn). og også mulighet for å kople en annen spordetektor til pinne 7.  Signalet vil lyse grønt hvis bryter er på og ingen av spordetektorene er aktivert (De aktiveres ved å trekke styringspinnen til jord. (Det er ikke behov for 10k pullup motstand - denne er aktivert internt i SW)

Jeg har installert dette for å få et innkjøringssignal på en av endestasjonene mine.


Hvordan komme igang med Arduino - og signalstyring. 

Det finnes en rekke forskjellige Arduinoer.  Jeg anbefaler å starte med Arduino UNO - fordi denne har utbyttbar prosessor (DIL sokkel) - slik at evt. feilkoplinger kun ødelegger prosessoren - ikke hele kortet (ny prosessoer 20 - 40 kroner)

Det enkleste (men kanskje litt dyrt?) er å kjøpe et Arduino startsett f.eks :
http://www.digitalimpuls.no/PC-komponenter/Hovedkort/Arduino/Arduino/Vilros-Arduino-Uno-Ultimate-Starter-Kit-Includes-72-page-Instruction-Book-129859-p0000088952.aspx" rel="nofollow -
http://www.digitalimpuls.no/PC-komponenter/Hovedkort/Arduino/Arduino/Vilros-Arduino-Uno-Ultimate-Starter-Kit-Includes-72-page-Instruction-Book-129859-p0000088952.aspx

Alternativer er digikey med et litt midre kit :

http://www.digikey.no/product-detail/en/193/1528-1078-ND/5154653" rel="nofollow - http://www.digikey.no/product-detail/en/193/1528-1078-ND/5154653
(Bare pass på å legg til litt ekstra så du kommer over kr 525 - for free shipping.

I Sverige er Kjell & co veldig greie - med ok priser og godt utvalg i http://www.kjell.com/Sok?query=arduino#Sok?showall=&query=arduino&sort=P_PriceExcVat&listingStyle=grid&_suid=1427675074545046037442780139986" rel="nofollow - Arduino og tilbehør f.eks. disse to (under 200 tilsammen) :
http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/uno-r3-p87960" rel="nofollow - http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/uno-r3-p87960
http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/kopplingskablar-hane-hona-p87900" rel="nofollow - http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/kopplingskablar-hane-hona-p87900

Andre ting å ta med seg fra Kjell & Co:

Reserveprosessor :
http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/atmega328p-pu-20-portar-p87909" rel="nofollow - http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/atmega328p-pu-20-portar-p87909

Skruetilkoplinger for mere permanent/sikker oppkopling :
http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/skruv-shield-for-arduino-p87890" rel="nofollow - http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/skruv-shield-for-arduino-p87890

Arduino Lærebok:
http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/getting-started-with-arduino-p87873" rel="nofollow - http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/getting-started-with-arduino-p87873

Mye av det Kjell & Co selger kan også bestilles direkte fra Kina - til lavere priser.
Tror ikke Kjell & co sender til norge - alternativ i Sverige som sender til Norge er :

http://www.eztronics.se/webshop2/catalog/Arduino" rel="nofollow - http://www.eztronics.se/webshop2/catalog/Arduino

elfa.se har også kort - men fant ikke ledninger.

Mange av produktene stammer fra  to amerikanske leverandørene :
http://www.sparkfun.com" rel="nofollow - www.sparkfun.com
http://www.adafruit.com" rel="nofollow - www.adafruit.com

To Norsk nettbutikker - jeg ikke har prøvd :
http://youblob.com" rel="nofollow - youblob.com
http://robotronic.no" rel="nofollow - http://robotronic.no

Etter at man har skaffet seg et Arduino kort med USB kabel, er det bare  følge denne oppskriften for å komme igang med Arduino :

http://arduino.cc/en/Guide/Windows" rel="nofollow - http://arduino.cc/en/Guide/Windows

Etter at blink eksemplet kjører - kan man prøve å kople opp signal og laste opp mitt eksempelprogram:
Controller02080001.ino

Planer fremover
Den neste versjonen av programmet - skal støtte innkjøringssignaler i begge ender av stasjon, med 4 sporsensorer (innkjør 1, innkjør 2, Spor 1 og Spor 2).  Den må også ha sensor for posisjon for sporveksler for å vite om den skal sjekke belegg i Spor 1 eller 2 og om det skal vises en eller to grønne lamper på signalene.  Jeg skal også legge inn støtte for impulsbrytere.

Planlegger også å ta i bruk I2C bussen for å få støtte for flere signaler. - Slik at også utkjørsignaler kan implementeres.

Deretter kommer en versjon hvor flere Arduinoer kan snakke sammen , eller sammen  med PC/Raspberry og f.eks. JMRI.  Tror også jeg skal lage en webserver (for PC eller Raspberry) for å konfigurere opp kortene)




Posted By: programmeringssporet
Date Posted: 30 mars 2015 at 14:06
Her er et ok Arduino startset fra Elfa :

http://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?item=10-389-38" rel="nofollow - https://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?item=10-389-38

Litt vanskelig å finne Arduino utstyr på elfa, men her er et ok søk :

http://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?toc=20991&orderBy=PRICE_SORTER&sortOrder=asc&filterClause=MANUFACTURER%253DArduino&pageSize=100" rel="nofollow - https://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?toc=20991&orderBy=PRICE_SORTER&sortOrder=asc&filterClause=MANUFACTURER%253DArduino&pageSize=100

Chipkit / Microchip Arduino kompatible kort :

http://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?sq=chipkit&cat=0" rel="nofollow - https://www.elfaelektronikk.no/elfa3~no_no/elfa/init.do?sq=chipkit&cat=0

Men gjentar meg selv:  er nok best å starte med en Arduino UNO


Posted By: programmeringssporet
Date Posted: 02 april 2015 at 21:04
Neste versjon av Signalstyringen - har flyttet Rød/Grønn bryter fra Digital Pinne 2, til Analog 0(Digital 14).

Her er en oversikt over alle tilkoplingene - som kan brukes når programvaren er klar :




Posted By: einjen
Date Posted: 04 april 2015 at 12:28
Har stor glede av å følge arbeidet ditt med arduino og raspberry. Veldig morsomt!


-------------
--

Einar Næss Jensen

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

http://einarblog.homemade.no/einarblog" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: programmeringssporet
Date Posted: 07 april 2015 at 23:04
Einar,

Veldig bra at du har glede av bloggen - håper også at andre har det !

Hensikten med bloggen er først og fremst å motivere andre til å lære å bygge elektronikk og enkle datastyringer ved å vise hvor enkelt det er.  Jeg tror ikke jeg helt har lykkes med dette enda, bl.a. fordi mange av eksemplene mine er for kompliserte.  Jeg vil derfor fortsette å fokusere på enkle signalstyringer med Arduno.  Selv om de i utgangspunktet er enkle - er jeg redd for at jeg også her har gjort det litt for komplisert med bl.a. PWM modulering av lysstyrken.  Målet mitt er derfor at det skal være mulig å bruke denne styringen - uten å måtte forstå programmene i detalj.

Status nå er at jeg har utvidet testbordet mitt - for å kunne teste med to stk. 3 lys-signaler :


Bildet viser hvordan jeg har laget et 5-lys testsignal til høyre.  For øyeblikket tester jeg ut 2 stk. 3 lys signaler ved at den grønne lampen på forsignalet er stand-in for det ene manglende grønne lyset i Skala Design signalet. (Beklager litt for dårlig oppløsning på bildet, men koplingende tilsvarer røde, grønne og svarte ledninger på skjemaet i forrige innlegg) (Og når det gjelder det blå kretskortet i midten - er dette enda ikke tatt i bruk)

Status på Arduino programmet er at jeg nå kan simulere  2 stk. 3 lys signaler (f.eks. innkjør i hver ende av en stasjon)  I dag bytter signalbidet mellom rødt - en grønn - og to grønne i takt - så dette programmet er kun egnet for testing.  Full funksjonalitet med støtte for diverse sensorer og kontrollpanel er ferdig programmert selv om det gjenstår en del feilretting før det fungerer, men her ligger ihvertfall den begrensede testversjonen :
http://programmingtrack.no-ip.org/sw/arduino/Controller02080002.zip" rel="nofollow - http://programmingtrack.no-ip.org/sw/arduino/Controller02080002.zip



Posted By: programmeringssporet
Date Posted: 10 april 2015 at 20:46
Tospors stasjon med innkjørsignal i begge retninger

Nå ser det ut som om Arduino signalstyringen begynner å fungere bra.  Jeg har nå installert innkjørsignaler på en liten stasjon :

Siste versjon av programvaren ligger her:
http://programmingtrack.no-ip.org/sw/arduino/Controller02080003.zip" rel="nofollow - http://programmingtrack.no-ip.org/sw/arduino/Controller02080003.zip

Sporsensorene kobles som i diagrammet litt lenger oppe til  : 4,7,8 og 12
Bryter fra sporskiftene kobles til A4 og A5 - skal lede når de er rett frem. (inn i spor 1)
Betjeningsbryter for å sette grønt lys koples til A0 for Signal 1, og A3 for Signal 2 (Den siste mangler i diagrammet). Bryter skal lede for å gi grønt lys.

Signal 1 gir to grønne : Hvis bryter er på, Pens 1 står i rett frem, og det ikke er belegg i 1 og 3.
Signal 1 gir et grønt når bryter er på, Pens 1 står i avvik, og det ikke er belegg i 1 og 4.
I alle andre tilfeller lyser Signal 1 med Rødt.

Signal 2 - fungere på samme måte.




Posted By: programmeringssporet
Date Posted: 18 april 2015 at 22:36
EL14 og Målevogn

Målevogn.

En åpen toakslet målevogn har to ulemper:  Lang akselavstand gir dårlig strømopptak, og vognen er for kort til å ha plass til elektronikken jeg har tenkt å bruke.  Jeg har derfor tatt ibruk en annen vogn til dette.  Her er et bilde av den modifiserte vognen med måleelektronikk prøvemontert :



EL14

De fleste 6 sylindrede diesel Lok fra DDR har samme hjulavstand i bogien som EL14.  Utfordringen er at julene er litt for små.  Jeg har derfor testet tre forskjellige hjulsett i bogien.



Fra venstre :  NMJ EL13, Heljan Di3, Piko originaljul.  Som man vel kan se av bildet, blir det ikke plass til EL13 hjulene - fordi de boggieinnfestingen kommer i veien på midterste hjulsett.  Forskjellen i størrelse melliom originaljul og Heljan Di3 er så liten at jeg velger å kjøre videre på originalhjulene.

Neste utfordring er å sette sammen understellsdelene.  Piko understellet er ca 1,8 mm smalere enn Lima understellet.  To små messingbiter på 0,8 mm løser dette på en grei måte.  For å ha mulighet til å gjøre justeringer på understellet - hvis det blir feil,  har jeg valgt å lodde det sammen.  Jeg har først borret to 0,8 mm hull gjennom messingen og rammen.  Deretter har jeg utvidet hullet i messingen til 5 mm, satt en liten motstandsavklippingstråd gjennom hullet, og fylt igjen med tinn.  Da ble det seende slik ut (De to innerste hullene i messingen er for festetaggene i karosseriet) :


Og etter sliping :


Deretter prøvekjøring av målevognen og EL14 (uten motor) :


Neste jobb er kontrollmåling av hjulavstander - og testing med buffere.











 


Posted By: programmeringssporet
Date Posted: 22 april 2015 at 23:14
El14 Lima, Piko understell og original








Posted By: programmeringssporet
Date Posted: 30 april 2015 at 14:09
Erfaringer med Arduino siste måned

Den nyeste versjon av programvaren, kan brukes enten til å styre to innkjørsignaler (4 Leds), eller en hel mast med 3 led og 2 led for forsignal.  Utfordringen nå er å kople flere Arduinoer sammen, slik at de kan styre en hel stasjon og/eller strekning.  I tillegg ønsker jeg å kunne styre signalene fra PC.  Jeg har derfor laget et nytt testoppsett med to Arduinoer som kan kommunisere via en serieport / RS-232. 

På dette området er det litt forskjeller på de forskjellige Arduino kortene.  Arduino UNO har en serieport (pin 0 og 1) som også benyttes for USB kommunikasjonen.  Arduino Leonardo har en annen prosessor hvor USB kommunikasjonen er innebygget i prosessor og benytter andre pinner – slik at USB og Seriekommunikasjon er uavhengig av hverandre – og derfor kan benyttes samtidig.  Ulempen med Arduino Leonardo er at ikke prosessoren er pluggbar.  Under utvikling av den siste versjonen gikk jeg tom for minne (2KB).
 
Jeg tror hovedgrunnen til at det er raskere å utvikle for Arduino i forhold til tradisjonelle mikrokontrollere er at man kan skrive statusmeldinger (debug) til serieporten/USB med kommandoer som  Serial.println (”Dette er en testmelding fra kontrollrutine nr 3”);.  Ulempen er at hver meldingstekst både ligger i flash minne og i RAM, og når det er tomt for RAM crasher Arduinoen uten å gi noen fornuftig feilmelding.  Det jeg opplevde var at plutselig var min Arduino Leonardo ukontrolerbar, og at den ikke lenger gjennkjennes som et USB device av PC’en.  Første gangen klarte jeg å resette den, men nå er den ikke lenger mulig å kommunisere med.  Da var det tilbake til Arduino UNO.  Jeg endret alle meldinger til å gå rett fra flash v.h.a. F funksjonen : (Serial.println (f(”testmelding”));  Dette reduserte minneforbruket fra 2KB til 500 Byte.

Leonardoen skal være mulig å redde ved å programmere inn Arduino Bootloader på nytt – det skal jeg prøve en dag.  Foreløpig har jeg benyttet en Chipkit UNO 32 istedenfor.  Denne er koplet til PC via USB, og serieporten (tx) er koplet til tx på en annen Arduino UNO uten prosessor. 



Dette  betyr at alle meldingene jeg skriver til Serieporten på Chipkit går til TX på UNO en, som er koplet sammen med USB transmit – slik at jeg kan lese meldingene på USB porten på PC’en.  Jeg har nå et testoppsett hvor jeg benytter JMRI til å sende Events til Chipkit prosessoren via USB som kan svare tilbake via USB, og sende debug til meg via UNO’en :



På bildet ser dere hvordan jeg tester.  Øverst til venstre er Arduino terminalvindu hvor meldingene kommer: SOFEON9900002711 (99 er off, 98 er on, 2711 er hexadesimal  for 10001).  Vindu øverst til høyre er kommunikasjonsmeldingene i JMRI, og nederst er ”turnout” tabellen i JMRI hvor jeg definerer turnouts og kan sende testmeldinger fra.  Det ser ut som om at man i JMRI må definere alle utgående meldinger som ”turnouts”.  Jeg har da valgt at turnout 10001 og 10002 er å styre innkjør fra vest og øst. Det er ok, da jeg aldri får over 10000 penser på anlegget mitt.  Og jeg kan definere opp til 64000 virtuelle penser i JMRI.
Nå som jeg ser at meldingene kommer frem riktig til Arduinoen – er det bare å bygge funksjonaliteten for å styre etter meldingene fra JMRI  -  eller annen programvare på PC’en/Raspberryen.  Tilsvarende meldinger skal jeg benytte mellom de forkjellige Arduinoene.



Posted By: Svein_H
Date Posted: 02 mai 2015 at 17:13
Litt usikker på hva du skriver her nå. Mener du at man trenger flere Arduinoer for å styre signalene på en enkel stasjon med kun 2 gjennomgående spor? Er kapasiteten så begrenset..?


-------------
H0, norsk på 50-tallet en gang
http://www.hjemstad.no" rel="nofollow - Min hjemmeside


Posted By: programmeringssporet
Date Posted: 05 mai 2015 at 00:33
Originally posted by Svein_A Svein_A wrote:

Litt usikker på hva du skriver her nå. Mener du at man trenger flere Arduinoer for å styre signalene på en enkel stasjon med kun 2 gjennomgående spor? Er kapasiteten så begrenset..?


Veldig godt spørsmål, som det er vanskelig å svare med et Ja eller Nei.  Svaret avhenger av hvordan Signalene drives: 

  1. De kan koples til en vanlig digitalutgang, enten med digital driving eller programvaredrevet pulsmodulering (SW PWM).  Da vil en standard Aurduino UNO kunne styre 14 (+6) LED-Lys.  For å få til myk blinking må det da lages ekstern blinkelektronikk (kan være basert på (den samme) Arduino).  Ulempen er at Signalmastene må modifiseres, og at det blir vanskelig å få til myk endring av signalbilde.  SES hadde et innlegg om dette på forumet for en stund siden. (uten Arduino)
  2. De kan koples til en PWM utgang (HW PWM) .  Da har Arduino UNO 6 utganger. (Leonardo 7)
  3. Arduinoen har en I2C (Inter-Integrated Circuit) som kan koples til en eller flere PWM LED drivere f.eks. PCA9685.  Hver av disse kan koples til 16 LED. Teoretisk maksimum for en Arduino UNO er 992 Utganger med 62 stk. PCA9685.  SM-bussen som sitter internt i  alle PC’er for styring av bl.a. temperatur er basert på I2C – PCA9685 kan derfor også koples rett til PC eller Rapberry Pi – slik at man ikke trenger noen Arduino i det hele tatt for å styre signalene.  En annen fordel med PCA9685 er at den har 1024 step (10-bit) – Arduino har 256 step (8-bit).

Dagens versjon av min programvare støtter alternativ 1 (med hard blinking)  og alt. 2, men jeg bruker kun alternativ 2.  Alternativ 3  skal også implementeres snart.

 

Jeg jobber med et regneark som viser oversikt over de forskjellige Arduinokortene – og alternativene). Kolonne N: (I/O) viser hvor mange Digitautganger kortet har,  Kolonne N (PWM) viser hvor mange HW PWM utganger kortet har. Kolonne B og C) viser prisestimater hvor B ofte er basert på noe egenlodding av kort.



Hva er da det reelle behovet for en stasjon ? Et godt eksempel er f.eks. Ødsle i denne tråden :

http://forum.mjf.no/forum_posts.asp?TID=9025&KW=&PID=17062266&title=stillverk-med-nsbforbilde#17062266" rel="nofollow - http://forum.mjf.no/forum_posts.asp?TID=9025&KW=&PID=17062266&title=stillverk-med-nsbforbilde#17062266

En rask opptelling gir omtrent disse tallene:

 

Signal

24

belegg/sporskiftepos

21

Total output / PWM

45

Input

15

Total input og output

60

 

Andre funksjoner som kan være aktuelle på en stasjon å styre med Arduino :

  • -        Lyd/Høytaleropprop.
  • -        Sporveksler styring / kontroll (Servo?)
  • -        Lys i stasjonshus og lokstall
  • -        Simulering av TV og sveising.
  • -        Lokstall dører.
  • -        Vannstender.

Jeg har koblet relativt mye ledinger på MJ anlegg opp gjennom årene.  Det eneste jeg liker mindre, er å feilsøke ledningskaoset noen år senere.  Det viktigste prinsippet mitt er derfor færrest mulig ledninger, og enda viktigere: Færrest mulig ledninger mellom moduler / seksjoner.  Min løsning på dette er kretskort med distribuert logikk og buss komunikasjon (CAN, USB, Ethernet, RS232, I2C)  Oftest er det også rimeligere med en ekstra arduino (fra. Kr 50) hvis man sparer noen ledninger og plugger.  Her er et eksempel på en enkel moduloppbygget stasjon (Skal det være forsignal på utkjørsignalene i spor 1 ? spor 2?) :


Det er klart at denne stasjonen kunne vært styrt av en Arduino med f.eks. to PWM Shields, men jeg tror det er bedre å distribuere det f.eks. med 4 Leonardoer :



Eller en Arduino Leonardo og to  PCA9685 (I2C bussen < 50 cm lang) :


Eller en Arduino Mega og en PCA9685 :


Eller kanskje den måten jeg ville gjort det på (Under, Fra venstre Arduino Trinket (kr 80), Arduino UNO (kr 170), PCA9685 (kr 110), Arduino Leonardo (kr 160), Arduino UNO (kr 170) og Arduino Trinket (kr 80).


Dette blir til sammen ca kr :  770.  Litt for dyrt ? men ved å lodde litt selv (1 – 2 timer ?) :
Kr 15 + 20 + 20 + 160 + 20 + 15 – Jeg velger å behold Leonardoen fordi jeg trenger USB porten, men kan nok også eliminere denne ved å bruke en prosessor fra Chipkit DP32 (kr 25) og en ekstra UNO prosessor (eller PCA9685) (kr 20) .  Så minimumsprisen blir da ca.  Kr 135.- (+ kr 100 i ledninger, kretskort/veroboard, kondensatorer, krystaller og motstander ?) -   Dette alternativet kommer jeg mere tilbake til senere.

Håper det ble litt klarere nå !





Posted By: einjen
Date Posted: 12 mai 2015 at 12:50
Hei.

Vet du om det finnes noe "selvbygg" av håndkontrollere? Som kan brukes sammen med sprog3? 
Ev sammen med andre sentraler?


-------------
--

Einar Næss Jensen

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

http://einarblog.homemade.no/einarblog" rel="nofollow - http://einarblog.homemade.no/einarblog


Posted By: glennefj
Date Posted: 12 mai 2015 at 18:48
Så et eksempel fra " http://www.utrainia.com/44-driving-many-outputs-with-arduino-c/mri" rel="nofollow - utrainia.com " som var interessant. Han brukte 74HC595 (shift register) for å få flere LED vha. Arduino C/MRI. 

Litt interessant for et slikt eksempel, da det er snakk om en kostnad på $1.50 pr. chip.

Nå har jeg ikke rukket å lese gjennom alt du har prøvd ut ennå, og hva du ønsker å gå vekk i fra, men jeg syns denne var interessant. Ikke bare nødvendigvis via Arduino C/MRI, men kanskje RPi.

Syns det er interessant med slike løsninger, da man relativt enkelt kan lage store grener med I/O for en relativt billig penge sammenlignet med ferdige kort.


Posted By: programmeringssporet
Date Posted: 12 mai 2015 at 20:58
Hei,

74HC595 er sikker helt ok.

Jeg har brukt MCP23008 som er en adresserbar (I2c) Input og Output expander som kan brukes både med Raspberry Pi og Arduino (Har også prøvd den fra annen plattform hvor det ikke fantes noe bibliotek - helt grei å aksessere direkte på I2C bussen) :

8 I/O for 12 kroner:

http://www.digikey.no/product-detail/en/MCP23008-E%2FSO/MCP23008-E%2FSO-ND/735952" rel="nofollow - http://www.digikey.no/product-detail/en/MCP23008-E%2FSO/MCP23008-E%2FSO-ND/735952

Arduino :

http://github.com/adafruit/Adafruit-MCP23008-library" rel="nofollow - https://github.com/adafruit/Adafruit-MCP23008-library

16 I/O for 14 kroner:

http://www.digikey.no/product-detail/en/MCP23017-E%2FSP/MCP23017-E%2FSP-ND/894272" rel="nofollow - http://www.digikey.no/product-detail/en/MCP23017-E%2FSP/MCP23017-E%2FSP-ND/894272

Arduino :

http://github.com/adafruit/Adafruit-MCP23017-Arduino-Library" rel="nofollow - https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library

Raspberry:

http://learn.adafruit.com/mcp230xx-gpio-expander-on-the-raspberry-pi/overview" rel="nofollow - https://learn.adafruit.com/mcp230xx-gpio-expander-on-the-raspberry-pi/overview

Python :

http://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/tree/master/Adafruit_MCP230xx" rel="nofollow - https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/tree/master/Adafruit_MCP230xx


Posted By: glennefj
Date Posted: 12 mai 2015 at 21:16
Kult! Utrolig hvor mye man kan få til med veroboard og relativt enkle kretser. 

Flott at du lager eksempler for "vanlige" mennesker. 
Kanskje du på sikt hadde kunne laget enda enklere eksempler. En tutorial over 10 guider hvor man går fra ét lys til en full stasjon. Jeg syns det er noe vanskelig å henge med på de større oppsettene, spesielt når man raskt må tenke på utvidelse. 

Det er kanskje bare meg, jeg er helt noob når det gjelder lyssignalene, hvor mange, plassering, type tegn etc, så det blir ekstra mye å henge med på når det begynner å bli mange Arduino som jobber sammen. Jeg tenker at det beste hadde vært å starte med ét kort, som så kan kobles opp mot en chip som utvider I/O, uten å utvide med flere kort.

For min del tenker jeg en sirkel/oval bane med én stasjon og ett tog. Etterhvert to tog som reagerer på sensorer, og oppdaterer lys tilsvarende, så man har et lite utgangspunkt man utvider, f.eks. to stasjoner, togstall etc. 

Bare kjappe ideer fra min side. Jeg ville satt veldig stor pris på det iallefall :)


Posted By: programmeringssporet
Date Posted: 12 mai 2015 at 21:23
Originally posted by einjen einjen wrote:

Hei.

Vet du om det finnes noe "selvbygg" av håndkontrollere? Som kan brukes sammen med sprog3? 
Ev sammen med andre sentraler?


Det er vel laget noe basert på SRPC  ? ellers er jo også det et spennende prosjekt : En Arduino, MBED eller Edison basert kontroller, med wi-fi kopling mot JMRI ?

De som har laget SPROG, har også videreutviklet denne til et komplett  styringssystem med DCC sentral, booster, håndkontroll, tilbehørstyring og tilbakemelding basert på CAN-Bus.  Mere info på:

http://www.merg.org.uk/merg_resources/cbus.php" rel="nofollow - http://www.merg.org.uk/merg_resources/cbus.php

Her kan du laste ned skjema,   Byggesett selges til medlemmer - koster ca. kr 250 i medlemskap pr. år.


Posted By: programmeringssporet
Date Posted: 18 mai 2015 at 22:21
Originally posted by glennefj glennefj wrote:

Kult! Utrolig hvor mye man kan få til med veroboard og relativt enkle kretser. 

Flott at du lager eksempler for "vanlige" mennesker. 
Kanskje du på sikt hadde kunne laget enda enklere eksempler. En tutorial over 10 guider hvor man går fra ét lys til en full stasjon. Jeg syns det er noe vanskelig å henge med på de større oppsettene, spesielt når man raskt må tenke på utvidelse. 

Det er kanskje bare meg, jeg er helt noob når det gjelder lyssignalene, hvor mange, plassering, type tegn etc, så det blir ekstra mye å henge med på når det begynner å bli mange Arduino som jobber sammen. Jeg tenker at det beste hadde vært å starte med ét kort, som så kan kobles opp mot en chip som utvider I/O, uten å utvide med flere kort.

For min del tenker jeg en sirkel/oval bane med én stasjon og ett tog. Etterhvert to tog som reagerer på sensorer, og oppdaterer lys tilsvarende, så man har et lite utgangspunkt man utvider, f.eks. to stasjoner, togstall etc. 

Bare kjappe ideer fra min side. Jeg ville satt veldig stor pris på det iallefall :)


Hei,

Hvis du ser på innlegg nr 7 : Tospors stasjon med innkjørsignal i begge retninger
på denne siden - er dette det enkleste eksempelet jeg har laget.  Start med en Arduino UNO og to tre eller to-lys sygnaler, og evt noen brytere - og du er igang.   Jeg anbefaler signalene fra Skala Design ( http://www.sidespor.no/index.php?route=product/category&path=66_67" rel="nofollow - http://www.sidespor.no/index.php?route=product/category&path=66_67) alternativt kan du jo også teste med vanlige lysdioder (med 1k motstand fra 5v, til anode [lange benet] og katoden [korte benet] koplet til den riktige inngangen på Arduinoen)


Posted By: programmeringssporet
Date Posted: 18 mai 2015 at 22:37
Liten stasjon i enden av et sidebane.

Jeg har en liten enkeltsporet sidebane som ender i en liten to-spors stasjon.  Banen betjenes av http://forsk.njk.no/mdb/mdb.php?allefoto=1&hid=165&jernb=&art=&aut=&eng=" rel="nofollow - Bmdeo 10 og i fremtiden også http://forsk.njk.no/mdb/mdb.php?allefoto=1&jernb=&art=&type=77&aut=&eng=" rel="nofollow - Bmdeo 9 (Når Brawa kan levere).  For denne stasjonen skal jeg ha innkjørsignal med forsignal, og to- og trelys utkjørsignaler.  For å teste og utvikle styringen ser testoppsettet mitt slik ut :

Chipkit UNO32 kortet til venstre, kontrollerer utkjørsignaler, og  kommuniserer med PC / JMRI via USB og via serieporten (pin 39,40) med Leonardoen (til Høyre) som skal styre innkjør og innkjør forsignal).  Foreløpig benytter jeg en Leonardo her, (fordi den har separat debug på USB), men regner med å benytte en Leonardo (istedenfor UNO32) og en UNO (istedenfor Leonardoen) når programvaren er ferdig.



Posted By: programmeringssporet
Date Posted: 24 mai 2015 at 01:30
Melodi Grand Prix versjonen er ferdig.

Denne støtter oppsettet i forrige innlegg med en UNO32 for utkjørsignaler (Signal 11 og 12). og en Leonardo for innkjør med forsignal (Signal 21) og utkjør forsignal (Signal 22) på den samme masten.  Denne versjonen mangler fortsatt logikk - slik at signalene må styres fra f.eks. JMRI.  Alle signaler skal sendes via USB til UNO 32.  Kommandoene er  (starter med kolon slutter med semikolon):

 // :S0FE0NF0000100030B0000; Signal 11 status 0
 // :S0FE0NF0000100030B0100; Signal 11 status 1
 // :S0FE0NF0000100030B0200; Signal 11 status 2
 // :S0FE0NF0000100030B0300; Signal 11 status 3
 // :S0FE0NF0000100030C0000; Signal 12 status 0
 // :S0FE0NF0000100030C0100; Signal 12 status 1
 // :S0FE0NF0000100030C0200; Signal 12 status 2
 // :S0FE0NF000010003150000; Signal 21 status 0
 // :S0FE0NF000010003150100; Signal 21 status 1
 // :S0FE0NF000010003150200; Signal 21 status 2
 // :S0FE0NF000010003150300; Signal 21 status 3
 // :S0FE0NF000010003160000; Signal 22 status 0
 // :S0FE0NF000010003160100; Signal 22 status 1
 // :S0FE0NF000010003160200; Signal 22 status 2
 // :S0FE0NF000010003160300; Signal 22 status 3

Status 0 - er slukket signal
Status 1 - er Rødt
Status 2 - er et grønt
Status 3 - er to grønne

http://programmingtrack.no-ip.org/sw/arduino/Controller02080102.zip" rel="nofollow - http://programmingtrack.no-ip.org/sw/arduino/Controller02080102.zip

Denne versjonen skal installeres både på UNO32 og Leonardo kortet.  Hvis de er sammenkoplet når de starter opp samtidig - vil de kommunisere.  Hvis ikke vil de oppføre seg som to separate kontrollere (to innkjør pr. kort)  Programkoden oppfører seg forskjellig avhengig av hvilket kort de kjører på.

I neste versjon skal UNO32 kortet styre logikken - deretter planlegger jeg å også støtte UNO for innkjørsignalet.  (Dagens versjon feiler med kompilering mot UNO)



Posted By: programmeringssporet
Date Posted: 29 mai 2015 at 21:43
Arduino Pro Micro

I målevognen er det nå installert en http://www.sparkfun.com/products/12640" rel="nofollow - Arduino Pro Micro33mm x 18 mm x 6mm) , og de 4 blå releene.  Arduino Pro Micro ser ut til å være den minste Arduinoen med USB.  Jeg tror jeg skal lage et hull i endeveggen for å kunne koble til USB kontakten ?



Arduino Pro Micro er også et alternativ som signalstyring.  Den er stort sett identisk med en Arduino Leonardo, men har kun 5 PWM utganger (Leonardo 7).  Programvaren er egentlig ferdig, kun testing og feilretting gjennstår, før den kan flyttes over til UNO og Leonardo (pro-micro)


Posted By: jarleek
Date Posted: 29 mai 2015 at 23:32
Hvorfor ikke bruke en vogn med bevegelige dører?

-------------
Jarle VE
Fersking i TMJK


Posted By: programmeringssporet
Date Posted: 08 juni 2015 at 22:28
Originally posted by jarleek jarleek wrote:

Hvorfor ikke bruke en vogn med bevegelige dører?


1. prioritet er en vogn med godt strømopptak.  Da tror jeg en 4 akslet vogn med korte boggier er best egnet.  Det er vel stort sett kun Fleischmann som har vogner med bevegelige dører, men jeg har ikke funnet noen med aksler i kort boggie.  vet du om noen ?


Posted By: programmeringssporet
Date Posted: 10 juni 2015 at 15:49
Originally posted by jarleek jarleek wrote:

Hvorfor ikke bruke en vogn med bevegelige dører?


Nå har jeg målt litt.  En Arduino Pro Micro er for lang til å stå på tvers.  Jeg har derfor kommet til at det enkleste er å sette på noen Arduino 6 Pins avstandsstykker slik at kortet kommer over taket.  Dette er en grei løsning mens jeg utvikler programkoden til Arduinoen.  Etterpå har jeg ikke behov for  USB ledningen.  Det er jo litt upraktisk å kjøre rundt med en PC på slep !




Posted By: programmeringssporet
Date Posted: 13 juni 2015 at 22:56
EL14 - har fått Piko motor :


Det viste seg at det var nødvendig å fjerne enda mere av rammen, for å få plass til svingjulene.  Det som gjenstår nå, er å slipe litt av loddingene på siden, fylle noen tomrom i skjøtene av rammen med epoxy, og korte ned koplinksleddet mellom bogiene og svinghjulene.  Deretter kommer elektronikken,  men først skal det prøvekjøres.

Hvis jeg blir fornøyd med prøvekjøringen - skal jeg regne på om hva det koster å bestille reservedeler for å bygge om de andre EL 14 lokkene,  eller om det er like greit å bestille komplette lok, nye eller brukte.





Posted By: programmeringssporet
Date Posted: 29 juni 2015 at 23:39
Bluetooth kommunikasjon til målevognen

For å teste ut Bluetooth styring av målevognen, har jeg laget et lite testoppsett.  Dette består av (fra toppen av bildet) en http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/bluetooth-transceiver-p87942" rel="nofollow - HC-06 Bluetooth modul ,  Et http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/protoshield-p87944" rel="nofollow - eksperimentkort for Arduino ,  og en http://www.digilentinc.com/Data/Products/CHIPKIT-UNO32/chipKIT-Uno32-RevC_rm.pdf" rel="nofollow - Chipkit UNO32 , Arduinokort.   Jeg valgte å bruke UNO32, fordi denne går på 3.3 Volt, som er den samme spenningen som HC-06 benytter.  Det blir derfor kun 4 ledninger mellom Chipkit kortet og Bluetoothmodulen :

Rød - 3.3 Volt forsyningsspenning.
Blå   - Jord (0- volt)
Orange - Transmitt fra pin 40 på UNO32 (Serial1 out), til Receive på HC-06
Gul  - Receive på pin 39 på UNO32 fra transmitt på HC-06

To små ting å være klar over med dette oppsettet, da prototypingkortet ikke er laget for UNO32 :
  1. Må bruke pinnen merket 3V istedenfor power (som er 5 Volt) på prototypingkortet.
  2. Pin 39 og 40 er ikke tilgjengelig på prototypingkortet - det er derfor nødvendig med et http://www.kjell.com/sortiment/el/elektronik/mikrokontroller/arduino/stackningsbar-stiftlist-p87899" rel="nofollow - ekstra sett lange Arduino pinner for å få avstand til prototypingkortet, slik at pinne 39 og 40 kan koples direkte til UNO32 under prototypingkortet.



Testoppsett

Neste skritt er programvare - deretter erstatte UNO32 kortet med en Arduino Pro Micro,  enten i 3 Volts versjon, eller sette inn en spenningsfordeler mellom Arduino og HC 06..


Posted By: programmeringssporet
Date Posted: 23 juli 2015 at 23:41
test


Posted By: programmeringssporet
Date Posted: 24 juli 2015 at 00:01
Sluttrapport Programmeringssporet

Da er utviklingen på programmeringssporet stoppet.  Årsaken til dette er flere, men hovedgrunnen er at hver gang jeg ønsker å teste nye løsninger i programvare eller maskinvare, må jeg stoppe en stor del av trafikken på  anlegget mitt.  Som en oppsummering har jeg laget denne listen

  1. På DCC, to-skinneanlegg er det to vanlige metoder for blokkdeteksjon :  ”Current Transformer block detector” eller Diode-drop,  hvor en eller flere dider er koplet i serie med strømforsyningen til blokken.  Spenningsfallet over dioden (normalt 0,7 Volt) benyttes til å detektere strømforbruk.  Jeg har benyttet en Løsning jeg fant i en bok av Rutger Friberg ( http://www.hobby.se/index.php?action=m3&id=1&huvudID=1&temav=links&temac=links_train_rutger&temah=normal&fotID=1&stilmall=stilmall-A.php" rel="nofollow - http://www.hobby.se/index.php?action=m3&id=1&huvudID=1&temav=links&temac=links_train_rutger&temah=normal&fotID=1&stilmall=stilmall-A.php ) for mange år siden.  Noen andre autoriteter på DCC mener at diode-drop metoden fører til et dårlig DCC signal (som delvis kan reduseres med spesielle dioder) , og derfor unøyaktig kontroll på togene.  Dette kan være en utfordring med Automatisk styring.  Jeg har ikke konkludert enda, om dette er et problem hos meg
  2. Kabeldragningen av DCC signalet er litt tilfeldig på mudulen min.  Jeg vet ikke om dette påvirker anlegget mitt.
  3. Togdeteksjon med diode-drop og Arduino fungerer bra, belegg blir rapportert til PC / JMRI i løpet av 1/10 dels sekund.  Dette bør være ok.
  4. Avstandsmåling med Ultralyd ser ut til å være en nyttig funksjon, men jeg må lage bedre rutiner for å fjerne støymålinger.
  5. Lesing av alle CV’er fra lyddekodere feiler ofte når det er hundrevis av verdier å lese.  Ofte feiler det fordi lok’et flytter seg i løpet av utlesingen.
  6. Programmeringssporet er plassert som et sidespor på en liten stasjon på hovedlinjen fra den største sekkestasjonen på anlegget mitt.  Den konvensjonelle meningen på nettet ser ut til å være at et programmeringsspor bør plaseres sentralt på anlegget, for å raskt kunne kjøre et lok inn på sporet, for å endre CV’er.  Det er nok et  godt utgangspunkt, men utfordringen min er at jeg også benytter programmeringssporet for prøvekjøring – og da har dette blitt en utfordring for meg, fordi jeg ønsker å kunne teste lok og CV verdier uten å forstyrre trafikken på anlegget.
  7. Programmeringssporet er plassert på en stasjon som også benyttes til å skifte sammen godsvognslerker som kommer fra en sidebane, og skal videre på hovedbanen i et større tog.  Programmeringssporet benyttes til dette – noe som også begrenser hvor lenge jeg kan ha lok stående der uten å forstyrre trafikken.
  8. Nye lok bør innkjøres.  Produsentene anbefaler ofte 15 – 20 minutter, først i en retning, og etterpå i den andre.  Dette forutsetter en rundbane.  Dette har jeg mulighet for ut fra programmeringssporet, men igjen forstyrrer dette trafikken – fordi deler av runnbanen er hovedlinjen.
  9. Jeg har ofte ønsket å teste/innkjøre lok før DCC dekoder installeres.  Ved innkobling av likestrømskontroller, blir viktige deler av hovedlinjen utilgjengelig for andre tog, slik at denne muligheten sjelden benyttes.
  10. Anlegget er plassert på et loft.  Mye av uviklingen av programvare og elektronikk ønsker jeg å gjøre et annet sted.  Modulen er for stor og tung til at jeg lett kan flytte den (bære den ned en trapp alene), og det er for mye arbeid å fjerne tog fra modulen, og koble fra FREMO grensesnittet.

 

Programmeringssporet 2.0 skal benyttes til videre utvikling.

Første versjon av kravspesifikasjonen for denne er :

  1. Modulen skal være lett, og liten, slik at den kan flyttes enkelt. Mål: vekt under 5 Kilo.
  2. Skal ha mulighet for enkel prøvekjøring, uten å benytte hovedspor.
  3. Skal ha rundbane på modulen.
  4. Skal ha Fremo grensesnitt i en ende, men vil ellers ikke følge normen (bl.a. fordi jeg må ha krappe svinger).  Skal også kunne fungere som en snumodul.
  5. Ca. 150 cm lang.
  6. Skal ha Minimal bredde, men må kunne ha en sirkel (Roco R2, eller Trix R1 – ca. 36 cm radie). Sidespor kan benytte Roco R1, men alle lok må kunne benytte modulen/programmeringssporet uten å kjøre inn på R!)
  7. Skal inneholde en Inglenook  ( https://en.wikipedia.org/wiki/Inglenook_Sidings" rel="nofollow - https://en.wikipedia.org/wiki/Inglenook_Sidings ) – som  skal kunne brukes uten å påvirke trafikk på hovedlinjen.
  8. Skal være mulig å kjøre tog automatisk, både Digitale og Analoge lok samtidig, ved hjelp av tradisjonell blokkstyring.
  9. Skal være mulighet for stalling av minimum 5 lok på sidespor,  både digitale og analoge.
  10. Hele modulen skal være styrt i realtime ved hjelp av Arduinoer hvor responstider er konstante.(ingen PC’er / Raspberry Pi hvor responstider er variable).
  11. Kun en strømforsyning til modulen (sansynligvis 12 eller 15 eller 19 volt likestrøm)
  12. Ethernet og/eller Can-Bus for kommunikasjon mot andre moduler / PC.
  13. DCC kablingen skal optimaliseres – og unngå bruk av diode-drop detektor, kun ”current Transformer block detector” og IR (Infrarød deteksjon)

 

 

Her er første skissen av en mulig løsning, hvor sporene går i to høyder.  Togene kommer inn over Fremo grenssnittet.  Etter ”stasjonen” kjører de en etasje ned i modulkassen.


 

Denne skal testes med Trix skinner.

 

 





Posted By: programmeringssporet
Date Posted: 03 august 2015 at 20:19
En enkel testmodul.

Skissen for programmeringssporet II har minst tre utfordringer :
  1. Spor over to etasjer med for stor stigning mellom etasjene.
  2. Den er for stor.  
  3. Den er for kompleks, og tar for lang tid å lage.
Jeg planlegger derfor en mindre testmodul :
Jeg har gjort noen tester på å flytte store moduler.  Jeg ønsker en lett flyttbar modul, og da er maksimum bredde 60 centimeter jeg kan få gjennom en dør uten å vinkle modulen.  Lengden begrenset til ca 145 cm.  En slik modul blir lett flyttbar av meg alene.
For å teste konseptet har jeg laget en aluminiumsramme av 2x2 cm firkantprofiler. Rammen er fylt med en 2 cm støyisolasjonsplate, og over ligger det en 3 mm  Kapa-plate.  Dette fungerer ok for uttesting, men jeg må nok lage en mere stabil trase for skinnene, men vekten på ca 2 kilo så langt for hele modulen med skinner – er et godt utgangspunkt for en lett flyttbar modul.  Jeg har brukt Anyrail for å lage en skinneplan, som nå skal testes med skinner jeg har liggende :

Utfordringen med denne er først og fremst at den benytter Radie 25 cm.  For å innkjøre og test lok og motorvogner som ikke klarer Radie 25 cm, kan disse pendelkjøres på det gule sporet, som er laget med Trix skinner 36cm radie og større.  For mindre lok, 2 - 3 akslede ? kan den røde sløyfen benyttes.  Det er også mulig å snu loket via det blå, grønne og brune sporet.  Disse sporene er basert på Roco's gamle 2.5 mm (kode 100) skinner - som fikk ut av produksjon for ca 15 år siden.  Pensen ST-240 er en Peco Setrack 100.  Sidesporet benytter Peko Streamline 100.

Modulen vil gjøre det mulig å innkjøre / varme opp et lok, på rundbanen, eller pendle på gult spor samtidig som Inglenook sidesporet kan benyttes.

Elektrisk tenker jeg at det skal være mulig å kjøre hele modulen med DCC eller Analog Likestrøm,  Alternativt kan modulen skilles i to, ved hjelp av et rele.  Da blir ytre spor (gult og rødt) en strømkrets, og Inglenookæen (grønne) en annen.  Det skal være mulig å velge DCC eller Analog uavhengig for disse to.  Lilla og brunt spor, skal være strømløse i dette tilfellet.

Neste fase er å test ut hvilket materiell som kan kjøre på 25 cm radie.  Hvis det fungerer for små lok, og korte godsvogner - kommer jeg nok til å bygge modulen.

For innkjøring av større lok og motorvogner tenker jeg på å lage en utvidelsesmodul (totalstørrense 145 x 80):


Eller hvis jeg vil benytte modulen, som en snumodul (total 200 x 80):







Posted By: programmeringssporet
Date Posted: 04 august 2015 at 17:07
Da har jeg laget et enkelt testspor for å teste noen lok og vogner på 25 cm radie:



Det fungerte overraskende bra :

3 akslet :
Roco Di5, ok
Liliput, NSB type 25, ok

Damp 3 drivaksler og løpeaksler :
1-3-0 Trix KPEV T12, ok
1.3.1 FleishmannDB BR 64

Fireakslede Diesel / Elektro

DB BR 218,  Roco, OK
DB BR 218, Piko, OK
DB BR 111, Roco, OK
NSB EL 11, NMJ, OK
NSB EL 13. Lima OK
NSB EL 13, NMJ,  Nei
NSB EL 16, Roco, ok
SJ RC4, Roco, ok
NSB Di8, NMJ, OK
 
Seksakslede Diesel / Elektro:
NSB Di3, Heljan, ok
NSB Di3, NMJ, OK
NSB Di3, ROCO, nei
NSB EL14, Lima, OK
NSB EL14, med forkortet Piko DR BR 119, OK
DR BR 119, Piko, nei,

Motorvogner :
NSB type 9 og type 10, nei

Vogner :- ukoblet
Korte 2 akslet, f.eks, DB G10, Roco, OK.
ROCO NSB GP4, OK
Heljan NSB GP4, OK
NMJ NSB, His, OK
NMJ, NSB Gbs, nei
NMJ, NSB Rps, Nei
Målevognen, basert på Roco DB Bromberg, 4 akslet, 205 mm. ok
NMJ, B3 - ok

Tog
Jeg har også forsøkt å kjøre små tog med målevognen og en G10. Med Di5, KPEV T12 og Piko BR 218 fungerer det bra med Fleischmann kortkoblinger, men med Liliput NSB type 25 ble det avsporing ved overgangen mellom høyre og venstresving, bakover.
Basert på disse testene tror jeg at modulen vil fungere bra med f.eks. Epoke 1 materiell,  små skiftelok, og for testing og innkjøring av omtrent 75 % av alle lokomotivene mine.  Det eneste vesentlige som ikke fungerer er NMJ el 13, motorvogner, og store 6 akslede el og diesel , samt store damplokomotiver type gammeltysker, stortysker etc.
Lange vogner må også unngås - også p.g.a. overheng mot parallelle spor.   -   Da er det bare å starte byggingen av modulen,





Posted By: programmeringssporet
Date Posted: 07 september 2015 at 02:15
Testmodulen er klar for prøvekjøring.

I dag limte jeg sammen modulen.  Litt usikker på om dette er interessant for andre.  Legger derfor kun ut bilder av modulbyggingen.














Posted By: programmeringssporet
Date Posted: 01 oktober 2015 at 00:54
Testsporet  -  Test 001, måling av Strømforbruk.


Jeg har gjort en enkel test av strømforbruket.  Jeg benytter en Laboratoriestrømforsyning, Velleman PS 3005D (0 - 30 V, 5A), og to lokomotiver Fleishmann DB BR 64 og Roco NSB Di5.  BR64 har en Zimo dekoder innebygget, Di 5 har ikke dekoder.

Forsøket går ut på å måle strømforbruket, og se om jeg kan se forskjell på når loket kjører i krappe kurver.  Ingen av lokene har vært kjørt tidligere.  Jeg stilte strømforsyningen på 5 Volt. På de første rundene med BR 64, målte jeg strømforbruket til ca 105 mA på rettstrekningen og ca 128 mA i R1 kurven (R=25mm).  Etter ca 20 minutter innkjøring målte jeg forbruket til 84 mA på rettstrekningen og 111 mA i kurven.  Jeg vet ikke om årsaken til endringen er innkjøringen eller at motoren er varm – det finner jeg ut neste gang jeg tester.  For Di5 98 mA og 105 (uten innkjøring / oppvarming).

Konklusjonen på forsøket er at det er fullt mulig å se på strømforbruket om loket sliter i kurvene. – Kanskje dette også kan brukes til å måle hvor lang innkjøring nye lok bør ha – Stoppe innkjøringen når strømforbruket blir konstant ?

Neste skritt er å lage et system for å logge strømforbruket.  Her har jeg to alternativer:
  1. Velleman strømforsyningen har RS-232 for tilkopling til PC.  Denne protokollen er relativt godt kjent så det er et reelt alternativ å lage et program for å lese strømforbruket fra  strømforsyningen.
  2. Kople opp en strømmåler til en Arduino og logge derifra.


Posted By: programmeringssporet
Date Posted: 06 oktober 2015 at 00:47
Arduino  - strømmåling


http://www.sparkfun.com/datasheets/BreakoutBoards/0712.pdf" rel="nofollow - Allegro ACS712 kan benyttes til dette.  Dette er en Halleffekt basert strømmåler, slik at Arduinoen kan være elektrisk isolert fra kretsen som måles..  Jeg benytter en 5 Ampere version av ACS712.  Den skal strømforsynes med 5 Volt og sender ut et Analogt signal, 1.5 Volt når det går -5 Ampere gjennom kretsen . 2.5 Volt når det ikke går strøm, og 3.5 Volt når det går 5 A gjennom kretsen.  Ved å kople denne til Arduino Analog 0, kan jeg måle strømforbruket med denne Sketchen :

 

int sensorValue;void setup(){

 Serial.begin(9600);  // sets the serial port to 9600

}

 

void loop(){

sensorValue = analogRead(0);       // read analog input pin 0

Serial.println (sensorValue, DEC);  // prints the value read

delay(100);                        // wait 100ms for next reading

}

 

Her får jeg direkte verdien fra Arduino Analog les.  Denne varierer mellom 0 og 1023 (10  bits oppløsning).  Jeg får derfor verdien 512 for 0 A. (2.5 Volt).  Jeg ser at verdien øker når loket kjører – men det ser ut som om oppløsningen er for liten  til å måle små endringer i strømforbruket, som når loket kjører inn i en skarp kurve.



Posted By: programmeringssporet
Date Posted: 11 oktober 2015 at 22:55
Rundbane med en Raspberry Pi, to Arduinoer,et relekort, et MBED kort, en IR detektor, en strømmåler og 1350 nye programlinjer



Fra venstre : midlertidig batteri 9 Volt, Raspberry Pi 2 model B, Arduino UNO med relekort for styring av kjørestrøm, Arduino Leonardo som er koplet til IR-Sensor, http://developer.mbed.org/platforms/FRDM-KL46Z/" rel="nofollow - MBED FRDM-KL46Z (kr  156 hos Digikey), og strømmåler.

Dette er resultatet etter 1 og en halv måneds bygging.  Jeg kan nå kjøre toget rundt med 5 Volt, og kan stoppe toget hvorsomhelst i sirkelen.  Dette fungerer ved at IR-Sensoren registrerer hver gang toget paserer.  Ut i fra dette regnes hastigheten ut, og derved kan toget automatisk stoppes hvorsomhelst i sirkelen.  Ganske lite funksjonalitet, men grunnlaget er lagt.  Neste skritt er rele for reversering.  Deretter kommer servostyring av sporveksler, og relestyring av strøm for parkering av lok på sidesporene.  En annen ting som står høyt på listen, er en ordentlig strømforsyning.   I dag må modulen forsynes med 5 volt og  9 volt.  Planen er en strømforsyning på 19 Volt (Gammel laptop strømforsyning ?).  Og spenningsstabilisatorer : 78S15, 78S12, 78S09 og flere 78S05 kretser for å justere spenningsforsyningene til 15,12,9, og 5 Volt.  (standardversjonen 7812 gir 1 Ampere, S versjonen 78S12 gir 2 Ampere)

http://www.conrad.de/ce/de/product/497086/Train-Modules-73379-IR-Lichtschranke;jsessionid=D0E53B320B41884147C0BD84D3A3A43E.ASTPCEN05?ref=searchDetail" rel="nofollow - Ir detektoren kjøpte jeg i dette tilfellet hos conrad.de ca 18 euro, istedenfor å bygge den selv.


MBED kortet er et forsøk på å få høyere oppløsning på strømforbruket (16 bits ADC istedenfor 10 bits)


Det som er litt morsomt med MBED er at de har en on-line compiler, slik at det ikke er nødvendig å installere et utviklingsmiljø på PC, en.  Istedenfor bruker man webbrowser til å skrive koden, sende den til kompilering, og deretter er det bare å laste ned eksekverbar kode, og dra denne inn på kortet, som emulerer et USB minne. http:///www.youtube.com/watch?v=7N2RxktXwE4" rel="nofollow - Jeg fant en video på youtube som iliustrer dette godt.



Posted By: programmeringssporet
Date Posted: 18 oktober 2015 at 21:58
Et sidespor med Arduino, Servo og 3D Printer.

Jeg har en pens, Peco Setrack som må styres.  For første gang har jeg forsøkt å gjøre dette med en servo :


I og med at jeg ikke har en modulkasse til å montere servoen i (kun en to cm dyp ramme)  har jeg montert servoen ved siden av pensen.  Det er ok i dette tilfellet fordi alt blir inne i en tunell.

Jeg har laget et lite Arduino program som starter med å stille servo på midtstilling, 90 grader.  Deretter har jeg koplet Servoen mekanisk til pensen.  Selve servoen er montert i et 3D printet feste.  Ved å gi kommandoer til Arduino programmet kan jeg styre servoen til endepunktene som i utgangspunktet er 80 og 100 grader.  I hver av posisjonene kan jeg fininstille endepunktene ved å sende kommandoer fra PC'en til Arduinoen.   Til slutt sender jeg en kommando for Å lagre endepunktene i Flash minnet (EEPROM) i Arduinoen - slik at den husker dem til neste gang.  Jeg kan også styre hastigheten.  Dagens versjon av programmet støtter kun en servo - neste versjon vil støtte 10 servoer.  Jeg må også legge inn funksjonalitet for å kunne styre servoen fra JMRI

Kjell & co, har tilbud på 3D-printere så da var det bare å gå å kjøpe en, for å se hva den kan brukes til.  (Dette 3D festet er ikke designet  av meg).  På bildet ser man hvordan servoarmen driver en utenpåliggende arm som gjør at servoen kan bevege seg mere.  I dette tilfellet endte jeg opp med at servoen flytter seg mellom 72  og  120 grader.

Jeg har laget en vinkel på pianotråden for å få en fjærende virkning på tungene.  Dette fungerer bra, men på neste pens skal jeg forsøke med tynnere pianotråd.  De første forsøkene ble gjort med fjæren i pensen, men jeg fikk mye bedre saktebevegelse da jeg fjernet denne.

Servofestet har også slisser for montering av mikrobrytere, men i og med at det ikke finnes elektrofrog versjoner av settrack vekselen, som er den eneste jeg har plass til her, er dette ikke montert.

Servofestet er laget for å kunne monteres både under, og ved siden av vekselen.

Kostnad for denne løsningen ble kr 15 for servofestet, kr 50 for servo, og kr 150 (delt på 10 penser) for Arduinoen

------------------------------------------------------------------------------------
Her er en liten logg fra kjøringen :
--------------------------------------
Servo controller ready>
NewPos :180
NewPos :120
NewPos :120
72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,
new pos:120
Servo controller ready>
NewPos :0
NewPos :0
NewPos :72
120,119,118,117,116,115,114,113,112,111,110,109,108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,83,82,81,80,79,78,77,76,75,74,73,
new pos:72
Servo controller ready>
M:90:0:72:1:120:ms:25:pos:72
Servo controller ready>

Nederst ser vi innstillingene som er lagret i EEPROM :
M:90:0:72:1:120:ms:25:pos:72

M:90  -  midtposisjon
0:72 - "ikke avvik" er 72 grader
1:120 - avvik er 120 grader
ms:25 - Servo skal flytte seg 1 grad hvert 25 millisekund
pos:72 - startposisjon når strømmen kobles til - "ikke avvik".

Øverst på loggen ser vi at kommandoen gå til posisjon 180 grader (avvik)  programvaren endrer denne til 120 grader som er konfigurert som maks utslag.  deretter ser vi hvordan posisjonen endrer seg for hvert 25 ms inntil den kommer til 120 grader.

tilsvarende, kommando 0 grader blir endret til 72 grader, før kommandoen blir styrt til denne posisjonen




Posted By: jhh61no
Date Posted: 18 oktober 2015 at 22:38
Veldig spennende det du holder på med !

Vet ikke hvilken tykkelse du bruker på pianotråden men jeg bruker 0,8mm for da ivaretar du en del fleksibilitet samtidig som den er stiv nok.

-------------
Jarle H Hansen

Bergen



Digitrax SuperChief/Empire Builder. TrainController Gold/TrainProgrammer 8.0B5,LDT, LocoIO, Zimo++


Posted By: GETEL57
Date Posted: 20 oktober 2015 at 00:12
Jeg har ikke tilstrekkelig kompetanse til å følge alt du skriver, men interessant. I stedet for IR-sensor, kan du bruke RFID (JMRI støtter dette)? Da kan du også koble RFID informasjonen mot sporveksler for en hensetting av loket i sidespor?

-------------
Terje


Posted By: programmeringssporet
Date Posted: 23 oktober 2015 at 16:04
Originally posted by jhh61no jhh61no wrote:

Veldig spennende det du holder på med !

Vet ikke hvilken tykkelse du bruker på pianotråden men jeg bruker 0,8mm for da ivaretar du en del fleksibilitet samtidig som den er stiv nok.


Hei,
Takk for tilbakemelding og beklager sent svar - er på reise.
Jeg fikk målt pianotråden min - den er 0.8 mm.  I og med at jeg skal bruke separate kontakter for hjertestykke-strøm,  tror jeg at det ikke nødvendig med noe særlig press.  Peco har sterke fjærer på sine veksler, men alle andre fabrikater, som jeg har prøvd,  har mye svakere press.  Jeg tror at hvis jeg fjerner fjæren i Peco vekslene - vil denne fungere helt ok med svakere fjæring.  Dette skal jeg prøve på den neste.


Posted By: programmeringssporet
Date Posted: 23 oktober 2015 at 16:15
Originally posted by GETEL57 GETEL57 wrote:

Jeg har ikke tilstrekkelig kompetanse til å følge alt du skriver, men interessant. I stedet for IR-sensor, kan du bruke RFID (JMRI støtter dette)? Da kan du også koble RFID informasjonen mot sporveksler for en hensetting av loket i sidespor?


Hei,

Takk for tilbakemelding - og beklager sent svar.

I utgangspunket skal datastyringen vite hvor hvert enkelt lok og vogn er, og vite hvem som er koblet sammen i hvert tog.  Det burde derfor ikke være nødvendig med RFID.  Unntaket er når jeg gjør manuelle forflytninger av materiell.  f.eks. sette et nytt lok eller vogn på sporet.

På leting etter gamle skinner til testmodulen, så jeg også gjennom det jeg har av N-skala.  Ved forsøk på å lage noen togsammensetninger med dem, fant jeg ut at stort sett alle passasjervognene ligger i feil esker.  Det er en stor utfordring for meg å holde orden på hvor vogner og lok er lagret, og å få de tilbake i riktig eske.  En mulighet jeg har sett på er å bruke en strekkodeleser (kjøpe den for et par år siden, men har ikke prøvd den) på eskene (som ofte har ferdige strekkoder) - og hvis jeg hadde RFID transpondere på vogner og lok kunne jeg fått en ganske automatisert prosess med å pakke ut og pakke ned vogner og lok.  Jeg har derfor bestilt noen RFID brikker - som jeg tenker å montere i noen godsvogner.  Lokomotiver kan jeg stort sett identifisere ved å lese CV'er fra dekoder.  Det optimale hadde vel vært å identifisere med bildegjenkjenning, og kanskje også lese loknummer.


Posted By: einjen
Date Posted: 24 oktober 2015 at 13:29
Hei.

Hvor har du kjøpt rfid brikker/transpondere


-------------
--

Einar Næss Jensen

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

http://einarblog.homemade.no/einarblog" rel="nofollow - http://einarblog.homemade.no/einarblog



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.05 - http://www.webwizforums.com
Copyright ©2001-2022 Web Wiz Ltd. - https://www.webwiz.net