Final Project

At the beginning of the smester (week 1), I was planning a final project that would demonstrate a full manufacturing process. Over the course of the class though, certain aspects of that project became less interesting, and I started looking for a new project. This was getting frustrating, as I was legitimately intersted in several of the technologies that we were using, but I could not think of a single thing (on a large scale) that I found even remotely compelling. To this end, I was playing around with a range finder that I had purchased my senior year of high school for an archery sight project. The plan back then had been to tap into the serial data of the range finder (if it existed), and use this to adjust a laser sight that would be able to account for arrow drop at distance. I suddenly realized that this could be the very project I was looking for.

The plan, as I saw it, was to use composites to make limbs for a recurve bow. The riser would be made out of aluminum, whcih would have an end cap welded to the top and bottom. A 3D scan of my hand would be used to make a custom wooden grip, and that grip would be milled on the shopbot. I abandoned the strategy of directly interfacing with the laser sight, instead favoring a manual input of the range using a potentiometer. The potentiometer would be interpreted by an ATTiny44, which would turn manipulate a servo to whcih the laser was attached. This would be mounted over where the arrow would sit. A preliminary render is below.

Some background on the bow: A recurve bow is a classical bow design which takes advantage of an inflection point in the limbs to deliver significantly more power in a smaller size. Modern recurve bows tend to consiste of a piece of wood laminated between two fiberglass layers. A vatiant on recurve bows, the takedown recurve bow, features removable limbs which helps for transportation, but also allows for customization of the properties of the bow depending on the task at hand. This divides the bow into 2 primary modules which could be tackled independently and then assmbled at the end. The fiberglass is cured separately, and then all of the layers are bonded together in a wooden form. Justin and I began reseraching into fiberglass design to create a suitible fiberglass layer. Bow-tough, a hybrid of pretensioned linear fibers and cros-axis weave appeared to be extremely populer amongst bowyers. We decided to attemt to make our own by pulling the lengthwise pieces of fiberglass out of a heavy gauge weave to form long, strong linear fabric. This linear section was sandwhiched between two thin fiberglass weaves, wich would then go into a custom frame. The custom frame (shown below open and closed), was made from a sheet of MDF. Designed to be exceptionally rigid, two fiberglass laminates could be made in each frame by using alignment cheeks and a standoff layer.

After the frame was built, the surfaces that would come in contact with the curing resin were coated in a layer of packing tape, and then waxed with mold release. The resin used was Entropy SAP 100/1000, which is a two part natural resin with good bonding properties. The laminates of the bow would perform best if the ratio of fiber to resin was weighted toward the fiber, so the process of applying the resin included adding a large amount to fully wet the surface, and then thoroughly squeegying out the resin. Due to length constraints, these laminates were made to a length of just under 20" (max acheivable), and oragized thin weave, linear strands, thing weave, surface preparation layer. This was left to cure overnight while other work was accomplished.

While the resin was drying on the fiberglass, I stared prepping the wood core of the limbs and the form into which they would go. Using a bandsaw, I cut a thick laminated block of MDF into the final desired shape of the limbs. I then sanded the inside surfaces so that they would mate cleanly and produce an acceptable surface finish on the final limbs. I had salveged a thin oak slat from the architecture shop in N51, and was intending to use this as my limb core material for its flexibility. This slat was about 0.2" thick, so the limb mould had to be cut by an additional 0.2" to accommodate the change in corner radius.

Here I encountered my first unexpected problem. I test fit the wood into the mold, but with even a moderate amount of pressure, it was clear that the wood would split before it would take its final shape. Some amount of pre-forming would be requried. Steam bending, a technique I had never tried and new nothing about, appeared to be the only option. I wrapped up what I needed for the evening in the lab, then took the limb form and the limbs back home, and started a pot of boiling water.

It took a few hours, but when the wood had softened it was pushed into the form, and clamped with a strap of webbing and the leg of a table. This was left overnight to take its shape and give the wood some time to dry. The end result was surprisingly good for a guess at the process, and I was ready to laminate the limbs the next morning.

