Jump to content
 

Automated Motorised Traverser


Deev
 Share

Recommended Posts

Hi Beeman,

 

The main reasons for wanting to construct a traverser are thus:

 

1) I wish to model the station at Filton Abbeywood, which has SW trains crossing the 'midland' mainline. This would necessitate an extremely complex fiddleyard entrance.

2) I'd like to run as many prototypical length trains as possible, the size of the fiddleyard would occupy space that I don't have.

3) The cost of points / motors / DCC accessory decoders for a 9-lane fiddleyard would be huge, I reckon even with a Arduino stepper motor control, the cost of a traverser should be much less.

 

I've come up with a similar solution to the one you suggested, the same in fact, but using timed belts, arranged at both ends of the table, with support in the middle. Instead of using a continuous belt, I notice from the CNC forums that the below is a preferred method:

 

A worry here is whether a 2900mm shaft will twist and knock the alignment out.

post-7760-0-12365200-1341865294.gif

Edited by Deev
Link to post
Share on other sites

Sound idea Deev, or inverted to position the belt, or chain so it was under the actual traverser bed/frame. Means of course the drive motor/gear unit which would then be on the U/S of the bed/frame as well, strength/weight taken into account. Rather than a shaft, a tube would have less twist , perhaps aluminium to keep weight down with suitable ends, intermediate support bearings needed to eliminate sag over the length proposed and if motor/gearbox mounted midway, minimiseing any twist. Cost could be reduced if happy to buy your points/ motors at a Model fair, I found cost usually around 35/40% of new, close inspection to make sure good. and unless computer controlling then why not a diode matrix for route selection ?, accessory decoders rare S/H as yet. Many of my points are the old steel/die cast bladed ones where not seen and as long as they perform, OK.. I get almost nil probs with them on DCC either, but this may be due to fitting as many wheel pickups as poss. and DCC. H.F. My previously suggested idea advantage is if the roller bike chain was fixed to the U/S of the bed it could run on the edge of the support aluminium/steel angle so supporting the whole thing as well as providing movement, so additional runners only at ends, or intermediate depending on length/construction.. Stepper motors fascinate me as much as others, but don't forget. you are programming/referencing the motor, not the final movement, so any backlash in the 'engineering' can show, no matter how accurate the stepping, Pays to evaluate as many Ideas as poss., Few for thought Cheers Beeman.,

Edited by beeman
Link to post
Share on other sites

A tube, yes of course, that's another problem solved and yes, mounting it upside down would be best for a traverser.

 

I wonder how much backlash there would be with a tensioned direct belt drive? I've spent a bit of time looking at CNC machines and a few seem to be set up like the diagram above, (see below). If anyone was going to suffer with backlash it'd be the CNC people.

 

http://www.youtube.com/watch?v=9QgnD-bgd_4

 

I don't have anything against using a chain, but belt and belt parts seem to be more plentiful off the shelf without serious modification and it's possible to use a much smaller spur gear with a belt than a chain to give slower speeds without necessitating any step down gearing.

 

As for the points, I don't like solenoids and prefer electrofrog, to satisfy the obsessive conpulsive in me. I plan to use USA-sourced Tam Valley Depot servo drivers for the points on the layout with solid state frog switching which I've procured already. Check out the video. It's all very smooth.

 

http://www.youtube.com/watch?v=AYeHyxWWnwI

Edited by Deev
Link to post
Share on other sites

Hi Deev , when suggesting chain/sprockets I was thinking of Chinese bike parts, reckon cheaper than belt bits, or knowing me I'd be having a look in the local scrap yards. just a suggestion. The backlash won't bother to much if you 'sense' the stopping positions/registers from off the moving 'table', The circuit I posted for a T/T would be ideal as it slows down pre stopping, so reducing any inertia/overun due to weight.

Link to post
Share on other sites

  • 2 months later...

I've spent the last few weeks doing some serious 'to-ing and fro-ing' on what sort of control and drive system I need for my traverser. For the support of the traverser carriage, I've got hold of some lengths of 6mm rod and some corresponding linear bearings. Using four of these and supporting these at both ends and at the mid-point should give me an accurate, smooth and low-resistance movement.

