Andrew Burks

RobOrchestra

Vibratron

by on Oct.04, 2010, under RobOrchestra, Robotics Club, Vibratron

Also from my update of the RobOrchestra website.  I apologize for the redundancy.

Description

Vibratron is one of the main RobOrchestra projects for the 2010-2011 year. After receiving $1000 in grant money from the Undergraduate Research Office in the form of a SURG and a donated vibraphone from a former member, the team began designing a robotic Vibraphone.

The overall vision for the project involves laying out the 30 vibraphone keys in a circular array and dropping steel ball bearings onto the keys in order to create music. While other more direct methods might have been more effective, the group opted to create a more unique piece of art.

The project is currently in the prototype stage, but the general layout has been designed. The robot will be composed of three main systems. One of the systems will dispense the balls onto the keys, one will collect the used balls and recycle them to be used again on a different note, and the third system will be the structure of the robot that hold the keys and all other systems together.

Mechanisms

The ball dispensing mechanism has been through two complete designs. The initial design used a rotating notched wheel attached to a stepper motor to dispense balls one at a time. The second design used a solenoid as a gate to block and release balls from a queue. Both designs were prototyped, and the solenoid design was chosen because of its greater speed and reliability over the wheel design. Each of the 30 gate mechanisms will cost less than $5.00, and will be capable of dispensing over 14 balls per second. There are renders and photographs of the gate below.

The recirculation mechanism is basically an Archimedes Screw that brings balls from a lower hopper to an upper hopper. Once in the upper hopper, a paintball-style system will be used to spread the ball bearings into the 30 individual tubes, each of which routes to a separate gate.

The structure of the system will not be designed in any detail until the kinks have been worked out of the other two systems. However, a conceptual render of the desired circular layout of the Vibratron is below.

Logic

An Arduino Mega will be used to control the robot. A MIDI shield will allow the Arduino to read standard MIDI signals from any controller, and software will decode the MIDI commands into notes.

Each of the 30 gates will have a small custom printed circuit board (PCB) with a MOSFET and LED. This circuit board receives a digital signal from the Arduino and uses that signal to turn on the solenoid for a certain amount of time.

Images

Side view of the gate mechanism

Render of the gate mechanism

Final gate prototype

Conceptual render of the basic Vibratron layout

Leave a Comment :, , more...

Flutophone

by on Oct.04, 2010, under RobOrchestra, Robotics Club

Another post I made for the RobOrchestra Website:

Description

Flutophone is one of the oldest members of the RobOrchestra. It’s seven fingers cover and reveal the seven holes on top of the recorder in order to specify particular notes.

Currently Flutophone is in a semi-functioning state. The instrument itself has gone out of tune over time, but it cannot be replaced by any recorder except one with the exact same hole spacing because the fingers are not adjustable.

Mechanisms

Flutophone’s fingers were originally made of cheap hardboard. After considerable use, the keyway on the hardwood gave out and fingers began to slip. Recently, the fingers have been replaced with laser-cut acrylic and reattached to the original sprockets. The sprockets are turned by servos mounted within the casing.

The air flow is controlled by a solenoid valve. The input of the valve is connected to a compressor running at approximately 30psi. The output is connected to the mouthpiece of the recorder, with a latex balloon serving as a buffer to stifle the initial surge in pressure when the airflow is first activated.

Logic

The entire robot is controlled by a single Arduino Duemilanove. It takes in serial commands from a master controller and interprets them as notes with a duration. It then sends a PWM signal to each of the 7 servos to position each of the 7 fingers properly. After a short delay to allow for the fingers to reach their position, it activates the solenoid valve. When the robot is not playing a note, its resting state is with all holes covered.

Images

Note the Arduino in the top right and the Solenoid Valve in the bottom left

The balloon seals perfectly over the mouthpiece

Leave a Comment :, , , , , , , , , more...

Final Gate Design Testing

by on Oct.04, 2010, under RobOrchestra, Robotics Club, Vibratron

The mechanism we designed on Wednesday was constructed this past weekend.  It takes about one hour to manufacture each of the three parts that comprise the gate mechanism.  However, it costs less than five dollars to construct a full gate assembly.

Fabrication

The assembly turned out just as planned.  The only issue that we ran into was that there needed to be a washer between the solenoid mounting plate and the tube in order to keep the solenoid and window lined up.  Each of the three parts will need to be machined 30 times to assemble the full Vibratron.

Tube

