Each dot is an average value of between five and nine trials. The results-inverted to give angle produced by range instead of the other way around, are shown below. First, I tracked the ranges produced by various launch angles from 50 to 80 degrees by launching the ball repeatedly over a large sheet of paper covered by carbon copy paper. Since my original idea for the program was not working, I wrote a new program based not on theoretical equations, but on collected data.
![projectile launcher projectile launcher](https://cdn.shopify.com/s/files/1/0250/0623/products/PH0343_4ae048a7-7511-4216-842d-cd0d88d0bb4b_x700.jpg)
As it was, there were too many variables, and the ball consistently missed the target when this program was used. It would also have required a very exact calculation of the launch velocity. This program did not work-or, would have required a far more precise apparatus and many small adjustments to work properly. The calculations were based on the equation:ĭerived from equations describing projectile motion (with angles in degrees). Next, I wrote a similar function which took a range as input and calculated the needed launch angle, sending it to the servo in the same manner as above. I used this program to check that the servo wasn't crooked (which it was-notice that 1 is subtracted from theta when it is translated to pw) and to collect data later on in the experiment.
PROJECTILE LAUNCHER SERIAL
and open it pw = ((90-theta-1)+61.884)/.10103 %Translates angle to pulse widths ch=1 %Defines channel cmd= %creates command string from given variables fprintf(s,cmd) %Sends the command to serial link. %Create a new serial communications link s=serial('COM1','Baudrate',115200,'Terminator','CR') fopen(s) %.
PROJECTILE LAUNCHER CODE
Its code is below:įunction = angle_test(theta) s=instrfind %Find any serial links (we can have only 1) delete(s) %. The first simply translates an angle defined by the user to pulse widths and sends it to the servo. I ultimately wrote three programs for the launcher. The launcher is attached to the servo with strong double-sided tape (the kind used for wall hooks) and secured with string. The ball rests against the flat side of the plug until the nail is pulled out, launching the ball. To load the launcher, one compresses the spring using a wooden rod and secures it by pushing a nail through a hole in the plug lining up with two holes in the side of the tube. The other end is hot-glued to a metal plug of the same diameter as the inside of the tube. The spring is secured at one end of the tube by a screw passing directly through its coils. The spring is then released by hand.Ī diagram of the inside of the launcher is shown above.
![projectile launcher projectile launcher](https://www.ultracleantech.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/3/0/30_2.jpg)
With no variation in initial velocity, the range will be dependent on the launch angle.
![projectile launcher projectile launcher](https://thefittingsource.com/wp-content/uploads/2017/12/31_2.jpg)
The servo is connected to a Matlab program which, given the range from the target, turns the launcher to the correct angle. The launcher is powered by a spring (compressed to the same distance each time to produce a consistent initial velocity) and loaded with a small metal ball. The main component of my project is a projectile launcher attached to a servo. To apply the concepts of projectile motion to a practical situation.