Support
Wiki Documentation
Support Forum
Mobile
- andRoc Android
- Rocweb Browser
- WIO-Control ESP32
- Rocview Tablet
- RC-Cab Android
DIY
User
Wiki writer
Legal
Support
Wiki Documentation
Support Forum
Mobile
DIY
User
Wiki writer
Legal
Die ArduCAN Familie besteht aus Modulen zum Anschluss an den CAN-Bus. Allen gemein ist, dass sie auf Basis eines Arduino nano und eines gewöhnlichen CAN-Transceivermoduls aufgebaut sind. Der Aufbau ist auch für Lötneulinge relativ einfach möglich, da nur wenige Bauteile einzulöten sind und keine SMD-Teile verwendet werden.
Derzeit besteht die Familie aus:
ArduCAN Servo | ArduCAN-GBM Masse | ArduCAN-GBM Strom |
---|---|---|
![]() | ![]() | ![]() |
Der „ArduCAN-Servo“ ist ein Decoder für den CAN-Bus auf Basis eines Arduino nano und verfügt über 8 Ausgänge zum Anschluß von Servos. Ab der Software-Version 1.2 können auch 8 Relais zur Herzstückpolarisation angesteuert werden. Dazu verbindet man z.B. eine 8-fach Relaisplatine für Arduino mit der 10-poligen Pinleiste (8-Ausgänge, GND und +5V) des "ArduCAN-Servo".
Zur Konfiguration kann der in rocrail bereits bestehendene Programmierdialog des CAN-GC6 verwendet werden.
Mit diesem stellt man standardmäßig die Serovs 1-4 ein. Um mit dem Programmierdialog auf die Servos 5-8 zugreifen zu können, muß die Variable 44 des "ArcuCAN-Servo" zunächst auf 1 gestellt werden. Das erledigt man schnell über den Reiter Variablen. Dann im Feld Übersicht die 44 eintragen und "Auslesen" drücken. Den Zahlenwert auf 1 verändern und "Einstellen" klicken. Fertig. Nun werden im Programmierdialog die Servos 5-8 bearbeitet. Zurückstellen der Variable 44 auf 0 bedeutet wieder Servo 1-4.
Hier gibt's ein Video, in dem gezeigt wird wie's geht.
Wichtig: Die Einstellung der Variable 44 bezieht sich nur auf den Programmierdialog. In der Verwendung des Decoders hat die Variable keinen Einfluss.
Der „ArduCAN-Servo“ wird an den CAN-Bus angeschlossen; entweder über D-Sub Stecker oder Standard-Netzwerkkabel, je nachdem welche Buchsen auf der Platine verbaut wurden. Der mit „Busende“ gekennzeichnete Jumper dient dazu den CAN-Bus zu terminieren. Dieser ist am Ende eines CAN-Bus Stranges zu setzen. Die u.g. Details zur Stromversorgung bitte ebenfalls beachten.
Nachdem der „ArduCAN-IR“ mit Strom versorgt ist, blinken die LEDs „RX“ und „TX“ des Arduinos für circa fünf Sekunden recht schnell. In dieser Zeit kann durch Drücken und Gedrückthalten des Arduinotasters ein Reset aller Einstellungen des Bausteines ausgelöst werden (Bitte erst Drücken, wenn die LEDs schon 4-5x geblinkt haben). Wenn der Reset abgeschlossen ist, leuchten die beiden LEDs „RX“ und „TX“ dauerhaft. Nun kann der Taster wieder losgelassen werden und der Baustein geht nach Neustart (Netztrennung) normal in Betrieb. Dies ist an der dauerhaft leuchtenden LED „TX“ zu erkennen. Wird währed des Betriebes der Taster des Arduinos kurz gedrückt, so wechselt der Baustein in den Modus zum Einlernen der Knoten-Nummer. Dies wird durch ein Blinken der LED „TX“ signalisiert und „rocrail“ zeigt den enstprechenden Dialog am Bildschirm an. Nach erfolgtem Absenden der neuen Knoten-Nummer durch die Steuerungssoftware (z.B. rocrail) erlischt die LED „TX“ wieder.
Signal-LED | Bedeutung |
---|---|
„RX“ und „TX“ blinken schnell für circa 5 Sekunden | Initialisierung des Prozessors. Resetbefehl durch Drücken und Gedrückthalten des Tasters möglich. Taster erst drücken, wenn „RX“ und „TX“ schon 4-5x geblinkt haben. |
„RX“ leuchtet dauerhaft | Normaler Betriebsmodus |
„TX“ blinkt | Lerne Knotennummer (Setup) |
„RX“ und „TX“ leuchten dauerhaft | Reset beendet → Taster loslassen und Modul vom CAN-Bus trennen (spannungsfrei machen) → Fertig |
„RX“ und „TX“ blinken langsam | Prozessorfehler! Entweder Software nicht richtig eingespielt oder Probleme mit der Spannungsversorgung. |
Der Decoder ist für den Eigenbau gedacht. Unbestückte Platinen oder programmierte Prozessoren können aber beim Verfasser (schumo99) angefragt werden. Ich helfe gerne!
Für jedes Servo ist ein 3-poliger Anschluss vorgesehen.
Anschlusspin | Kabelfarbe | elektronische Bedeutung |
---|---|---|
Pin auf der Boardaussenseite | schwarz/braun | Minus-Pol |
Mittlerer Pin | rot | Plus-Pol |
Pin auf der Boardinnenseite (dem Arduino zugewandet) | gelb/weiß/grün | Signal |
Neben den Anschlüssen für die Reflexlichtschranken muss der ArduCAN-IR auch an den CAN-Bus angeschlossen werden. Das kann entweder über D-Sub-Stecker oder über RJ45-Buchsen erfolgen, so dass normale Netzwerkkabel verwendet werden können. Auch ein Mischbetrieb ist möglich. Der Vorteil der Netzwerkkabel ist, dass sie in allen Längen günstig überall zu finden sind. Dem steht der Nachteil gegenüber, dass die Strombelastbarkeit deutlich geringer ist. Deshalb ist die Möglichkeit gegeben auf den ArduCAN die Spannung erneut einzuspeisen und dadurch die geringere Strombelastbarkeit der Kabel auszugleichen. Dies ist nicht auf jedem Modul nötig, kann aber nach eigenen Wünschen von Zeit zu Zeit vorgenommen werden.
Ja nach gewünschter Konfiguration müssen auf der Unterseite der Platine die entsprechenden Lötjumper geschlossen werden. Welche Jumper bei welcher Kombination zu schließen sind, ist praktischerweise direkt auf der Platine aufgedruckt.
Die Anschlussbelegung der D-Sub Stecker/Buchsen ist identisch zum bereits bei anderen CAN-Bus Komponenten verwendeten Standard (siehe Punkt Anschlusskabel).
Die RJ45-Steckverbindung ist wie folgt beschaltet:
Pin | Belegung in Version 1.x | Belegung ab Version 2.0 | Kabelfarbe |
---|---|---|---|
1 | +V Versorgung | +V Versorgung | ws/gn |
2 | +V Versorgung | +V Versorgung | gn |
3 | CAN L | CAN L | ws/or |
4 | CAN H | GND | bl |
5 | +V Versorgung | +V Versorgung | ws/bl |
6 | GND | CAN H | or |
7 | GND | GND | ws/br |
8 | GND | GND | br |
Die Beschaltung der RJ45-Buchse wurde ab Version 2.0 geändert, damit der CAN-Bus auf einem verdrillten Adernpaar läuft.
Die Stromversorgung erfolgt standardmäßig aus dem CAN-Bus. Der Jumper „Power“ wird standardmäßig geschlossen und ein Spannungswandler auf die Platine montiert. Dadurch wird die ganze Platine und alle Servos mit dem Strom des CAN-Bus versorgt.
Folgende Möglichkeiten stehen zur Verfügung:
Power-Jumper | POWER-IN | Bedeutung/Verwendung |
---|---|---|
egal | nichts angeschlosssen | Der „ArduCAN IR“ und alle Anschlüsse werden über den CAN-Bus mit Strom versorgt. (siehe auch *) |
Geschlossen | CAN-Busspannung, direkt von der CAN-Bus-Schnittstelle entnommen | Um Leitungsverluste des CAN-Bus auszugleichen, kann die Busspannung erneut eingespeist werden. Achtung: Keine andere Stromversorgung verwenden |
Offen | Netzteil | Der „ArduCAN-Servo“ und alle Servos werden über das angeschlossene Netzteil mit Strom versorgt. (siehe auch *) |
Offen + Lötjumper „+5VIN“ auf der Unterseite geschlossen | Netzteil (5V) | Die gesamte Stromversorgung des „ArduCAN-Servo" und aller angeschlossenen Servos erfolgt durch das externe Netzteil. In diesem Fall muss der Spannungswandler nicht auf der Platien montiert werden. |
* Der „ArduCAN-Servo“ arbeitet intern mit 5V, welche auch den Servos zur Verfügung gestellt werden. Wenn die CAN-Busspannung deutlich über 12V liegt oder die Servos viel Strom benötigen, ist der interne Spannungswandler überlastet. Man merkt das daran, dass der Arduino sehr warm wird, oder es im Extremfall sogar kurze Aussetzer gibt. Dann muss die interne Spannung von 5V mittels eines DC/DC-Wandlers erzeugt werden. Dies ist auf der Platine bereits vorgesehen.
Aus besagten o.g. Gründen wird in jedem Fall empfohlen die Spannungswandlung aufzubauen, da die Servos doch meist etwas mehr Strom verbrauchen. Als Spannunswandler kann z.B. ein LM7805 verwendet werden. C1 und C2 (z.B. 100µF) und der 100nF Kondensator müssen dann auch bestückt werden. Alternativ kann auch ein komplettes step-down Reglermodul , welches pinkompatibel zum 7805 sein muss, benutzt werden. Die Kondensatoren sind dann nicht nötig, schaden aber auch nicht.
Fertig bestückte Decoder gibt es keine, jedoch kann ich Platinen und auch programmierte Prozessoren (nanos) abgeben. Für Fragen oder Hilfe stehe ich gerne im rocrailforum oder stummiforum zur Verfügung.
Beim Design der Platine wurde auf einfachen Aufbau geachtet. Daher sind keine SMD-Bauteile einzulöten. Stattdessen müssen hauptsächlich vorgefertigte Baugruppen über Buchsenleisten miteinander verbunden werden.
Anzahl | Bauteil | Verwendung |
---|---|---|
1x | Arduino Nano V3.0 5V | Mikroprozessor. Entsprechende "clones" sind auch möglich. Der darauf verbaute USB Chip ist irrelevant. |
1x | CAN-Bus Modul MCP2515 TJA1050 | CAN-Transceiver |
2x | Buchsenleiste 15-polig | Zum Aufstecken des Arduino nano |
1x | Buchsenleiste 7-polig | Zum Aufstecken des CAN-Transceivers |
2x | Buchsenleiste 2-polig | Zum Aufstecken des CAN-Transceivers |
2x | D-Sub Stecker/Buchse oder RJ45-Buchse | Zum Anschluss an den CAN-Bus |
1x | Steckerleiste 2-Pin | Terminierung des CAN-Busses |
4x | Steckerleiste 2x3 Pin | Anschlüsse für Servos |
1x | LM7805 | Spannungswandler |
3x | Elko 100µF | Spannungsstabilisierung (C1, C2 und C5) |
1x | Keramikkondensator 100nF | |
1x | Steckerleiste 10-Pin | Anschluss für Relais (optional ab Hardware V2.0) |
1x | Widerstandsnetzwerk 22k z.B. SIL 9-8 22k | Verhinderung des Einschaltzuckens (optional ab Hardware V2.0) |
Ich habe bei "reichelt" einen Musterwarenkorb erstellt, der alle zwingend benötigten Teile bis auf den Arduino und den CAN-Transceiver enthält. Die D-Sub-Buchsen oder die RJ45-Buchsen müssen noch gelöscht werden.
Nein, ich bekomme da keine Provision und die Teile gibt's bestimmt auch woanders günstiger.
Wenn die Buchsenleisten nicht in der richtigen Länge zu bekommen sind, diese zuerst mit Säge/Feile auf die richtige Länge bringen (16 → 15-Pin bzw. 3 → 2-Pin). Dann einfach alle Bauteile einlöten, die auf der Unterseite befindliche Lötjumper "SERVO" schliessen.
Achtung: Beim Einbau des Widerstandsnetzwerkes auf die richtige Orientierung achten! Die gekennzeichneten Stellen auf der Platine und des Bauteils gehören zusammen.
Zum Schluss den programmierten Arduino und den CAN-Transceiver aufstecken.
Der Arduino muss vorher mit der Software „ArduCAN_Servo.hex“ programmiert werden. Die Fuses sind so zu setzen, dass der Reset-Pin als I/O-Pin aktiviert wird. Es empfiehlt sich einen Bootloader zu benutzen, da sonst keine weitere Programmierung des Arduinos (z.B. Updates) mehr möglich ist.
Achtung: Werden die Fuses falsch gesetzt ist es möglich, dass der Arduino irreparabel beschädigt ist!
Wer es sich nicht zutraut, biete ich gerne an seinen/ihren Arduino zu programmieren oder einen bereits entsprechend programmierten Mikroprozessorbaustein zur Verfügung zu stellen. Gleiches gilt für Platinen.
Einfach kurze PN an schumo99
Der Verfasser übernimmt keine Verantwortung für Funktionsfähigkeit oder etwaige Schäden, die durch die Nutzung der Schaltung entstehen. Der Aufbau erfolgt auf eigene Verantwortung.
Gerberdateien, Aufbauanleitung, inkl. Materialiste, HEX-file können hier geladen werden: https://github.com/schumo99/ArduCAN-Servo
Matthias (schumo99)