The extruded aluminum tube that the balls roll through has an inner diameter of 0.5” and an outer diameter of 1”.  In the final version it will be much shorter (roughly three inches long) but for testing purposes a longer tube was used here.

On one side of the tube there are a set of holes drilled and tapped for a #6-32 bolt, with a channel milled in between to allow clearance for the solenoid bracket.  Orthogonal to those features is a through hole for the tip to enter the tube and a counter-bore on that hole for an o-ring to sit in.

Mount

The mount connects the tube to the solenoid, and the assembly to the rest of the robot.  In this version, instead of an L-bracket like in the rendered design, we used a plate for simplicity.

Tip

Made from HDPE on a Lathe, the tip blocks the balls from passing through the tube when down.  The conical shape prevents the tip from jamming on the top of a ball when closing.  The flat end of the tip has a hole for the solenoid to mount in.  A perpendicular set of holes connects the tip to the solenoid with a #4-40 bolt.

Side View

Gate Prototype - Side

Detail View

Gate Prototype - detail

Testing

During Sunday’s meeting the team put the mechanism through a variety of tests.  The end result was the decision to move ahead with the design and incorporate it into the main Vibratron assembly.

Speed

Two potentiometers were used to vary the two delays involved with letting a single ball pass through the mechanism.  The first delay controls how long the solenoid is powered.  During this time, the gate rises up.  The second delay controls the minimum amount of time it takes for the spring to return the gate to a closed position after the solenoid is turned off.

After considerable testing, it was determined that the perfect amount of time for both parameters is 35ms.  This means that it takes 70ms to dispense each ball at maximum speed (obviously you could go slower, effectively increasing the second delay).  At this speed, the mechanism can dispense over 14 balls per second!

Power Draw

When left on for a significant amount of time (>1 second) the solenoids draw 3 amps at 12 volts.  This is a large amount of current.  However, when the solenoid is only on for 35 thousandths of a second, the average current draw drops to around .9 amps.  With a capacitor in the power circuit to soften initial power spikes when the solenoid is first turned on, the power requirements of the device seem much more reasonable.

Durability

The final test of the mechanism was to test its durability.  The device was run for 1000 consecutive cycles, mostly without any balls in the tube.  After the cycles completed, the solenoid was only slightly warm.  Because of the low (10%) duty cycle of the solenoid, overheating was a major concern.  But after this test, the group is confident that this solenoid can perform adequately.

In the initial prototype of the gate mechanism, the plastic tip was bent and mangled after only a few hours of testing.  In the new version, the o-ring support the load of the closing gate on the sides instead of the tip.  The durability test showed the the tip could maintain its shape even after significant use.

Video

1 Comment :, , , , , , , , , , more...

Gate-Style Ball Dispenser

by on Sep.30, 2010, under RobOrchestra, Robotics Club, Vibratron

The Problem

After several iterations of the wheel-style ball dispensing approach, I decided to try a gating mechanism instead.  The main drawback of the wheel approach was the low throughput.  Only about 4 balls per second could be dispensed.  Xylobot, however, can play over 20 notes per second.  While Xylobot’s speed isn’t fully necessary, at least 8 balls per second is a reasonable goal.  The wheel mechanisms do not meet that goal.

The Solution

The basic idea of a single gate mechanism is that the stream of balls is free to fall out the end of its containing tube whenever the gate is open.  The trick is opening the gate for a short enough period of time to consistently allow only one ball to pass through the gate per activation.  In our prototype, the time required to let one ball through was about 40ms.  With delays to account for the return motion of the gate and the settling of the balls, the prototype gate mechanism could achieve a rate of 11 balls per second.

Design

The most important part of this design is constraining the balls to one dimensional travel.  This was achieved by basing the gate around an aluminum tube with an inner diameter of .5”.  The gate would be entering perpendicular to the direction of travel, through a hole in the aluminum tube.  When the gate is up the balls roll through, but when the gate is down the balls are unable to pass through the gate.

The gate itself is a cone of plastic.  The conical shape is important because any non-angled surface has the potential to jam by clamping on the top of the ball.

The plastic cone is attached to a pull-type solenoid with a spring return.  The built in mounting bracket on the solenoid is a great advantage, but the 3-4 amp power draw (at 12 volts) is a major disadvantage.  The gate is normally closed, but when powered the solenoid pulls the cone out of the way of the balls.

In the initial prototype the mechanism made a large amount of excess noise when releasing a ball.  Quiet actuation is important for a musical instrument because the sound of the ball hitting the vibraphone key needs to not be overwhelmed by any other noise.  The addition of an o-ring to act as a hard stop when the gate returns to the closed position should help to muffle the noise produced by the prototype.