Back in lab, I removed the fiberglass laminates from the mold. This took a little bit of force. The laimnates ended up being significantly thinner than I was expecting, which wasn't great, but not much could be donne to remedy the situation at this point. The flash was cleaaned with a blade, and the surface prep layer was removed to open up bonding points on the epoxy. The now formed limbs were traced and cut into shape. I decided that it would be easier and safer to cut the fiberglass to the shape of the limbs with a blade than to grind the limb and glass at once. With the pieces in hand, I moved to the fume-hood to mix another batch of epoxy. With the side of the prepped fiberglass laminates facing up, I applied the resin to the laminates and the wood. Like before, I applied more resin than was needed and wiped off the excess. The pieces were then stacked into the mold, and the top surface clamped on. Here I noticed a critical error that would end up sinking the ability of the bow to function upon completion. A gap existed in the corner due to a mismatch of radii. The fiberglass laminates were not being clamped to the board at this point, and therefore bonding would not be expected to occur. This proved to be correct, but more on that later.

While I was working on all of that manual work, I was also working on a custom erganomic grip. Using the sense 3D scanner, I scanned my hand in the position that I expected to be comfortable for holding a bow, and used the built in post processing of the sense software to do a bit of final tuning. This file was then exported to meshlab where the .stl file was simplified to import into solidworks as a surface. An assembly was created in solidworks between the hand and a block of material. I visually positioned the hand to the best of my abilities, and then exported this as a solidpart to attempt ot use the the "cut with surface" tool. Unfortuately, this didn't work due to "a geometric conditon". After a few attempts at debugging, I had Calvin do a boolean in Rhino, which completed the cut almost immediately. This new surface was pulled back into Solidworks as a solid, and the block was cut down to the hand profile, making sure to avoid leaving any overhangs.

This was exported as a parasolid with a new coordinate system, and this in turn was pushed into MasterCAM where a 4-axis rotary toolpath was generated. The shopbot has a cool feature where the standard bed can be replaced with a rotary stage. The extremely complex grip surface was decomposed into a series of linear passes and 1 degree rotations. A good amount of time was spent preparing the stock block of Ash to fit into the collets of the shopbot, but when complete, the cut commenced and worked spectacularly.

Again in parallel to the above, I was working on an aluminum riser that would hold the limbs onto the bow. A 1" diameter tube of 6061 with 1/8" wall thickness had the ends cut off at a taper, first with a bandsaw and then more correctly with a mill. A bar of 2"x1/4" aluminum was cut into 3" lengths, and two 1/4-20 holes were tapped into them. This would accomodate the thumb screws that would hold the limb in place.

When the grip was finished, Justin and I went to CBA to use the TIG welder. I had taken night classes four years previously and new generally how to TIG weld aluminum. Current was set to 125A with an argon flow rate of 40cfm due to the need to hold the gun relativly far away from the piece. As expected the welds got better with each pass, with the last pass actually being approximately acceptable. On Justin's suggestion, I welded with the grip in place, taking breaks to let the Aluminum cool. This meant that I wouldn't have to cut the grip and glue it in order to get it around the tube. Here's the progression of welds, and the finished product.

Using a utility blade, the fiberglass on the limbs was cleaned, and holes for the thumb screws were drilled. To make things cleaner, I actually ended up drilling a 3/8" diameter hole and presing in a brass bushing. This was aestheticlaly pleasing and nominally resulted in a stronger joing thatn just aluminum on wood.

I now had the basis of my bow before me:

And the finished prduct.

Last was to debug the electronics. As a reminder the board was supposed to take an input of a distance, account for expected arrow drop, and move a laser pointer the appropriate number of degrees to force the archer to acommodate. A board had been cut to approximately the shape of an SD card. The board was designed to read analog signal from a potentiometer and interpret that position to a position of the servo. This board was a hybrid of Neils servo control board and his phototransister board, with the potentiometer taking the place of the phototransistor. It was a fairly easy board to design, and milled easily.

