LEGO® MINDSTORMS® and Technic®MINDSTORMS® EV3/NXTMINDSTORMS SensorsLEGO® technical dataLDrawMiscellaneous LEGO®LEGO® & PhotographyPanoramic PhotographyPhoto GalleryHome

 

 

     
    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).

       

LEGO® MINDSTORMS® and Technic®MINDSTORMS® EV3/NXTMINDSTORMS SensorsLEGO® technical dataLDrawMiscellaneous LEGO®LEGO® & PhotographyPanoramic PhotographyPhoto GalleryHome