The final integration of this mechanism (actually 30 of these mechanisms, one per key) will have the tube nearly vertical, with the gate at the bottom.  With balls feeding into the top of the tube from Mike’s hopper mechanism, the gate will dispense one ball at a time, allowing them to fall onto the key and play a note.

Renders

Side View

Gate - Cross Section

Isometric Render

Gate - Iso Opaque

Isometric Render with Transparent Tube

Gate - Iso Transparent

Leave a Comment :, , , , more...

Xylobot

by on Sep.24, 2010, under RobOrchestra, Robotics Club

As I create content for the RobOrchestra website, I figured I might as well include it here:

Description

This robot is an autonomous xylophone capable of playing chords of up to 5 notes at a time at speeds of up to 20 notes per second. As one of the oldest and most reliable members of the RobOrchestra, Xylobot currently lives in the robotics club.

Xylobot is connected to a car battery and programmed for demo mode. When activated, the robot plays Nikolai Rimsky-Korsakov’s “Flight of the Bumblebee” at a normal speed, then repeats the song at twice the speed.

Mechanisms

Each of the 17 keys has a small push-type solenoid mounted just beneath it. When 12 volts of electricity passes through a solenoid, it pops up and strikes the key, then falls back down, all in a fraction of a second.

Logic

When the Arduino Duemilanove receives a serial command from its master, it parses the 5-10 character string to determine what note it should play. Then, the note is transmitted in binary across five digital outputs to a demux board. This board uses the binary signals to select one of the seventeen notes, then activates the logical line for that note. The MOSFET board allows each logical line to control the higher voltage solenoids with individual MOSFET circuits.

Images

View of Xylobot with the keys removed, exposing the solenoids and electronics:

Electronics boards from right to left: Arduino, Demux, MOSFET

Leave a Comment :, , , , , , , more...

Stepper Motor Driver – NAND Gates

by on Jul.11, 2010, under RobOrchestra, Robotics Club, Vibratron

The Problem

I still need to find a cost effective way of turning a bipolar stepper motor on and off using just one pin.  I want to have the ability to use a powered brake, and I want to be able to use half-stepping control of the motor for smoother rotation.

Half-stepping gives the motor higher resolution, which is good for my application because one full step cycle is enough to move a single ball through.  The 4-stage process from before turns into an 8-stage process when you change to half-stepping.

t=0  A=1  B=0  C=0  D=0

t=1  A=1  B=1  C=0  D=0

t=2  A=0  B=1  C=0  D=0

t=3  A=0  B=1  C=1  D=0

t=4  A=0  B=0  C=1  D=0

t=5  A=0  B=0  C=1  D=1

t=6  A=0  B=0  C=0  D=1

t=7  A=1  B=0  C=0  D=1

t=8=0

The Solution

I noticed that in half stepping (and full stepping) if you view the logic for each of the four wires as a wave, they are always 90 degrees out of phase and have a specific shape.  I wanted to create four unique signal lines, one for each of the four wave patterns, and transmit this signal to each of the 30 stepper controllers.  At each controller, I should be able to choose either some default value (like a powered or unpowered brake) or let the motor run off the signal.

Because my focus was centered on the powered brake, my initial idea was to take my on-off line at each motor and perform a logical AND with three of the four waves and a logical OR with the other wave.  The OR would drive its input high while the AND would drive its inputs low.  This solved my problem, but unfortunately I couldn’t find a chip with an AND and an OR circuit on it.

You can build any logic gate with a combination of NAND or NOR gates.  It takes two NAND gates to build an AND gate, and three NAND gates to build an OR gate (and vice-versa when building from NOR gates).  They sell IC’s with 4 NAND gates in them, so I really wanted to find a way to do my OR operation with only 2 NAND gates.

Eventually I realized that if I negated the signal wave coming from the Arduino (by using 1 NAND as an inverter) and then performed a NAND operation with the wave signal and the on-off signal I got the exact output I wanted!  of course, if I had just used an AND on each of the four inputs, I would have an unpowered brake and less of a headache.

I made this circuit on a protoboard, and tested it with both full and half stepping.  It worked like a charm.  The next step is to see if half-stepping combined with a smaller diameter wheel will be able to push balls along without jamming.  Here is the protoboard layout:

Pros

This setup allows for full and half stepping.  It costs less than the shift register design, about $2 per unit (only $0.75 from the two NAND ICs).  Each of the four inputs is completely isolated from the others, so the wiring is simpler (which makes the PCB layout easier).