post-7760-0-89700700-1347729171_thumb.jpg

 

The drive system has been a bit more involved, but I've decided on stepper motors having seen them used on similar projects. As my traverser is long, I reckon the best way of driving it is to use 2 steppers that are slaved together so that I don't have to fit a long driveshaft (with its inherent twisting and support issues). To control it I've bought an Arduino Uno board and an Adafruit Motor shield. This allows me to drive 2 x stepper motors as well as 2 x servo motors whilst still having enough spare pins for control from an accessory decoder.

 

I plan to use the servos to act as an alignment lock to help the tracks align, but also as a method of stopping the table moving when the steppers are depowered. the whole setup looks like this:

post-7760-0-12754200-1347729201_thumb.jpg

 

As for the movement drive, I've bought some really cheap MOD1 rack and RC car pinions to see how suitable they are. With all the kit now bought I've been keen to experiment with it. I've put together a simple script that cycles the servo, then moves the rack before cycling the servo again, moving the rack, then cycling the servo before returning the rack to the beginning. I've also coded a 'soft-start' to make things a bit smoother. I'm really surprsied as to how easy it was and reckon it's been a success. All I need to do now is put together the traverser itself!

http://youtu.be/TsfmOmQIDxI

Edited by Deev
  • Like 4
Link to post
Share on other sites

Thanks, there's always enough room for a traverser!

 

The servos can also actuate a switch so that when they are in the 'unlocked' position, power is removed to the traverser table and the traverser is feedback to the DCC station as 'occupied' to prevent locos driving off the edge.

Link to post
Share on other sites

After trying to work out how to control the Arduino via an accessory decoder, it occurred to be that a more effective and versatile way would be to control the Arduino itself via the DCC signal via Pin 2.

 

I've done some length web-research on this and the following links I found to be useful (put here for my own reference really):

 

http://fritzing.org/...a-dcc-decoder/

http://groups.yahoo....s/message/28542

http://mrrwa.org/

http://groups.yahoo....s/message/28542

http://www.oscale.net/en/simpledcc

 

And here are the Arduino libraries (just in case I lose them):

 

MRRwA-2012-06-15.zip

 

Has anyone seen anything similar to this anywhere?

Edited by Deev
Link to post
Share on other sites

So just to confirm (based on the Fritzing Diagram) the Arduino is controlled by sending DCC packets along the wires?

 

I'm trying to work out which way around you're hooking this up - does the arduino generate the DCC signal or decode it and carry out actions based upon the packets it receives?

Link to post
Share on other sites

The Arduino will act like a DCC accessory decoder, it will just 'listen' for the relevant packets then move the steppers accordingly. It feels a more elegant solution than using a separate DCC decoder.

 

Helpfully there seems to already be a library that does this already, courtesy of MRRWA!

Edited by Deev
Link to post
Share on other sites

Brilliant! Can't believe I've only just found this thread. I tried to do something similar with a very long traverser (about 3m) and although I got it running smoothly I never managed to motorise it successfully, let alone automate it. More info halfway down this thread, if anyone's interested: http://www.rmweb.co.uk/community/index.php?/topic/14963-wills-garage-layout/

 

I'll follow this with interest :)

 

Cheers,

 

Will

Link to post
Share on other sites

Will,

 

Looks like you've done the hard bit, i.e. getting the traverser built and running smoothly. Fitting a stepper motor to your traverser, in theory, should be straightforward. Maybe have a look at http://www.motionco.co.uk at their range of timing pulleys and open belts. I reckon you'll need a hefty stepper to move your traverser. Either than or lots of gearing!

 

Wiring and programming an Arduino to automate it with push-buttons and programming is simple enough. Even with simple scripting those steppers are deadly accurate, I left mine running all night and it was still moving back and forth to the same locations. Clearly though, the key is to minimise backlash in the drive mechanism.

 

