Tuesday, December 15, 2009

Results-Design Expo

After our characterization, design, construction, and programming we came to the ME552 design expo with a function haptic feedback device. You can see our final device in the following video and pictures.



Some of the important aspects of our device that may go unnoticed are the important applications. According to the percussionist in our group this device is really exciting because it can help "teach beginners and experts the feeling of how to roll and flam faster." Just by holding the stick at a specific position you can get a continuous feedback bounce from the pad. Although this is not desired because it is not what happens in a conventional drum it is an artifact of the device that can be used as a teaching advantage. Holding a drum stick at the correct position to allow balanced bounces is one important skills a drummer needs to learn. By having a device that only allows the user to obtain this continuous bouncing through correct handling is a way to teach this important skill. This device also has the capability of being switched over to another drumhead or component to allow for different haptic feedback. Although this was not implemented in this device the possibility is there as well as for the creation of other virtual drums (which would be more realistic to simulate a smaller transportable drumset).

During the expo we encountered another problem. The hall effect magnet was initially placed between a crevasse to eliminate damage. However, midway through the expo it crept its way out and was eventually hit so much one of the sensors leads broke. A quick substitution allowed us to continue our display. However, for a while there the device was acting finicky which was unfortunate. Overall we were pleased to provide a wireless drumstick that implemented haptic feedback based on initial characterization of a conventional snare drum.














Programming and Electronics

Using complex programming we were able to create a virtual response that mimicked that of a conventional drumhead. For the expo we decided to use our snare drum response that we recorded and characterized. Another important piece of our program was that we were able to eliminate the annoying buzz sound coming from our motor. Thanks is due to Josh's group for creating this code and allowing us to use it. More details of our programming and electronics used will be discussed below.

As our goal is to produce a haptic force feedback to the user, the force that is felt by the user can only be transferred to the user hand through the drumstick, and this only happens when the drumstick is in contact with the drumpad. Therefore, all the necessary force and movement of the drumpad only matters during this split-second moment and the remaining response of the drumpad does not contribute to the feedback felt by the user. So, we need to program the motor to give an impulse force at the instant the drumstick hits the drumpad, where the impulse response of the drumpad is similar to the waveform we recorded from the tom and snare earlier. Particularly, we are looking for the amplitude of the drumpad's maximum acceleration to match with the first few part of the waveform data.

First, we need estimate how much current is needed to produce the necessary acceleration, which we need roughly 0.5 g (5 m/s²) based from our waveform data. We got the mass of the motor's plate from our parametrization of the motor constant, which is 115 grams. From these values, we got that the current required to actuate the motor at that acceleration to be 170 mA. The power supply we used can produce more than 250 mA, which is more than enough for our design.

After we get the initial displacement from the hit and the impulse force, we use position control to get the drumpad back to its original position. We were thinking of using a PD control to match the decay rate of our recorded waveform. However, when we tried normal proportional control we actually get a decaying system, which settled down quite fast. This means that our system also has a damping inside it, which makes this a 2nd order system if we use proportional control. Since the proportional control worked, we decided to just use proportional control for our system. The block diagram for our control system can be seen below.

Figure 1: System's Block Diagram

Now with our mechanical control done, we need to get the sound to work. We used the Arduino to send MIDI signal into Pure Data (pd) through a MIDI USB port. We set the the program inside pd to run a sound file (in the case we used for the expo was snare) whenever Arduino registers a hit. You can see what the pd interface looks like below.


Figure 2: Screenshot of the pd Interface

Construction and Issues

Once we obtained all of our laser cut components we began construction. A picture of our early base assembly can be seen in the diagram below.





We encountered a number of issues with our final design. First, as you can see in the picture below, the center component was created from two wooden pieces.




These pieces were drilled into another wooden piece at the base of the movable motor component. The issue we had was connecting this piece to the virtual drumhead. We wanted to make this connection as strong as possible to sustain most drum strikes. At first we thought wood glue would be strong enough but after our first final assembly and trial hit by another group we needed something sturdier. So we bought some metal brackets and were able to drill holes in the sides to allow for bolts to hold the connection together. This was working great until half way through the expo when the bolt started to become loose and didn't have the correct wrench to tighten them. The vibrational feedback response became more than we desired.