Cons

There are now 4 common signal wires instead of just one.  These 4 wires will need to be jumped from board to board, potentially requiring some sort of transistor to keep the voltage from dropping as it moves across the boards.

More Photos

Leave a Comment :, , , , , , , more...

Stepper Motor Driver – Shift Register

by on Jul.06, 2010, under RobOrchestra, Robotics Club, Vibratron

The Problem

I need to be able to turn 30 identical stepper motors on and off individually.  I can only afford to have one unique wire going to each stepper unit because I only have ~40 digital outputs to work with.  I can afford to have a few common outputs that are jumped from board to board.  basically I need to turn four inputs that go in a pattern into one input.

The four lines on the motor driver (H-Bridge) basically take turns going high when I want the motor to turn.  When I want it to stand still, only one of the lines should be high.  This is called “wave driving” a stepper motor.  Here is what happens when a bipolar stepper motor is wave driven.

t=0:  A=1  B=0  C=0  D=0

t=1:  A=0  B=1  C=0  D=0

t=2:  A=0  B=0  C=1  D=0

t=3:  A=0  B=0  C=0  D=1

t=4=0

The Solution

A Serial in Parallel out (SIPO) Shift Register does basically exactly what I’m looking for.  If I have one common clock (a line that goes high every 1/4 step) and connect the 4th output to the data input, then the four parallel outputs will shift through my 4 states like a champ.  The only catch is that I need to seed the circuit with the initial “1″ so that the “1″ can move along the shift register.

Luckily, because a shift register is just 4 flip-flops lined up in a row, I could build my own shift register out of flip flops, and access the set/reset abilities of the individual flip-flops.  So in the final setup, I had a single clock coming from the Arduino (pulsing at 100ms intervals) which controlled the speed of the motor, and a “stop” pin coming from the Arduino to control whether or not the motor was turning.

The “stop” pin was tied to the reset pin on the first flip-flop and the set pins on the other 3.  This means that when the “stop” pin was driven low, it would force the shift register into the “1-0-0-0″ state, and when it was released the “1″ would shift sequentially at the speed of the clock to drive the motor.  Here is a view of the protoboard layout (the center IC is the motor driver, and the other two each contain two flip-flops):

Pros

This is a huge improvement over controlling all 120 lines individually.  An Arduino mega can easily output a single clock and 30 control lines.  The cost of each circuit is about $4 in parts (three Integrated Circuits, or ICs), more if you PCB it.  It works, and it lets you do a powered brake as well.

Cons

The two IC’s with flip-flops are about $2.50 0f the total parts cost.  For this price ($2.50×30=$75) it would technically be cheaper to buy some other board that can take serial from the Arduino and control the 120 outputs.  Also, the wiring is a bit complex and uninsulated because each flip-flop’s output feeds into the next one’s input.

More Photos

Leave a Comment :, , , , , , , , more...

Vibraphone Ball Dispensing Testing

by on Jun.30, 2010, under RobOrchestra, Robotics Club, Vibratron

General Concept

With the current direction for the Vibraphone design, the notes are played by dropping a steel ball onto the keys.  There are several ways to actuate the balls, but considering the cycle times we want to achieve and the cost of each device (since we need 30 total) using a small motor and a wheel to push balls off of a queue and into free-fall seemed like the best idea.

The club has a few sets of tiny motors that have been donated, and each set has as least 30 motors of that kind.  The two sets we investigated are the tiny DC motors from the handheld fans, and some tiny bipolar stepper motors.

There are two trains of though for what to put at the end of the motor.  One possibility is to put a circle with a squishy perimeter on the motor, and use friction to pull balls through the mechanism one at a time.  Another concept is to cut ball-sized notches into the perimeter of a plastic circle, acting like a sprocket on a row of queued balls.

We have tested both concepts on the fan motor, and they each have their advantages and disadvantages.  After testing them both on the stepper motor in a more controlled way, we should have a better sense for which type of wheel will work best for us.

Here is a photo of the notched wheel Mike Ornstein and I milled in the roboclub CNC mill the other night.  The notches fit the balls great, but a consistent problem we had with the fan motor was that balls would jam if they tried to fill an empty queue.

Fan Motor

The fan motor is easy to control.  If you put a voltage difference between the two wires, it will spin.  If you give it a low voltage (1V) it will spin fast.  If you give it a higher voltage (3V) it will spin VERY fast.

