Recommended Posts

A Turing machine is getting closer !! (maybe)

Xris, - a paper by Adam Chalcraft and Michael Greene titled 'Train Sets’, outlines a Turing Machine constructed from train tracks:

http://www.monochrom...l/Chalcraft.pdf

They describe the need for a ‘Distributor’ - a layout which returns the train on alternate tracks. Unfortunately, it requires an infinite number of points to build. Allowing the use of a linked point reduces this to 3. Here is a possible Duplo layout -the point on the right is a sprung point. I’ll see if I can build it.

distributor.png

Edited by Guy_Walker

Share this post


Link to post
Share on other sites

As far as I can remember from my courses on finite state automata, a universal Turing machine needs only 7 flip-flops. Of course, being a universal machine, it needs to read the program defining the machine it emulates, needs to keep a record of the state of that machine, and then also needs to read the input and write the output.

All of this potentially needs and infinite "tape" and an enormous amount of shifting tape back and forth.

So yes, there is an "infinite" thing needed if it is only done with switches. Maybe it could be done with pushing cars around, acting as "bits" on tape, whereby the tape would be some length of straight track, sufficiently long for a given machine to emulate and a given input (potentially infinite). Each car could represent a single "bit', and have a "sense" so that it can be made to represent each of the two bit states (usually called 0 and 1, but I don't like that as it smacks of numbers).

Well, something for another lifetime.

:-)

Share this post


Link to post
Share on other sites

Robert -the infinite points are required for each distributor -not for the (potentially infinite) track !!

The Chalcraft and Greene report (in my previous post) assumes (page 8) that you have a string of network cells to represent each ‘0/1’ position on a tape. Their diagram shows just 3…

Each network cell requires a distributor. These are not easy to construct from lazy and sprung points. As they say:

‘the reader is strongly advised to try constructing one of these - it makes an infuriating problem’ (page 10)

Their solution is to use an infinite number of sprung points. One for each time the distributor is used. They did not allow themselves to use linked points. Not too sure exactly why … I think it adds a whole new dimension of complexity. Maybe someone can tell us!!

However, it does reduce the number of points required for each distributor from infinite to 3. But you still need many network cells. The Lego Turing machine that you linked to for instance has 32 tape positions.

At least that’s my understanding. I’m not going to build a Turing machine -way too big. But a distributor circuit is really just a flip-flop point. So it is useful for other things. A flip-flop counter function (interactive) is here on my cr31 site.

Now if Duplo provided flip-flop points as well as lazy and sprung points things would be a whole lot easier!! It would also allow for some very interesting layouts. As far as I know no manufacturer produces flip-flop points. A reliable mechanism could also be quite a challenge to design.

btw, Ian Stewart in his book ‘The Magical Maze’ describes the same idea but using lazy, sprung and flip-flop points.

Edited by Guy_Walker

Share this post


Link to post
Share on other sites

Hello guys,

Some time ago, while building a duplo layout for my son (then 1.5 years old; mostly destroying whatever I made ;-), I also realized that I could make a binary counter by combining old and new points. With the train visiting part of the track each round, part only once every 2 rounds, and part once every 4 rounds. At first I also thought that it could be a clock of sorts, but the problem there is that it takes the train much less time to go from 000 to 001 than from 011 to 100. So it would not count evenly. Also, even though my layout used fewer tracks than the one shown, by curling round in a kind of flower shape, the train kept stopping before completing the count to 7 (or actually 8).

Before reading this thread (thanks to all contributors!), I did not realize that the new points themselves already show the current count (doh!!), so I thought about somehow making it visible. I came up with the idea of having a bridge with one or more wagons lined up, and a switch direction brick (intelli-train) on top. The locomotive would then push the wagon over the bridge and return to the computations. Or maybe something with balls or flags, but I never sorted that part out.

My son is now 6 years old, ... no just kidding he will be 2 in a couple of months. And although he still really enjoys destroying everything, he is also beginning to put tracks together for the first time :-) So, we have been playing with the trains again, and I have had a few more ideas. Although my son is still way too young, I would like to make some of the train and/or track remote controlled. I was thinking of using technic and power functions to make the lazy points remote controlled, and maybe also make a locomotive (either with power functions or mindstorms). First attempts show that it is quite difficult to find wheels that have enough traction (for the bridge and for pulling) without being too wide (for the points and bridge). These gears work reasonably well http://www.bricklink...tem.asp?P=32498, but not great. I found this picture while searching around for good wheels: http://www.youbrick....oduplo/p7270231. Does anyone have experience and/or suggestions?

