Haythornthwaite and Westby Tea Railway - automation
Dear Bill and friends,
I am developing a model railway and would love some of your oversight on a project to control a train lift (vertical mechanism for moving trains between my lower and higher track levels), my transfer table (horizontal mechanism for aligning seven train storage sections to the upper track level) and two turntables (one on each level).
My railway is ‘009’ (narrow gauge track at 00 (similar to HO) scale) and will represent an imaginary Indian mountain railway. It will be called the ‘Haythornthwaite and Westby Tea Railway’.
Commands will be received by ‘LocoNet’ and interpreted by GCA185 Arduino shields that I have not yet got to work.
Actuation will be by stepper motors controlled by Arduino CNC shields.
Positioning sensors are IR speed controllers.
Track blocks will be powered on and off for ‘fail-safe’ operation by Arduino-controlled 16-channel relay boards. (This is to prevent me driving trains on or off the train lift, transfer table, or turntables when they are not correctly aligned.)
I am using Digital Command Control (DCC) and Java Model Railroad Interface (JMRI) for general control but that has no direct bearing on the above except for the LocoNet interface.
I have more planning I can show but I would first like to know if anybody is interested in following along and advising.
It seems we have similar ambitions with our model layouts. My train elevator project also involves relays to kill power to the tracks while the elevator is in motion. In addition, my project uses a keypad for selecting the desired staging track alignment, a LCD for status display, and a 16-channel servo driver for aligning the servo-actuated turnouts -er- points? (Are you English or Australian?) And there are LED outputs to power trackside signals. And I will be using IR detectors to show the positions of trains on the staging tracks and to accurately stop them. (The staging yards are in a separate room, out of sight) And if/when I get all this built and operating, maybe I'll add Bluetooth capability with smartphone app control - or train automation in/out of the staging tracks via JMRI!
I'm also in the beginning stages of a project to operate a turntable via an Arduino-controlled stepper motor.
And I have completed another layout project, an 'NX machine'. 'NX' means 'entrance/exit'. It is like a prototype interlocking machine. It is an Arduino that can control and align numerous turnouts to set up routes through complex trackage, like at a yard throat or a multi-track junction. The operator only has to select the entrance point and the desired exit point, and the machine aligns the route.
So, yes, I'd be interested in collaborating with our similar interests.
Although I'm English I grew up in Ottawa so I should be saying 'turnouts' or 'swtiches', but as I am the Social Media Officer for the rather British 009 Society (narrow gauge modelling) I tend to say 'points'.
In due course I'll be moaning about my difficulties with control. I'm committing to DCC control (using switch/point/turnout commands) without any local keyboard or other interface. But so far, my LocoNet interface doesn't work...
Meanwhile this is the design of my transfer table (horizontal motion) mechanism which uses a rack and pinion instead of a winding spindle and cable. The table itself is not shown but pink is the rack, mounted below the transfer table; grey is the fixed mounting for the stepper motor (not shown); orange is the pinion, and green is mounts for the blue rail that supports the transfer motor wheels. (A representation of my twin IR sensors is red.)
The maths is similar to that of the train lift: one motor step should move the transfer table about 0.14 mm.
I finally got my train elevator issues sorted out. Check out my latest post in the motors and control forum. https://forum.dronebotworkshop.com/motors/issues-with-linear-actuator-with-linear-encoder-feedback/#post-13914 Maybe some of my code can give you some ideas for your project?
BTW - regarding your last post - Nice CAD drawing! Looks like SketchUp which I have used. Where do you find racks and pinions like those? Also, for my limit switch, this optical end-stop switch works well for me:
click here: optical endstop switch
It's easy to connect, easy to code, has a nice indicator LED on it, needs no additional electronic components, and it's not too expensive from Amazon.com.
Let me know about your progress.
Well done over on your project! I'll comment there soon. I'll certainly see what I can use from your code - probably the deceleration at least.
My CAD drawing is from Tinkercad. The rack and pinions are from this post on Thingiverse. It doesn't do herringbone teeth but I just joined one rack with its mirror image.
I've converted my train lift approach from a winding spindle to a rack and pinion to match my transfer table. Not only does it work but there's a lot to be said for standardization.
I hope to report on all my work this weekend.
Have a nice weekend!
My model railway transfer table and train lift 'sort of' work.
In the first post of this thread I wrote:
"Commands will be received by ‘LocoNet’ and interpreted by GCA185 Arduino shields that I have not yet got to work."
The first reason is practical. I couldn't get my GCA185 to work. It came as a printed circuit board and a bag of bits, and either I assembled some part of it wrongly or I my Arduino interpreter code is wrong. I've put almost no effort into debugging but I would like to resolve it one day as I am sure I can think of an application.
The second reason is conceptually, the GCA185 was the wrong approach for what I want to do, which is to decode commands on the DCC bus and operate my machinery according to commands sent to specific addresses. The GCA185 interprets 'LocoNet' chatter which includes block occupancy status reports and so on. In fact I think LocoNet does echo DCC commands but the purer way to respond to them is to decode them from the DCC bus, and that's what the DCC Decoder Shield does.
I mentioned my other change two days ago. I've converted my train lift machinery from a winding spindle to a rack and pinion to match my transfer table.
I anticipated integrating IR speed sensors this weekend for motion limit detection but that also encountered difficulties. I was expecting to connect my sensors (I'll need six) to an Arduino Sensor Shield piggybacking on my DCC Decoder Shield. But as I've slowly learned, and should have known already, the two shields try to access many of the same Arduino pins, which doesn't work. I'll have to run the sensors from another Arduino, which will bring my system to six Arduinos gossiping together on I2C. When I've updated my architecture diagram I'll post it here.