Now for the electronic assembly we attached a hall-effect sensor to the side of wall which needed to be sanded out for the tight fit. Then attached to our center posts we attached a strong magnet from RadioShack. A zoomed in view of the sensor and magnet can be seen in the following figure.




The placement of the magnet was important to get the maximum range of the sensor. Once all of these issues were solved we moved on to connecting the drumhead to the brackets. A final assembly of our device can be seen in the figure below.




Wood glue was used to finalize the assembly as well as dowel pins to attach a rigid rim to the base components. Another important issue to note is that we had planned on using FSRs to record when and where a drum strike would occur. After many trials we determined that these sensors would not be feasible to sense a strike. It occurs so rapidly that hits would only be recorded if you help it there for a few milliseconds, which would not be a realistic device. So after much discussion we decided to add another hall effect sensor at the center of the head and add magnets to each stick to sense each strike. A picture of our drumsticks with the added magnets can be seen in the figure below.



Similar to the idea of multiple FSRs discussed in our proposal there is room here to add multiple hall effects around the outside of drumhead. Unfortunately, due to the late recognition of our hall effect problem these added sensors were not added. To dampen the sound of a drum strike on the wooden board we decided to use a felt pad which you can see in the results section of our blog.

Design

While we were characterizing each drumhead response we were also designing and creating a support for our voice coil. After using calipers to ensure a tight fit for the motor we created CAD models of support system using Catia. You can see in the following diagram an assembly of just three supporting components for our drumstand.



We decided to use a 3mm thick wooden board for material and create notches in each side so they would snap together. To cut each board we decided to use the laser cutter found in the graduate shop. For our first time cutting our parts we overlooked an important factor. The laser cuts an extra half a millimeter for each side so we were producing parts that did not fit as snug as we would have liked. The great part about the laser cutter we found was that it took at most 10min to cut each individual part. Most of our time was spent creating the .dxf drawings for Correldraw. A picture of the final .dxf drawing we used for the laser cutter can be seen below.
After about two more trials we obtained our final components that fit tightly. The assembly and electronics will be discussed in the construction section.

Characterization

For our initial analysis we decided to first measure the vibrational response of a drum stick strike on a conventional drumset. However, we first needed to characterize the voice coil given to us by Prof. Gillespie. Below shows how the force provided by the voice coil varies with current. The slope of the line is used as our motor constant (16.74 N/A). The y-intercept of the graph (-1.1287 N) corresponds the weight of the armature and internal friction. A current of nearly 70mA must be supplied to overcome this load. The winding resistance of the motor was measured to be 8 ohms and the inductance was neglected. Damping for a linear motor is exceedingly difficult to measure. Since there armature does not rotate, the conventional measure for damping, observing the oscillation decay, is not possible. The motor came equipped with bearings, and given the weight and orientation of the armature our team decided to neglect measuring damping. Instead damping was left for tuning in the closed loop system.



Next, our team set out to measure the force and oscillation of a drum. This test was done using an ADXL 203 accelerometer and LabView. We encountered some issues here with sampling rates for various components which vibrate at a minimum of 30 Hz to 5000Hz. Our research shows that bass drum have the lowest frequency and the cymbals tend to have the highest. So we decided to test the toms which have the second lowest frequency range of around 50Hz to 2kHz and the snare drum with a frequency range of 70Hz to 2kHz. Our initial problem was that the LabVIEW was not sampling anywhere near the acoustic frequency range output of the drum. Our LabVIEW code was stripped down of all the Express VIs in an effort to run faster. Our final LabVIEW, which achieved sampling rates of 1 kHz (the maximum allowable for computer sampling) is shown below. Prof. Gillespie had mentioned using a microphone and the PCs internal sound card to capture data at an even higher sampling rate. However, the changes to our VI seemed to work fairly well for the low frequency drum components.



