Deev Posted July 9, 2012 Author Share Posted July 9, 2012 (edited) 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. Edited July 9, 2012 by Deev Link to post Share on other sites More sharing options...
beeman Posted July 11, 2012 Share Posted July 11, 2012 (edited) 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 July 11, 2012 by beeman Link to post Share on other sites More sharing options...
Deev Posted July 11, 2012 Author Share Posted July 11, 2012 (edited) 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 July 15, 2012 by Deev Link to post Share on other sites More sharing options...
beeman Posted July 12, 2012 Share Posted July 12, 2012 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 More sharing options...
Deev Posted September 15, 2012 Author Share Posted September 15, 2012 (edited) 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. 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: 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 September 15, 2012 by Deev 4 Link to post Share on other sites More sharing options...
MattWallace Posted September 16, 2012 Share Posted September 16, 2012 Heh, looks very cool - I like the idea of the servos to ensure the track positioning. Makes me wish I had enough room to squeeze a traverser in! Link to post Share on other sites More sharing options...
Deev Posted September 16, 2012 Author Share Posted September 16, 2012 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 More sharing options...
Deev Posted September 20, 2012 Author Share Posted September 20, 2012 (edited) 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 September 20, 2012 by Deev Link to post Share on other sites More sharing options...
MattWallace Posted September 21, 2012 Share Posted September 21, 2012 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 More sharing options...
Deev Posted September 21, 2012 Author Share Posted September 21, 2012 (edited) 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 September 21, 2012 by Deev Link to post Share on other sites More sharing options...
MattWallace Posted September 21, 2012 Share Posted September 21, 2012 I need to look into this further... Thanks for the heads up. Link to post Share on other sites More sharing options...
CWJ Posted September 21, 2012 Share Posted September 21, 2012 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 More sharing options...
Deev Posted September 21, 2012 Author Share Posted September 21, 2012 (edited) 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 September 21, 2012 by Deev 2 Link to post Share on other sites More sharing options...
CWJ Posted September 22, 2012 Share Posted September 22, 2012 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 More sharing options...
Deev Posted September 22, 2012 Author Share Posted September 22, 2012 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. 2 Link to post Share on other sites More sharing options...
Deev Posted September 25, 2012 Author Share Posted September 25, 2012 (edited) 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 September 25, 2012 by Deev Link to post Share on other sites More sharing options...
Gordon H Posted September 26, 2012 Share Posted September 26, 2012 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. 2 Link to post Share on other sites More sharing options...
Deev Posted September 26, 2012 Author Share Posted September 26, 2012 (edited) 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 September 26, 2012 by Deev Link to post Share on other sites More sharing options...
Gordon H Posted September 26, 2012 Share Posted September 26, 2012 (edited) 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. Edited September 26, 2012 by Gordon H 3 Link to post Share on other sites More sharing options...
Gordon H Posted September 26, 2012 Share Posted September 26, 2012 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! 1 Link to post Share on other sites More sharing options...
Deev Posted September 27, 2012 Author Share Posted September 27, 2012 Thanks Gordon, it looks kind of like how I imagine mine would look. Did you use sections of angle instead of rails? Link to post Share on other sites More sharing options...
Gordon H Posted September 27, 2012 Share Posted September 27, 2012 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 More sharing options...
Deev Posted September 27, 2012 Author Share Posted September 27, 2012 (edited) 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: Linked to my DCC system, it looks like this: 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 September 28, 2012 by Deev 2 Link to post Share on other sites More sharing options...
Deev Posted October 30, 2012 Author Share Posted October 30, 2012 (edited) 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). 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 October 30, 2012 by Deev 1 Link to post Share on other sites More sharing options...
Deev Posted November 9, 2012 Author Share Posted November 9, 2012 (edited) 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 November 9, 2012 by Deev 2 Link to post Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now