MODELLJERNBANEFORENINGEN I NORGE (MJF) - forum

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

Programmeringssporet

 Post Reply Post Reply Page  <1234 7>
Author
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post 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 )

 

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)

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/ ).

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 ) .  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.



Edited by programmeringssporet - 10 oktober 2014 at 22:53
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 10 oktober 2014 at 22:53
Back to Top
bkv1 View Drop Down
Veteran
Veteran


Joined: 19 desember 2010
Location: Norge
Status: Offline
Points: 247
Post Options Post Options   Thanks (0) Thanks(0)   Quote bkv1 Quote  Post ReplyReply Direct Link To This Post Posted: 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
Back to Top
bkv1 View Drop Down
Veteran
Veteran


Joined: 19 desember 2010
Location: Norge
Status: Offline
Points: 247
Post Options Post Options   Thanks (0) Thanks(0)   Quote bkv1 Quote  Post ReplyReply Direct Link To This Post Posted: 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


Edited by bkv1 - 12 oktober 2014 at 20:51
Hilsen Bjørn

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

Joined: 17 september 2005
Location: Norway
Status: Offline
Points: 1335
Post Options Post Options   Thanks (0) Thanks(0)   Quote einjen Quote  Post ReplyReply Direct Link To This Post Posted: 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
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 13 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

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.






Edited by programmeringssporet - 29 oktober 2014 at 16:37
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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"


Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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 ?
Back to Top
bkv1 View Drop Down
Veteran
Veteran


Joined: 19 desember 2010
Location: Norge
Status: Offline
Points: 247
Post Options Post Options   Thanks (0) Thanks(0)   Quote bkv1 Quote  Post ReplyReply Direct Link To This Post Posted: 15 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


Edited by bkv1 - 20 oktober 2014 at 19:54
Hilsen Bjørn

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

Joined: 17 september 2005
Location: Norway
Status: Offline
Points: 1335
Post Options Post Options   Thanks (0) Thanks(0)   Quote einjen Quote  Post ReplyReply Direct Link To This Post Posted: 17 oktober 2014 at 10:54
Intel Edison er en ny og interessant utviklingsplatform som sikkert kan finne sitt bruksområde i MJ-verdenen:
--

Einar Næss Jensen

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

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


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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


Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 29 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:


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


Edited by programmeringssporet - 29 oktober 2014 at 16:06
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 29 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 (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 

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.



Edited by programmeringssporet - 29 oktober 2014 at 17:27
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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




Edited by programmeringssporet - 17 november 2014 at 15:28
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 18 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


Edited by programmeringssporet - 18 desember 2014 at 00:31
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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 :


Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 02 februar 2015 at 21:18
Stor nyhet i dag er Raspberry Pi 2 B :

http://www.raspberrypi.org/raspberry-pi-2-on-sale/

 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)



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).



Edited by programmeringssporet - 02 februar 2015 at 21:22
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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)


Edited by programmeringssporet - 03 februar 2015 at 15:22
Back to Top
SveinR View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem


Joined: 03 november 2004
Location: Norway
Status: Offline
Points: 1215
Post Options Post Options   Thanks (0) Thanks(0)   Quote SveinR Quote  Post ReplyReply Direct Link To This Post 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

Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 03 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 :

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.
Back to Top
SveinR View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem


Joined: 03 november 2004
Location: Norway
Status: Offline
Points: 1215
Post Options Post Options   Thanks (0) Thanks(0)   Quote SveinR Quote  Post ReplyReply Direct Link To This Post 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

Back to Top
einjen View Drop Down
Veteran
Veteran
Avatar

Joined: 17 september 2005
Location: Norway
Status: Offline
Points: 1335
Post Options Post Options   Thanks (0) Thanks(0)   Quote einjen Quote  Post ReplyReply Direct Link To This Post Posted: 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
Back to Top
trulss View Drop Down
Fremo og MjF medlem
Fremo og MjF medlem
Avatar

Joined: 07 juli 2005
Location: Norge
Status: Offline
Points: 500
Post Options Post Options   Thanks (0) Thanks(0)   Quote trulss Quote  Post ReplyReply Direct Link To This Post 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/
Truls Slevigen
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 05 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

Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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

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
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 :






Edited by programmeringssporet - 15 februar 2015 at 19:32
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 18 februar 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/


Edited by programmeringssporet - 18 februar 2015 at 00:40
Back to Top
einjen View Drop Down
Veteran
Veteran
Avatar

Joined: 17 september 2005
Location: Norway
Status: Offline
Points: 1335
Post Options Post Options   Thanks (0) Thanks(0)   Quote einjen Quote  Post ReplyReply Direct Link To This Post Posted: 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
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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


Edited by programmeringssporet - 28 februar 2015 at 14:30
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 05 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).  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.




Edited by programmeringssporet - 05 mars 2015 at 00:24
Back to Top
programmeringssporet View Drop Down
Veteran
Veteran


Joined: 12 desember 2013
Status: Offline
Points: 405
Post Options Post Options   Thanks (0) Thanks(0)   Quote programmeringssporet Quote  Post ReplyReply Direct Link To This Post Posted: 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);
  }





Edited by programmeringssporet - 26 mars 2015 at 00:26
Back to Top
 Post Reply Post Reply Page  <1234 7>

Forum Jump Forum Permissions View Drop Down

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

This page was generated in 0,164 seconds.