Shake Station



Outline

As part of a project for the Science Center Singapore (SCS), a small building station that allowed visitors to design and test models building against a suite of earthquakes. The exhibit is based on an exhibit from the Lawrence Hall of Sciences. However, we were asked to make a 2 axis version, and we wanted to address some of the shortcomings in their design.

The project was well underway, and the deadline was fast approaching. Another Engineer was responsible for this exhibit, but he punted the mechanism and motion control design to me. The exhibit cabinetry and weldment had already been designed and received from vendors, with a hole in the tabletop for an “insert mechanism here” placeholder.

In a weekend, i did the v1 design, and improved it in the following work-week. The main code was written in a day and a half (during covid Shelter in Place, without any hardware to build around), with another day or so of tuning when the hardware was available again.

Since we were so close to the deadline (8 weeks to delivery), i wanted to make sure i had a good backup plan. This design can be driven by both the belt drive system as shown, or a ballscrew drive with the same base hardware (though with different adapters for the belts and screws, obviously). Ballscrews are better suited to Servo motors (good torque at high speeds, high speeds possible, ballscrews resist backdriving to limit holding torque needs). Belts are better suited to stepper motors (high torque at low speeds, lower maximum speeds, stiffer when holding position).


Features

  1. Two axis stage, ~3 inch travel each

  2. Belt drive or ballscrew drive with the same hardware. Ballscrews are better suited to Servo motors (good torque at high speeds, high speeds possible, ballscrews resist backdriving to limit holding torque needs), Belts are better suited to stepper motors (high torque at low speeds, lower maximum speeds, stiffer when holding position).

  3. Five RGB capacitive buttons, 1 led lit toggle switch.

  4. Sensorless homing with Teknic Clearpath motors (or my Trinamic 5160 drivers and generic stepper motors)

  5. Low stack-up, < 6 inches height. Minimal excess X and Y distance.

  6. Arduino code accepts <timestamp, x location, y location> data that can be imported from USGS data for real earthquake motions (though ignoring the important Z axis)

  7. User feedback button lights. Green when enabled and ready for a press. Red for an active stop button. Fast red flashes on all inactive buttons when a user presses them in the wrong mode.

  8. Motor/belt cover plates to avoid sand/grit falling off table into sensitive parts. Linear rails are intrinsically protected.

Belt Configuration

Ballscrew Configuration

Final Videos

The final Exhibit is demonstrated below by Colin Wang, my friend and colleague at the Exploratorium. It’s really his exhibit, but i’m proud of my contribution to the x/y stage, control software.

These videos are intended for the SCS staff to review the final exhibit, address any last minute concerns, and demonstrate the maintenance associated with each exhibit.

Exhibit Overview

Exhibit Maintenance


V2 improvements

If the design were to be replicated, i’d want to …

  1. Integrate a belt tensioning screw into each bracket. Timing belts don’t need (/want) to be super tight, but a clean way to fine tune the tensioning would be a nice quality of life improvement. I knew this was missing from the design, but the short time-frame meant omitting the feature, and designing new brackets if it was deemed necessary later.

  2. Add a Stiffening brace parallel to the belt. With higher tension, the 1/4” frame flexes a surprising amount. More than expected, but not to a problematic degree.

  3. integrate nice locations for limit switches. I knew i’d be using sensor-less homing (and encoders to limit the need to re-home other than once per day), so didn’t integrate that into this design, though it should really be provided for the most flexible implementations. Open loop stepper use driven system would want to have limit switches for homing.

  4. Better access for oiling the carriages. Perhaps little slots or holes in designed locations? Right now, a syringe with oil can be used without too much fuss, but i’d like to investigate a better solution.

  5. Bolt access locations for tightening each linear rail through the subsequent stage. When tightening the rails down to each stage, there is some slop, because the rails have counter-bored holes for socket head screws. This means subtle misalignment between pairs of rails is possible, but you only find out when the carriages are attached to the subsequent stage. Access holes would allow the rails to be loosened with the mechanism, fully assembled, so the carriages could be rung back and forth, allowing them to shove the rails into the exact right locations, regardless of the perfection of the rails themselves. These are already in the CAD for the V2, and could be added to the V1 above on it’s first service.