Panoramic PhotographyPhoto GalleryLego & PhotographyLego Mindstorms and TechnicMindstorms SensorsMindstorms NXTHome

 

 

     
    Bob Kojima's rolling ball clock

 

     

    When Bob Kojima announced his rolling ball clock on Lugnet a few months ago, I knew I had to build one someday... I bought a stock of balls on Bricklink, and here is the result. The main modification was the use of a RCX to obtain good long time stability - I finally obtained less than 1 minute drift over 24 hours.

    A few reference links:

     

    Side view of the clock, showing RCX control, and ball detection tunnel placed at the output of the elevator.

    The ball elevator is equipped with 8 buckets, allowing high throughput for the impatient people (and to quickly debug and tune the clock). In normal clock mode, exactly one ball is delivered each minute.

     

    Sometimes, I got a ball jam in the return pipe that was not enough sloping. I thus raised the whole support structure by two studs - consequently, the elevator was raised too.

    Here is the ball detection tunnel. The first design I made used only one light sensor. Unfortunately sometimes a black dot of a soccer ball happens to roll just in front of the sensor and the ball is not detected. To avoid this, I used a second light sensor, the probability that the ball is not detected by either sensor seems almost null. Alternatively, I could have used a lamp in front of one sensor, the balls blocking lamp light.

    The design of the buckets were simplified. The two link treads on top form a flat surface, preventing the lift of two balls at a time.


     

    Several problems plague ball supply:

    • Sometimes, no ball gets picked. I tried hard to avoid that, but once in a while it still happens (see the videos). Anyway, as balls are detected when they arrive on top of the clock, the elevator runs until a ball really arrives.
    • When there are many balls, they tend to block each other. The ball tank was enlarged to avoid that. A stirring mechanism, lead by elevator motor, prevent ball locking.
    • the two wheels placed on side of the elevator recenter the ball if it comes in equilibrium on a liftarm instead of sitting between them.

    One ball is maintained on the hour rail, so the clock counts from 1 to 12, and when the 13th ball arrives, all balls are drained and hour counter resets to 1.

    Of course, to get a good autonomy, I used a RCX 1.0 with external supply...

     

    Program

    The problem should have been very simple: each minute, start the elevator until a ball is detected by one sensor. Unfortunately, my first try over a several hours period showed me that my clock was fast, several seconds each hour! After eliminating all mechanical possibilities (two balls at a time, or an undetected ball), I concluded that my RCX itself was fast... To make sure, I finally put a frequency meter probe on RCX crystal, and indeed it oscillates at 16.03 MHz instead of 16.00 MHz. So I finally added some code to wait for 6.92 seconds each hour.

    Here is the rolling ball clock program. And here is a small debug program that feeds balls without 1 minute wait, and beeps each time a ball is detected.

    Movies

    The rolling ball clock in action (AVI movies, Divx 5.2 compression)

    Overall view (600kB).

    Balancing mechanism (600kB).

    Balancing mechanism, detail (500kB).

    Ball picking (400kB).

       

Panoramic PhotographyPhoto GalleryLego & PhotographyLego Mindstorms and TechnicMindstorms SensorsMindstorms NXTHome