Regards,

Peter

Edited by PeterF

Share this post


Link to post
Share on other sites

Peter -great you discovered binary counting by mixing old and new Duplo points.

Very interesting if your counter can use fewer tracks “by curling round in a kind of flower shape”.

Do you have a layout diagram? Even just a rough scan…

It takes the train longer to count higher because of the time taken to travel to and from increasingly distant points. You may be able to make the counter more ‘even’ by always returning the train via the furthest (most distant) point.

As well as flags and balls you can make the point position more ‘visible’ by adding stickers with a ‘0’ and a ‘1’ onto the flat red part so each is revealed or hidden as the lever is moved.

Correct traction is always tricky. Gear wheels tend to have smooth edges.

I have been looking at anti-slip tape so I could use black crossover and short track pieces from the ‘push-along’ train sets. Rubber band ’tyres’ on the train wheels and stick on rubber strips might be enough…or might not. I’ll have a look into it.

Share this post


Link to post
Share on other sites

Hi Guy,

The layout was functionally identical to your suggestion as replicated by Peter Nolan.

From memory I think it was like this:

27xo7dz.png

But I realize now that the following uses the same amount of track:

141nm1z.png

both use less then your suggestion, but it is not related to the 'flower' pattern. Also, whether the right-most point is new or old doesn't really matter I think.

- As well as flags and balls you can make the point position more ‘visible’ by adding stickers with a ‘0’ and a ‘1’ onto the flat red part so each is revealed or hidden as the lever is moved.

Yes that would be much easier, I just didn't realize that connection yet. Also, I really like GBCs :-)

I will also let you know if the wedge-belt + crown gear is a good solution. But I don't have any of them yet, so it might take a while.

BTW, I really like your solution to the linked duplo points. Even though I usually cringe when lego and glue are mixed ;-)

Edited by PeterF

Share this post


Link to post
Share on other sites

Hi Peter,

Thanks for the neat diagrams, they help enormously. You’re right, they use less track and are more compact - so a better counter track layout !!

A new right-most point will make the return loop bi-directional. Otherwise old or new.

Yes, I avoided Lego and glue for quite a while for the same reason. But no alternative. It seems to work well. Maybe Duplo will add a stud or hole to allow normal connection to the lever under the point. Such a small cost I’m surprised there isn’t one.

Share this post


Link to post
Share on other sites

Guy:

Robert -the infinite points are required for each distributor -not for the (potentially infinite) track !!

The Chalcraft and Greene report (in my previous post) assumes (page 8) that you have a string of network cells to represent each ‘0/1’ position on a tape. Their diagram shows just 3…

Each network cell requires a distributor. These are not easy to construct from lazy and sprung points. As they say:

‘the reader is strongly advised to try constructing one of these - it makes an infuriating problem’ (page 10)

Their solution is to use an infinite number of sprung points. One for each time the distributor is used. They did not allow themselves to use linked points. Not too sure exactly why … I think it adds a whole new dimension of complexity. Maybe someone can tell us!!

However, it does reduce the number of points required for each distributor from infinite to 3. But you still need many network cells. The Lego Turing machine that you linked to for instance has 32 tape positions.

At least that’s my understanding. I’m not going to build a Turing machine -way too big. But a distributor circuit is really just a flip-flop point. So it is useful for other things. A flip-flop counter function (interactive) is here on my cr31 site.

Now if Duplo provided flip-flop points as well as lazy and sprung points things would be a whole lot easier!! It would also allow for some very interesting layouts. As far as I know no manufacturer produces flip-flop points. A reliable mechanism could also be quite a challenge to design.

btw, Ian Stewart in his book ‘The Magical Maze’ describes the same idea but using lazy, sprung and flip-flop points.

This is all rather unbelievable…

IFF I go see the Grenoble guys and their machine, I'll tell you.

