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  <1 567
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: 16 desember 2013 at 22:01

16. Desember 2013

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

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

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

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

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

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

 

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

·         Amperemeter DCC og andre kilder

·         Spenningsmåler DCC

·         DCC programmerer

·         Relestyring

·         Ledstyring

·         LCD Display styring

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

·         DCC decoder.

·         Servostyring.

 

 

Andre :

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

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

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

 

 

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

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

 

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

 

/*

Tilkopling :

Sensor:                 Arduino:

VCC                        5 V

Trig                         Digital input 4

Echo                      Digital input 2

Gnd                       GND

*/

 

 int inputPin=2; //ECHO pin

 int outputPin=4; //TRIG pin

 

 void setup()

 {

   Serial.begin(9600);

   pinMode(inputPin, INPUT);

   pinMode(outputPin, OUTPUT);

 }

 

 void loop()

 {

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

   delayMicroseconds(10);

   digitalWrite(outputPin, LOW);

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

   distance=distance/58;

   Serial.println(distance); //Print distance 

   delay(100);

 }

 

 

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



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



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

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


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

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


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

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

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

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

Skal brukes til å styre LED-tavle.

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

Einar Næss Jensen

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

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


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

For å komme igang med Arduino.  Start her :

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

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

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

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

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

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

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

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

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

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

Dette ser skikkelig spennende ut!


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


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

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

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


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

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


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



Edited by programmeringssporet - 18 desember 2013 at 01:46
Back to Top
 Post Reply Post Reply Page  <1 567

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,078 seconds.