I reckon you'd be best off with an Arduino MEGA (http://arduino.cc/en...noBoardMega2560) rather than an UNO like I have, as these have 54 (oh yes) digital I/O ports rather than the 20 that the UNO has (most of which are taken by the motor shield anyway. You can even get LCD screens to plug it as well, if you want to be really flash.

 

Getting it going via DCC is a challenge at the minute, but if you have a spare accessory decoder and a few Opto-Isolators this shouldn't prove to be a problem. I'm amazed that the model railway community hasn't cottoned-on to the Arduino before. By making it DCC compatible and with all that I/O potential it is possible to get a 50-servo driver for 20-25 quid, or a mere 20-servo driver with sound, 20 block feedback, etc., etc.

 

Feel free to post any thoughts, ideas or progress.

 

Dave

Edited by Deev
  • Like 2
Link to post
Share on other sites

Dave,

 

Thanks for your advice - that's very helpful. My motors were large DC machines with gearboxes and had no trouble shifting the traverser, the issue was stopping them! Or to be precise, stopping them in the right place. I had thought a good old-fashioned control system with a couple of relays and microswitches, coupled with mechanical locking devices operated by soleniods, would be easier than a digital control system - clearly stepper motors would be far easier as I could do away with so many moving parts.

 

As for automation, I was going to just use a PIC chip, but having seen the price of the Arduino this is a tempting alternative. My traverser is next to a swinging baseboard section (for human access to the middle of the layout) so I could use the microprocessor to control train movements on both the traverser and the swingbridge. Hmmm...

 

Cheers,

 

Will

Link to post
Share on other sites

The steppers are so accurate that I don't reckon you really need any sort of positional feedback, but it all depends on how accurate your drive mechanism is I suppose. It can all be fine tuned via code anyway.

 

The 12v stepper motors that I'm experimenting with are these: http://proto-pic.co.uk/stepper-motor-with-cable/ with the twin stepper motor shield from Adafruit (I got mine built up for a fiver!). I plan to have 2 x drive mechanisms slaved together, one at each end of the traverser.

  • Like 2
Link to post
Share on other sites

I've spent some time trying to decipher the Alex Shepherd Arduino sample code, and can't do it. Instead, I've found this which looks far easier to understand and more attune to what I'm trying to do:

 

http://www.mynabay.c...ino-dcc-monitor

 

The DCC Decoder Library (halfway down the page) shows the data files that are needed. I've uploaded the sample code to my UNO and it does actually compare. Result!

 

My Opto-isolators showed up today, so hopefully I'll get these soldered in to a board and get going with this in the next few days.

 

Dave

Edited by Deev
Link to post
Share on other sites

What form of DCC accessory message do you anticipate using?

When I last looked at the DCC specs, there was nothing directly suitable for use with a traverser or similar, i.e. accessory messages tend to be single bit on/off commands. There were none in the form of a 'Goto Position X' using a numeric value, which would have been ideal.

 

For my own 6 ft motorised traverser I used the stepper motor mechanism from an old Mustek 600 A3 scanner. This lifted straight out of the box as an assembly, virtually ready to use on the baseboard, and giving about 15" of motion. Control was by a prototype multipurpose PCB I was working on at the time, essentially an adaption of one of my MERG RPC interface designs with extra features. One of the extras was a keypad interface which allowed the desired traverser track to be keyed in, so in this case no DCC commands were needed.

  • Like 2
Link to post
Share on other sites

Hi Gordon,

 

Yes, a good point, well made. You are quite right, there is nothing specific for traversers in the DCC protocol. What I had anticipated is using turnout ‘thrown’ addresses as the position ‘call’ for the Arduino with turnout ‘closed’ being the corresponding deactivating function (called simultaneously when the next ‘thrown’ command comes). For example point ID 101 thrown is lane 1, ID 107 thrown is lane 7 etc.

 

Do you reckon that this is a viable solution? I had hoped to cover over this messy workaround by using JMRI or RocRail on a PC / tablet.

 