Your interactive tracks are fantastic. I'd like to go into how you do the interactive displays, but unfortunately I'really in dire time-need right now.

Best!

Share this post


Link to post
Share on other sites

Robert:

Thanks, the interactive layouts do make a difference. This is why it’s taking some time because I need to re-jig the explanations and include other things. The javascript code is shockingly simple -we’ll have to compare notes sometime! I’ve had a quick look at LiveCode.

I’m now looking at ‘maximum run’ layouts. This web page describes an 'Automated Switching Layout' built for shop window displays in the 1940’s. It’s really just a pair of linked co-operative points. I’m adapting the program I wrote to find similar knots to search for any other maximum runs. Not sure how to tabulate the results yet.

As you live so close by it must be worth a visit to the ‘Grenoble guys’. It may provide some insight into a good project -computing with cars on a track maybe. Also very interested to hear their ideas on mechanical computing in general. But don’t rush, wait for some free time and enjoy it :-)

Share this post


Link to post
Share on other sites

Guy:

I looked at your javascript ("inspect source" etc) and saw it is table driven. Should not be too difficult to attempt to translate into LiveCode (if ever I get enough time again).

Mechanical computation is very interesting indeed. About two years ago I was at a special presentation at the Geneva Science Museum where they showed two of the four surviving machines made by Pascal. As usual, the carry-over mechanism was the most fragile and difficult.

The Science Museum in London built part of Babbage's Analytical engine; perhaps with today's crowd funding a bigger part could be built.

I'm the proud owner of a Curta calculator which I bought in 1968 to help with my engineering studies. I can still extract square roots with it.

Today's youngsters can't believe what they see when I take the cover off: http://www.cailliau..../zCurta-en.html

Ah, and Märklin had a cross-switch which had linked points, though I have not given any thought as to whether it would be useful in your designs. Anyway it would be a sprung set. If you type "marklin double cross switch" you will find images.

Perhaps this discussion should be taken to an entirely different forum, not even Lego…

Share this post


Link to post
Share on other sites

Hi Guy,

I like your suggestion for the double-backed two stage counter a few pages ago. I've also been looking at your website to see if some of the computational layouts can also make fun layouts for play or display. The inverted lazy point seems fun. With three destinations and a central switch hub the train will visit ABACABAC... It might also solve all points visited problems, which are created by lazy points.

Also, the dual bypassed lazy point effectively acts as a sprung point right?

I probably won't be connecting any points for now, but I was wondering whether there is an equivalent circuit for this?

Share this post


Link to post
Share on other sites

Hi Peter, -reply to your post above...

1/ I’ve made the max run layout I mentioned last post interactive here. It is a "fun display layout" you might like.

max_run.png

2/ The inverted lazy point is interesting. It acts as a flip-flop point if the train returns back along the same track. So it can alternate between 2 sub-routines for instance. Might not necessarily be APV.

3/ I guess you could say the dual bypassed lazy point acts as a sprung point in some cases. However, it is really just a lazy point where the train is not allowed to 'correct’ the point. This is achieved by adding sprung points so the train by-passes the lazy point and doesn’t switch it. A useful component in some circuits.

4/ To create the equivalent circuit, replace each sprung point with its equivalent two lazy point circuit. So you will need 9 lazy points altogether (treat the central dual sprung point as two separate sprung points). It looks like this:

equiv_dual_bypass.png

I've shown the dual bypassed lazy point lower right in an equivalent position. Hope that helps :-)

Edited by Guy_Walker

Share this post


Link to post
Share on other sites

Hi Guy,

The max run layout is certainly entertaining, and your animations are great!

As for the equivalent circuit, I'm affraid I was not very clear. I was actually wondering whether it is possible to create a circuit using only lazy points and sprung points (i.e. Duplo points without kragle ;-) that is equivalent to, or at least acts as, two linked lazy points.

I also had a first try building a power functions locomotive for duplo tracks. The wedge-belt crown gear design by zarli (linked above) works very well. The wedge-belts provide enough traction on the flat pieces and the gears take over on the bridge. However, on the curved tracks the performance suffers a lot (I guess that is to be expected without connical wheels or differentials), and worse, it derails quite easilly at the points. Not only if it goes too fast, but also if it goes too slow.