Unfortunatley when I plugged the board in and programmed it, the servo wasn't funcitonal. After modifcations to the code and a few days of confusion, I eventually worked with Nadya and hooked the board up to a scope. It was determined that the funcitonality was working as intended, but the servo was drawing too much power (come on Neil, what about the power electronics!?) for the regulator, even the large on. To resolve this, I bipassed the power flow to the servo around the regulator and the rest of the circut. This ended up working qutie well.

Code was again modified from Neil's servo drive code and the phototransitor code, which had to have the registry calls modified from an attiny45 to an attiny44. The code can be seen below.

    
//

#include 
#include 

#define output(directions,pin) (directions |= pin) // set port direction for output
#define set(port,pin) (port |= pin) // set port pin
#define clear(port,pin) (port &= (~pin)) // clear port pin
#define pin_test(pins,pin) (pins & pin) // test for port pin
#define bit_test(byte,bit) (byte & (1 << bit)) // test for bit set
#define position_delay() _delay_ms(1000)
#define bit_delay_time 102 // bit delay for 9600 with overhead
#define bit_delay() _delay_us(bit_delay_time) // RS232 bit delay
#define half_bit_delay() _delay_us(bit_delay_time/2) // RS232 half bit delay
#define char_delay() _delay_ms(10) // char delay

#define PWM_port PORTA
#define PWM_pin (1 << PA6)
#define PWM_direction DDRA

int main(void) {
   //
   // main
   //
   // set clock divider to /1
   //

    float pos;

   CLKPR = (1 << CLKPCE);
   CLKPR = (0 << CLKPS3) | (0 << CLKPS2) | (0 << CLKPS1) | (0 << CLKPS0);
   //
   // set up timer 1
   //
   TCCR1A = (1 << COM1A1) | (0 << COM1A0); // clear OC1A on compare match
   TCCR1B = (0 << CS12) | (1 << CS11) | (0 << CS10) | (1 << WGM13); // prescaler /8, phase and frequency correct PWM, ICR1 TOP
   ICR1 = 25000; // 20 ms frequency
   //
   // set PWM pin to output
   //
   clear(PWM_port, PWM_pin);
   output(PWM_direction, PWM_pin);
   //initiate ADC
   ADMUX = (0 << REFS1) | (0 << REFS0) // VCC ref
      | (0 << ADLAR) // right adjust
   //   | (0 << MUX3) | (1 << MUX2) | (1 << MUX1) | (1 << MUX0); // 20(PB4-PB3)
      | (0 << MUX5) | (0 << MUX4) | (0 << MUX3) |(0 << MUX2) | (1 << MUX1) | (0 << MUX0); // tell it to listen to ADC2 (PA2)
   ADCSRA = (1 << ADEN) // enabled
      | (1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0); // prescaler /128 check to see if this is consistent with the tiny44 internal clock******
   //ADCSRB = (1 << BIN); // bipolar mode
   //
   // main loop
   //
   while (1) {
      
      ADCSRA |= (1 << ADSC);

      while (ADCSRA & (1 << ADSC));
      
      pos = ADC;

      OCR1A = pos + 1250;

      //pos + 1875;//
      // 1 ms PWM on time
      //
      //OCR1A = 1250;
      //position_delay();
      //
      // 1.5 ms PWM on time
      //
      //OCR1A = 1875;
      //position_delay();
      //
      // 2 ms PWM on time
      //
      //OCR1A = 2500;
      //position_delay();
      
      // (pos/256.0 * (2500-1875)) + 1875


      }
   
 

  
   }

The final detail was a means by which to attch the electronics system to the bow. I decided to keep it simple and used hose clamps and some 1/16" sheet aluminum to make a mounting system for the servo and potentiometer, and secure the entire setup to the riser. a push-button was run to the pointer finger on the grip to allow the laser to be turned on and off as needed. This ended up being more of a rat's nest than I would have liked, but got the job done. I would need a power source for a final test, but for all intents and purposes, things were working quite nicely.

A mostly complete materials list can be seen below. Not included is the cost for some of the wood, and some of the parts of the inventory I didn't have time to track down.

Thanks for a great class!