Eventually, after many trials and error we were able to achieve a sampling rate close enough to the frequency of each drumhead. The following plots show the response we recorded and imported into Matlab for analysis. Data was captured on three axes, where the Z axis was orientated perpendicular to the drum membrane and the X and Y axes fall in the plane of the drum membrane. Note that similar vibrations were captured in all directions but vibrations in the Z direction are the most pronounced. Our team decided to only replicate the vibrations in the Z direction, since our motor could only actuate in one direction and this was the most important to user force perception.


Then using this data we were able to determine the decay rate and peroid of oscillation. From these values we were able to determine the transfer function below and produce a simulation of an impulse response. The time for decay and peroid of oscillation compares well between the data and the model. The scaling is off because the MATLAB produces and ideal impulse (infinite intestiny, zero pulse duration).


Proposals

To kick off our Final Project, we were asked by Prof. Brent Gillespie back on October 1st, 2009 to provide individual project proposals. After reviewing each we were placed into groups according to similar ideas. Our groups had the similar idea of a wireless drum stick and high bandwidth drum head response. Although each of our ideas varied we were able to compile important features of each into a final design idea.

In Scott's first proposal he mentions that "standard drum kits are very large and difficult to transport. The main advantage of the proposed instrument is that it is portable, which would allow musicians to practice and perform in any environment." As you will see in our design our intention to make a smaller drum set that is portable is possible. Although we all agreed on using MIDI as the musical interface to our synthesizer he also contributed the idea of using "either a Hall Effect sensor or potentiometer" to measure motor position. This idea came in handy when we encountered our first setbacks which we will mention later. A diagram of Scott's proposed idea can be seen in the figure below. There were also a few ideas implemented from Mike's first proposal. He suggested that we used force sensing resistors (FSRs) oriented specifically on a drum pad to sensor where a drum stick would hit. This information is important for sound because with conventional drums the closer to the rim you strike the higher the pitch or frequency. As you will find, this idea was implemented during part of the development process but was eventually removed due to poor sensing capabilities of the FSRs from a drum stick strike. However, with our final design there is still room for improvement to mimic this positional convention. Being a drummer himself, he was really interested in achieving "vibrotactile feedback for electronic drum pads because it could lead to improved use of fine control. Allowing the user to feel vibrations of the stick through this design will improve performance during rolls and flams (fine control beats). " A picture of his design from the first proposal can be seen below.


Eric's project idea to develop an "electronic MIDI drum set with variable stiffness and damping" was very similar to our combined final design. He makes the important point that "currently, most of these electronic drum sets are made of rubber pads for all of its components, which makes hitting all of these different drum components actually feel the same. The goal of this project is to design and create a haptic interface between the drum pads and the user so that each of these pads gives different “feel” to the user based on the mechanical response it produces." As you will see in our final design we used many of the important concepts Eric mentions here. He also suggest we use position and velocity sensors to control the "virtual" stiffness and damping of the haptic interface. A figure of Eric's proposed idea can be seen in the following diagram. We compiled all of our ideas and came up with the following design shown below. We decided to use a linear actuator (voice coil) provided by Prof. Gillespie and sense position using a hall-effect sensor. Then through a unanimous decision use MIDI and an Arduino to provide feedback through a synthesizer to the human user. The response of the drum head will be determined through initial characterization of a conventional drum. This system identification was to be conducted using LabView and a MEMS accelerometer. Then through modeling we proposed we could implement these effects virtually.


With this design there we provided important force analysis diagrams and equations which you can see below. In our second proposal we mentioned that "interactions with a stick and drumhead can generally be characterized into four different stages. These four stages are shown below along with their respective dynamic models. In the first mode the drumhead is initially in its stable configuration before the stick has struck its surface. The second stage occurs when a stick is in direct contact with the surface for a short period of time. Then once the stick is removed the head continues to vibrate, which is the third stage. The fourth and final stage can be classified as a complex interaction of an already vibrating head and a new stick strike. Each of these user interactions can be described in a quantitative manner as you will in the following diagrams."


Final Project: Team Members

Scott Bartkowiak
Mike Luginbill
Eric Sihite