From my observations, there just didn’t seem to be enough torque on the motor to handle the balls we were giving it.  Also, when testing with the notched wheel, the fan seemed to lack all braking ability.  Obviously with a friction wheel instead of a notched wheel the motor will be able to resist back pressure, so I look forward to seeing how that performs once we get a nicer friction wheel made (Plastic circle with a notch for an O-ring).

Stepper Motor

The club has a box of 150 tiny stepper motors with 4 wires coming out of each of them.  Starting the process knowing absolutely nothing about steppers, I eventually determined that our stepers were Bipolar Stepper Motors.  Basically, there are two pairs of wires and I need to follow a cycle of powering and releasing the pairs in different directions in a certain order so I can get the motor to ‘step’ 1/48th of a rotation.

By using an H-Bridge configuration on each pair of wires, I could independently control the direction of the current in the wires with digital logic.  20 lines of C++ and an Arduino later, I had a great test rid that let me step the motor at whatever speed I wanted!

I was very pleased with the initial performance of the stepper motor.  There seemed to be a lot of torque behind the motor, despite its size.  The biggest advantage in my eyes though was the powered braking.  By setting only one set of wires in only one direction and leaving it there, the motor was in a powered lock.  This should help with the back pressure issue we were facing on the fan with the notched wheel.

Here are some photos of my final Arduino/H-bridge setup.  I was very happy because both the circuit and the program worked on the first try!  That never happens!

Leave a Comment :, , , , more...

Circular Vibraphone Preliminary Design

by on Jun.23, 2010, under RobOrchestra, Robotics Club, Vibratron

A completely axially symmetric vibraphone robot would be awesome.  We decided to move away from a big row of keys and towards a round plate of keys.  Here is a quick render of the key mounting structure and how it incorporates the ball retrieval and distribution system:

Structure

The large round plate is actually a 30-gon not a circle.  It is inscribed in a 32″ circle, and is 1/4″ thick.  There are 60 unique (thank you design tables!) plastic supports that slide onto notches in the aluminum.  Each plastic support has to be unique because of the awkward hole spacing in the individual keys.

There are already notches in the plastic for clips that should hold it into the aluminum plate (aka “Megaplate”).  However, depending on the design of the ball deployment mechanism, the retaining clips for the plastic plates should be incorporated into the support for the mechanism.  Here is a close up of the plastic supports:

Distribution

Finally, here is a close up of Mike Ornstein‘s ball collection and sorting mechanism.  It uses brushes from the bottom of doors to pull balls up an archimedes screw into a paintball-style hopper.

1 Comment :, , more...

Initial Vibraphone Designs

by on Jun.18, 2010, under RobOrchestra, Robotics Club, Vibratron

Overview: We are officially crazy

Animusic is a group that makes great computer animations involving “impossible” instruments playing great music.  While considering actuation mechanisms for the RobOrchestra Vibraphone project, somehow we decided it would be a good idea to do something similar to the instrument that takes center stage at 1:07 in Animusic’s “Pipe Dream”:

Details

Right now, 3/8″ diameter stainless steel balls are looking very promising.  Mike Ornstein, Dan Shope and I have subconsciously split up the work into 3 sections.  Dan is working on the mechanism to take the balls and dispense them onto the keys quickly and with a short reload time.  Right now, it appears that this will be accomplished with a group of DC motors.  Mike is working on the mechanism to lift the used balls back up and dispense them to queues leading into Dan’s mechanism.  This is most likely going to be done with an Archimedes screw and a paintball gun style dispenser.  I have been focusing on the structure of the whole mechanism and collecting the dispensed balls and funneling them to Mike’s mechanism.

The biggest problem I am facing with this design is the awkward hole arrangement in the keys.  I basically have two very awkward hole lines I need to support for both the naturals and the sharps.  A string pulled taut needs to go through the holes in the keys and the supports to hold up the key and let it vibrate naturally.  My initial concept involved about $60 of waterjet-cut 1/8″ ABS.  Here is a render of this initial design:

Initial Vibratron Key Support Render

This concept was that with angled plates in front of the keys sloping back toward the keys, as well as slopes over top of those angled toward the center, I could funnel all of the ball bearings into a channel between the two sets of keys.  Unfortunately it takes up a whole sheet of plastic.

Future Concepts

Moving forward, I want to find a way to eliminate all of the unnecessary material in all 32 of those vertical supports.  A bar or two mounted along the path of the key mounts could allow me to build much smaller plastic mounts for each key.  Look forward to another post with more designs, and watch my friend’s blogs for updates on their portions of the project!

Leave a Comment :, , , , , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!