Recent Changes - Search:



edit SideBar


9/8/2008: Analysis of Elmo's motor feedback mechanism, discussion of circuits for prototype and next steps.

1. Elmo uses DC motors with bidirectional control and angular position feedback. There are two connections between the motor and Elmo's brain: power and feedback.

The power connection is three wires: orange, green, and white. Green and white wires power the motor; orange wire connects to the motor enclosure (for noise isolation??). The green and white wires connect to the brain's motor driver output via a passive RC filter circuit. By connecting the green wire to one H-bridge output, and the white wire to another H-bridge output, the motor can be made to spin in either direction. Using an H-bridge IC with a single enable pin for the two outputs, the speed of the motor is controlled by sending a PWM signal to the enable pin.
The feedback connection is five wires -- brown, red, orange, yellow, green -- that terminate in a female socket with 2mm pitch. The angular position sensor consists of two concentric rings of conductive traces with a mechanical commutator made of two ball bearings that are electrically connected. The inner ring is unbroken and is connected to the orange wire; the outer ring is divided into four unequal segments, one segment connected to each of the other four wires. The ball bearings are attached to the motor shaft so that, as the shaft rotates, the ball bearings roll over the concentric rings, alternately shorting each of the wires to the orange wire. By connecting the brown, red, yellow, and green wires to pull-up resistors, the angular position is encoded as a four-bit digital signal.

2. We are using an Arduino Diecimila for prototyping the microcontrollers. Each Elmo will have one microcontroller for controlling its motors and receiving "proceed" commands from a master clock. The master clock is another microcontroller that simultaneously transmits "proceed" commands via wireless to all Elmos. We are using an XBee for prototyping this RF communication.

3. Today we programmed the Arduino to swivel Elmo's arm up and down without using any feedback. In no special order, here are the next steps:

  1. Incorporate the 4-bit signal from the motor sensor to control the arm's angle of rotation.
  2. Use the Arduino's PWM output control the arm's speed of rotation.
  3. Transmit RF signals to the Arduino to "step" it through a series of arm movements.
  4. Repeat step 3c with two Arduino receivers and two arms -- the arms should remain synched, no matter how many movements are executed.
  5. Create functions for easy programming of Elmo movements.
  6. Explore Elmo's difficulties in standing-up; possible electromagnets on Elmo's feet.
Edit - History - Print - Recent Changes - Search
Page last modified on November 16, 2008, at 10:22 PM