RE: Railuino 0.9 + Artikel + Hardware

#26 von maxu ( gelöscht ) , 26.03.2013 10:23

Zitat von starky
Ich denke, der Kondensator kommt zwischen Pin 18 (Vcc) und 9 (GND) des 23S08 und ist ein Abblockkondensator, das sollte man ja bei jedem IC machen.


Da es ein 100nF Kerko ist, ergibt das Sinn.

Zitat von starky
Vermutlich ist der 10kOhm ein Pull-Up-Widerstand für den Interrupt-Pin des 23S08 und kommt zwischen Pin 7 und 5V. Pin 7 ist zusätzlich mit Pin 3 des Arduino (Interruptpin 1) verbunden. So ist das zumindest im Code bei der Klasse TrackReporterIOX beschrieben. Im Schaltbild fehlt der leider völlig.


Du beziehst Dich vermutlich auf die Zeile

writeRegister(i, j + 6, 255); // Pull-up resistors

Hier wird allerdings in das GPPU-Register des MCP23S08 geschrieben. Die Dokumentation sagt dazu Folgendes: "The GPPU register controls the pull-up resistors for the port pins. If a bit is set and the corresponding pin is configured as an input, the corresponding port pin is internally pulled up with a 100 kΩ resistor."

Es werden also interne Pull-Up-Widerstände aktiviert. Oder gibt es noch einen anderen Hinweis auf die von Dir vorgeschlagene Verwendung des 10 kOhm Widerstandes?

Gruß

Max


maxu

RE: Railuino 0.9 + Artikel + Hardware

#27 von starky ( gelöscht ) , 26.03.2013 10:58

Ja bei bei TrackReporterIOX findest Du den Satz: "The interrupt line must be connected to Arduino pin 3 (interrupt 1) and pulled up via a resistor. "

Hier die ganze Beschreibung aus Railuino.h (ganz unten):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 

// ===================================================================
// === TrackReporterIOX ==============================================
// ===================================================================
/**
* Implements a low-cost track reporting mechanism based on I/O
* expanders. Currently the MCP 23S08 and MCP 23S17 are supported,
* with the MCP 23S08 being treaded just like the 16 bit module, so
* the upper 8 bits are undefined. The IO expanders are connected via
* SPI. Pin x is being used for chip select. The interrupt line must
* be connected to Arduino pin 3 (interrupt 1) and pulled up via a
* resistor. Multiple expanders can be combined, assuming they are
* configured to different addresses via the hardware pins. All need
* to share the interrupt line, which is configured for open drain.
*/
 
 



Aber oft ist der Code schon weiter als der Kommentar...

PS: Eine andere Möglichkeit wäre es, dass der Widerstand zwischen Reset vom 23S08 und 5V kommt (als Pull-Up). Habe ich für AVR-Microcontroller oft als Empfehlung gesehen, ohne ging´s bisher aber immer auch gut...


starky

RE: Railuino 0.9 + Artikel + Hardware

#28 von behbeh , 26.03.2013 18:41

Hallo
soll ich denn mal eine Schaltplan mit Eagle zeichnen, aus dem die Belegung zum Arduino hervor geht...?
Bernd


Kinder bettet Vater lötet


 
behbeh
Regionalbahn (RB)
Beiträge: 45
Registriert am: 25.04.2008
Homepage: Link
Gleise C-Gleis & K-Gleis
Spurweite H0
Steuerung CS1_Reload/6021
Stromart Digital


RE: Railuino 0.9 + Artikel + Hardware

#29 von MTB-Ontour , 26.03.2013 18:57

Hallo Bernd!

Das wäre wirklich Klasse und würde viele Verwirrungen schnell vom Tisch wischen.

VG

Micha


MTB-Ontour  
MTB-Ontour
InterRegio (IR)
Beiträge: 208
Registriert am: 28.05.2007
Gleise C/K-Gleis


RE: Railuino 0.9 + Artikel + Hardware

#30 von samson , 27.03.2013 19:38

