Hamza Oza

Gizmo: D[r]umbot

D[r]umbot grew from an exploration of percussive instruments like drums and xylophones. Since real drummers are able to play different parts of their instrument, changing tempo and rhythm at will was the essence aimed to recreate.

All the microprocessing for this was handled using an Arduino.

Table Design

A rotary platform was used to mount the percussion instruments. This allowed the striking mechanism to remain at rest, at a location central to the assembly, whilst the instruments moved in and out of range of the beaters.

The instrument rings use an internal gear arrangement, and are independently driven by pinion gears coupled to stepper motors (resembling a classic turntable arrangement).

While a Lazy Susan bearing was used to support the inner instrument ring, a custom bearing arrangement for the much larger outer ring (0.5m outer diameter) had to be made. Inspiration was required to determine how best to achieve this. Other devices such as a microwave turntable and Orreries were looked at to see how they deal with a similar problem.

microwave-ring
Microwave Ring
complex-orrery
Complex Orrery

The bearing system for this gizmo was much more like a microwave ring than orrey due to its simplicity. The construction of which is shown below.

Turntable Code

Code was written to turn the two stepper motors, each moving one step at a time in an alternating fashion. This way, it appears that both motors are turning simultaneously because the time between executing commands on the Arduino is small.

void motorTurn(bool spin) {

  // Calculate the loss of steps to compensate later.
  int diff = angle_outer - (angle_ratio * angle_inner); 

  for(int s = 1; s < angle_inner; s++){

    // Make it look like both motors are moving.
    innerStepper.step(1);
    outerStepper.step(-angle_ratio);
    
  }

  // Move lost steps.
  outerStepper.step(-diff); 
  sector--;

  // Callback to another function to ensure we are in the right sector.
  sectorLimit();
  delay(750);
  
}

Since the instrument rings were not coupled directly to the motors, transmission ratios and the number of instrument sections (four), needed to be considered. This resulted in scaling the argument for each stepper’s rotation sequence.

Finally, the outer ring needed to move extra steps to ensure it aligned with the inner ring. These lost steps where made up for after both motors finished turning.

Source Code

Prototyping & Final Assembly

Throughout the process, the sub-assemblies and components were checked continually to ensure they were integrating well to form the final assembly. Observations made during integration often informed design changes to the drum mechanism, robot housing and instrument mounting. The most fixed design element was the table since everything else rested upon it.

Visual Design Language

Although initially working in wood for prototypes a uniform finish was desired in either black or white for each element, based on the visual inspiration from the keys of a piano.

drumbot
Final look of D[r]umbot

Opting for a white acrylic table top to accent the keys of the xylophone which were painted black. A black skirt was also added to the assembly, not only visually grounding the white structure, but also concealing the mechanical and electrical components under the table, adding to the neat and clean look to the finished product.

Result

D[r]umbot can play different rhythms at different tempos on four sections of two rings of percussive instruments, all whilst it wiggles its head and eye. The design embodied technical aims and also inspired much humour with its life-like enthusiasm for playing beats.