Printed From: MJF Forum
Category: Modelljernbane i alminnelighet
Forum Name: Digitalstyring, datastyring og automatikksystemer
Forum Description: Alt om digital og automatisk styring av modelljernbane
URL: http://forum.mjf.no/forum_posts.asp?TID=9191 Printed Date: 22 november 2024 at 14:21 Software Version: Web Wiz Forums 12.05 - http://www.webwizforums.com
Topic: Bruke SPROG 3 og Arduino til liten bane?Posted By: glennefj
Subject: Bruke SPROG 3 og Arduino til liten bane?
Date Posted: 10 mai 2015 at 21:21
Hei!
Ifm. med bygging av en liten modell med knapper for interaksjon, er det ønskelig med en mini-jernbane som går over en bro i modellen i tillegg til et par gods-spor hvor vogner vil hentes/bringes.
Jeg tenker å skjule endene av broen og ved gods-sporene slik at toget kan snu på undersiden av bordet modellen står på e.l., og gjerne at toget går "i skjul" når det ikke er bruk. Det kan så bringes fram ved trykk på en knapp. F.eks. vil første gang man trykker resultere i at toget kjører en vei over broen, neste gang kommer godstoget og henter en vogn (servo på en skinne som separerer vognen annenhver gang...? , deretter kommer toget tilbake over broen etc. Kun for å animere modellen.
Banen er enkel nok å få til, men hva med styringen? Jeg har vært borti SPROG II, som kunne drive en liten N-skala-bane uten problemer. Gjorde ikke særlig mye spesielt der, og jeg har nå vært borte fra modelljernbane en god stund.
SPROG 3 har kommet siden, og kan med en liten strømforsyning enkelt drive et par tog på en liten bane. Men hva med automatiseringen? Jeg tenker JMRI er det beste programmet for styringen, og SPROG 3 fungerer fint med det, men det er da ingen måte å få sensorer inn via SPROG, da må jeg ha et annet interface.
Har dere noen tips til hva jeg kan gjøre? Det er et stramt budsjett her, og ingen tanke om framtidig utvidelse. Kan Arduino brukes med noen sensorer for å fortelle hvor togene er?
I utgangspunktet vil ikke togene kjøre samtidig, og heller ikke på den samme banen, så det vil ikke bli krasj. Men jeg trenger en måte på å fortelle toget at det skal stoppe her og der, alt automatisk. F.eks. 3-4 sekvenser som er forhåndsprogrammert, som bytter når en knapp trykkes. Knappen bør være deaktivert så lenge toget kjører, slik at neste sekvens ikke kan aktiveres før den første er ferdig.
Håper dette ikke ble veldig rotete. Jeg er fersk på denne styringen, og håpet egentlig på at jeg kunne ende opp med følgende for å styre alt:
- Raspberry Pi 2 (linux-maskin m/JMRI)
- SPROG 3
- Arduino m/sensorer
Vil dette være mulig? Finnes det enklere/billigere alternativer jeg heller burde se på?
Replies: Posted By: einjen
Date Posted: 11 mai 2015 at 01:29
Hei.
Jeg har en bitteliten testbane, som kjører på sprog3 med jmri på raspberry pi. iphone og android-telefon som håndkontroll. Fungerer greit, men telefonen er desverre ikke optimal som håndkontroll (synes jeg).
se postene til "programmeringssporet" for utførlig informasjon om hvordan du kan bruke arduino.
------------- --
Einar Næss Jensen
Words of wisdom are easily spoken, but they are cheap talk
Posted By: glennefj
Date Posted: 11 mai 2015 at 09:35
einjen wrote:
Hei.
Jeg har en bitteliten testbane, som kjører på sprog3 med jmri på raspberry pi. iphone og android-telefon som håndkontroll. Fungerer greit, men telefonen er desverre ikke optimal som håndkontroll (synes jeg).
se postene til "programmeringssporet" for utførlig informasjon om hvordan du kan bruke arduino.
Nei, enig i det. Men som ren automatisert bane virker den egnet til formålet.
Jeg leste meg litt opp på C/MRI, og det finnes biblioteker for Arduino der. Det virker dermed som Arduino kan brukes direkte opp mot JMRI for sensorer.
Ellers fant jeg også "Railuino" der en Arduino kan erstatte IR-kontrolleren til Märklin, eller vha. CAN-BUS shield til Arduino, hvor man kan koble seg rett inn i 60113 som en ekstra håndkontroller - DEN løsningen likte jeg i forhold til SPROG 3, for da kan jeg fortsatt bruke en vanlig kontroller.
Posted By: SveinR
Date Posted: 11 mai 2015 at 12:42
Sjekk http://wiki.rocrail.net/doku.php.
Dette finnes også til RaspberryPI
Og her finnes det tilbakekoblings moduler som kan settes på GPIO på RaspberryPI http://wiki.rocrail.net/doku.php?id=rocnet:rocnetnode-en
------------- Mvh
-SveinR
Det finnes en skiftetraktor til alt
Posted By: programmeringssporet
Date Posted: 11 mai 2015 at 16:49
Hei,
Dette kan du løse på flere enkle og rimelige måter - avhengig av om du vil lodde selv, eller kjøpe ferdige komponenter, og om du ønsker å bruke ferdig programvare somJMRI eller lage egne scripts/programmer i PHP, Phyton, Perl, Java eller C.
I utgangspunktet kan du nok klare å lage styringen med en Arduino eller med en Raspberry Pi, eller som du sier ved å kombinere dem.
Hvis du lager styringen med en Arduino (uten Raspberry Pi) er det en liten utfordring, og det er at SPROG 3 ikke har serieport, men kun USB. Har du tilgang til en gammel SPROG med serieport ? Alternativ digitalsentral med Serieport ? Hvis ikke må du ha et Arduino USB host shield (eller Arduino ADK). Ganske dyrt og kanskje litt krevende for en Arduino ? Et annet alternativ kan være Digitalsentral med Ethernet Interface (z21?) ellers finnes det både serieport og ethernet selvbyggerprosjekter som passer til ROCO startsett (multimaus). Fordelen med Arduino er at du har full kontroll på presisnonen i timingen.
Hvis du lager en styring med kun Raspberry (uten Arduino) kan du bruke Rocrail - eller standard grensesnitt kretser.
Jeg tror jeg vil anbefale deg å se på disse kretsene :
Den første for å styre servoer, LED etc. Den andre kan du bruke for både input og output (kontaktskinner eller magneter og reed releer for posisjonsdetektering?). Fordelen med disse kretsene er at de både kan koples til Arduino (3,3 volt og 5 volt) og Raspberry Pi (3,3 Volt) via I2C bussen.
Du bør også vurdere om JMRI er egnet. Jeg ville nok istedenfor laget et enkelt Script (PHP?) på en Raspberry Pi, og styrt dette direkte derifra. Hvis du ønsker å styre Arduinoer fra JMRI, er dette ganske enkelt ved at du implementer støtte for en av de kjente protokollene i JMRI (Jeg benytter MERG protokollen - og det fungerer utmerket) I JMRI må du da åpne to connections til anlegget : En til SPROG og en til Arduinoen(e).
Dette var de alternativene som dukket opp hos meg - det finnes mange andre, avhengig av hvilke teknologier du liker å holde på med.
En siste vurdering ? Trenger to DCC, kanskje det aller enkleste og rimeligste er en Arduino med motorstyrings-shield ? (men da mister du jo muligheten til å styre lys og lyd i togene ?)
Posted By: glennefj
Date Posted: 11 mai 2015 at 21:07
Takk for all info! Rocrail så også interessant ut, men da så det ut til at jeg måtte kjøpe egne interface?
Er ikke den beste på scripting, tenkte kanskje JMRI ville gi meg en grei ferdigløsning med mulighet til flere sekvenser (tog kjører raskt forbi, tog kjører sakte, tog kjører en vei, tog kjører annen vei etc).
JMRI tenkte jeg mest av alt fordi det var utbredt, og fordi det kunne kjøre som server på en RPi. Arduino med C/MRI tenkte jeg var en løsning om den kunne kobles direkte til JMRI. Så vidt jeg vet må man bruke Arduino mini pro e.l., altså uten innebygget FTDI, jeg har et par slike liggende.
Tenkte et par mikrobrytere for å fortelle hvor endepunktene er på stasjonene, i tillegg til fotosensor e.l. som registrerer passering (alternativt RFID?).
Det er så utrolig mange måter å gjøre det på, jeg bare trodde JMRI + Arduino var en selvsagt kombo, men kanskje det er vanskeligere enn jeg tror.?
Update: Har lest litt om de forskjellige løsningene du kom med, og det første kortet du linket til så veldig bra ut. Flott å kunne koble til så mange enheter til Arduino med såpass få kabler!
Men i denne omgang er det snakk om en håndfull sensorer. La oss si maksimalt 10 totalt, noe en Arduino med det kortet kan takle.
Vil C/MRI være løsningen for å koble Arduino opp mot JMRI? Og er det bare Mini Pro som er alternativet uten innebygget FTDI?
Posted By: glennefj
Date Posted: 11 mai 2015 at 22:06
programmeringssporet wrote:
Hei, Hvis du lager styringen med en Arduino (uten Raspberry Pi) er det en liten utfordring, og det er at SPROG 3 ikke har serieport, men kun USB. Har du tilgang til en gammel SPROG med serieport ? Alternativ digitalsentral med Serieport ? Hvis ikke må du ha et Arduino USB host shield (eller Arduino ADK). Ganske dyrt og kanskje litt krevende for en Arduino ? Et annet alternativ kan være Digitalsentral med Ethernet Interface (z21?) ellers finnes det både serieport og ethernet selvbyggerprosjekter som passer til ROCO startsett (multimaus). Fordelen med Arduino er at du har full kontroll på presisnonen i timingen.
Jeg skjønte ikke helt dette.
Jeg tenkte RPi 2 som JMRI headless webserver (e.l.) med SPROG 3 tilkoblet en USB port, alternativt en liten PC istedet for RPi.
I tillegg tenkte jeg en Arduino med C/MRI som jeg kobler til alt av sensorer. Arduino kommuniserer dermed via en USB-FTDI inn til JMRI, og kan dermed sende status på de forskjellige sensorene.
Vil ikke dette fungere? Finner løsningen som ser ut som de har gjort noe slikt på YouTube, men usikker på hvordan.
Posted By: SveinR
Date Posted: 11 mai 2015 at 22:16
Skal du bruke Rocrail med RaspberryPI, så trenger du som du nevner en interface for tilbakemeldingne. Men det trenger du uansett!
Du tenker å bruke en Arduino til tilbakemeldingene, så ser ikke helt at man kommer letter rundt det med en slik løsning?
Interfacen til RaspberryPI ser slik ut http://wiki.rocrail.net/doku.php?id=gca1-pi01-en og koster €10,75 om man skal ha den ferdigbygget.
I tillegg så må man enten ha en ren I/O modul, eller kjøpe en ferdig spordeteksjonsmodul til 8 sporseksjoner.
------------- Mvh
-SveinR
Det finnes en skiftetraktor til alt
Posted By: programmeringssporet
Date Posted: 11 mai 2015 at 22:54
glennefj wrote:
programmeringssporet wrote:
Hei, Hvis du lager styringen med en Arduino (uten Raspberry Pi) er det en liten utfordring, og det er at SPROG 3 ikke har serieport, men kun USB. Har du tilgang til en gammel SPROG med serieport ? Alternativ digitalsentral med Serieport ? Hvis ikke må du ha et Arduino USB host shield (eller Arduino ADK). Ganske dyrt og kanskje litt krevende for en Arduino ? Et annet alternativ kan være Digitalsentral med Ethernet Interface (z21?) ellers finnes det både serieport og ethernet selvbyggerprosjekter som passer til ROCO startsett (multimaus). Fordelen med Arduino er at du har full kontroll på presisnonen i timingen.
Jeg skjønte ikke helt dette.
Jeg tenkte RPi 2 som JMRI headless webserver (e.l.) med SPROG 3 tilkoblet en USB port, alternativt en liten PC istedet for RPi.
I tillegg tenkte jeg en Arduino med C/MRI som jeg kobler til alt av sensorer. Arduino kommuniserer dermed via en USB-FTDI inn til JMRI, og kan dermed sende status på de forskjellige sensorene.
Vil ikke dette fungere? Finner løsningen som ser ut som de har gjort noe slikt på YouTube, men usikker på hvordan.
Det fungerer helt fint, med Arduino og Raspberry. Jeg stiller bare spørsmålet om du trenger begge to - enklere med en. Arduino HW kan koples til mange sensorer, og veldig enkel å programmerer i "c", Raspberry hvis du liker Linux og Scripting eller JMRI. For å få ønsket funksjonalitet i JMRI må man ofte scripte i Jython (Python i Java) - og da tror jeg det kanskje er like greit å lage hele greia som et php-script uten JMRI - hvis du ikke skal bruke annen funksjonalitet i JMRI (Signaler, stillverk etc)
Posted By: programmeringssporet
Date Posted: 11 mai 2015 at 22:58
glennefj wrote:
Takk for all info! Rocrail så også interessant ut, men da så det ut til at jeg måtte kjøpe egne interface?
Update: Har lest litt om de forskjellige løsningene du kom med, og det første kortet du linket til så veldig bra ut. Flott å kunne koble til så mange enheter til Arduino med såpass få kabler!
Men i denne omgang er det snakk om en håndfull sensorer. La oss si maksimalt 10 totalt, noe en Arduino med det kortet kan takle.
Vil C/MRI være løsningen for å koble Arduino opp mot JMRI? Og er det bare Mini Pro som er alternativet uten innebygget FTDI?
Hovedhensikten med pwm kortet er at du kan kople den både direkte til Raspberry(som kun har en pwm utgang) eller Arduinoen (som har 5,6,7 - 20 pwm utganger avhengig av type Arduino)
Kombinerer du dette med reed-kontakter koplet direkte på GPIO porten i Raspberryen, for tilbakemelding, har du en begrenset styring med kun en Raspberry, sprog og eventuelt et interface kort, hvis du trenger mere sensorer legger du til et kort med flere inn/utganger. Ikke direkte lett å kople mot JMRI, men lar seg gjøre via en virtuell serieport, eller kanskje lage en PHP webserver, som kommuniserer med JMRI - men igjen anbefaler kanskje at du dropper JMRI - du må nok scripte både med og uten.
Posted By: glennefj
Date Posted: 12 mai 2015 at 07:47
Skjønner! Takk for svar!
Så Rocrail er kanskje den beste løsningen for dette prosjektet da? Hva trenger jeg i tillegg til GCA1 modulen som plugges i RPi?
Jeg likte de reed reléene, har ikke sett slike før, og de gir jo absolutt mening i prosjektet her! RFID er vel det beste for mange tog på samme spor, men her er det tross alt bare et tog på hvert spor.
Kanskje jeg overtenkte det med RPi + Arduino. Jeg tenkte i grunnen ikke på GPIO-pinnene, men mest RPi som en liten Linux-PC. Det var derfor jeg brukte Arduino som en mulighet for inndata. Mest av alt også fordi at da kan jeg koble hva som helst til Arduino, og ikke måtte være avhengig av dyre kort/sensorer for at det skal være kompatibelt.
LocoNet har også blitt foreslått for meg, at jeg dropper SPROG etc. helt, og kjører alt via LocoNet. Men da står man vel heller ikke fritt til å bruke mikrobrytere etc. man har liggende rundt?
Python er et språk jeg driver å lærer, så det bruker jeg gjerne. Og selv om jeg ikke trenger mye av funksjonene til JMRI her, så ønsker jeg å lære JMRI, så sånn sett er det ikke problematisk å bruke det til å styre.
Posted By: glennefj
Date Posted: 12 mai 2015 at 11:29
Har lest litt mer på både RocRail og JMRI.
RocRail ser veldig lovende ut, spesielt med den gode server/klient-løsningen, og det ser mer moderne ut.
JMRI har de flotte panelene etc, og ser ut til å ha mer støtte for DIY, hvor RocRail må ha spesielle kort?
For dette prosjektet spiller det ikke så stor rolle, men jeg syns det er greit å sette meg inn i de forskjellige løsningene som eksisterer, og ikke minst bruke dette prosjektet på å lære meg litt mer om automatisering for et evt. stort layout i framtiden.
Posted By: glennefj
Date Posted: 12 mai 2015 at 21:24
Jeg tror jeg tar tipset ditt og går bort ifra JMRI til dette prosjektet. Det var veldig tungt å komme inn i, og litt rotete i forhold til å kjøre headless.
Satte opp en test med RocRail på Ubuntu 15.04. Måtte kompilere selv for å få RocView til å starte (mulig at libwxgtk3.0 er nok til å få det til å fungere), men det startet til slutt. Så vidt jeg skjønner kan server-delen kjøres på non-gui Linux også.
Det er så greit å ha én server med flere klienter. Lett å sette opp modellen, også kan den administreres fra det jeg skulle ha tilgjengelig, akkurat det fant jeg ikke like enkelt på JMRI.
Så JMRI blir tungvint å sette opp, og er tungt å lære. Arduino C/MRI er mest sannsynlig ikke like mye testet som det burde være, og krever manuelt oppsett i Arduino-sketch for hver sensor som er tilkoblet, eller kanskje jeg tar feil og alt settes i JMRI?
SPROG 3 er på vei, så håper på å få testet dette snart.
Så vidt jeg har forstått er det følgende jeg trenger i tillegg til RPi:
- http://wiki.rocrail.net/doku.php?id=gca1-pi01-en" rel="nofollow - GCA_PI01 Rasberry Pi HAT (Hardware Attached on Top
Kan PI02 ta "hvilke som helst" sensorer på samme måte som jeg tenkte med Arduino C/MRI? Kan jeg bare ta en mikrobryter, "hall sensor", RFID, IR-sensor etc. og gjøre hva jeg vil?
Kontroll av tog vil fortsatt være SPROG 3 ikke sant?
- Booster vil vel her være strømforsyningen til SPROG?
- SPROG vil være i "Command station" mode?
- Hva gjør en ren DCC-programmer som ikke er command station? (SPROG 3 kan være begge...)
Posted By: programmeringssporet
Date Posted: 12 mai 2015 at 21:42
Hei,
Dette var litt komisk: for 15 minutter siden svarte jeg deg at jeg benytter kretsens MCP23008 og MCP23017. Nå linker du til ferdige kort for Raspberry Pi, som benytter den samme MCP23017 kretsen. Det betyr at dette kan løses enten nesten helt gratis med løse kretser, eller ved å kjøpe ferdige kort. - og det betyr at Rocrail har ferdige drivere for MCP23017.
JEg kopler alle typer sensorer til MCP23008/23017. (Har satt dem opp med weak pullup, slik at sensoren må dra utgangen ned til 0 volt)
En ren DCC-programmer brukes til å sette variable i lokomotivdekoderen - på programmeringssporet. SPROG kan benyttes til styring og programmering, men ikke samtidig. Det samme gjelder de fleste andre digitalsystemer - men noen få støtter programmering på programmeringsporet samtidig som togene kjører på resten av anlegget.
Posted By: glennefj
Date Posted: 12 mai 2015 at 22:05
Hehe, jeg ante ikke at de kortene brukte de samme chipene. Det er jo kjempebra!
Isåfall begynner plutselig RocRail å se mer brukervennlig ut enn JMRI, og man kan da bruke egne type kort - om man vil! Mer DIY-vennlig enn jeg hadde trodd.
Mulig jeg kjøper ferdige kort til denne løsningen, for å få det raskt ferdig.