Zitat von behbeh
Hallo
soll ich denn mal eine Schaltplan mit Eagle zeichnen, aus dem die Belegung zum Arduino hervor geht...?
Bernd


ja bitte. Sehr guter Vorschlag.

Vielleicht hast du ja auch das CANDiy Shield von Jörg, und da kann es ja auch aufgebaut werden; dann sind zwei Fliegen mit einer Klapper erledigt. Vielleicht siehst du da auch die Möglichkeit die Bauteile anzuordnen und die Verbindungen dort einzuzeichnen.


Gruß
Christoph

CS3+ 2.3.1 // CS2 4.2.8// CS1 Aufgeladen 4.1.0 // MS2 // MS1 // 6021 // CAN-digital-Bahn by TM // Vitrinenbahner // Ausprobierer


 
samson
InterRegioExpress (IRE)
Beiträge: 370
Registriert am: 12.05.2009
Spurweite H0, Z
Steuerung CS3+/CS2/CS1rel/MS2/MS1/Can digital Bahn
Stromart Digital


RE: Railuino 0.9 + Artikel + Hardware

#31 von Egon , 30.03.2013 10:29

Hallo zusammen,

zuerst meinen Dank an den Entwickler
ich habe mir auch die notwendigen Dinge von Watterott besorgt und bin auf ähnliche Anfangsschwierigkeiten gestossen. In dem Artikel der c't sieht man offenbar nicht komplett bestückte Boards und leider ist auch die Spannungsversorgung unklar beschrieben. Ich lese nun hier dass man besser die Gleisbox für sich versorgt lässt, also j2 und j3 offen lässt. Nun hat das Arduino Board selbst entweder den USB-Anschluss als Versorgung oder den seperaten Steckernetzteileingang, was ist besser oder notwendig? Extern wenn das USB-Kabel abgezogen ist oder ist das egal - das Board soll das ja engeblich selber entscheiden.
Auch der ISP-Anschluss ist auf den Bildern nicht bestückt. Komme jetzt erst darauf das nachzuholen. (Man sollte besser verstehen was man tun muss, dann wird es klar) Ich bekam gestern Fehlermeldungen die mir als Anfänger nichts gesagt haben. Gibt es da eine Liste?
Ich werde gleich mal die Komponenten wieder zusammen stöpseln und schauen was dann geht wenn der ISP-Anschluss bestückt ist.

Hintergrund meines Tuns ist zB Weichenantribe zu testen. Ich stelle mir vor die Schaltspiele per Zufall generieren zu lassen um den realen Betrieb auf der Anlage zu simulieren ohne die Anlage zu benutzen. So etwas kann dann auf dem Basteltisch ablaufen und stört den normalen Betrieb nicht.

Nun funktioniert es Power On - Power Off .....

Gruß
Egon


Egon  
Egon
InterCity (IC)
Beiträge: 712
Registriert am: 14.01.2010
Ort: Ruhrgebiet
Spurweite H0
Steuerung TAMS MC
Stromart AC, Digital


RE: Railuino 0.9 + Artikel + Hardware

#32 von starky ( gelöscht ) , 30.03.2013 14:43