My locomotive does need a redesign though, so maybe that will improve. For now I kept the wheel base equal to the duplo locomotive. The width also, but that is a bit more tricky. But the biggest problem is the AA battery box mounted 5 studs or so above the axles. So it is very top heavy.

Share this post


Link to post
Share on other sites

Peter,

ahhh -now I see what you mean … but the answer is no.

There is no other way of constructing two linked lazy points than actually linking two lazy points together. If there was I’d use it instead of having to glue point levers.

Also, you’d be able to create a flip-flop point from just lazy and sprung points, which is impossible.

btw here is a mock up of a possible Duplo flip-flop point:

flipflop.jpg

Even allowing for the sharp edges of the lever, it has problems:

  1. The point is one way only. Trains travelling from right to left are derailed 50% of the time
  2. It doesn’t work anyway. The lever cannot switch until all the wheels (loco front and back) have passed over it.

This is why Duplo (or anyone else) doesn’t make train track flip-flop points.

So I guess it’s back to the glue !!

Edited by Guy_Walker

Share this post


Link to post
Share on other sites

Is there a way to make the powered duplo locomotive's run continuously until their batteries die rather than just for 10 minutes?

Share this post


Link to post
Share on other sites

Is there a way to make the powered duplo locomotive's run continuously until their batteries die rather than just for 10 minutes?

Presumably there's some sort of timer that goes off after ten minutes inside the electronics that control the locomotive that shuts off the motor. You'd have to crack it open and have access to soldering tools and whatnot, but you could use the same method as detailed in this Hackaday article ( http://hackaday.com/2015/03/16/beating-drm-to-extend-the-life-of-an-anti-ageing-therapy-light-mask/ ), where the microcontroller is tricked into never shutting off the motor.

Share this post


Link to post
Share on other sites

So I guess it’s back to the glue !!

Not quite yet ;-)

I made this alternative. I did not think it would be that easy, but it turns out that 2 round bricks and a few technic pieces are all you need. The forces are so low that no further bracing is needed.

http://imgur.com/rob7yvv

http://imgur.com/iKF0aev

http://imgur.com/5pFRezP

If you are a purist, to bypass the time out feature you could build a technic train to run on duplo track.

That's what I'm doing :-)

Still some problems though. Mostly derailing at the points.

Share this post


Link to post
Share on other sites

That’s great! - a really neat solution

I too was surprised at how low the forces are when the points are operated, especially when they’ve been ‘run in’ a bit. So I’m pleased you’ve worked out a non glue solution. I guess it’s easy enough to gang up more points too.

I’ll try out something similar. It has to be very reliable though if a train track computer is to be left calculating away…

Share this post


Link to post
Share on other sites

Hi Guy,

The link shown seems reliable. I did not have any problems with a duplo train running over it quite a number of times. Different story with the PF train, but a second version of the latter also behaves much better. I replaced the AA battery box by an AAA battery box which I also could place much lower. I'm still not sure whether I should make it 4 wheel drive, back wheel drive (front wheel drive gives problems going up the bridge) or even right wheel drive (no diffs needed). Any ideas?

I'll try to build the max run layout next time the duplo train and track comes out of the box. I had a quick look at how to build it out of (a finite number of) duplo tracks. I think we have enough track to build this:

4jamf7.png

As you can see, it doesn't really fit everywhere, but I think there will be enough play. Curious to see if the longer link will work as well.

Edited by PeterF

Share this post


Link to post
Share on other sites

It will fit: there is enough play. Most of Lego's own examples of layouts do not fit exactly and need the play. As soon as there is a piec of track at an angle the trancendental lengths of cos(L) and/or sin(L) give those problems (L being the length of a straight track).

See pages linked to from http://www.cailliau.org/Alphabetical/L/Lego/Duplo/

As to the custom-built locomotives with different wheels not going up bridges, that is because the Duplo locomotives have wheels that act as pinions on the racks at the sied of the bridge slopes (see same pages). A good custom-built locomotive would probably have to use those wheels. Can be done with "destructive" techniques, meaning taking a real Duplo loco to pieces to use its parts in another construction.

Share this post


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

  • Recently Browsing   0 members

    No registered users viewing this page.