What I had planned is that on startup, the Arduino drives itself to a known position (ie. position 1) which is hard-stopped with a microswitch and then remembers that position. When a ‘thrown’ command is received, say for lane 7, then the code will determine that it needs to move +6 spaces, then log that the traverser is in position 7. If then a command is received for lane 4, then the code will determine that it needs to move -3 places and log it is in position 4. This way gives the added benefit that the traverse can accelerate and decelerate differently if it is moving 1 or 8 spaces.

 

Position confirmation feedback (for the Arduino) is achieved via the servos driving microswitches connected to two of the Analog inputs to the Arduino.

 

As there are spare analog inputs on the Arduino, I had hoped to use a ‘position set’ rotary switch and ‘move’ push button as a manual traverser operating device.

 

I’m interested in your traverser mechanism, I’m surprised that the mechanism from a scanner is powerful enough to move much at all! Can you post a link if you've got one?

 

Dave

Edited by Deev
Link to post
Share on other sites

The only pictures I can point to immediately were taken at the Nottingham show a few years ago. However, neither show the mechanism underneath the baseboard. I will try to find some more when the opportunity arises.

 

ESTrav1.jpg

 

ESTrav2.jpg

Edited by Gordon H
  • Like 3
Link to post
Share on other sites

I have located a video made during the initial construction and trials of the Effingham South traverser.

The chap pictured is my colleague Bob who was instrumental in the development of the software for the control system.

The video file is dated as 2004. Hard to believe it was that long ago!

 

  • Like 1
Link to post
Share on other sites

For the cassettes yes, using raw (not anodised) Al. Angle on a 2mm MDF base. The intention is/was to keep the mostly 4 car EMU stock on cassettes for storage and transport, and therefore they have to be removable.

Connection from the main baseboard is made to the Al. Angle using sprung brass buffers which contact the angle through holes in the MDF. No actual connectors are used on the cassettes.

Link to post
Share on other sites

Thanks for the info Gordon, some really useful info there.

 

This evening I decided to see if I could crack getting the DCC system to talk to the Arduino. I assembled the circuit below:

 

post-7760-0-53555900-1348778371_thumb.png

 

Linked to my DCC system, it looks like this:

 

post-7760-0-52763800-1348778357_thumb.jpg

 

I then loaded a lightly adapted script of that shown in link #43, so that address 713 turned on output 5 and 714 and turned on output 6.

 

To my amazement, it all worked first time, here's a demo:

 

 

Next job is to now build some hardware, I can sort the code during my lunchtimes at work. It does make me wonder how much scope there is for an embedded Arduino. Even the basic UNO that I have has 20 outputs - Enough to control a quite a few signals and servos. Enough for my layout anyway!

 

Here's a link to another massive (and relevant) Arduino model railway resource: http://modelrail.otenko.com/category/arduino

Edited by Deev
  • Like 2
Link to post
Share on other sites

  • 1 month later...

After a few weeks of work commitments and general head-scratching,I decided it was time ofr an update so decided to mock up a traverser carriage. After having a hunt round my garage, I found some plywood offcuts and copper pipe clips (which are usefully are the same size as the linear bearings I've acquired).

 

post-7760-0-15450800-1351632862.jpg

 

The results were quite pleasing, and it moves reasonably smoothly. Best of all, there is virtually no play in the movement, irrespective of where force is applied. The exercise was useful and allows me to get on with some technical drawings of the traverser mechanism.

 

http://www.youtube.com/watch?v=qO1YzTz2WIA

 

It also got me thinking that instead of having a single traverser on the far side of the layout, I could make a vertical traverser to act as a train lift. This way, I could have two traversers on seperate levels, as the way I see it, the complexity is in getting one traverser going, so a second shouldn't pose a challenge.

Edited by Deev
  • Like 1
Link to post
Share on other sites

  • 2 weeks later...

For those that have been asking for the Arduino code, here it is:

 

 

 

There is a lot of unused code in there, so I hope it can be understood. You'll need the DCC_Decoder library as well, included in the .zip.

 

Hope that helps!

 

Dave

Edited by Deev
  • Like 2
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...