Hallo Egon,
ist ziemlich egal, ob Du den Arduino per USB oder Powerstecker den Strom gibst, auch gleichzeitig geht (http://arduino.cc/forum/index.php?topic=154977.0).
Ob Du den ISP anschliessen musst, hängt möglicherweise auch davon ab, ob Du einen Leonardo oder Uno hast - Letzterer führt diese Pins ja auch anders heraus (ich habe den Leonardo und kann nur zu dem etwas sagen, er braucht sie auf jeden Fall).
Gruss Markus


starky

RE: Railuino 0.9 + Artikel + Hardware

#33 von Egon , 30.03.2013 16:46

Hallo Markus,
ich habe den UNO und der braucht den ISP Anschluss - ohne ging es nicht, mit ISP-Verbindung sofort.
Schön finde ich den sketch sniffer. Schliesst man die MS2 an, sieht man was auf dem CAN-Bus passiert wenn man die MS2 ganz normal benutzt.

Gruß
Egon


Egon  
Egon
InterCity (IC)
Beiträge: 712
Registriert am: 14.01.2010
Ort: Ruhrgebiet
Spurweite H0
Steuerung TAMS MC
Stromart AC, Digital


RE: Railuino 0.9 + Artikel + Hardware

#34 von starky ( gelöscht ) , 04.04.2013 11:57

Hallo,

hier mal ein aktueller Stand von meinem IR-Projekt:

Ich kann nun eine Märklin-Infrarotfernsteuerung aus der Startpackung mit allen Funktionen einlesen und per CAN an die Gleisbox übertragen. Alternativ kann man aber auch fast jede Fernseherfernbedienung nutzen. Man gibt einfach die Weichennummer ein und drückt dann die rote oder grüne Taste. Genauso kann man eine Loknummer eingeben und dann mit den Richtungstasten der Fernbedienung Geschwindigkeit und Richtung steuern. Leider sind die Codes der Fernbedienung noch fest verdrahtet, eine Lernfunktion werde ich dann in den nächsten Tagen noch hinzufügen.

Jetzt habe ich gerade ein LCD eingebunden. Es zeigt jetzt Lok- und Weichennummer an, ausserdem wird der letzte Befehl nochmal ausgegeben (im Bild wurde gerade die Weiche 1 auf Rot geschaltet).




Gruß, Starky


starky

RE: Railuino 0.9 + Artikel + Hardware

#35 von starky ( gelöscht ) , 16.04.2013 10:34

Hallo,
ich hatte hier schon mal berichtet, dass ich Probleme hatte, wenn ich die MS2 zusammen mit Railuino benutze. Das Problem tritt auf, wenn ich z. B. eine Mfx-Lok über die MS2 steuere und parallel meine MM2 Lok auf Adresse 78. Mich wundert etwas, dass noch kein anderer dieses Problem hatte.

Ich habe mal diverse Stellen in Railuino verfolgt und habe dabei häufig eine Fehlerbedingung in "dequeue()" gehabt, komischerweise ist "readPos==writePos" - spannenderweise aber nicht im Debug-Modus.

Den Fehler habe ich noch nicht ganz genau eingegrenzt, aber ich habe schon mal eine vorläufige Lösung auch ohne Debug: Am Ende der loop() im Hauptprogramm einfach jedesmal "receiveMessage" aufrufen, also in etwa so:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 

TrackController ctrl(0xdf2, false);
TrackMessage message;
 
void setup() {
ctrl.begin();
}
 
void loop()
{
....
 
ctrl.receiveMessage(message);
delay(20);
}
 



Damit ist Railuino stabil, auch wenn man lustig mit der MS2 steuert.

Gruß, Starky


starky

RE: Railuino 0.9 + Artikel + Hardware

#36 von starky ( gelöscht ) , 18.04.2013 11:07

Im Moment scheint es zwar, als ob ich hier im Forum nur mit mir selbst rede , aber hier noch ein wichtiger Tipp:

Im Librarycode "Railuino.cpp" ist in der Methode "setTurnout" zum Stellen von Weichen eine feste Zeit von 1000ms eingetragen, erst danach ist der Impuls vorbei. Im Kommentar in "Railuino.h" werden aber eher 20ms empfohlen, das passt irgendwie gar nicht zusammen. Das ganze Railuino pausiert dann übrigens auch für genau diese Zeit (siehe Code unten: "delay(1000)" heißt, dass das ganze System für 1000ms = 1 Sekunde pausiert und keine Befehle mehr annimmt).

Ich kenne sonst Werte für den Impuls von 200-400ms. Hier habe ich jetzt erstmal 500ms eingetragen und gleich läuft alles viel flüssiger. (EDIT: Inzwischen habe ich - wie von Traxxer empfohlen - 100 eingetragen, damit funktioniert es noch besser!)

Außerdem sind hier kürzere Zeiten im allgemeinen sicher besser für die Weichenspulen. Vielleicht hat hier jemand noch einen Tipp für die optimale Impulsdauer?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 

boolean TrackController::setAccessory(word address, byte position, byte power,
word time) {
 
...
if (time != 0) {
delay(time); <====
...
exchangeMessage(message, message, 1000);
}

return true;
}
 
boolean TrackController::setTurnout(word address, boolean straight) {
return setAccessory(address, straight ? ACC_STRAIGHT : ACC_ROUND, 1, 1000 <=== Hier besser 500 oder weniger eintragen );
}
 
 


starky

RE: Railuino 0.9 + Artikel + Hardware

#37 von TRAXXer , 18.04.2013 11:18

Hallo Markus,

ich habe für die Ansteuerung der Weichen (Märklin C-Gleis-Antrieb) bei ca. 18-19V eine Impulsdauer von 100ms verwendet. Kürzer wollte ich nicht gehen, da die Weichen ein wenig hakelig umzuschalten waren und deswegen manchmal nicht ganz die Richtung änderten. Mit 100ms bin ich gut gefahren. Einen Entkuppler habe ich erfolgreich bei 50ms gefahren.

Die Spannung schien übrigens ein Problem zu sein. Ich habe damals analog gearbeitet und die Anlage nur an einem Labornetzteil + Arduino betrieben, und unter 16V muckte garnichts, deswegen eher >18V. Kann man ja soweit ich weiß über die MS2 in der Gleisbox einstellen, wie das mit dem Arduino über CAN funktioniert weiß ich nicht


Schöne Grüße, Niklas


 
TRAXXer
EuroCity (EC)
Beiträge: 1.315
Registriert am: 19.01.2011
Spurweite H0
Stromart DC, Digital


RE: Railuino 0.9 + Artikel + Hardware

#38 von starky ( gelöscht ) , 18.04.2013 12:29

Hallo,
die MS2 hängt ja parallel zum Arduino am CAN Bus. Mit Ihr kann ich verschiedene Sachen einstellen, aber sie zeigt die Gleisspannung (>18V) nur an, ich kann da nichts verändern. Das scheint aber ok zu sein.
Gruß, Markus


starky

RE: Railuino 0.9 + Artikel + Hardware

#39 von Rohr_Familie ( gelöscht ) , 27.05.2013 21:34

Hallo,

Mit Interesse verfolge ich dieses Projekt und habe vor es auch nachzubauen. Deswegen habe ich eine Frage. Kann ich eine Gleisbox ohne Mobile Station verwenden ohne Nachteile zu haben?

Rohr_Familie


Rohr_Familie

RE: Railuino 0.9 + Artikel + Hardware

#40 von starky ( gelöscht ) , 27.05.2013 22:19

Es läuft auch völlig ohne Mobile Station prima.


starky

RE: Railuino 0.9 + Artikel + Hardware

#41 von Rohr_Familie ( gelöscht ) , 27.05.2013 23:01

Danke starky.


Rohr_Familie

RE: Railuino 0.9 + Artikel + Hardware

#42 von ICN , 31.05.2013 20:19

Hallo zusammen

Nach einigen Anlaufschwierigkeiten habe auch ich es endlich fertig bekommen, Railuino zum Laufen zu bringen. Allerdings habe ich noch zahlreiche Probleme u.a. wenn auch die MS2 am CAN-Bus hängt. Sobald ich via Railuino Serial-Sketch ein Kommando an eine Lokomotive sende, beginnt diese wie wild zu blinken. Ich nehme an, dass dauernd die Fahrtrichtung gewechselt wird.
Ohne MS2 geht es fast problemlos. Zumindest beim Serial.ino -Sketch läuft das Programm aber relativ instabil und führt zT. dazu, dass der PC gar keine Arduinos mehr erkennt. Auch der Fix von starky hat mir nicht weitergeholfen.. Hat jemand ein ähnliches Problem (vor allem das Blinken) ?

Bin momentan noch am Testen ev. bekomme ich es noch hin am Wochenende

Gruss Matthias


ICN  
ICN
RegionalExpress (RE)
Beiträge: 63
Registriert am: 31.07.2012


RE: Railuino 0.9 + Artikel + Hardware

#43 von starky ( gelöscht ) , 01.06.2013 15:53

Hallo Matthias, welchen Arduino hast Du?


starky

RE: Railuino 0.9 + Artikel + Hardware

#44 von ICN , 01.06.2013 16:40

Hi starky

Ich habe den Arduino UNO (Rev. 3)


ICN  
ICN
RegionalExpress (RE)
Beiträge: 63
Registriert am: 31.07.2012


RE: Railuino 0.9 + Artikel + Hardware

#45 von ICN , 02.06.2013 19:21

Hallo zusammen.

Also nach intensiver Fehlersuche habe ich den Fehler eingrenzen können und auch behoben. Zuerst einmal dachte ich, dass die MS2 zusätzliche Befehle schickt und habe deshalb nur DCC als Lokprotokoll eingestellt. Die Probleme traten aber immer noch auf, deshalb probierte ich auch einmal noch die anderen Sketches aus. Mit dem Speed.ino - Sketch klappt alles wunderbar, nachdem ich dort die Addresse als DCC "deklariert" hatte. Nach einiger Recherche, sah ich dann die Definitionen der Grundwerte der DCC und MM2 Addressen. Bei MM2 ist diese 0x00, also wird eine übergebene Lokaddresse (zB. 72) direkt als MM2 gesendet. Da die Lok in der Mobile Station aber explizit als DCC angesteuert wurde, erhielt sie entsprechend gegensätzliche Befehle auf 2 verschiedenen Protokollen... Tja und so kam es dann zur Disko bei den Frontlichtern xD

Ich hoffe das hilft einigen von Euch beim Einstieg in die Railuino-Welt


ICN  
ICN
RegionalExpress (RE)
Beiträge: 63
Registriert am: 31.07.2012


RE: Railuino 0.9 + Artikel + Hardware

#46 von Rohr_Familie ( gelöscht ) , 09.06.2013 18:46

Hallo,

wir versuchen, das Railuino zum laufen zu bekommen. Wir besitzen ein Arduino Uno rev. 3 zusammen mit dem CANdiy-Shield. Wir haben über das Kabel eine Gleisbox angeschlossen. Die rote LED auf dem CANdiy-Shield leuchtet.

Beim Starten des Testsketchs bekommen wir immer die Fehlermeldung:

***** testMessageClear *****


***** testMessagePrintTo *****

dead R ff 8 00 01 02 03 04 05 06 07

***** testMessageParseFrom *****


***** testController *****

### Creating controller
### Destroying controller

***** testInitController *****

### Creating controller
### Destroying controller

***** testBeginEnd *****

### Creating controller
FF
!!! Init error
!!! Emergency stop

Wenn das Shield nicht angeschlossen ist, kommt als Wert 0 statt FF.

Weiss jemand, was diese Fehlermeldung bedeutet und wie sie zu beheben ist?

Vielen Dank,

Rohr_Familie


Rohr_Familie

RE: Railuino 0.9 + Artikel + Hardware

#47 von starky ( gelöscht ) , 10.06.2013 12:30

Hallo Familie Rohr,

ich bin ja nicht selbst der Autor, habe aber mal in den Code geschaut.

Nach Euren Angaben versagt der Test

"test if we could read back the value => is the chip accessible?"

d.h. auf den MCP2515 Chip kann nicht zugegriffen werden.

Ich vermute, da stimmt was an der Verkabelung nicht.
- Sind die Stecker so wie in den Fotos mit dem Shield verbunden und nicht evtl. um eins versetzt?
- Haben allen Lötverbindungen Kontakt?
- Gibt es keine Kurzschlüsse zu Nachbarlötpunkten?
- Sind auch die 2x3 PINs des ICSPs mit dem CANDiY-Shield verbunden? Auf manchen Fotos fehlen die, sind aber unbedingt nötig.
- Habt Ihr etwa die Jumper J2/J3 gesteckt? Besser weglassen, denn die Spannung des CAN-Busses ist viel zu hoch, da kann der MCP durchbrennen.

Prüft auch mal folgende Dinge (obwohl die Fehlermeldung darauf nicht schließen lässt):
- Ist das Kabel vom Arduino zur Gleisbox richtig angeschlossen? Bei http://code.google.com/p/railuino/ findet Ihr die richtige Belegung, die Belegung aus der c´t Hacks ist FALSCH!!! Auch drauf achten, dass Ihr von der Lötseite auf den MiniDINstecker guckt.
- Sind die Kabel des CAN-Steckers auch alle durchgängig? Bei meinem ersten Versuch war damals eines der Kabel an diesen MinimurksDINsteckern wieder abgegangen.
- Funktioniert die Gleisbox ohne CAN? (Ist wahrscheinlich schwierig, weil Ihr anscheinend keine MS2 habt, vielleicht kannst Du ja eine leihen)

Mehr fällt mir spontan nicht ein, viel Glück bei der Fehlersuche!


starky

RE: Railuino 0.9 + Artikel + Hardware

#48 von starky ( gelöscht ) , 10.06.2013 12:35

Zitat von ICN
Hallo zusammen.

Also nach intensiver Fehlersuche habe ich den Fehler eingrenzen können und auch behoben.... Da die Lok in der Mobile Station aber explizit als DCC angesteuert wurde, erhielt sie entsprechend gegensätzliche Befehle auf 2 verschiedenen Protokollen... Tja und so kam es dann zur Disko bei den Frontlichtern xD

Ich hoffe das hilft einigen von Euch beim Einstieg in die Railuino-Welt



Da wäre ich nicht drauf gekommen, aber gut zu wissen, falls ich mal eine DCC-Lok draufstelle.

Müsste mit MFX eigentlich genau so ein Problem sein, wenn ich die von der MS2 automatisch unter MFX und per Railuino unter MM ansteuere, habe ich aber noch nicht probiert.

Ich hatte anfänglich mal Probleme mit Blinken und Ruckeln der Lok, aber das lag am Decoder und kam auch ohne Railuino vor.


starky

RE: Railuino 0.9 + Artikel + Hardware

#49 von Thomas Buchner ( gelöscht ) , 17.07.2013 21:07

Hallo zusammen,

ich möchte gerne, so wie in den Beispielen zu Railuino zu finden ist, eine einfache Pendelstrecke realisieren, auf der eine Lok zwischen 2 Schaltgleisen pendelt. Da der Aufbau möglichst einfach sein soll, möchte ich auch auf S88 Rückmelder verzichten. Damit wäre doch der Einsatz des MCP23S08 nicht notwendig. So habe ich es zumindest aus dem c`t Artikel verstanden. Leider finde ich nirgends einen Hinweis, wo die Schaltgleise am Arduino angeschlossen werden.

Vielleicht hat ja jemand sowas schon realisiert und kann mir einen Tipp geben.

Vielen Dank schonmal.

Grüße
Tom


Thomas Buchner

RE: Railuino 0.9 + Artikel + Hardware

#50 von starky ( gelöscht ) , 18.07.2013 10:58

Hallo Thomas,

ich glaube, da hast Du ein Verständnisproblem: Der MCP23S08 ersetzt den S88 Rückmelder.

Für eine einfache Pendelstrecke könntest Du aber auch wirklich auf beides verzichten und lediglich zwei der freien Eingänge des Arduinos nutzen, ich meine so stand es auch im Artikel irgendwo. Sobald Du aber mehr als nur eine einfache Pendelstrecke machen willst, werden Dir aber die Eingänge ausgehen. Dann nimmt man MCP23D08 als "Port-Expander", de stellt einfach ein paar Eingänge mehr zur Verfügung.

Aber Achtung! Wenn Du die Eingänge des Arduino direkt benutzen willst, dann solltest Du die irgendwie entkoppeln oder zumindest einen großen Widerstand davor machen. Nicht, dass Du da 20V draufhaust...


starky

   

mLD3/mSD3: Einmessfahrt ohne CS2? Gelöst für MS2
Rocrail kein Zugang mehr

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz