Monday, 19 November 2012

Welding cast iron brackets

     Today, 2 brackets that hold up a side shelf on our wood stove broke off, so i took them into welding class to see if I could fix them. I was worried they wouldn't weld well, as they are made of cast iron, and neither me, nor my welding teacher knew if it would work. To my surprise, I easily joined them with a MIG welder, and grinded the weld so it was flush with the rest of the piece, then polished it off. Here's a picture I took after I did the first one. It was much easier then I thought it would be, and I am quite pleased with the final product.

Sunday, 18 November 2012

Offroad Truck Bumper Part 1


     I've decided to build my own bumper for my truck that will increase it's capabilities, allowing it to be more agile over rough terrain. I've looked into buying a bumper, but there aren't too many available for the 97-03 generation of F-150s, and all the one's I've found are highly expensive. The style of bumper that I've chosen is prerunner/baja. These bumpers are widely used in desert racing and offroading in areas such as Mexico and Southern California.
         




The main point of these bumpers is to improve the clearance of the front end. Normally, if you were trying to drive your truck from flat ground onto a steep incline, the bumper would hit, and you'd get stuck. These bumpers expose much more of the wheel, thereby allowing the truck to handle drastic changes in incline.  




      
     
     To build my bumper, I would first need to find a way to mount it to my frame. The old bumper was bolted onto 2 large brackets that were welded to the end of the frame. To mount my bumper, I would need to chop the ends of the frame off to allow the skid plate to have shallower angle, which will keep air resistance to a minimum.




    

    First, I drew up some designs for the mounting brackets of my bumper. I then cut out the pieces I would need with a plasma cutter. I used 1/4 inch iron, as it would give my bumper a good strong base to sit on.
         





    


   
    I used a mig welder to join the pieces together, and once I had both brackets built, I arc welded a piece of tube in between them to get the width right.




     

Friday, 16 November 2012

Robot Arm: Controlling the servos







Each servo connects to the SSC-32 board using 3 wires. The VC(Red) and Ground(black) wires provide the 5 V DC voltage to power the servo.




The third “Pulse” wire supplies a 5 volt control pulse signal that is repeated 50 times a second (every 20ms). The width of this pulse determines what point the servo rotates to, and can be from 0.9ms to 2.1ms long. For example,an ASCII command from the computer to the SSC-32 control port such as “#2 P1500” would tell the controller to send Servo #2 a signal consisting of 1.5ms pulses which would move the servo to move to it centered position.

The Oscilloscope lets us actually see the pulse by freezing the screen, allowing us to measure it. This is how the Oscilloscope shows the 50ms 5 Volt pulses to the servo.

The black permanent grid squares on the Oscilloscope screen are called “Graticules”, and the numbers at the bottom show the units. In this setting, each graticule is 10 ms wide and 5 Volts high. The two dotted lines are part of the Oscilloscope's measurement tools. The Oscilloscope allows these to be moved to allow vertical or horizontal measurements, and the number at the top op the screen represents the distance between them(20.0ms). The time scale of the scope can be adjusted to look at one pulse and make more accurate measurements.

Below is what the .75ms, 1 ms and 1.5 ms pulses look like for the commands “#1 P750”, “#1 P1000” and “#1 P1500” are sent. 




Using the basic commands the Servos moved very quickly but there is a longer command that allows you to control the speed that they rotate into position. By adding a “S” parameter, the movement speed of the servo can be adjusted. The SSC-32 manual does not explain how this works, but using the Oscilliscope we were able to see how the SSC-32 slowly adjusted the pulse width when the command “#1 P700 S100” was sent (note that the the previous servo position was “#1 P2300”). The “S” value sets the movement speed in us/sec.

Here is a video displaying the changing pulse width.


Friday, 2 November 2012

Robot Arm: The SSC-32 Servo Controller


       The servos on the robot arm are controlled by a controller board called a SSC-32. 

       Here's a diagram from the manual detailing each of its components. 

       As you can see, those pins along the bottom are the connection points for a servo motor. One pin is ground, one pin delivers power, and the remaining pin delivers the pulse that moves the servo. The area of the card that says "Baud" is where the speed that data is passed is selected using 2 jumpers. As you can see in the photo, both jumpers are in, which means that the card will operate at the maximum speed of 115.2 Kilo Bytes per second.

Wednesday, 31 October 2012

Loader Bucket Completed!

      I finally completed the loader bucket today, the welding took a while because I was welding outside, and the weather has been rather dodgy lately. I used a Lincoln arc welder running at about 130 volts, with 7014 AC rods I believe. As you may be able to tell, I completely welded the patch to the bucket, covering every edge, gap, nook, and cranny. Generally it would have been easier(and maybe a bit structurally stronger) to just use a bunch of short welds spaced along the seams, however, it is a bucket that is used to haul manure and other liquids, so I needed to make sure that it wouldn't leak. Overall, I'm fairly proud of the job, especially since I've only been welding for a few months.
Before
After

Tuesday, 16 October 2012

Robot Arm Components: Part II: The Control Systems

     Today, I'd like to go over the part of the robot that controls it: the computer. the computer's job is to take in signals from the computer, then interpret those signals and send commands to the various parts of the arm. These signals are in the form of a widely used code: ASCII(American Standard Code for Information Interchange). The purpose of ASCII is simple, in that computers only understand numbers, so ASCII is a way to use numbers to represent actions or characters that aren't numbers. For example, every single button on a keyboard has an ASCII number applied to it.

Ascii Table
An ASCII table
So, when you type in a command on a computer, the computer converts it from ASCII to a binary value, which the computer in the robot then accepts, and sends it in the form of electric pulses to the necessary part of the arm.  

Monday, 15 October 2012

The Loader Bucket


 This is a loader bucket we use around the farm for odd jobs. As you can see, it's rusted out around the bottom. I'd thought I'd put my newly acquired welding skills to use at school, and build an inner plate to patch the rusted spots. (it's currently incomplete, pics will be posted of the final product).