Tag: Vibraphone
Stepper Motor Driver – Shift Register
by aburks on Jul.06, 2010, under RobOrchestra, Robotics Club
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
Vibraphone Ball Dispensing Testing
by aburks on Jun.30, 2010, under RobOrchestra, Robotics Club
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!
Circular Vibraphone Preliminary Design
by aburks on Jun.23, 2010, under RobOrchestra, Robotics Club
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.
Initial Vibraphone Designs
by aburks on Jun.18, 2010, under RobOrchestra, Robotics Club
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:
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!










